Example #1
0
        /// <summary>
        /// Makes this item persistent.
        /// </summary>
        /// <param name="repositoryManager">The repository manager.</param>
        /// <returns>The persistent item.</returns>
        public Item MakePersistent(IRepositoryManager repositoryManager)
        {
            var persistentItem = repositoryManager.CreateNew <Item>();

            persistentItem.AssignValues(this);
            return(persistentItem);
        }
Example #2
0
        /// <summary>
        /// Creates a new <see cref="MonsterSpawnArea"/> with the specified data.
        /// </summary>
        /// <param name="repositoryManager">The repository manager.</param>
        /// <param name="map">The map.</param>
        /// <param name="monsterDefinition">The monster definition.</param>
        /// <param name="quantity">The quantity.</param>
        /// <param name="direction">The direction.</param>
        /// <param name="spawnTrigger">The spawn trigger.</param>
        /// <param name="x1">The x1 coordinate.</param>
        /// <param name="x2">The x2 coordinate.</param>
        /// <param name="y1">The y1 coordinate.</param>
        /// <param name="y2">The y2 coordinate.</param>
        /// <returns>The created monster spawn area.</returns>
        protected MonsterSpawnArea CreateMonsterSpawn(IRepositoryManager repositoryManager, GameMapDefinition map, MonsterDefinition monsterDefinition, short quantity, byte direction, SpawnTrigger spawnTrigger, byte x1, byte x2, byte y1, byte y2)
        {
            var area = repositoryManager.CreateNew <MonsterSpawnArea>();

            area.GameMap           = map;
            area.MonsterDefinition = monsterDefinition;
            area.Quantity          = quantity;
            area.Direction         = (Direction)direction;
            area.SpawnTrigger      = spawnTrigger;
            area.X1 = x1;
            area.X2 = x2;
            area.Y1 = y1;
            area.Y2 = y2;
            return(area);
        }
Example #3
0
        /// <inheritdoc />
        public GameMapDefinition Initialize(IRepositoryManager repositoryManager, GameConfiguration gameConfiguration)
        {
            this.CreateMonsters(repositoryManager, gameConfiguration);
            var mapDefinition = repositoryManager.CreateNew <GameMapDefinition>();

            mapDefinition.Number        = this.MapNumber;
            mapDefinition.Name          = this.MapName;
            mapDefinition.TerrainData   = Terrains.ResourceManager.GetObject("Terrain" + (this.MapNumber + 1)) as byte[];
            mapDefinition.ExpMultiplier = 1;
            foreach (var spawn in this.CreateSpawns(repositoryManager, mapDefinition, gameConfiguration))
            {
                mapDefinition.MonsterSpawns.Add(spawn);
            }

            return(mapDefinition);
        }
