public override void OnTalk(PlayerMobile player, bool contextMenu) { QuestSystem qs = player.Quest; if (qs is HaochisTrialsQuest) { if (HaochisTrialsQuest.HasLostHaochisKatana(player)) { qs.AddConversation(new LostSwordConversation()); return; } QuestObjective obj = qs.FindObjective(typeof(FindHaochiObjective)); if (obj != null && !obj.Completed) { obj.Complete(); return; } obj = qs.FindObjective(typeof(FirstTrialReturnObjective)); if (obj != null && !obj.Completed) { player.AddToBackpack(new LeatherDo()); obj.Complete(); return; } obj = qs.FindObjective(typeof(SecondTrialReturnObjective)); if (obj != null && !obj.Completed) { if (((SecondTrialReturnObjective)obj).Dragon) { player.AddToBackpack(new LeatherSuneate()); } obj.Complete(); return; } obj = qs.FindObjective(typeof(ThirdTrialReturnObjective)); if (obj != null && !obj.Completed) { player.AddToBackpack(new LeatherHiroSode()); obj.Complete(); return; } obj = qs.FindObjective(typeof(FourthTrialReturnObjective)); if (obj != null && !obj.Completed) { if (!((FourthTrialReturnObjective)obj).KilledCat) { Container cont = GetNewContainer(); cont.DropItem(new LeatherHiroSode()); cont.DropItem(new JinBaori()); player.AddToBackpack(cont); } obj.Complete(); return; } obj = qs.FindObjective(typeof(FifthTrialReturnObjective)); if (obj != null && !obj.Completed) { Container pack = player.Backpack; if (pack != null) { Item katana = pack.FindItemByType(typeof(HaochisKatana)); if (katana != null) { katana.Delete(); obj.Complete(); obj = qs.FindObjective(typeof(FifthTrialIntroObjective)); if (obj != null && ((FifthTrialIntroObjective)obj).StolenTreasure) { qs.AddConversation(new SixthTrialIntroConversation(true)); } else { qs.AddConversation(new SixthTrialIntroConversation(false)); } } } return; } obj = qs.FindObjective(typeof(SixthTrialReturnObjective)); if (obj != null && !obj.Completed) { obj.Complete(); return; } obj = qs.FindObjective(typeof(SeventhTrialReturnObjective)); if (obj != null && !obj.Completed) { BaseWeapon weapon = new Daisho(); BaseRunicTool.ApplyAttributesTo(weapon, Utility.Random(1, 3), 10, 30); player.AddToBackpack(weapon); BaseArmor armor = new LeatherDo(); BaseRunicTool.ApplyAttributesTo(armor, Utility.Random(1, 3), 10, 20); player.AddToBackpack(armor); obj.Complete(); return; } } }
public override void GenerateLoot() { AddLoot(LootPack.FilthyRich, 3); AddLoot(LootPack.MedScrolls, 1); AddLoot(LootPack.LowScrolls, 5); AddLoot(LootPack.Gems, 3); if (Utility.RandomDouble() < 0.10) { BaseWeapon weapon = Loot.RandomWeapon(true); switch (Utility.Random(33)) { case 0: weapon = new BattleAxe(); break; case 1: weapon = new ExecutionersAxe(); break; case 2: weapon = new LargeBattleAxe(); break; case 3: weapon = new WarAxe(); break; case 4: weapon = new Bow(); break; case 5: weapon = new Crossbow(); break; case 6: weapon = new HeavyCrossbow(); break; case 7: weapon = new WarHammer(); break; case 8: weapon = new WarMace(); break; case 9: weapon = new Bardiche(); break; case 10: weapon = new Halberd(); break; case 11: weapon = new Spear(); break; case 12: weapon = new QuarterStaff(); break; case 13: weapon = new Katana(); break; case 14: weapon = new Longsword(); break; case 15: weapon = new VikingSword(); break; case 16: weapon = new CompositeBow(); break; case 17: weapon = new CrescentBlade(); break; case 18: weapon = new DoubleBladedStaff(); break; case 19: weapon = new Lance(); break; case 20: weapon = new PaladinSword(); break; case 21: weapon = new Scythe(); break; case 22: weapon = new Daisho(); break; case 23: weapon = new Lajatang(); break; case 24: weapon = new NoDachi(); break; case 25: weapon = new Tetsubo(); break; case 26: weapon = new Yumi(); break; case 27: weapon = new ElvenCompositeLongbow(); break; case 28: weapon = new OrnateAxe(); break; case 29: weapon = new RadiantScimitar(); break; case 30: weapon = new WarCleaver(); break; case 31: weapon = new WildStaff(); break; default: weapon = new DiamondMace(); break; } BaseRunicTool.ApplyAttributesTo(weapon, 5, 35, 50); weapon.Hue = 773; PackItem(weapon); } if (Utility.RandomDouble() < 0.10) { BaseArmor armor = Loot.RandomArmor(true); switch (Utility.Random(5)) { case 0: armor = new CrusaderGauntlets(); break; case 1: armor = new CrusaderGorget(); break; case 2: armor = new CrusaderLeggings(); break; case 3: armor = new CrusaderSleeves(); break; default: armor = new CrusaderBreastplate(); break; } BaseRunicTool.ApplyAttributesTo(armor, 5, 35, 50); armor.Hue = 773; PackItem(armor); } if (Utility.RandomDouble() < 0.05) { BaseClothing clothing = Loot.RandomClothing(true); BaseRunicTool.ApplyAttributesTo(clothing, 5, 35, 50); clothing.Hue = 773; PackItem(clothing); } if (Utility.RandomDouble() < 0.05) { BaseShield shield = new MetalKiteShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield, 5, 35, 50); } shield.Hue = 773; PackItem(shield); } if (Utility.RandomDouble() < 0.05) { BaseJewel bracelet = new GoldBracelet(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(bracelet, 5, 35, 50); } bracelet.Hue = 773; PackItem(bracelet); } if (Utility.RandomDouble() < 0.05) { BaseJewel earrings = new GoldEarrings(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(earrings, 5, 35, 50); } earrings.Hue = 773; PackItem(earrings); } if (Utility.RandomDouble() < 0.05) { BaseJewel necklace = new GoldNecklace(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(necklace, 5, 35, 50); } necklace.Hue = 773; PackItem(necklace); } if (Utility.RandomDouble() < 0.05) { BaseJewel ring = new GoldRing(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(ring, 5, 35, 50); } ring.Hue = 773; PackItem(ring); } }
public virtual void EquipSpecialty() { Item item; switch (_Specialty) { case MasterTitle.Bard: SetWearable(new QuarterStaff()); SetWearable(new FeatheredHat(1308)); if (Female) { SetWearable(new HideFemaleChest()); } else { SetWearable(new HideChest()); } SetWearable(new HidePauldrons()); SetWearable(new HideGorget()); SetWearable(new LeafGloves()); SetWearable(new LeatherSkirt()); SetWearable(new ThighBoots()); SetWearable(new BodySash(1308)); break; case MasterTitle.Macer: SetWearable(new WarMace()); SetWearable(new PlateArms()); SetWearable(new PlateLegs()); SetWearable(new PlateGloves()); SetWearable(new PlateHelm()); SetWearable(new PlateChest()); SetWearable(new HeaterShield()); SetWearable(new Surcoat()); break; case MasterTitle.Rogue: SetWearable(new RepeatingCrossbow()); SetWearable(new LeatherGloves()); SetWearable(new Doublet()); SetWearable(new Cap()); SetWearable(new QuiverOfInfinity()); SetWearable(new LeatherArms()); SetWearable(new LeatherLegs()); SetWearable(new Sandals()); break; case MasterTitle.Archer: SetWearable(new MagicalShortbow()); SetWearable(new RingmailGloves()); SetWearable(new ChainChest()); SetWearable(new BodySash(1193)); SetWearable(new ThighBoots()); SetWearable(new Cap()); SetWearable(new QuiverOfInfinity()); break; case MasterTitle.Wizard: SetWearable(new Kilt(1156)); if (Female) { SetWearable(new LeatherBustierArms(), 2498); } else { SetWearable(new LeatherArms(), 2498); } SetWearable(new LeatherGloves(), 2498); SetWearable(new BodySash(1156)); SetWearable(new WizardsHat(1156)); SetWearable(new Sandals(2498)); SetWearable(new Spellbook()); break; case MasterTitle.Mystic: SetWearable(new MysticBook((uint)0xFFF)); SetWearable(new GargishFancyRobe()); SetWearable(new GargishEarrings()); SetWearable(new GargishClothWingArmor()); SetWearable(new LeatherTalons()); break; case MasterTitle.Sampire: SetWearable(new DoubleAxe(), 1858); SetWearable(new Epaulette(), 1192); SetWearable(new ChainChest()); SetWearable(new ChainLegs()); SetWearable(new RingmailGloves(), 1863); SetWearable(new ElvenBoots()); SetWearable(new BodySash(1866)); SetWearable(new RoyalCirclet()); break; case MasterTitle.Necromancer: SetWearable(new NecromancerSpellbook()); SetWearable(new BoneChest(), 1910); SetWearable(new BoneLegs(), 1910); SetWearable(new LeatherGloves(), 1175); SetWearable(new Sandals()); SetWearable(new Cloak(), 1157); SetWearable(new GoldNecklace()); break; case MasterTitle.Assassin: SetWearable(new AssassinSpike()); SetWearable(new LeatherChest(), 2051); SetWearable(new LeatherLegs(), 2051); SetWearable(new LeatherGloves()); SetWearable(new LeatherGorget(), 2051); SetWearable(new Sandals()); SetWearable(new LeatherNinjaBelt()); SetWearable(new Doublet(), 2051); SetWearable(new LeatherNinjaHood(), 2051); break; case MasterTitle.Swordsman: item = new PaladinSword { LootType = LootType.Blessed }; SetWearable(item); item = new Daisho { LootType = LootType.Blessed }; PackItem(item); item = new Wakizashi { LootType = LootType.Blessed }; PackItem(item); SetWearable(new NorseHelm(), 2406); SetWearable(new PlateArms(), 2406); SetWearable(new DragonGloves(), 2406); SetWearable(new DragonChest(), 2406); SetWearable(new PlateLegs(), 2406); SetWearable(new LeatherNinjaBelt(), 2726); SetWearable(new BodySash(2726)); SetWearable(new Cloak(), 2726); break; case MasterTitle.Fencer: item = new Lajatang { LootType = LootType.Blessed }; SetWearable(item); item = new Sai { LootType = LootType.Blessed }; PackItem(item); item = new Tekagi { LootType = LootType.Blessed }; PackItem(item); if (Female) { SetWearable(new LeatherBustierArms()); SetWearable(new LeatherSkirt()); } else { SetWearable(new LeatherChest()); SetWearable(new LeatherLegs()); } SetWearable(new BoneArms()); SetWearable(new ThighBoots()); break; } }
public override void OnTalk(PlayerMobile player, bool contextMenu) { Direction = GetDirectionTo(player); QuestSystem qs = player.Quest; if (qs is HaochisTrialsQuest) { HaochisTrialsQuest htq = qs as HaochisTrialsQuest; if (qs.IsObjectiveInProgress(typeof(SpeakToDaimyoHaochiObjective))) { QuestObjective obj = qs.FindObjective(typeof(SpeakToDaimyoHaochiObjective)); if (obj != null) { obj.Complete(); } qs.AddConversation(new DaimyoHaochiBeginConversation()); qs.AddObjective(new FollowGreenPathObjective()); } if (qs.IsObjectiveInProgress(typeof(KillRoninsOrSoulsObjective))) { bool ronins = false; if (htq.KilledRonins > htq.KilledSouls) { ronins = true; } if (ronins) { qs.AddConversation(new ContinueSlayingRoninsConversation()); } else if (htq.KilledSouls > 0) { qs.AddConversation(new ContinueSlayingSoulsConversation()); } } if (qs.IsObjectiveInProgress(typeof(FirstTrialCompleteObjective))) { QuestObjective obj = qs.FindObjective(typeof(FirstTrialCompleteObjective)); if (obj != null) { obj.Complete(); } if (htq.KilledRonins == 3) { qs.AddConversation(new ThanksForRoninsConversation()); } if (htq.KilledSouls == 3) { qs.AddConversation(new ThanksForSoulsConversation()); } player.AddToBackpack(new LeatherDo()); qs.AddObjective(new FollowYellowPathObjective()); } if (qs.IsObjectiveInProgress(typeof(SecondTrialCompleteObjective))) { QuestObjective obj = qs.FindObjective(typeof(SecondTrialCompleteObjective)); if (obj != null) { obj.Complete(); } if (htq.Opponent == OpponentType.FierceDragon) { qs.AddConversation(new DragonConversation()); } if (htq.Opponent == OpponentType.DeadlyImp) { qs.AddConversation(new ImpConversation()); } player.AddToBackpack(new LeatherSuneate()); qs.AddObjective(new FollowBluePathObjective()); } if (qs.IsObjectiveInProgress(typeof(ThirdTrialCompleteObjective))) { QuestObjective obj = qs.FindObjective(typeof(ThirdTrialCompleteObjective)); if (obj != null) { obj.Complete(); } qs.AddConversation(new HaochiSmilesConversation()); player.AddToBackpack(new LeatherHiroSode()); qs.AddObjective(new FollowRedPathObjective()); } if (qs.IsObjectiveInProgress(typeof(MadeChoiceObjective))) { QuestObjective obj = qs.FindObjective(typeof(MadeChoiceObjective)); if (obj != null) { obj.Complete(); } if (htq.Choice == ChoiceType.Gold) { qs.AddConversation(new RespectForGoldConversation()); } if (htq.Choice == ChoiceType.Cats) { qs.AddConversation(new RespectForCatsConversation()); } Bag bag = new Bag(); bag.Hue = 0x660; bag.DropItem(new LeatherHiroSode()); bag.DropItem(new JinBaori()); player.AddToBackpack(bag); qs.AddObjective(new RetrieveKatanaObjective()); } if (qs.IsObjectiveInProgress(typeof(GiveSwordDaimyoObjective))) { ArrayList list = player.Backpack.Items; DaimyoHaochisKatana katana = null; for (int i = 0; i < list.Count; i++) { if ((Item)list[i] is DaimyoHaochisKatana) { katana = list[i] as DaimyoHaochisKatana; break; } } if (katana == null) { qs.AddConversation(new WithoutSwordConversation()); } else { katana.Delete(); QuestObjective obj = qs.FindObjective(typeof(GiveSwordDaimyoObjective)); if (obj != null) { obj.Complete(); } qs.AddConversation(new ThanksForSwordConversation()); qs.AddObjective(new LightCandleObjective()); } } if (qs.IsObjectiveInProgress(typeof(CandleCompleteObjective))) { QuestObjective obj = qs.FindObjective(typeof(CandleCompleteObjective)); if (obj != null) { obj.Complete(); } qs.AddConversation(new WellDoneConversation()); qs.AddObjective(new KillNinjaObjective()); } if (qs.IsObjectiveInProgress(typeof(ExecutionsCompleteObjective))) { QuestObjective obj = qs.FindObjective(typeof(ExecutionsCompleteObjective)); if (obj != null) { obj.Complete(); } qs.AddConversation(new FirewellConversation()); BaseWeapon weapon = new Daisho(); BaseRunicTool.ApplyAttributesTo(weapon, Utility.Random(1, 3), 10, 30); player.AddToBackpack(weapon); BaseArmor armor = new LeatherDo(); BaseRunicTool.ApplyAttributesTo(armor, Utility.Random(1, 3), 10, 20); player.AddToBackpack(armor); qs.Complete(); } } }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static Item CreateMetalWeapon() { Item item = null; int nType = Utility.RandomMinMax(0, 41); switch (nType) { case 1: item = new Cutlass(); item.Name = "cutlass"; break; case 2: item = new Katana(); item.Name = "katana"; break; case 3: item = new Kryss(); item.Name = "kryss"; break; case 4: item = new Broadsword(); item.Name = "broadsword"; break; case 5: item = new Longsword(); item.Name = "longsword"; break; case 6: item = new ThinLongsword(); item.Name = "longsword"; break; case 7: item = new VikingSword(); item.Name = "barbarian sword"; break; case 8: item = new Scimitar(); item.Name = "scimitar"; break; case 9: item = new BoneHarvester(); item.Name = "sickle"; break; case 10: item = new CrescentBlade(); item.Name = "crescent blade"; break; case 11: item = new DoubleBladedStaff(); item.Name = "bladed staff"; break; case 12: item = new Lance(); item.Name = "lance"; break; case 13: item = new Pike(); item.Name = "pike"; break; case 14: item = new Scythe(); item.Name = "scythe"; break; case 15: item = new Dagger(); item.Name = "dagger"; break; case 16: item = new HammerPick(); item.Name = "hammer pick"; break; case 17: item = new Mace(); item.Name = "mace"; break; case 18: item = new Maul(); item.Name = "maul"; break; case 19: item = new WarHammer(); item.Name = "war hammer"; break; case 20: item = new WarMace(); item.Name = "war mace"; break; case 21: item = new ExecutionersAxe(); item.Name = "great axe"; break; case 22: item = new BattleAxe(); item.Name = "battle axe"; break; case 23: item = new TwoHandedAxe(); item.Name = "two-handed axe"; break; case 24: item = new Axe(); item.Name = "axe"; break; case 25: item = new DoubleAxe(); item.Name = "double axe"; break; case 26: item = new RoyalSword(); item.Name = "royal sword"; break; case 27: item = new LargeBattleAxe(); item.Name = "large battle axe"; break; case 28: item = new WarAxe(); item.Name = "war axe"; break; case 29: item = new Bardiche(); item.Name = "bardiche"; break; case 30: item = new Halberd(); item.Name = "halberd"; break; case 31: item = new Pitchfork(); item.Name = "trident"; break; case 32: item = new ShortSpear(); item.Name = "short spear"; break; case 33: item = new Spear(); item.Name = "spear"; break; case 34: item = new NoDachi(); item.Name = "no dachi"; break; case 35: item = new Wakizashi(); item.Name = "wakizashi"; break; case 36: item = new Tetsubo(); item.Name = "tetsubo"; break; case 37: item = new Lajatang(); item.Name = "lajatang"; break; case 38: item = new Daisho(); item.Name = "daisho"; break; case 39: item = new Tekagi(); item.Name = "tekagi"; break; case 40: item = new Kama(); item.Name = "kama"; break; case 41: item = new Sai(); item.Name = "sai"; break; } return(item); }
public DragonSanctuarySamuraiHuman() : base(AIType.AI_Melee, FightMode.Closest, 15, 1, 0.1, 0.2) { SetStr(755, 788); SetDex(300, 500); SetInt(100, 200); SetHits(500, 600); SetDamage(12, 15); SetSkill(SkillName.Anatomy, 100.0); SetSkill(SkillName.MagicResist, 70.0); SetSkill(SkillName.Swords, 100.0); SetSkill(SkillName.Tactics, 100.0); Karma = 10000; m_Timer = new MoveTimer(this); ChangeLocation(); PackItem(new Bandage(Utility.RandomMinMax(15, 20))); if (this.Female = Utility.RandomBool()) { Name = NameList.RandomName("female"); Title = "Human Samurai of Dragon Sanctuary"; Body = 401; Hue = Utility.RandomList(33784, 33785, 33788, 33791, 33794, 33798, 33800, 33805, 33806, 33808, 33815, 33821, 33822, 33824, 33825); HairHue = Utility.RandomList(26, 44, 81, 1102, 1107, 1108, 1109, 1116, 1117, 1122, 1138, 1140, 1141, 1146, 1148, 1149, 1153); HairItemID = Utility.RandomList(8251, 8252, 8253, 8260, 8261, 8262, 8263, 8264, 8265); Daisho weapon = new Daisho(); BaseRunicTool.ApplyAttributesTo(weapon, 5, 25, 35); weapon.Slayer = SlayerName.ReptilianDeath; weapon.WeaponAttributes.HitLightning = 25; weapon.Hue = 0x4D5; weapon.Movable = true; AddItem(weapon); AmazonianFighterHelmet helmet = new AmazonianFighterHelmet(); helmet.Movable = true; AddItem(helmet); AmazonianFighterBustier chest = new AmazonianFighterBustier(); chest.Movable = true; AddItem(chest); AmazonianFighterGloves gloves = new AmazonianFighterGloves(); gloves.Movable = true; AddItem(gloves); AddItem(new AmazonianFighterBelt()); AddItem(new AmazonianFighterBoots()); new ForestOstard().Rider = this; } else { Name = NameList.RandomName("male"); Title = "Human Samurai of Dragon Sanctuary"; Body = 400; Hue = Utility.RandomList(33784, 33785, 33788, 33791, 33794, 33798, 33800, 33805, 33806, 33808, 33815, 33821, 33822, 33824, 33825); HairHue = Utility.RandomList(26, 44, 81, 1102, 1107, 1108, 1109, 1116, 1117, 1122, 1138, 1140, 1141, 1146, 1148, 1149, 1153); HairItemID = Utility.RandomList(8251, 8252, 8253, 8260, 8261, 8262, 8263, 8264, 8265); FacialHairHue = Utility.RandomList(26, 44, 81, 1102, 1107, 1108, 1109, 1116, 1117, 1122, 1138, 1140, 1141, 1146, 1148, 1149, 1153); FacialHairItemID = Utility.RandomList(8254, 8255, 8256, 8257, 8267, 8268, 8269); NoDachi weapon = new NoDachi(); BaseRunicTool.ApplyAttributesTo(weapon, 5, 25, 35); weapon.Slayer = SlayerName.ReptilianDeath; weapon.WeaponAttributes.HitLightning = 25; weapon.Hue = 0x4D5; weapon.Movable = true; AddItem(weapon); DecorativePlateKabuto helm = new DecorativePlateKabuto(); BaseRunicTool.ApplyAttributesTo(helm, 5, 25, 35); helm.Hue = 0x4D5; helm.Movable = true; AddItem(helm); PlateMempo gorget = new PlateMempo(); BaseRunicTool.ApplyAttributesTo(gorget, 5, 25, 35); gorget.Hue = 0x4D5; gorget.Movable = true; AddItem(gorget); PlateHiroSode arms = new PlateHiroSode(); BaseRunicTool.ApplyAttributesTo(arms, 5, 25, 35); arms.Hue = 0x4D5; arms.Movable = true; AddItem(arms); PlateDo chest = new PlateDo(); BaseRunicTool.ApplyAttributesTo(chest, 5, 25, 35); chest.Hue = 0x4D5; chest.Movable = true; AddItem(chest); PlateHaidate legs = new PlateHaidate(); BaseRunicTool.ApplyAttributesTo(legs, 5, 25, 35); legs.Hue = 0x4D5; legs.Movable = true; AddItem(legs); FurBoots boots = new FurBoots(); BaseRunicTool.ApplyAttributesTo(boots, 5, 25, 35); boots.Hue = 0x4D5; boots.Movable = true; AddItem(boots); new FrenziedOstard().Rider = this; } }