private void CreateSpirit() { // A level 0 spirit is for the Dark Horse; Level 1 is for the Dark Raven. var spirit = this.Context.CreateNew <ItemDefinition>(); spirit.Group = 13; spirit.Number = 31; spirit.Name = "Spirit"; spirit.Width = 1; spirit.Height = 1; spirit.Durability = 1; this.GameConfiguration.Items.Add(spirit); var horseDrop = this.Context.CreateNew <DropItemGroup>(); horseDrop.ItemLevel = 0; horseDrop.Chance = 0.001; horseDrop.Description = "Dark Horse Spirit"; horseDrop.PossibleItems.Add(spirit); horseDrop.MinimumMonsterLevel = 102; this.GameConfiguration.DropItemGroups.Add(horseDrop); BaseMapInitializer.RegisterDefaultDropItemGroup(horseDrop); var ravenDrop = this.Context.CreateNew <DropItemGroup>(); ravenDrop.ItemLevel = 1; ravenDrop.Chance = 0.001; ravenDrop.Description = "Dark Raven Spirit"; ravenDrop.PossibleItems.Add(spirit); ravenDrop.MinimumMonsterLevel = 96; this.GameConfiguration.DropItemGroups.Add(ravenDrop); BaseMapInitializer.RegisterDefaultDropItemGroup(ravenDrop); }
/// <inheritdoc /> public override void Initialize() { this.GameConfiguration.ExperienceRate = 1.0f; this.GameConfiguration.MaximumLevel = 400; this.GameConfiguration.InfoRange = 12; this.GameConfiguration.AreaSkillHitsPlayer = false; this.GameConfiguration.MaximumInventoryMoney = int.MaxValue; this.GameConfiguration.MaximumVaultMoney = int.MaxValue; this.GameConfiguration.RecoveryInterval = 3000; this.GameConfiguration.MaximumLetters = 50; this.GameConfiguration.LetterSendPrice = 1000; this.GameConfiguration.MaximumCharactersPerAccount = 5; this.GameConfiguration.CharacterNameRegex = "^[a-zA-Z0-9]{3,10}$"; this.GameConfiguration.MaximumPasswordLength = 20; this.GameConfiguration.MaximumPartySize = 5; this.GameConfiguration.ShouldDropMoney = true; this.GameConfiguration.ExperienceTable = Enumerable.Range(0, this.GameConfiguration.MaximumLevel + 2) .Select(level => CalculateNeededExperience(level)) .ToArray(); this.GameConfiguration.MasterExperienceTable = Enumerable.Range(0, 201).Select(level => this.CalcNeededMasterExp(level)).ToArray(); var moneyDropItemGroup = this.Context.CreateNew <DropItemGroup>(); moneyDropItemGroup.Chance = 0.5; moneyDropItemGroup.ItemType = SpecialItemType.Money; moneyDropItemGroup.Description = "The common money drop item group (50 % drop chance)"; this.GameConfiguration.DropItemGroups.Add(moneyDropItemGroup); BaseMapInitializer.RegisterDefaultDropItemGroup(moneyDropItemGroup); var randomItemDropItemGroup = this.Context.CreateNew <DropItemGroup>(); randomItemDropItemGroup.Chance = 0.3; randomItemDropItemGroup.ItemType = SpecialItemType.RandomItem; randomItemDropItemGroup.Description = "The common drop item group for random items (30 % drop chance)"; this.GameConfiguration.DropItemGroups.Add(randomItemDropItemGroup); BaseMapInitializer.RegisterDefaultDropItemGroup(randomItemDropItemGroup); var excellentItemDropItemGroup = this.Context.CreateNew <DropItemGroup>(); excellentItemDropItemGroup.Chance = 0.0001; excellentItemDropItemGroup.ItemType = SpecialItemType.Excellent; excellentItemDropItemGroup.Description = "The common drop item group for random excellent items (0.01 % drop chance)"; this.GameConfiguration.DropItemGroups.Add(excellentItemDropItemGroup); BaseMapInitializer.RegisterDefaultDropItemGroup(excellentItemDropItemGroup); this.CreateStatAttributes(); this.CreateItemSlotTypes(); this.CreateItemOptionTypes(); this.GameConfiguration.ItemOptions.Add(this.CreateLuckOptionDefinition()); this.GameConfiguration.ItemOptions.Add(this.CreateOptionDefinition(Stats.DefenseBase)); this.GameConfiguration.ItemOptions.Add(this.CreateOptionDefinition(Stats.MaximumPhysBaseDmg)); this.GameConfiguration.ItemOptions.Add(this.CreateOptionDefinition(Stats.MaximumWizBaseDmg)); this.GameConfiguration.ItemOptions.Add(this.CreateOptionDefinition(Stats.MaximumCurseBaseDmg)); new CharacterClassInitialization(this.Context, this.GameConfiguration).Initialize(); new SkillsInitializer(this.Context, this.GameConfiguration).Initialize(); new Orbs(this.Context, this.GameConfiguration).Initialize(); new Scrolls(this.Context, this.GameConfiguration).Initialize(); new EventTicketItems(this.Context, this.GameConfiguration).Initialize(); new Wings(this.Context, this.GameConfiguration).Initialize(); new Pets(this.Context, this.GameConfiguration).Initialize(); new ExcellentOptions(this.Context, this.GameConfiguration).Initialize(); new HarmonyOptions(this.Context, this.GameConfiguration).Initialize(); new GuardianOptions(this.Context, this.GameConfiguration).Initialize(); new Armors(this.Context, this.GameConfiguration).Initialize(); new Weapons(this.Context, this.GameConfiguration).Initialize(); new Potions(this.Context, this.GameConfiguration).Initialize(); new Jewels(this.Context, this.GameConfiguration).Initialize(); new Misc(this.Context, this.GameConfiguration).Initialize(); new PackedJewels(this.Context, this.GameConfiguration).Initialize(); new Jewellery(this.Context, this.GameConfiguration).Initialize(); new AncientSets(this.Context, this.GameConfiguration).Initialize(); this.CreateJewelMixes(); new NpcInitialization(this.Context, this.GameConfiguration).Initialize(); new GameMapsInitializer(this.Context, this.GameConfiguration).Initialize(); this.AssignCharacterClassHomeMaps(); new SocketSystem(this.Context, this.GameConfiguration).Initialize(); new ChaosMixes(this.Context, this.GameConfiguration).Initialize(); new Gates(this.Context, this.GameConfiguration).Initialize(); new Quest(this.Context, this.GameConfiguration).Initialize(); new Quests(this.Context, this.GameConfiguration).Initialize(); //// TODO: ItemSetGroups }