Example #4
0
        /// <inheritdoc/>
        protected override void CreateMonsters(IRepositoryManager repositoryManager, GameConfiguration gameConfiguration)
        {
            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 69;
                monster.Designation              = "Alquamos";
                monster.MoveRange                = 3;
                monster.AttackRange              = 5;
                monster.ViewRange                = 5;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 75 },
                    { Stats.MaximumHealth, 11500 },
                    { Stats.MinimumPhysBaseDmg, 255 },
                    { Stats.MaximumPhysBaseDmg, 290 },
                    { Stats.DefenseBase, 195 },
                    { Stats.AttackRatePvm, 385 },
                    { Stats.DefenseRatePvm, 125 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 9 },
                    { Stats.IceResistance, 9 },
                    { Stats.WaterResistance, 11 },
                    { Stats.FireResistance, 9 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 70;
                monster.Designation              = "Queen Rainer";
                monster.MoveRange                = 3;
                monster.AttackRange              = 3;
                monster.ViewRange                = 5;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 82 },
                    { Stats.MaximumHealth, 19000 },
                    { Stats.MinimumPhysBaseDmg, 305 },
                    { Stats.MaximumPhysBaseDmg, 350 },
                    { Stats.DefenseBase, 230 },
                    { Stats.AttackRatePvm, 475 },
                    { Stats.DefenseRatePvm, 160 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 9 },
                    { Stats.IceResistance, 11 },
                    { Stats.WaterResistance, 12 },
                    { Stats.FireResistance, 9 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 71;
                monster.Designation              = "Mega Crust";
                monster.MoveRange                = 3;
                monster.AttackRange              = 1;
                monster.ViewRange                = 5;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(3 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 78 },
                    { Stats.MaximumHealth, 15000 },
                    { Stats.MinimumPhysBaseDmg, 270 },
                    { Stats.MaximumPhysBaseDmg, 320 },
                    { Stats.DefenseBase, 210 },
                    { Stats.AttackRatePvm, 430 },
                    { Stats.DefenseRatePvm, 140 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 9 },
                    { Stats.IceResistance, 9 },
                    { Stats.WaterResistance, 12 },
                    { Stats.FireResistance, 9 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 72;
                monster.Designation              = "Phantom Knight";
                monster.MoveRange                = 3;
                monster.AttackRange              = 2;
                monster.ViewRange                = 5;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(3 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 96 },
                    { Stats.MaximumHealth, 41000 },
                    { Stats.MinimumPhysBaseDmg, 560 },
                    { Stats.MaximumPhysBaseDmg, 610 },
                    { Stats.DefenseBase, 425 },
                    { Stats.AttackRatePvm, 690 },
                    { Stats.DefenseRatePvm, 270 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 14 },
                    { Stats.IceResistance, 14 },
                    { Stats.WaterResistance, 16 },
                    { Stats.FireResistance, 14 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 73;
                monster.Designation              = "Drakan";
                monster.MoveRange                = 3;
                monster.AttackRange              = 5;
                monster.ViewRange                = 5;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(20 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 86 },
                    { Stats.MaximumHealth, 29000 },
                    { Stats.MinimumPhysBaseDmg, 425 },
                    { Stats.MaximumPhysBaseDmg, 480 },
                    { Stats.DefenseBase, 305 },
                    { Stats.AttackRatePvm, 570 },
                    { Stats.DefenseRatePvm, 210 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 12 },
                    { Stats.IceResistance, 12 },
                    { Stats.WaterResistance, 13 },
                    { Stats.FireResistance, 12 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 74;
                monster.Designation              = "Alpha Crust";
                monster.MoveRange                = 3;
                monster.AttackRange              = 1;
                monster.ViewRange                = 5;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(3 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 92 },
                    { Stats.MaximumHealth, 34500 },
                    { Stats.MinimumPhysBaseDmg, 489 },
                    { Stats.MaximumPhysBaseDmg, 540 },
                    { Stats.DefenseBase, 360 },
                    { Stats.AttackRatePvm, 620 },
                    { Stats.DefenseRatePvm, 240 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 13 },
                    { Stats.IceResistance, 13 },
                    { Stats.WaterResistance, 14 },
                    { Stats.FireResistance, 13 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 75;
                monster.Designation              = "Great Drakan";
                monster.MoveRange                = 3;
                monster.AttackRange              = 5;
                monster.ViewRange                = 5;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(3 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 100 },
                    { Stats.MaximumHealth, 50000 },
                    { Stats.MinimumPhysBaseDmg, 650 },
                    { Stats.MaximumPhysBaseDmg, 700 },
                    { Stats.DefenseBase, 495 },
                    { Stats.AttackRatePvm, 800 },
                    { Stats.DefenseRatePvm, 305 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 15 },
                    { Stats.IceResistance, 15 },
                    { Stats.WaterResistance, 17 },
                    { Stats.FireResistance, 18 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 76;
                monster.Designation              = "Dark Phoenix Shield";
                monster.MoveRange                = 3;
                monster.AttackRange              = 3;
                monster.ViewRange                = 5;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 106 },
                    { Stats.MaximumHealth, 73000 },
                    { Stats.MinimumPhysBaseDmg, 850 },
                    { Stats.MaximumPhysBaseDmg, 960 },
                    { Stats.DefenseBase, 580 },
                    { Stats.AttackRatePvm, 840 },
                    { Stats.DefenseRatePvm, 305 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 30 },
                    { Stats.IceResistance, 30 },
                    { Stats.WaterResistance, 35 },
                    { Stats.FireResistance, 30 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 77;
                monster.Designation              = "Dark Phoenix";
                monster.MoveRange                = 1;
                monster.AttackRange              = 6;
                monster.ViewRange                = 7;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1500 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(15 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 108 },
                    { Stats.MaximumHealth, 95000 },
                    { Stats.MinimumPhysBaseDmg, 950 },
                    { Stats.MaximumPhysBaseDmg, 1000 },
                    { Stats.DefenseBase, 600 },
                    { Stats.AttackRatePvm, 900 },
                    { Stats.DefenseRatePvm, 350 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 30 },
                    { Stats.IceResistance, 30 },
                    { Stats.WaterResistance, 35 },
                    { Stats.FireResistance, 30 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }
        }
Example #5
0
        /// <inheritdoc/>
        protected override void CreateMonsters(IRepositoryManager repositoryManager, GameConfiguration gameConfiguration)
        {
            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 64;
                monster.Designation              = "Orc Archer";
                monster.MoveRange                = 3;
                monster.AttackRange              = 4;
                monster.ViewRange                = 7;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1600 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 70 },
                    { Stats.MaximumHealth, 10000 },
                    { Stats.MinimumPhysBaseDmg, 220 },
                    { Stats.MaximumPhysBaseDmg, 250 },
                    { Stats.DefenseBase, 170 },
                    { Stats.AttackRatePvm, 350 },
                    { Stats.DefenseRatePvm, 115 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 7 },
                    { Stats.IceResistance, 7 },
                    { Stats.WaterResistance, 7 },
                    { Stats.FireResistance, 7 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 65;
                monster.Designation              = "Elite Orc";
                monster.MoveRange                = 3;
                monster.AttackRange              = 1;
                monster.ViewRange                = 7;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(2000 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(100 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 74 },
                    { Stats.MaximumHealth, 14000 },
                    { Stats.MinimumPhysBaseDmg, 260 },
                    { Stats.MaximumPhysBaseDmg, 290 },
                    { Stats.DefenseBase, 190 },
                    { Stats.AttackRatePvm, 400 },
                    { Stats.DefenseRatePvm, 125 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 8 },
                    { Stats.IceResistance, 8 },
                    { Stats.WaterResistance, 8 },
                    { Stats.FireResistance, 8 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }
        }
Example #6
0
        /// <inheritdoc/>
        protected override void CreateMonsters(IRepositoryManager repositoryManager, GameConfiguration gameConfiguration)
        {
            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 57;
                monster.Designation              = "Iron Wheel";
                monster.MoveRange                = 3;
                monster.AttackRange              = 4;
                monster.ViewRange                = 7;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 80 },
                    { Stats.MaximumHealth, 17000 },
                    { Stats.MinimumPhysBaseDmg, 280 },
                    { Stats.MaximumPhysBaseDmg, 330 },
                    { Stats.DefenseBase, 215 },
                    { Stats.AttackRatePvm, 446 },
                    { Stats.DefenseRatePvm, 150 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 9 },
                    { Stats.IceResistance, 9 },
                    { Stats.WaterResistance, 9 },
                    { Stats.FireResistance, 9 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 58;
                monster.Designation              = "Tantallos";
                monster.MoveRange                = 3;
                monster.AttackRange              = 2;
                monster.ViewRange                = 7;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(20 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 83 },
                    { Stats.MaximumHealth, 22000 },
                    { Stats.MinimumPhysBaseDmg, 335 },
                    { Stats.MaximumPhysBaseDmg, 385 },
                    { Stats.DefenseBase, 250 },
                    { Stats.AttackRatePvm, 500 },
                    { Stats.DefenseRatePvm, 175 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 9 },
                    { Stats.IceResistance, 9 },
                    { Stats.WaterResistance, 9 },
                    { Stats.FireResistance, 9 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 59;
                monster.Designation              = "Zaikan";
                monster.MoveRange                = 3;
                monster.AttackRange              = 5;
                monster.ViewRange                = 7;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(150 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 90 },
                    { Stats.MaximumHealth, 34000 },
                    { Stats.MinimumPhysBaseDmg, 510 },
                    { Stats.MaximumPhysBaseDmg, 590 },
                    { Stats.DefenseBase, 400 },
                    { Stats.AttackRatePvm, 550 },
                    { Stats.DefenseRatePvm, 185 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 13 },
                    { Stats.IceResistance, 13 },
                    { Stats.WaterResistance, 13 },
                    { Stats.FireResistance, 15 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 60;
                monster.Designation              = "Bloody Wolf";
                monster.MoveRange                = 3;
                monster.AttackRange              = 2;
                monster.ViewRange                = 7;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 76 },
                    { Stats.MaximumHealth, 13500 },
                    { Stats.MinimumPhysBaseDmg, 260 },
                    { Stats.MaximumPhysBaseDmg, 300 },
                    { Stats.DefenseBase, 200 },
                    { Stats.AttackRatePvm, 410 },
                    { Stats.DefenseRatePvm, 130 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 8 },
                    { Stats.IceResistance, 8 },
                    { Stats.WaterResistance, 8 },
                    { Stats.FireResistance, 8 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 61;
                monster.Designation              = "Beam Knight";
                monster.MoveRange                = 3;
                monster.AttackRange              = 4;
                monster.ViewRange                = 7;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(20 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 84 },
                    { Stats.MaximumHealth, 25000 },
                    { Stats.MinimumPhysBaseDmg, 375 },
                    { Stats.MaximumPhysBaseDmg, 425 },
                    { Stats.DefenseBase, 275 },
                    { Stats.AttackRatePvm, 530 },
                    { Stats.DefenseRatePvm, 190 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 10 },
                    { Stats.IceResistance, 10 },
                    { Stats.WaterResistance, 10 },
                    { Stats.FireResistance, 10 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 62;
                monster.Designation              = "Mutant";
                monster.MoveRange                = 3;
                monster.AttackRange              = 1;
                monster.ViewRange                = 7;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 72 },
                    { Stats.MaximumHealth, 10000 },
                    { Stats.MinimumPhysBaseDmg, 250 },
                    { Stats.MaximumPhysBaseDmg, 280 },
                    { Stats.DefenseBase, 190 },
                    { Stats.AttackRatePvm, 365 },
                    { Stats.DefenseRatePvm, 120 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 8 },
                    { Stats.IceResistance, 8 },
                    { Stats.WaterResistance, 8 },
                    { Stats.FireResistance, 8 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 63;
                monster.Designation              = "Death Beam Knight";
                monster.MoveRange                = 3;
                monster.AttackRange              = 5;
                monster.ViewRange                = 7;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(150 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 93 },
                    { Stats.MaximumHealth, 40000 },
                    { Stats.MinimumPhysBaseDmg, 590 },
                    { Stats.MaximumPhysBaseDmg, 650 },
                    { Stats.DefenseBase, 420 },
                    { Stats.AttackRatePvm, 575 },
                    { Stats.DefenseRatePvm, 220 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 13 },
                    { Stats.IceResistance, 13 },
                    { Stats.WaterResistance, 13 },
                    { Stats.FireResistance, 17 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }
        }
Example #7
0
        /// <inheritdoc/>
        protected override void CreateMonsters(IRepositoryManager repositoryManager, GameConfiguration gameConfiguration)
        {
            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 26;
                monster.Designation              = "Goblin";
                monster.MoveRange                = 2;
                monster.AttackRange              = 1;
                monster.ViewRange                = 4;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1800 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 3 },
                    { Stats.MaximumHealth, 45 },
                    { Stats.MinimumPhysBaseDmg, 7 },
                    { Stats.MaximumPhysBaseDmg, 10 },
                    { Stats.DefenseBase, 2 },
                    { Stats.AttackRatePvm, 13 },
                    { Stats.DefenseRatePvm, 2 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 0 },
                    { Stats.IceResistance, 0 },
                    { Stats.WaterResistance, 0 },
                    { Stats.FireResistance, 0 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 27;
                monster.Designation              = "Chain Scorpion";
                monster.MoveRange                = 3;
                monster.AttackRange              = 1;
                monster.ViewRange                = 4;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1800 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 5 },
                    { Stats.MaximumHealth, 80 },
                    { Stats.MinimumPhysBaseDmg, 13 },
                    { Stats.MaximumPhysBaseDmg, 17 },
                    { Stats.DefenseBase, 4 },
                    { Stats.AttackRatePvm, 23 },
                    { Stats.DefenseRatePvm, 4 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 0 },
                    { Stats.IceResistance, 0 },
                    { Stats.WaterResistance, 0 },
                    { Stats.FireResistance, 0 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 28;
                monster.Designation              = "Beetle Monster";
                monster.MoveRange                = 3;
                monster.AttackRange              = 1;
                monster.ViewRange                = 5;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1600 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 10 },
                    { Stats.MaximumHealth, 165 },
                    { Stats.MinimumPhysBaseDmg, 26 },
                    { Stats.MaximumPhysBaseDmg, 31 },
                    { Stats.DefenseBase, 10 },
                    { Stats.AttackRatePvm, 44 },
                    { Stats.DefenseRatePvm, 10 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 0 },
                    { Stats.IceResistance, 0 },
                    { Stats.WaterResistance, 0 },
                    { Stats.FireResistance, 0 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 29;
                monster.Designation              = "Hunter";
                monster.MoveRange                = 3;
                monster.AttackRange              = 4;
                monster.ViewRange                = 4;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1600 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 13 },
                    { Stats.MaximumHealth, 220 },
                    { Stats.MinimumPhysBaseDmg, 36 },
                    { Stats.MaximumPhysBaseDmg, 41 },
                    { Stats.DefenseBase, 13 },
                    { Stats.AttackRatePvm, 56 },
                    { Stats.DefenseRatePvm, 13 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 0 },
                    { Stats.IceResistance, 0 },
                    { Stats.WaterResistance, 0 },
                    { Stats.FireResistance, 0 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 30;
                monster.Designation              = "Forest Monster";
                monster.MoveRange                = 3;
                monster.AttackRange              = 1;
                monster.ViewRange                = 4;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1600 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 15 },
                    { Stats.MaximumHealth, 295 },
                    { Stats.MinimumPhysBaseDmg, 46 },
                    { Stats.MaximumPhysBaseDmg, 51 },
                    { Stats.DefenseBase, 15 },
                    { Stats.AttackRatePvm, 68 },
                    { Stats.DefenseRatePvm, 15 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 0 },
                    { Stats.IceResistance, 0 },
                    { Stats.WaterResistance, 0 },
                    { Stats.FireResistance, 0 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 31;
                monster.Designation              = "Agon";
                monster.MoveRange                = 2;
                monster.AttackRange              = 1;
                monster.ViewRange                = 4;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 16 },
                    { Stats.MaximumHealth, 340 },
                    { Stats.MinimumPhysBaseDmg, 51 },
                    { Stats.MaximumPhysBaseDmg, 57 },
                    { Stats.DefenseBase, 16 },
                    { Stats.AttackRatePvm, 74 },
                    { Stats.DefenseRatePvm, 16 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 0 },
                    { Stats.IceResistance, 0 },
                    { Stats.WaterResistance, 0 },
                    { Stats.FireResistance, 0 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 32;
                monster.Designation              = "Stone Golem";
                monster.MoveRange                = 2;
                monster.AttackRange              = 2;
                monster.ViewRange                = 3;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(2200 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 18 },
                    { Stats.MaximumHealth, 465 },
                    { Stats.MinimumPhysBaseDmg, 62 },
                    { Stats.MaximumPhysBaseDmg, 68 },
                    { Stats.DefenseBase, 20 },
                    { Stats.AttackRatePvm, 86 },
                    { Stats.DefenseRatePvm, 20 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 0 },
                    { Stats.IceResistance, 0 },
                    { Stats.WaterResistance, 0 },
                    { Stats.FireResistance, 0 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 33;
                monster.Designation              = "Elite Goblin";
                monster.MoveRange                = 3;
                monster.AttackRange              = 1;
                monster.ViewRange                = 5;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1600 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 8 },
                    { Stats.MaximumHealth, 120 },
                    { Stats.MinimumPhysBaseDmg, 19 },
                    { Stats.MaximumPhysBaseDmg, 23 },
                    { Stats.DefenseBase, 8 },
                    { Stats.AttackRatePvm, 33 },
                    { Stats.DefenseRatePvm, 8 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 0 },
                    { Stats.IceResistance, 0 },
                    { Stats.WaterResistance, 0 },
                    { Stats.FireResistance, 0 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }
        }
Example #8
0
        /// <inheritdoc/>
        protected override void CreateMonsters(IRepositoryManager repositoryManager, GameConfiguration gameConfiguration)
        {
            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 19;
                monster.Designation              = "Yeti";
                monster.MoveRange                = 2;
                monster.AttackRange              = 4;
                monster.ViewRange                = 6;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(2000 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(3 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 30 },
                    { Stats.MaximumHealth, 900 },
                    { Stats.MinimumPhysBaseDmg, 105 },
                    { Stats.MaximumPhysBaseDmg, 110 },
                    { Stats.DefenseBase, 37 },
                    { Stats.AttackRatePvm, 150 },
                    { Stats.DefenseRatePvm, 37 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 0 },
                    { Stats.IceResistance, 3 },
                    { Stats.WaterResistance, 0 },
                    { Stats.FireResistance, 0 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 20;
                monster.Designation              = "Elite Yeti";
                monster.MoveRange                = 3;
                monster.AttackRange              = 1;
                monster.ViewRange                = 6;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(3 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 36 },
                    { Stats.MaximumHealth, 1200 },
                    { Stats.MinimumPhysBaseDmg, 120 },
                    { Stats.MaximumPhysBaseDmg, 125 },
                    { Stats.DefenseBase, 50 },
                    { Stats.AttackRatePvm, 180 },
                    { Stats.DefenseRatePvm, 43 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 1 },
                    { Stats.IceResistance, 4 },
                    { Stats.WaterResistance, 1 },
                    { Stats.FireResistance, 1 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 21;
                monster.Designation              = "Assassin";
                monster.MoveRange                = 2;
                monster.AttackRange              = 1;
                monster.ViewRange                = 7;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(2000 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 26 },
                    { Stats.MaximumHealth, 800 },
                    { Stats.MinimumPhysBaseDmg, 95 },
                    { Stats.MaximumPhysBaseDmg, 100 },
                    { Stats.DefenseBase, 33 },
                    { Stats.AttackRatePvm, 130 },
                    { Stats.DefenseRatePvm, 33 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 0 },
                    { Stats.IceResistance, 0 },
                    { Stats.WaterResistance, 0 },
                    { Stats.FireResistance, 0 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 22;
                monster.Designation              = "Ice Monster";
                monster.MoveRange                = 2;
                monster.AttackRange              = 1;
                monster.ViewRange                = 5;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(2000 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 22 },
                    { Stats.MaximumHealth, 650 },
                    { Stats.MinimumPhysBaseDmg, 80 },
                    { Stats.MaximumPhysBaseDmg, 85 },
                    { Stats.DefenseBase, 27 },
                    { Stats.AttackRatePvm, 110 },
                    { Stats.DefenseRatePvm, 27 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 0 },
                    { Stats.IceResistance, 3 },
                    { Stats.WaterResistance, 0 },
                    { Stats.FireResistance, 0 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 23;
                monster.Designation              = "Hommerd";
                monster.MoveRange                = 3;
                monster.AttackRange              = 1;
                monster.ViewRange                = 5;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1600 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 24 },
                    { Stats.MaximumHealth, 700 },
                    { Stats.MinimumPhysBaseDmg, 85 },
                    { Stats.MaximumPhysBaseDmg, 90 },
                    { Stats.DefenseBase, 29 },
                    { Stats.AttackRatePvm, 120 },
                    { Stats.DefenseRatePvm, 29 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 0 },
                    { Stats.IceResistance, 3 },
                    { Stats.WaterResistance, 0 },
                    { Stats.FireResistance, 0 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 24;
                monster.Designation              = "Worm";
                monster.MoveRange                = 3;
                monster.AttackRange              = 1;
                monster.ViewRange                = 4;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1600 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 20 },
                    { Stats.MaximumHealth, 600 },
                    { Stats.MinimumPhysBaseDmg, 75 },
                    { Stats.MaximumPhysBaseDmg, 80 },
                    { Stats.DefenseBase, 25 },
                    { Stats.AttackRatePvm, 100 },
                    { Stats.DefenseRatePvm, 25 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 0 },
                    { Stats.IceResistance, 2 },
                    { Stats.WaterResistance, 0 },
                    { Stats.FireResistance, 0 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }

            {
                var monster = repositoryManager.CreateNew <MonsterDefinition>();
                gameConfiguration.Monsters.Add(monster);
                monster.Number                   = 25;
                monster.Designation              = "Ice Queen";
                monster.MoveRange                = 3;
                monster.AttackRange              = 4;
                monster.ViewRange                = 7;
                monster.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
                monster.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
                monster.RespawnDelay             = new TimeSpan(50 * TimeSpan.TicksPerSecond);
                monster.Attribute                = 2;
                monster.NumberOfMaximumItemDrops = 1;
                new Dictionary <AttributeDefinition, float>
                {
                    { Stats.Level, 52 },
                    { Stats.MaximumHealth, 4000 },
                    { Stats.MinimumPhysBaseDmg, 155 },
                    { Stats.MaximumPhysBaseDmg, 165 },
                    { Stats.DefenseBase, 90 },
                    { Stats.AttackRatePvm, 260 },
                    { Stats.DefenseRatePvm, 76 },
                    { Stats.WindResistance, 0 },
                    { Stats.PoisonResistance, 4 },
                    { Stats.IceResistance, 5 },
                    { Stats.WaterResistance, 4 },
                    { Stats.FireResistance, 4 },
                }.Select(kvp =>
                {
                    var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                    attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                    attribute.Value = kvp.Value;
                    return(attribute);
                }).ToList().ForEach(monster.Attributes.Add);
            }
        }
Example #9
0
        /// <inheritdoc />
        protected override void CreateMonsters(IRepositoryManager repositoryManager, GameConfiguration gameConfiguration)
        {
            var bullFighter = repositoryManager.CreateNew <MonsterDefinition>();

            gameConfiguration.Monsters.Add(bullFighter);
            bullFighter.Number                   = 0;
            bullFighter.Designation              = "Bull Fighter";
            bullFighter.MoveRange                = 3;
            bullFighter.AttackRange              = 1;
            bullFighter.ViewRange                = 5;
            bullFighter.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
            bullFighter.AttackDelay              = new TimeSpan(1600 * TimeSpan.TicksPerMillisecond);
            bullFighter.RespawnDelay             = new TimeSpan(3 * TimeSpan.TicksPerSecond);
            bullFighter.Attribute                = 2;
            bullFighter.NumberOfMaximumItemDrops = 1;
            new Dictionary <AttributeDefinition, float>
            {
                { Stats.Level, 6 },
                { Stats.MaximumHealth, 100 },
                { Stats.MinimumPhysBaseDmg, 16 },
                { Stats.MaximumPhysBaseDmg, 20 },
                { Stats.DefenseBase, 6 },
                { Stats.AttackRatePvm, 28 },
                { Stats.DefenseRatePvm, 6 },
                { Stats.WindResistance, 0 },
                { Stats.PoisonResistance, 0 },
                { Stats.IceResistance, 0 },
                { Stats.WaterResistance, 0 },
                { Stats.FireResistance, 0 },
            }.Select(kvp =>
            {
                var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                attribute.Value = kvp.Value;
                return(attribute);
            }).ToList().ForEach(bullFighter.Attributes.Add);

            var hound = repositoryManager.CreateNew <MonsterDefinition>();

            gameConfiguration.Monsters.Add(hound);
            hound.Number      = 1;
            hound.Designation = "Hound";
            new Dictionary <AttributeDefinition, float>
            {
                { Stats.Level, 9 },
                { Stats.MaximumHealth, 140 },
                { Stats.MinimumPhysBaseDmg, 22 },
                { Stats.MaximumPhysBaseDmg, 27 },
                { Stats.DefenseBase, 9 },
                { Stats.AttackRatePvm, 39 },
                { Stats.DefenseRatePvm, 9 },
                { Stats.WindResistance, 0 },
                { Stats.PoisonResistance, 0 },
                { Stats.IceResistance, 0 },
                { Stats.WaterResistance, 0 },
                { Stats.FireResistance, 0 },
            }.Select(kvp =>
            {
                var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                attribute.Value = kvp.Value;
                return(attribute);
            }).ToList().ForEach(hound.Attributes.Add);
            hound.MoveRange                = 3;
            hound.AttackRange              = 1;
            hound.ViewRange                = 5;
            hound.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
            hound.AttackDelay              = new TimeSpan(1600 * TimeSpan.TicksPerMillisecond);
            hound.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
            hound.Attribute                = 2;
            hound.NumberOfMaximumItemDrops = 1;

            var budgeDragon = repositoryManager.CreateNew <MonsterDefinition>();

            gameConfiguration.Monsters.Add(budgeDragon);
            budgeDragon.Number      = 2;
            budgeDragon.Designation = "Budge Dragon";
            new Dictionary <AttributeDefinition, float>
            {
                { Stats.Level, 4 },
                { Stats.MaximumHealth, 60 },
                { Stats.MinimumPhysBaseDmg, 10 },
                { Stats.MaximumPhysBaseDmg, 13 },
                { Stats.DefenseBase, 3 },
                { Stats.AttackRatePvm, 18 },
                { Stats.DefenseRatePvm, 3 },
                { Stats.WindResistance, 0 },
                { Stats.PoisonResistance, 0 },
                { Stats.IceResistance, 0 },
                { Stats.WaterResistance, 0 },
                { Stats.FireResistance, 0 },
            }.Select(kvp =>
            {
                var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                attribute.Value = kvp.Value;
                return(attribute);
            }).ToList().ForEach(budgeDragon.Attributes.Add);
            budgeDragon.MoveRange                = 3;
            budgeDragon.AttackRange              = 1;
            budgeDragon.ViewRange                = 4;
            budgeDragon.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
            budgeDragon.AttackDelay              = new TimeSpan(2000 * TimeSpan.TicksPerMillisecond);
            budgeDragon.RespawnDelay             = new TimeSpan(3 * TimeSpan.TicksPerSecond);
            budgeDragon.Attribute                = 2;
            budgeDragon.NumberOfMaximumItemDrops = 1;

            var spider = repositoryManager.CreateNew <MonsterDefinition>();

            gameConfiguration.Monsters.Add(spider);
            spider.Number      = 3;
            spider.Designation = "Spider";
            new Dictionary <AttributeDefinition, float>
            {
                { Stats.Level, 2 },
                { Stats.MaximumHealth, 30 },
                { Stats.MinimumPhysBaseDmg, 4 },
                { Stats.MaximumPhysBaseDmg, 7 },
                { Stats.DefenseBase, 1 },
                { Stats.AttackRatePvm, 8 },
                { Stats.DefenseRatePvm, 1 },
                { Stats.WindResistance, 0 },
                { Stats.PoisonResistance, 0 },
                { Stats.IceResistance, 0 },
                { Stats.WaterResistance, 0 },
                { Stats.FireResistance, 0 },
            }.Select(kvp =>
            {
                var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                attribute.Value = kvp.Value;
                return(attribute);
            }).ToList().ForEach(spider.Attributes.Add);
            spider.MoveRange                = 2;
            spider.AttackRange              = 1;
            spider.ViewRange                = 5;
            spider.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
            spider.AttackDelay              = new TimeSpan(1800 * TimeSpan.TicksPerMillisecond);
            spider.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
            spider.Attribute                = 2;
            spider.NumberOfMaximumItemDrops = 1;

            var eliteBullFighter = repositoryManager.CreateNew <MonsterDefinition>();

            gameConfiguration.Monsters.Add(eliteBullFighter);
            eliteBullFighter.Number      = 4;
            eliteBullFighter.Designation = "Elite Bull Fighter";
            new Dictionary <AttributeDefinition, float>
            {
                { Stats.Level, 12 },
                { Stats.MaximumHealth, 190 },
                { Stats.MinimumPhysBaseDmg, 31 },
                { Stats.MaximumPhysBaseDmg, 36 },
                { Stats.DefenseBase, 12 },
                { Stats.AttackRatePvm, 50 },
                { Stats.DefenseRatePvm, 12 },
                { Stats.WindResistance, 0 },
                { Stats.PoisonResistance, 0 },
                { Stats.IceResistance, 0 },
                { Stats.WaterResistance, 0 },
                { Stats.FireResistance, 0 },
            }.Select(kvp =>
            {
                var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                attribute.Value = kvp.Value;
                return(attribute);
            }).ToList().ForEach(eliteBullFighter.Attributes.Add);
            eliteBullFighter.MoveRange                = 3;
            eliteBullFighter.AttackRange              = 1;
            eliteBullFighter.ViewRange                = 4;
            eliteBullFighter.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
            eliteBullFighter.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
            eliteBullFighter.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
            eliteBullFighter.Attribute                = 2;
            eliteBullFighter.NumberOfMaximumItemDrops = 1;

            var lich = repositoryManager.CreateNew <MonsterDefinition>();

            gameConfiguration.Monsters.Add(lich);
            lich.Number      = 6;
            lich.Designation = "Lich";
            new Dictionary <AttributeDefinition, float>
            {
                { Stats.Level, 14 },
                { Stats.MaximumHealth, 255 },
                { Stats.MinimumPhysBaseDmg, 41 },
                { Stats.MaximumPhysBaseDmg, 46 },
                { Stats.DefenseBase, 14 },
                { Stats.AttackRatePvm, 62 },
                { Stats.DefenseRatePvm, 14 },
                { Stats.WindResistance, 0 },
                { Stats.PoisonResistance, 0 },
                { Stats.IceResistance, 0 },
                { Stats.WaterResistance, 0 },
                { Stats.FireResistance, 1 },
            }.Select(kvp =>
            {
                var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                attribute.Value = kvp.Value;
                return(attribute);
            }).ToList().ForEach(lich.Attributes.Add);
            lich.MoveRange                = 3;
            lich.AttackRange              = 4;
            lich.ViewRange                = 7;
            lich.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
            lich.AttackDelay              = new TimeSpan(2000 * TimeSpan.TicksPerMillisecond);
            lich.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
            lich.Attribute                = 2;
            lich.NumberOfMaximumItemDrops = 1;

            var giant = repositoryManager.CreateNew <MonsterDefinition>();

            gameConfiguration.Monsters.Add(giant);
            giant.Number      = 7;
            giant.Designation = "Giant";
            new Dictionary <AttributeDefinition, float>
            {
                { Stats.Level, 17 },
                { Stats.MaximumHealth, 400 },
                { Stats.MinimumPhysBaseDmg, 57 },
                { Stats.MaximumPhysBaseDmg, 62 },
                { Stats.DefenseBase, 18 },
                { Stats.AttackRatePvm, 80 },
                { Stats.DefenseRatePvm, 18 },
                { Stats.WindResistance, 0 },
                { Stats.PoisonResistance, 0 },
                { Stats.IceResistance, 0 },
                { Stats.WaterResistance, 0 },
                { Stats.FireResistance, 0 },
            }.Select(kvp =>
            {
                var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                attribute.Value = kvp.Value;
                return(attribute);
            }).ToList().ForEach(giant.Attributes.Add);
            giant.MoveRange                = 2;
            giant.AttackRange              = 2;
            giant.ViewRange                = 3;
            giant.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
            giant.AttackDelay              = new TimeSpan(2200 * TimeSpan.TicksPerMillisecond);
            giant.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
            giant.Attribute                = 2;
            giant.NumberOfMaximumItemDrops = 1;

            var skeleton = repositoryManager.CreateNew <MonsterDefinition>();

            gameConfiguration.Monsters.Add(skeleton);
            skeleton.Number      = 14;
            skeleton.Designation = "Skeleton Warrior";
            new Dictionary <AttributeDefinition, float>
            {
                { Stats.Level, 19 },
                { Stats.MaximumHealth, 525 },
                { Stats.MinimumPhysBaseDmg, 68 },
                { Stats.MaximumPhysBaseDmg, 74 },
                { Stats.DefenseBase, 22 },
                { Stats.AttackRatePvm, 93 },
                { Stats.DefenseRatePvm, 22 },
                { Stats.WindResistance, 0 },
                { Stats.PoisonResistance, 0 },
                { Stats.IceResistance, 0 },
                { Stats.WaterResistance, 0 },
                { Stats.FireResistance, 0 },
            }.Select(kvp =>
            {
                var attribute = repositoryManager.CreateNew <MonsterAttribute>();
                attribute.AttributeDefinition = gameConfiguration.Attributes.First(a => a == kvp.Key);
                attribute.Value = kvp.Value;
                return(attribute);
            }).ToList().ForEach(skeleton.Attributes.Add);
            skeleton.MoveRange                = 2;
            skeleton.AttackRange              = 1;
            skeleton.ViewRange                = 4;
            skeleton.MoveDelay                = new TimeSpan(400 * TimeSpan.TicksPerMillisecond);
            skeleton.AttackDelay              = new TimeSpan(1400 * TimeSpan.TicksPerMillisecond);
            skeleton.RespawnDelay             = new TimeSpan(10 * TimeSpan.TicksPerSecond);
            skeleton.Attribute                = 2;
            skeleton.NumberOfMaximumItemDrops = 1;
        }