// // Licensed under the MIT License. See LICENSE file in the project root for full license information. // namespace MUnique.OpenMU.Persistence.Initialization.VersionSeasonSix; using MUnique.OpenMU.AttributeSystem; using MUnique.OpenMU.DataModel.Attributes; using MUnique.OpenMU.DataModel.Configuration; using MUnique.OpenMU.GameLogic.Attributes; using MUnique.OpenMU.GameLogic.MiniGames; using MUnique.OpenMU.GameLogic.NPC; using MUnique.OpenMU.Persistence.Initialization.Skills; /// /// The initialization of all NPCs, which are no monsters. /// internal partial class NpcInitialization : Version095d.NpcInitialization { /// /// Initializes a new instance of the class. /// /// The persistence context. /// The game configuration. public NpcInitialization(IContext context, GameConfiguration gameConfiguration) : base(context, gameConfiguration) { } /// /// Creates all NPCs. /// /// /// Extracted from Monsters.txt by Regex: (?m)^(\d+)\t1\t"(.*?)".*?$ /// Replace by: yield return new MonsterDefinition() { Number = $1, Designation="$2" }; /// yield return new (\w*) { Number = (\d+), Designation = (".*?").*?(, NpcWindow = (.*) ){0,1}}; /// Replace by: ();\n def.Number = $2;\n def.Designation = $3;\n def.NpcWindow = $5;\n this.GameConfiguration.Monsters.Add(def);\n}\n ]]>. /// public override void Initialize() { base.Initialize(); { var def = this.Context.CreateNew(); def.Number = 226; def.Designation = "Pet Trainer"; def.NpcWindow = NpcWindow.PetTrainer; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 229; def.Designation = "Marlon"; def.NpcWindow = NpcWindow.LegacyQuest; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 230; def.Designation = "Alex"; def.NpcWindow = NpcWindow.Merchant; def.ObjectKind = NpcObjectKind.PassiveNpc; def.MerchantStore = this.CreateAlexStore(230); this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 231; def.Designation = "Thompson the Merchant"; def.NpcWindow = NpcWindow.Merchant; def.ObjectKind = NpcObjectKind.PassiveNpc; def.MerchantStore = this.CreatePotionGirlItemStorage(def.Number); this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 232; def.Designation = "Archangel"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 233; def.Designation = "Messenger of Arch."; def.NpcWindow = NpcWindow.BloodCastle; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 256; def.Designation = "Lahap"; def.NpcWindow = NpcWindow.Lahap; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 257; def.Designation = "Elf Soldier"; def.NpcWindow = NpcWindow.NpcDialog; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } // Elf Soldier Buff { var buffEffect = this.Context.CreateNew(); this.GameConfiguration.MagicEffects.Add(buffEffect); buffEffect.Number = (short)MagicEffectNumber.ElfSoldierBuff; buffEffect.Name = "Elf Soldier Buff"; buffEffect.InformObservers = true; buffEffect.StopByDeath = true; // Duration: 60 minutes buffEffect.Duration = this.Context.CreateNew(); buffEffect.Duration.ConstantValue.Value = 3600; // Defense boost: 50 + (Level / 5) var defensePowerUp = this.Context.CreateNew(); defensePowerUp.TargetAttribute = Stats.DefenseFinal.GetPersistent(this.GameConfiguration); defensePowerUp.Boost = this.Context.CreateNew(); defensePowerUp.Boost.ConstantValue.Value = 50; defensePowerUp.Boost.ConstantValue.AggregateType = AggregateType.AddFinal; var defensePerLevel = this.Context.CreateNew(); defensePerLevel.InputAttribute = Stats.Level.GetPersistent(this.GameConfiguration); defensePerLevel.InputOperand = 1f / 5; defensePerLevel.InputOperator = InputOperator.Multiply; defensePowerUp.Boost.RelatedValues.Add(defensePerLevel); buffEffect.PowerUpDefinitions.Add(defensePowerUp); // Damage boost: 45 + (Level / 3) var damagePowerUp = this.Context.CreateNew(); damagePowerUp.TargetAttribute = Stats.GreaterDamageBonus.GetPersistent(this.GameConfiguration); damagePowerUp.Boost = this.Context.CreateNew(); damagePowerUp.Boost.ConstantValue.Value = 45; damagePowerUp.Boost.ConstantValue.AggregateType = AggregateType.AddRaw; var damagePerLevel = this.Context.CreateNew(); damagePerLevel.InputAttribute = Stats.Level.GetPersistent(this.GameConfiguration); damagePerLevel.InputOperand = 1f / 3; damagePerLevel.InputOperator = InputOperator.Multiply; damagePowerUp.Boost.RelatedValues.Add(damagePerLevel); buffEffect.PowerUpDefinitions.Add(damagePowerUp); var elfSoldier = this.GameConfiguration.Monsters.First(m => m.Number == 257); var buff = this.Context.CreateNew(); buff.MagicEffectDefinition = buffEffect; buff.MaximumLevel = 220; elfSoldier.Buffs.Add(buff); } { var def = this.Context.CreateNew(); def.Number = 259; def.Designation = "Oracle Layla"; def.NpcWindow = NpcWindow.Merchant; def.ObjectKind = NpcObjectKind.PassiveNpc; def.MerchantStore = this.CreatePotionGirlItemStorage(def.Number); this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 375; def.Designation = "Chaos Card Master"; def.ObjectKind = NpcObjectKind.PassiveNpc; def.NpcWindow = NpcWindow.ChaosCardCombination; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 376; def.Designation = "Pamela the Supplier"; def.NpcWindow = NpcWindow.Merchant; def.ObjectKind = NpcObjectKind.PassiveNpc; def.MerchantStore = this.CreatePotionGirlItemStorage(def.Number); this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 377; def.Designation = "Angela the Supplier"; def.NpcWindow = NpcWindow.Merchant; def.ObjectKind = NpcObjectKind.PassiveNpc; def.MerchantStore = this.CreatePotionGirlItemStorage(def.Number); this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 378; def.Designation = "GameMaster"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 379; def.Designation = "Fireworks Girl"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 371; def.Designation = "Leo The Helper"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 372; def.Designation = "Elite Skill Soldier"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 380; def.Designation = "Stone Statue"; def.ObjectKind = NpcObjectKind.Statue; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 381; def.Designation = "MU Allies General"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 382; def.Designation = "Illusion Elder"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 383; def.Designation = "Alliance Item Storage"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 384; def.Designation = "Illusion Item Storage"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 385; def.Designation = "Mirage"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 215; def.Designation = "Shield"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 216; def.Designation = "Crown"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 217; def.Designation = "Crown Switch1"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 218; def.Designation = "Crown Switch2"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 219; def.Designation = "Castle Gate Switch"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 220; def.Designation = "Guard"; def.ObjectKind = NpcObjectKind.Guard; def.MoveRange = 3; def.AttackRange = 2; def.ViewRange = 8; def.IntelligenceTypeName = typeof(GuardIntelligence).FullName; def.MoveDelay = new TimeSpan(400 * TimeSpan.TicksPerMillisecond); def.AttackDelay = new TimeSpan(1500 * TimeSpan.TicksPerMillisecond); def.RespawnDelay = new TimeSpan(3 * TimeSpan.TicksPerSecond); def.NumberOfMaximumItemDrops = 0; var attributes = new Dictionary { { Stats.Level, 2 }, { Stats.MaximumHealth, 500 }, { Stats.MinimumPhysBaseDmg, 15 }, { Stats.MaximumPhysBaseDmg, 30 }, { Stats.AttackRatePvm, 30 }, { Stats.DefenseRatePvm, 20 }, { Stats.DefenseBase, 70 }, }; def.AddAttributes(attributes, this.Context, this.GameConfiguration); this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 221; def.Designation = "Slingshot Attack"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 222; def.Designation = "Slingshot Defense"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 223; def.Designation = "Senior"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 224; def.Designation = "Guardsman"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 277; def.Designation = "Castle Gate1"; def.ObjectKind = NpcObjectKind.Gate; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 278; def.Designation = "Life Stone"; def.ObjectKind = NpcObjectKind.Statue; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 283; def.Designation = "Guardian Statue"; def.ObjectKind = NpcObjectKind.Statue; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 285; def.Designation = "Guardian"; def.ObjectKind = NpcObjectKind.Guard; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 286; def.Designation = "Battle Guard1"; def.ObjectKind = NpcObjectKind.Guard; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 287; def.Designation = "Battle Guard2"; def.ObjectKind = NpcObjectKind.Guard; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 288; def.Designation = "Canon Tower"; def.ObjectKind = NpcObjectKind.Trap; def.AttackSkill = this.GameConfiguration.Skills.FirstOrDefault(s => s.Number == (short)SkillNumber.MonsterSkill); this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 367; def.Designation = "Gateway Machine"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 368; def.Designation = "Elphis"; def.NpcWindow = NpcWindow.ElphisRefinery; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 369; def.Designation = "Osbourne"; def.NpcWindow = NpcWindow.RefineStoneMaking; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 370; def.Designation = "Jerridon"; def.NpcWindow = NpcWindow.RemoveJohOption; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 404; def.Designation = "MU Allies"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 405; def.Designation = "Illusion Sorcerer"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 406; def.Designation = "Priest Devin"; def.ObjectKind = NpcObjectKind.PassiveNpc; def.NpcWindow = NpcWindow.LegacyQuest; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 407; def.Designation = "Werewolf Quarrel"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 408; def.Designation = "Gatekeeper"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 415; def.Designation = "Silvia"; def.ObjectKind = NpcObjectKind.PassiveNpc; def.NpcWindow = NpcWindow.Merchant; def.MerchantStore = this.CreatePotionGirlItemStorage(def.Number); this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 416; def.Designation = "Rhea"; def.ObjectKind = NpcObjectKind.PassiveNpc; def.NpcWindow = NpcWindow.Merchant; def.MerchantStore = this.CreateRheaStore(def.Number); this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 417; def.Designation = "Marce"; def.ObjectKind = NpcObjectKind.PassiveNpc; def.MerchantStore = this.CreateMarceStore(def.Number); def.NpcWindow = NpcWindow.Merchant; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 450; def.Designation = "Cherry Blossom Spirit"; def.NpcWindow = NpcWindow.CherryBlossomBranchesAssembly; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 451; def.Designation = "Cherry Blossom Tree"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 452; def.Designation = "Seed Master"; def.NpcWindow = NpcWindow.SeedMaster; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 453; def.Designation = "Seed Researcher"; def.NpcWindow = NpcWindow.SeedResearcher; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 467; def.Designation = "Snowman"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 468; def.Designation = "Little Santa Yellow"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 469; def.Designation = "Little Santa Green"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 470; def.Designation = "Little Santa Red"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 471; def.Designation = "Little Santa Blue"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 472; def.Designation = "Little Santa White"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 473; def.Designation = "Little Santa Black"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 474; def.Designation = "Little Santa Orange"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 475; def.Designation = "Little Santa Pink"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 476; def.Designation = "Cursed Santa"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 477; def.Designation = "Transformed Snowman"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 478; def.Designation = "Delgado - Lucky Coins"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 479; def.Designation = "Gatekeeper Titus"; def.ObjectKind = NpcObjectKind.PassiveNpc; def.NpcWindow = NpcWindow.DoorkeeperTitusDuelWatch; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 492; def.Designation = "Moss The Merchant"; def.NpcWindow = NpcWindow.Merchant; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 522; def.Designation = "Adviser Jerinteu"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 540; def.Designation = "Lugard"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 541; def.Designation = "Compensation Box"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 542; def.Designation = "Golden Compensation Box"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 543; def.Designation = "Gens Duprian"; def.NpcWindow = NpcWindow.NpcDialog; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 544; def.Designation = "Gens Vanert"; def.NpcWindow = NpcWindow.NpcDialog; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 560; def.Designation = "TvT Guard"; def.NpcWindow = NpcWindow.Undefined; // routed via IPlayerTalkToNpcPlugIn in a later task def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 566; def.Designation = "Mercenary Guild Felicia"; def.NpcWindow = NpcWindow.NpcDialog; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 152; def.Designation = "Gate to Kalima 1 of {0}"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 153; def.Designation = "Gate to Kalima 2 of {0}"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 154; def.Designation = "Gate to Kalima 3 of {0}"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 155; def.Designation = "Gate to Kalima 4 of {0}"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 156; def.Designation = "Gate to Kalima 5 of {0}"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 157; def.Designation = "Gate to Kalima 6 of {0}"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 158; def.Designation = "Gate to Kalima 7 of {0}"; def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); def.SetGuid(def.Number); } { var def = this.Context.CreateNew(); def.Number = 131; def.Designation = "Castle Gate"; def.ObjectKind = NpcObjectKind.Destructible; var attributes = new Dictionary { { Stats.MaximumHealth, 5000000 }, }; def.AddAttributes(attributes, this.Context, this.GameConfiguration); def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 132; def.Designation = "Statue of Saint"; def.ObjectKind = NpcObjectKind.Destructible; def.NumberOfMaximumItemDrops = 1; var attributes = new Dictionary { { Stats.MaximumHealth, 5000000 }, }; def.AddAttributes(attributes, this.Context, this.GameConfiguration); def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); var questItemDrop = this.Context.CreateNew(); questItemDrop.SetGuid(132); questItemDrop.Chance = 1; questItemDrop.Description = "Archangel Weapon (Blood Castle)"; questItemDrop.Monster = def; questItemDrop.PossibleItems.Add(this.GameConfiguration.Items.First(item => item.IsArchangelQuestItem())); def.DropItemGroups.Add(questItemDrop); this.GameConfiguration.DropItemGroups.Add(questItemDrop); } { var def = this.Context.CreateNew(); def.Number = 133; def.Designation = "Statue of Saint"; def.ObjectKind = NpcObjectKind.Destructible; var attributes = new Dictionary { { Stats.MaximumHealth, 5000000 }, }; def.AddAttributes(attributes, this.Context, this.GameConfiguration); def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 134; def.Designation = "Statue of Saint"; def.ObjectKind = NpcObjectKind.Destructible; var attributes = new Dictionary { { Stats.MaximumHealth, 5000000 }, }; def.AddAttributes(attributes, this.Context, this.GameConfiguration); def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 579; def.Designation = "David"; def.ObjectKind = NpcObjectKind.PassiveNpc; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 577; def.Designation = "Leina the General Goods Merchant"; def.MerchantStore = this.CreatePotionGirlItemStorage(def.Number); def.NpcWindow = NpcWindow.Merchant; def.ObjectKind = NpcObjectKind.PassiveNpc; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 578; def.Designation = "Weapons Merchant Bolo"; def.NpcWindow = NpcWindow.Merchant; def.MerchantStore = this.CreateBoloStore(def.Number); def.SetGuid(def.Number); def.ObjectKind = NpcObjectKind.PassiveNpc; this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 545; def.Designation = "Christine the General Goods Merchant"; def.NpcWindow = NpcWindow.Merchant; def.ObjectKind = NpcObjectKind.PassiveNpc; def.MerchantStore = this.CreatePotionGirlItemStorage(def.Number); def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 546; def.Designation = "Jeweler Raul"; def.ObjectKind = NpcObjectKind.PassiveNpc; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 547; def.Designation = "Market Union Member Julia"; def.NpcWindow = NpcWindow.JuliaWarpMarketServer; def.ObjectKind = NpcObjectKind.PassiveNpc; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 568; def.Designation = "Wandering Merchant Zyro"; def.NpcWindow = NpcWindow.NpcDialog; def.ObjectKind = NpcObjectKind.PassiveNpc; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 658; def.Designation = "Cursed Statue"; def.ObjectKind = NpcObjectKind.Statue; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 659; def.Designation = "Captured Stone Statue (1)"; def.ObjectKind = NpcObjectKind.Statue; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 660; def.Designation = "Captured Stone Statue (2)"; def.ObjectKind = NpcObjectKind.Statue; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 661; def.Designation = "Captured Stone Statue (3)"; def.ObjectKind = NpcObjectKind.Statue; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 662; def.Designation = "Captured Stone Statue (4)"; def.ObjectKind = NpcObjectKind.Statue; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 663; def.Designation = "Captured Stone Statue (5)"; def.ObjectKind = NpcObjectKind.Statue; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 664; def.Designation = "Captured Stone Statue (6)"; def.ObjectKind = NpcObjectKind.Statue; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 665; def.Designation = "Captured Stone Statue (7)"; def.ObjectKind = NpcObjectKind.Statue; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 666; def.Designation = "Captured Stone Statue (8)"; def.ObjectKind = NpcObjectKind.Statue; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 667; def.Designation = "Captured Stone Statue (9)"; def.ObjectKind = NpcObjectKind.Statue; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } { var def = this.Context.CreateNew(); def.Number = 668; def.Designation = "Captured Stone Statue (10)"; def.ObjectKind = NpcObjectKind.Statue; def.SetGuid(def.Number); this.GameConfiguration.Monsters.Add(def); } } }