Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
705
Scripts/Quests/HaochisTrials/Conversations.cs
Normal file
705
Scripts/Quests/HaochisTrials/Conversations.cs
Normal file
@@ -0,0 +1,705 @@
|
||||
using System;
|
||||
|
||||
namespace Server.Engines.Quests.Samurai
|
||||
{
|
||||
public class AcceptConversation : QuestConversation
|
||||
{
|
||||
public AcceptConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I><U>Important Quest Information</U></I><BR><BR>
|
||||
*
|
||||
* During your quest, any important information that a
|
||||
* <a href = "?ForceTopic31">NPC</a> gives you, will appear in a window
|
||||
* such as this one. You can review the information at any time during your
|
||||
* quest.<BR><BR>
|
||||
*
|
||||
* <U>Getting Help</U><BR><BR>
|
||||
*
|
||||
* Some of the text you will come across during your quest,
|
||||
* will be underlined <a href = "?ForceTopic73">links to the codex of wisdom</a>,
|
||||
* or online help system. You can click on the text to get detailed information
|
||||
* on the underlined subject. You may also access the Codex Of Wisdom by
|
||||
* pressing "F1" or by clicking on the "?" on the toolbar at the top of
|
||||
* your screen.<BR><BR><U>Context Menus</U><BR><BR>
|
||||
*
|
||||
* Context menus can be called up by single left-clicking (or Shift + single
|
||||
* left-click, if you changed it) on most objects or NPCs in the world.
|
||||
* Nearly everything, including your own avatar will have context menus available.
|
||||
* Bringing up your avatar's context menu will give you options to cancel your quest
|
||||
* and review various quest information.<BR><BR>
|
||||
*/
|
||||
return 1049092;
|
||||
}
|
||||
}
|
||||
public override void OnRead()
|
||||
{
|
||||
this.System.AddObjective(new FindHaochiObjective());
|
||||
}
|
||||
}
|
||||
|
||||
public class RadarConversation : QuestConversation
|
||||
{
|
||||
public RadarConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* To view the surrounding area, you should learn about the Radar Map.<BR><BR>
|
||||
*
|
||||
* The Radar Map (or Overhead View) can be opened by pressing 'ALT-R'
|
||||
* on your keyboard. It shows your immediate surroundings from a
|
||||
* bird's eye view.<BR><BR>
|
||||
*
|
||||
* Pressing ALT-R twice, will enlarge the Radar Map a little.
|
||||
* Use the Radar Map often as you travel throughout the world
|
||||
* to familiarize yourself with your surroundings.
|
||||
* */
|
||||
return 1063033;
|
||||
}
|
||||
}
|
||||
public override bool Logged
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class FirstTrialIntroConversation : QuestConversation
|
||||
{
|
||||
public FirstTrialIntroConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Greetings. I am Daimyo Haochi, the Feudal Lord of this region. <BR><BR>
|
||||
*
|
||||
* Since you are here at my side, you must wish to learn the ways of the Samurai.<BR><BR>
|
||||
*
|
||||
* Wielding a blade is easy, anyone can grasp a sword<72>s hilt. Learning how to
|
||||
* fight properly and skillfully is to become an Armsman.<BR><BR>
|
||||
*
|
||||
* Learning how to master weapons, and even more importantly when not to use
|
||||
* them, is the Way of the Warrior. The Way of the Samurai. The Code of the
|
||||
* Bushido. That is why you are here. <BR><BR>
|
||||
*
|
||||
* You will go through 7 trials to prove your adherence to the Samurai code. <BR><BR>
|
||||
*
|
||||
* The first trial will test your decision making skills. You only have to enter
|
||||
* the area beyond the green passageway. <BR><BR>
|
||||
*
|
||||
* Do not attempt to hurry your trials. The guards will only let you through
|
||||
* to each trial when I have deemed you ready.<br><br>
|
||||
*
|
||||
* As a last resort you may use the golden teleporter tiles in each trial area
|
||||
* but do so at your own risk. You may not be able to return and complete your
|
||||
* trials once you have chosen to escape.
|
||||
*/
|
||||
return 1063029;
|
||||
}
|
||||
}
|
||||
public override void OnRead()
|
||||
{
|
||||
this.System.AddObjective(new FirstTrialIntroObjective());
|
||||
}
|
||||
}
|
||||
|
||||
public class FirstTrialKillConversation : QuestConversation
|
||||
{
|
||||
public FirstTrialKillConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Beyond you are two troubled groups.<BR><BR>
|
||||
*
|
||||
* The Cursed Souls were once proud warriors that were ensorcelled
|
||||
* by an evil mage. The mage trapped and killed them later but the spell
|
||||
* has not lifted from their souls in death. <BR><BR>
|
||||
*
|
||||
* The Young Ronin were former Samurai in training who lost their way.
|
||||
* They are loyal only to those with enough coin in their pocket. <BR><BR>
|
||||
*
|
||||
* You must decide who needs to be fought to the death. You may wish to
|
||||
* <a href="?ForceTopic27">review combat techniques</a> as well as
|
||||
* <a href = "?ForceTopic29">information on healing yourself</a>. <BR><BR>
|
||||
*
|
||||
* Return to Daimyo Haochi after you have finished with your trial.<br><br>
|
||||
*
|
||||
* If you should die during any of your trials, visit one of the Ankh Shrines
|
||||
* and you will be resurrected. You should retrieve your belongings from your
|
||||
* body before returning to the Daimyo or you may not be able to return to your corpse.
|
||||
*/
|
||||
return 1063031;
|
||||
}
|
||||
}
|
||||
public override void OnRead()
|
||||
{
|
||||
this.System.AddObjective(new FirstTrialKillObjective());
|
||||
}
|
||||
}
|
||||
|
||||
public class GainKarmaConversation : QuestConversation
|
||||
{
|
||||
private bool m_CursedSoul;
|
||||
public GainKarmaConversation(bool cursedSoul)
|
||||
{
|
||||
this.m_CursedSoul = cursedSoul;
|
||||
}
|
||||
|
||||
public GainKarmaConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_CursedSoul)
|
||||
{
|
||||
// You have just gained some <a href="?ForceTopic45">Karma</a> for killing a Cursed Soul.
|
||||
return 1063040;
|
||||
}
|
||||
else
|
||||
{
|
||||
// You have just gained some <a href="?ForceTopic45">Karma</a> for killing a Young Ronin.
|
||||
return 1063041;
|
||||
}
|
||||
}
|
||||
}
|
||||
public override bool Logged
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public override void ChildDeserialize(GenericReader reader)
|
||||
{
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
this.m_CursedSoul = reader.ReadBool();
|
||||
}
|
||||
|
||||
public override void ChildSerialize(GenericWriter writer)
|
||||
{
|
||||
writer.WriteEncodedInt((int)0); // version
|
||||
|
||||
writer.Write((bool)this.m_CursedSoul);
|
||||
}
|
||||
}
|
||||
|
||||
public class SecondTrialIntroConversation : QuestConversation
|
||||
{
|
||||
private bool m_CursedSoul;
|
||||
public SecondTrialIntroConversation(bool cursedSoul)
|
||||
{
|
||||
this.m_CursedSoul = cursedSoul;
|
||||
}
|
||||
|
||||
public SecondTrialIntroConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_CursedSoul)
|
||||
{
|
||||
/* It is good that you rid the land of the Cursed Souls so they can
|
||||
* be at peace in death. They had been cursed for doing what they
|
||||
* thought was an honorable deed. Now they can have respect in their death.<BR><BR>
|
||||
*
|
||||
* I have placed a reward in your pack. <BR><BR>
|
||||
*
|
||||
* The second trial will test your courage. You only have to follow the yellow
|
||||
* path to see what awaits you.
|
||||
*/
|
||||
return 1063045;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* It is good that you rid the land of those dishonorable Samurai.
|
||||
* Perhaps they will learn a greater lesson in death.<BR><BR>
|
||||
*
|
||||
* I have placed a reward in your pack.<BR><BR>
|
||||
*
|
||||
* The second trial will test your courage. You only have to follow
|
||||
* the yellow path to see what awaits you.
|
||||
*/
|
||||
return 1063046;
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void OnRead()
|
||||
{
|
||||
this.System.AddObjective(new SecondTrialIntroObjective());
|
||||
}
|
||||
|
||||
public override void ChildDeserialize(GenericReader reader)
|
||||
{
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
this.m_CursedSoul = reader.ReadBool();
|
||||
}
|
||||
|
||||
public override void ChildSerialize(GenericWriter writer)
|
||||
{
|
||||
writer.WriteEncodedInt((int)0); // version
|
||||
|
||||
writer.Write((bool)this.m_CursedSoul);
|
||||
}
|
||||
}
|
||||
|
||||
public class SecondTrialAttackConversation : QuestConversation
|
||||
{
|
||||
public SecondTrialAttackConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Beyond the guards is a test of courage. You must face your fear and attack a
|
||||
* great beast. You must choose which beast to slay for there is more than
|
||||
* one beyond the courtyard doors. <BR><BR>
|
||||
*
|
||||
* The imp entered the courtyard unaware of its surroundings. The dragon came
|
||||
* knowingly, hunting for the flesh of humans <20> A feast for the beast. <BR><BR>
|
||||
*
|
||||
* You must rid the courtyard of these beasts but you may only choose one to
|
||||
* attack. Go and choose wisely.
|
||||
*/
|
||||
return 1063057;
|
||||
}
|
||||
}
|
||||
public override void OnRead()
|
||||
{
|
||||
this.System.AddObjective(new SecondTrialAttackObjective());
|
||||
}
|
||||
}
|
||||
|
||||
public class ThirdTrialIntroConversation : QuestConversation
|
||||
{
|
||||
private bool m_Dragon;
|
||||
public ThirdTrialIntroConversation(bool dragon)
|
||||
{
|
||||
this.m_Dragon = dragon;
|
||||
}
|
||||
|
||||
public ThirdTrialIntroConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_Dragon)
|
||||
{
|
||||
/* You faced the dragon knowing it would be your certain death.
|
||||
* That is the courage of a Samurai. <BR><BR>
|
||||
*
|
||||
* Your spirit speaks as a Samurai already. <BR><BR>
|
||||
*
|
||||
* In these lands, death is not forever. The shrines can make you whole
|
||||
* again as can a helpful mage or healer. <BR><BR>
|
||||
*
|
||||
* Seek them out when you have been mortally wounded. <BR><BR>
|
||||
*
|
||||
* The next trial will test your benevolence. You only have to walk the blue path.
|
||||
*/
|
||||
return 1063060;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Fear remains in your eyes but you have learned that not all is
|
||||
* what it appears to be. <BR><BR>
|
||||
*
|
||||
* You must have known the dragon would slay you instantly.
|
||||
* You elected the weaker opponent though the imp did not come
|
||||
* here to destroy. You have much to learn. <BR><BR>
|
||||
*
|
||||
* In these lands, death is not forever. The shrines can make you whole
|
||||
* again as can a helpful mage or healer. <BR><BR>
|
||||
*
|
||||
* Seek them out when you have been mortally wounded. <BR><BR>
|
||||
*
|
||||
* The next trial will test your benevolence. You only have to walk the blue path.
|
||||
*/
|
||||
return 1063059;
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void OnRead()
|
||||
{
|
||||
this.System.AddObjective(new ThirdTrialIntroObjective());
|
||||
}
|
||||
|
||||
public override void ChildDeserialize(GenericReader reader)
|
||||
{
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
this.m_Dragon = reader.ReadBool();
|
||||
}
|
||||
|
||||
public override void ChildSerialize(GenericWriter writer)
|
||||
{
|
||||
writer.WriteEncodedInt((int)0); // version
|
||||
|
||||
writer.Write((bool)this.m_Dragon);
|
||||
}
|
||||
}
|
||||
|
||||
public class ThirdTrialKillConversation : QuestConversation
|
||||
{
|
||||
public ThirdTrialKillConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* A pack of wolves circle your feet. They have been injured and are in pain.
|
||||
* A quick death will end their suffering.<br><br>
|
||||
*
|
||||
* Use your Honorable Execution skill or other means to finish off a wounded wolf.
|
||||
* Do so and return to Daimyo Haochi.
|
||||
*/
|
||||
return 1063062;
|
||||
}
|
||||
}
|
||||
public override void OnRead()
|
||||
{
|
||||
this.System.AddObjective(new ThirdTrialKillObjective());
|
||||
}
|
||||
}
|
||||
|
||||
public class FourthTrialIntroConversation : QuestConversation
|
||||
{
|
||||
public FourthTrialIntroConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>Daimyo Haochi smiles as you walk up to him. Quietly he says:</I><BR><BR>
|
||||
*
|
||||
* A Samurai understands the need to help others even as he wields a blade against
|
||||
* them. <BR><BR>
|
||||
*
|
||||
* You have shown compassion. A true Samurai is benevolent even to an enemy.
|
||||
* For this you have been rewarded. <BR><BR>
|
||||
*
|
||||
* And now you must prove yourself again. Walk the red path.
|
||||
* We will talk again later.
|
||||
*/
|
||||
return 1063065;
|
||||
}
|
||||
}
|
||||
public override void OnRead()
|
||||
{
|
||||
this.System.AddObjective(new FourthTrialIntroObjective());
|
||||
}
|
||||
}
|
||||
|
||||
public class FourthTrialCatsConversation : QuestConversation
|
||||
{
|
||||
public FourthTrialCatsConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <I>You approach a disheveled gypsy standing near a small shed.
|
||||
* You sense that she has not eaten nor bathed in quite some time. <BR><BR>
|
||||
*
|
||||
* Around her is a large colony of mangy and diseased cats. It appears
|
||||
* she has spent what little money she<68>s earned to feed the cats instead
|
||||
* of herself. <BR><BR>
|
||||
*
|
||||
* You have a decision to make. You can give her gold so she can buy some
|
||||
* food for her animals and herself. You can also remove the necessity
|
||||
* of the extra mouths to feed so she may concentrate on saving herself.</i><br><br>
|
||||
*
|
||||
* If you elect to give the gypsy money, you can do so by clicking your stack
|
||||
* of gold and selecting <20>1<EFBFBD>. Then dragging it and dropping it on the Gypsy.
|
||||
*/
|
||||
return 1063067;
|
||||
}
|
||||
}
|
||||
public override void OnRead()
|
||||
{
|
||||
this.System.AddObjective(new FourthTrialCatsObjective());
|
||||
}
|
||||
}
|
||||
|
||||
public class FifthTrialIntroConversation : QuestConversation
|
||||
{
|
||||
private bool m_KilledCat;
|
||||
public FifthTrialIntroConversation(bool killedCat)
|
||||
{
|
||||
this.m_KilledCat = killedCat;
|
||||
}
|
||||
|
||||
public FifthTrialIntroConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_KilledCat)
|
||||
{
|
||||
/* Respect comes from allowing another to make their own decisions.
|
||||
* By denying the gypsy her animals, you negate the respect she is due.
|
||||
* Perhaps you will have learned something to use next time a similar
|
||||
* situation arises. <BR><BR>
|
||||
*
|
||||
* And now you must prove yourself again. Please retrieve my katana
|
||||
* from the treasure room and return it to me.
|
||||
*/
|
||||
return 1063071;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* You showed respect by helping another out while allowing the gypsy
|
||||
* what little dignity she has left. <BR><BR>
|
||||
*
|
||||
* Now she will be able to feed herself and gain enough energy to walk
|
||||
* to her camp. <BR><BR>
|
||||
*
|
||||
* The cats are her family members<72> cursed by an evil mage. <BR><BR>
|
||||
*
|
||||
* Once she has enough strength to walk back to the camp, she will be
|
||||
* able to undo the spell. <BR><BR>
|
||||
*
|
||||
* You have been rewarded for completing your trial. And now you must
|
||||
* prove yourself again. <BR><BR>Please retrieve my katana from the
|
||||
* treasure room and return it to me.
|
||||
*/
|
||||
return 1063070;
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void OnRead()
|
||||
{
|
||||
this.System.AddObjective(new FifthTrialIntroObjective());
|
||||
}
|
||||
|
||||
public override void ChildDeserialize(GenericReader reader)
|
||||
{
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
this.m_KilledCat = reader.ReadBool();
|
||||
}
|
||||
|
||||
public override void ChildSerialize(GenericWriter writer)
|
||||
{
|
||||
writer.WriteEncodedInt((int)0); // version
|
||||
|
||||
writer.Write((bool)this.m_KilledCat);
|
||||
}
|
||||
}
|
||||
|
||||
public class FifthTrialReturnConversation : QuestConversation
|
||||
{
|
||||
public FifthTrialReturnConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <i>The guards let you through without question, and pay you no mind as
|
||||
* you walk into the Daimyo's treasure cache. A vast fortune in gold,
|
||||
* gemstones, and jewelry is stored here! Surely, the Daimyo wouldn't
|
||||
* miss a single small item...<br><br>
|
||||
*
|
||||
* You spot the sword quickly amongst the cache of gemstones and other valuables.
|
||||
* In one quick motion you retrieve it and stash it in your pack.</i>
|
||||
*/
|
||||
return 1063248;
|
||||
}
|
||||
}
|
||||
public override void OnRead()
|
||||
{
|
||||
this.System.AddObjective(new FifthTrialReturnObjective());
|
||||
}
|
||||
}
|
||||
|
||||
public class LostSwordConversation : QuestConversation
|
||||
{
|
||||
public LostSwordConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// What? You have returned without the sword? Go back and look for it again.
|
||||
return 1063074;
|
||||
}
|
||||
}
|
||||
public override bool Logged
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class SixthTrialIntroConversation : QuestConversation
|
||||
{
|
||||
private bool m_StolenTreasure;
|
||||
public SixthTrialIntroConversation(bool stolenTreasure)
|
||||
{
|
||||
this.m_StolenTreasure = stolenTreasure;
|
||||
}
|
||||
|
||||
public SixthTrialIntroConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.m_StolenTreasure)
|
||||
{
|
||||
/* I thank you for returning this sword. However, you should admonished
|
||||
* for also taking treasure that was not asked for nor given back. <BR><BR>
|
||||
*
|
||||
* Think about your actions youngling. <BR><BR>
|
||||
*
|
||||
* Your training is nearly complete. Before you have your final trial,
|
||||
* you should pay homage to Samurai who came before you. <BR><BR>
|
||||
*
|
||||
* Go into the Altar Room and light a candle for them.
|
||||
* Afterwards, return to me.
|
||||
*/
|
||||
return 1063077;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Thank you for returning this sword to me and leaving the remaining
|
||||
* treasure alone. <BR><BR>
|
||||
*
|
||||
* Your training is nearly complete. Before you have your final trial,
|
||||
* you should pay homage to Samurai who came before you. <BR><BR>
|
||||
*
|
||||
* Go into the Altar Room and light a candle for them. Afterwards, return to me.
|
||||
*/
|
||||
return 1063076;
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void OnRead()
|
||||
{
|
||||
this.System.AddObjective(new SixthTrialIntroObjective());
|
||||
}
|
||||
|
||||
public override void ChildDeserialize(GenericReader reader)
|
||||
{
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
this.m_StolenTreasure = reader.ReadBool();
|
||||
}
|
||||
|
||||
public override void ChildSerialize(GenericWriter writer)
|
||||
{
|
||||
writer.WriteEncodedInt((int)0); // version
|
||||
|
||||
writer.Write((bool)this.m_StolenTreasure);
|
||||
}
|
||||
}
|
||||
|
||||
public class SeventhTrialIntroConversation : QuestConversation
|
||||
{
|
||||
public SeventhTrialIntroConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have done well young Samurai. There is but one thing left to do. <BR><BR>
|
||||
*
|
||||
* In the final room is the holding cell containing young Ninjas who came to
|
||||
* take my life. They were caught and placed in my custody. <BR><BR>
|
||||
*
|
||||
* Take care of these miscreants and show them where your loyalty lies. <BR><BR>
|
||||
*
|
||||
* This is your final act as a Samurai in training.
|
||||
*/
|
||||
return 1063079;
|
||||
}
|
||||
}
|
||||
public override void OnRead()
|
||||
{
|
||||
this.System.AddObjective(new SeventhTrialIntroObjective());
|
||||
}
|
||||
}
|
||||
|
||||
public class EndConversation : QuestConversation
|
||||
{
|
||||
public EndConversation()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* You have proven yourself young one. You will continue to improve as your skills
|
||||
* are honed with age. <BR><BR>
|
||||
*
|
||||
* Now it is time for you to explore the lands. Beyond this path lies Zento
|
||||
* City, your future home. On these grounds you will find a golden oval object
|
||||
* known as a Moongate, step through it and you'll find yourself in Zento.<BR><BR>
|
||||
*
|
||||
* You may want to visit Ansella Gryen when you arrive. <BR><BR>
|
||||
*
|
||||
* You have learned the ways. You are an honorable warrior, a Samurai in
|
||||
* the highest regards. <BR><BR>
|
||||
*
|
||||
* Please accept the gifts I have placed in your pack. You have earned them.
|
||||
* Farewell for now.
|
||||
*/
|
||||
return 1063125;
|
||||
}
|
||||
}
|
||||
public override void OnRead()
|
||||
{
|
||||
this.System.Complete();
|
||||
}
|
||||
}
|
||||
}
|
||||
168
Scripts/Quests/HaochisTrials/HaochisTrialsQuest.cs
Normal file
168
Scripts/Quests/HaochisTrials/HaochisTrialsQuest.cs
Normal file
@@ -0,0 +1,168 @@
|
||||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Engines.Quests.Samurai
|
||||
{
|
||||
public class HaochisTrialsQuest : QuestSystem
|
||||
{
|
||||
private static readonly Type[] m_TypeReferenceTable = new Type[]
|
||||
{
|
||||
typeof(Samurai.AcceptConversation),
|
||||
typeof(Samurai.RadarConversation),
|
||||
typeof(Samurai.FirstTrialIntroConversation),
|
||||
typeof(Samurai.FirstTrialKillConversation),
|
||||
typeof(Samurai.GainKarmaConversation),
|
||||
typeof(Samurai.SecondTrialIntroConversation),
|
||||
typeof(Samurai.SecondTrialAttackConversation),
|
||||
typeof(Samurai.ThirdTrialIntroConversation),
|
||||
typeof(Samurai.ThirdTrialKillConversation),
|
||||
typeof(Samurai.FourthTrialIntroConversation),
|
||||
typeof(Samurai.FourthTrialCatsConversation),
|
||||
typeof(Samurai.FifthTrialIntroConversation),
|
||||
typeof(Samurai.FifthTrialReturnConversation),
|
||||
typeof(Samurai.LostSwordConversation),
|
||||
typeof(Samurai.SixthTrialIntroConversation),
|
||||
typeof(Samurai.SeventhTrialIntroConversation),
|
||||
typeof(Samurai.EndConversation),
|
||||
typeof(Samurai.FindHaochiObjective),
|
||||
typeof(Samurai.FirstTrialIntroObjective),
|
||||
typeof(Samurai.FirstTrialKillObjective),
|
||||
typeof(Samurai.FirstTrialReturnObjective),
|
||||
typeof(Samurai.SecondTrialIntroObjective),
|
||||
typeof(Samurai.SecondTrialAttackObjective),
|
||||
typeof(Samurai.SecondTrialReturnObjective),
|
||||
typeof(Samurai.ThirdTrialIntroObjective),
|
||||
typeof(Samurai.ThirdTrialKillObjective),
|
||||
typeof(Samurai.ThirdTrialReturnObjective),
|
||||
typeof(Samurai.FourthTrialIntroObjective),
|
||||
typeof(Samurai.FourthTrialCatsObjective),
|
||||
typeof(Samurai.FourthTrialReturnObjective),
|
||||
typeof(Samurai.FifthTrialIntroObjective),
|
||||
typeof(Samurai.FifthTrialReturnObjective),
|
||||
typeof(Samurai.SixthTrialIntroObjective),
|
||||
typeof(Samurai.SixthTrialReturnObjective),
|
||||
typeof(Samurai.SeventhTrialIntroObjective),
|
||||
typeof(Samurai.SeventhTrialReturnObjective)
|
||||
};
|
||||
private bool m_SentRadarConversion;
|
||||
public HaochisTrialsQuest(PlayerMobile from)
|
||||
: base(from)
|
||||
{
|
||||
}
|
||||
|
||||
// Serialization
|
||||
public HaochisTrialsQuest()
|
||||
{
|
||||
}
|
||||
|
||||
public override Type[] TypeReferenceTable
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_TypeReferenceTable;
|
||||
}
|
||||
}
|
||||
public override object Name
|
||||
{
|
||||
get
|
||||
{
|
||||
// Haochi's Trials
|
||||
return 1063022;
|
||||
}
|
||||
}
|
||||
public override object OfferMessage
|
||||
{
|
||||
get
|
||||
{
|
||||
/* <i>As you enter the courtyard you notice a faded sign.
|
||||
* It reads: </i><br><br>
|
||||
*
|
||||
* Welcome to your new home, Samurai.<br><br>
|
||||
*
|
||||
* Though your skills are only a shadow of what they can be some day,
|
||||
* you must prove your adherence to the code of the Bushido.<br><br>
|
||||
*
|
||||
* Seek Daimyo Haochi for guidance.<br><br>
|
||||
*
|
||||
* <i>Will you accept the challenge?</i>
|
||||
*/
|
||||
return 1063023;
|
||||
}
|
||||
}
|
||||
public override TimeSpan RestartDelay
|
||||
{
|
||||
get
|
||||
{
|
||||
return TimeSpan.MaxValue;
|
||||
}
|
||||
}
|
||||
public override bool IsTutorial
|
||||
{
|
||||
get
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
public override int Picture
|
||||
{
|
||||
get
|
||||
{
|
||||
return 0x15D7;
|
||||
}
|
||||
}
|
||||
public static bool HasLostHaochisKatana(Mobile from)
|
||||
{
|
||||
PlayerMobile pm = from as PlayerMobile;
|
||||
|
||||
if (pm == null)
|
||||
return false;
|
||||
|
||||
QuestSystem qs = pm.Quest;
|
||||
|
||||
if (qs is HaochisTrialsQuest)
|
||||
{
|
||||
if (qs.IsObjectiveInProgress(typeof(FifthTrialReturnObjective)))
|
||||
{
|
||||
Container pack = from.Backpack;
|
||||
|
||||
return (pack == null || pack.FindItemByType(typeof(HaochisKatana)) == null);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void Accept()
|
||||
{
|
||||
base.Accept();
|
||||
|
||||
this.AddConversation(new AcceptConversation());
|
||||
}
|
||||
|
||||
public override void Slice()
|
||||
{
|
||||
if (!this.m_SentRadarConversion && (this.From.Map != Map.Malas || this.From.X < 360 || this.From.X > 400 || this.From.Y < 760 || this.From.Y > 780))
|
||||
{
|
||||
this.m_SentRadarConversion = true;
|
||||
this.AddConversation(new RadarConversation());
|
||||
}
|
||||
|
||||
base.Slice();
|
||||
}
|
||||
|
||||
public override void ChildDeserialize(GenericReader reader)
|
||||
{
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
this.m_SentRadarConversion = reader.ReadBool();
|
||||
}
|
||||
|
||||
public override void ChildSerialize(GenericWriter writer)
|
||||
{
|
||||
writer.WriteEncodedInt(0); // version
|
||||
|
||||
writer.Write((bool)this.m_SentRadarConversion);
|
||||
}
|
||||
}
|
||||
}
|
||||
561
Scripts/Quests/HaochisTrials/Objectives.cs
Normal file
561
Scripts/Quests/HaochisTrials/Objectives.cs
Normal file
@@ -0,0 +1,561 @@
|
||||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Engines.Quests.Samurai
|
||||
{
|
||||
public class FindHaochiObjective : QuestObjective
|
||||
{
|
||||
public FindHaochiObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Speak to Daimyo Haochi.
|
||||
return 1063026;
|
||||
}
|
||||
}
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddConversation(new FirstTrialIntroConversation());
|
||||
}
|
||||
}
|
||||
|
||||
public class FirstTrialIntroObjective : QuestObjective
|
||||
{
|
||||
public FirstTrialIntroObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Follow the green path. The guards will now let you through.
|
||||
return 1063030;
|
||||
}
|
||||
}
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddConversation(new FirstTrialKillConversation());
|
||||
}
|
||||
}
|
||||
|
||||
public class FirstTrialKillObjective : QuestObjective
|
||||
{
|
||||
private int m_CursedSoulsKilled;
|
||||
private int m_YoungRoninKilled;
|
||||
public FirstTrialKillObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Kill 3 Young Ronin or 3 Cursed Souls. Return to Daimyo Haochi when you have finished.
|
||||
return 1063032;
|
||||
}
|
||||
}
|
||||
public override int MaxProgress
|
||||
{
|
||||
get
|
||||
{
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
public override void OnKill(BaseCreature creature, Container corpse)
|
||||
{
|
||||
if (creature is CursedSoul)
|
||||
{
|
||||
if (this.m_CursedSoulsKilled == 0)
|
||||
this.System.AddConversation(new GainKarmaConversation(true));
|
||||
|
||||
this.m_CursedSoulsKilled++;
|
||||
|
||||
// Cursed Souls killed: ~1_COUNT~
|
||||
this.System.From.SendLocalizedMessage(1063038, this.m_CursedSoulsKilled.ToString());
|
||||
}
|
||||
else if (creature is YoungRonin)
|
||||
{
|
||||
if (this.m_YoungRoninKilled == 0)
|
||||
this.System.AddConversation(new GainKarmaConversation(false));
|
||||
|
||||
this.m_YoungRoninKilled++;
|
||||
|
||||
// Young Ronin killed: ~1_COUNT~
|
||||
this.System.From.SendLocalizedMessage(1063039, this.m_YoungRoninKilled.ToString());
|
||||
}
|
||||
|
||||
this.CurProgress = Math.Max(this.m_CursedSoulsKilled, this.m_YoungRoninKilled);
|
||||
}
|
||||
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddObjective(new FirstTrialReturnObjective(this.m_CursedSoulsKilled > this.m_YoungRoninKilled));
|
||||
}
|
||||
|
||||
public override void ChildDeserialize(GenericReader reader)
|
||||
{
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
this.m_CursedSoulsKilled = reader.ReadEncodedInt();
|
||||
this.m_YoungRoninKilled = reader.ReadEncodedInt();
|
||||
}
|
||||
|
||||
public override void ChildSerialize(GenericWriter writer)
|
||||
{
|
||||
writer.WriteEncodedInt((int)0); // version
|
||||
|
||||
writer.WriteEncodedInt(this.m_CursedSoulsKilled);
|
||||
writer.WriteEncodedInt(this.m_YoungRoninKilled);
|
||||
}
|
||||
}
|
||||
|
||||
public class FirstTrialReturnObjective : QuestObjective
|
||||
{
|
||||
bool m_CursedSoul;
|
||||
public FirstTrialReturnObjective(bool cursedSoul)
|
||||
{
|
||||
this.m_CursedSoul = cursedSoul;
|
||||
}
|
||||
|
||||
public FirstTrialReturnObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// The first trial is complete. Return to Daimyo Haochi.
|
||||
return 1063044;
|
||||
}
|
||||
}
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddConversation(new SecondTrialIntroConversation(this.m_CursedSoul));
|
||||
}
|
||||
|
||||
public override void ChildDeserialize(GenericReader reader)
|
||||
{
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
this.m_CursedSoul = reader.ReadBool();
|
||||
}
|
||||
|
||||
public override void ChildSerialize(GenericWriter writer)
|
||||
{
|
||||
writer.WriteEncodedInt((int)0); // version
|
||||
|
||||
writer.Write((bool)this.m_CursedSoul);
|
||||
}
|
||||
}
|
||||
|
||||
public class SecondTrialIntroObjective : QuestObjective
|
||||
{
|
||||
public SecondTrialIntroObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Follow the yellow path. The guards will now let you through.
|
||||
return 1063047;
|
||||
}
|
||||
}
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddConversation(new SecondTrialAttackConversation());
|
||||
}
|
||||
}
|
||||
|
||||
public class SecondTrialAttackObjective : QuestObjective
|
||||
{
|
||||
public SecondTrialAttackObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Choose your opponent and attack one with all your skill.
|
||||
return 1063058;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class SecondTrialReturnObjective : QuestObjective
|
||||
{
|
||||
private bool m_Dragon;
|
||||
public SecondTrialReturnObjective(bool dragon)
|
||||
{
|
||||
this.m_Dragon = dragon;
|
||||
}
|
||||
|
||||
public SecondTrialReturnObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// The second trial is complete. Return to Daimyo Haochi.
|
||||
return 1063229;
|
||||
}
|
||||
}
|
||||
public bool Dragon
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Dragon;
|
||||
}
|
||||
}
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddConversation(new ThirdTrialIntroConversation(this.m_Dragon));
|
||||
}
|
||||
|
||||
public override void ChildDeserialize(GenericReader reader)
|
||||
{
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
this.m_Dragon = reader.ReadBool();
|
||||
}
|
||||
|
||||
public override void ChildSerialize(GenericWriter writer)
|
||||
{
|
||||
writer.WriteEncodedInt((int)0); // version
|
||||
|
||||
writer.Write((bool)this.m_Dragon);
|
||||
}
|
||||
}
|
||||
|
||||
public class ThirdTrialIntroObjective : QuestObjective
|
||||
{
|
||||
public ThirdTrialIntroObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* The next trial will test your benevolence. Follow the blue path.
|
||||
* The guards will now let you through.
|
||||
*/
|
||||
return 1063061;
|
||||
}
|
||||
}
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddConversation(new ThirdTrialKillConversation());
|
||||
}
|
||||
}
|
||||
|
||||
public class ThirdTrialKillObjective : QuestObjective
|
||||
{
|
||||
public ThirdTrialKillObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Use your Honorable Execution skill to finish off the wounded wolf.
|
||||
* Double click the icon in your Book of Bushido to activate the skill.
|
||||
* When you are done, return to Daimyo Haochi.
|
||||
*/
|
||||
return 1063063;
|
||||
}
|
||||
}
|
||||
public override void OnKill(BaseCreature creature, Container corpse)
|
||||
{
|
||||
if (creature is InjuredWolf)
|
||||
this.Complete();
|
||||
}
|
||||
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddObjective(new ThirdTrialReturnObjective());
|
||||
}
|
||||
}
|
||||
|
||||
public class ThirdTrialReturnObjective : QuestObjective
|
||||
{
|
||||
public ThirdTrialReturnObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Return to Daimyo Haochi.
|
||||
return 1063064;
|
||||
}
|
||||
}
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddConversation(new FourthTrialIntroConversation());
|
||||
}
|
||||
}
|
||||
|
||||
public class FourthTrialIntroObjective : QuestObjective
|
||||
{
|
||||
public FourthTrialIntroObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Follow the red path and pass through the guards to the entrance of the fourth trial.
|
||||
return 1063066;
|
||||
}
|
||||
}
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddConversation(new FourthTrialCatsConversation());
|
||||
}
|
||||
}
|
||||
|
||||
public class FourthTrialCatsObjective : QuestObjective
|
||||
{
|
||||
public FourthTrialCatsObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Give the gypsy gold or hunt one of the cats to eliminate the undue
|
||||
* need it has placed on the gypsy.
|
||||
*/
|
||||
return 1063068;
|
||||
}
|
||||
}
|
||||
public override void OnKill(BaseCreature creature, Container corpse)
|
||||
{
|
||||
if (creature is DiseasedCat)
|
||||
{
|
||||
this.Complete();
|
||||
this.System.AddObjective(new FourthTrialReturnObjective(true));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class FourthTrialReturnObjective : QuestObjective
|
||||
{
|
||||
private bool m_KilledCat;
|
||||
public FourthTrialReturnObjective(bool killedCat)
|
||||
{
|
||||
this.m_KilledCat = killedCat;
|
||||
}
|
||||
|
||||
public FourthTrialReturnObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// You have made your choice. Return now to Daimyo Haochi.
|
||||
return 1063242;
|
||||
}
|
||||
}
|
||||
public bool KilledCat
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_KilledCat;
|
||||
}
|
||||
}
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddConversation(new FifthTrialIntroConversation(this.m_KilledCat));
|
||||
}
|
||||
|
||||
public override void ChildDeserialize(GenericReader reader)
|
||||
{
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
this.m_KilledCat = reader.ReadBool();
|
||||
}
|
||||
|
||||
public override void ChildSerialize(GenericWriter writer)
|
||||
{
|
||||
writer.WriteEncodedInt((int)0); // version
|
||||
|
||||
writer.Write((bool)this.m_KilledCat);
|
||||
}
|
||||
}
|
||||
|
||||
public class FifthTrialIntroObjective : QuestObjective
|
||||
{
|
||||
private bool m_StolenTreasure;
|
||||
public FifthTrialIntroObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Retrieve Daimyo Haochi<68>s katana from the treasure room.
|
||||
return 1063072;
|
||||
}
|
||||
}
|
||||
public bool StolenTreasure
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_StolenTreasure;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_StolenTreasure = value;
|
||||
}
|
||||
}
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddConversation(new FifthTrialReturnConversation());
|
||||
}
|
||||
|
||||
public override void ChildDeserialize(GenericReader reader)
|
||||
{
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
this.m_StolenTreasure = reader.ReadBool();
|
||||
}
|
||||
|
||||
public override void ChildSerialize(GenericWriter writer)
|
||||
{
|
||||
writer.WriteEncodedInt((int)0); // version
|
||||
|
||||
writer.Write((bool)this.m_StolenTreasure);
|
||||
}
|
||||
}
|
||||
|
||||
public class FifthTrialReturnObjective : QuestObjective
|
||||
{
|
||||
public FifthTrialReturnObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Give the sword to Daimyo Haochi.
|
||||
return 1063073;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class SixthTrialIntroObjective : QuestObjective
|
||||
{
|
||||
public SixthTrialIntroObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// Light one of the candles near the altar and return to Daimyo Haochi.
|
||||
return 1063078;
|
||||
}
|
||||
}
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddObjective(new SixthTrialReturnObjective());
|
||||
}
|
||||
}
|
||||
|
||||
public class SixthTrialReturnObjective : QuestObjective
|
||||
{
|
||||
public SixthTrialReturnObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// You have done as requested. Return to Daimyo Haochi.
|
||||
return 1063252;
|
||||
}
|
||||
}
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddConversation(new SeventhTrialIntroConversation());
|
||||
}
|
||||
}
|
||||
|
||||
public class SeventhTrialIntroObjective : QuestObjective
|
||||
{
|
||||
public SeventhTrialIntroObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
/* Three young Ninja must be dealt with. Your job is to kill them.
|
||||
* When you have done so, return to Daimyo Haochi.
|
||||
*/
|
||||
return 1063080;
|
||||
}
|
||||
}
|
||||
public override int MaxProgress
|
||||
{
|
||||
get
|
||||
{
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
public override void OnKill(BaseCreature creature, Container corpse)
|
||||
{
|
||||
if (creature is YoungNinja)
|
||||
this.CurProgress++;
|
||||
}
|
||||
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddObjective(new SeventhTrialReturnObjective());
|
||||
}
|
||||
}
|
||||
|
||||
public class SeventhTrialReturnObjective : QuestObjective
|
||||
{
|
||||
public SeventhTrialReturnObjective()
|
||||
{
|
||||
}
|
||||
|
||||
public override object Message
|
||||
{
|
||||
get
|
||||
{
|
||||
// The executions are complete. Return to the Daimyo.
|
||||
return 1063253;
|
||||
}
|
||||
}
|
||||
public override void OnComplete()
|
||||
{
|
||||
this.System.AddConversation(new EndConversation());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user