private void AddAggressiveEnemies(int numberOfEnemies) { numberOfEnemies += ((Global.MapWidth + Global.MapHeight) / 2) / 5; for (int i = 0; i < numberOfEnemies; i++) { Cell enemyCell = GetRandomEmptyCell(); var pathFromAggressiveEnemy = new PathToPlayer(_player, _map, Content.Load <Texture2D>("Images/Debug/white")); var enemy = new AggressiveEnemy(_map, pathFromAggressiveEnemy) { Name = "Hound", font = Content.Load <SpriteFont>("Fonts/HUDFont"), X = enemyCell.X, Y = enemyCell.Y, Strenght = Dice.Parse("2d8").Roll().Value, Dexterity = Dice.Parse("2d8").Roll().Value, Constitution = Dice.Parse("2d8").Roll().Value, Intelligence = Dice.Parse("2d8").Roll().Value, Wisdom = Dice.Parse("2d8").Roll().Value, Charisma = Dice.Parse("2d8").Roll().Value, Status = "Unhurt", Actions = 2, AttackBonus = 0, HitDice = Dice.Parse("1d12") }; if (enemy.Constitution >= 15) { enemy.Sprite = Content.Load <Texture2D>("Images/Enemies/Hound/houndBig"); } if (enemy.Constitution <= 8) { enemy.Sprite = Content.Load <Texture2D>("Images/Enemies/Hound/houndSmall"); } else { enemy.Sprite = Content.Load <Texture2D>("Images/Enemies/Hound/hound"); } if (enemy.Charisma >= 15) //charisma control is done after since if the hound has cha he is good at hiding carateristics { enemy.Sprite = Content.Load <Texture2D>("Images/Enemies/Hound/houndCha"); } #region Mods calculations enemy.MODSTR = (enemy.Strenght - 10) / 2; enemy.MODDEX = (enemy.Dexterity - 10) / 2; enemy.MODCON = (enemy.Constitution - 10) / 2; enemy.MODINT = (enemy.Intelligence - 10) / 2; enemy.MODWIS = (enemy.Wisdom - 10) / 2; enemy.MODCHA = (enemy.Charisma - 10) / 2; enemy.ArmorClass = 10 + enemy.MODDEX + enemy.MODCON; enemy.Damage = Dice.Parse("1d4+" + enemy.MODSTR); enemy.HitPoints = enemy.HitDice.MaxRoll().Value + enemy.MODCON; enemy.MODAR = enemy.AttackBonus + enemy.MODSTR + enemy.MODDEX; #endregion _aggressiveEnemies.Add(enemy); } }
public AggressiveEnemy(IMap map, PathToPlayer path) { _map = map; _path = path; }