private List <string> MonsterOnFire(NearbyMonster monster) { monster.CurrentHealth--; return(new List <string> { $"The {monster.Monster.Name} takes 1 damage from fire." }); }
private string PerformAttack(GameState gameState, NearbyMonster monster) { var damage = RollForDamage(monster); gameState.Player.DigState.Fuel -= damage; monster.CurrentAttackCooldown = monster.Monster.AttackRate; return($"{monster.Monster.Name} hits for {damage}."); }
private void RemoveExpiredMonsterBuffs(NearbyMonster monster) { var buffsToDelete = monster.NearbyMonsterBuff.Where(b => b.RemainingDuration <= 0); foreach (var buff in buffsToDelete) { monster.NearbyMonsterBuff.Remove(buff); } }
private NearbyMonsterDto ConvertToNearbyMonsterDto(NearbyMonster nearbyMonster) { return(new NearbyMonsterDto { name = nearbyMonster.Monster.Name , maxHealth = nearbyMonster.Monster.Health , currentHealth = nearbyMonster.CurrentHealth }); }
private List <string> HealMonster(NearbyMonster monster) { monster.CurrentHealth++; if (monster.CurrentHealth > monster.Monster.Health) { monster.CurrentHealth = monster.Monster.Health; } return(new List <string> { $"The {monster.Monster.Name} gets healed for 1." }); }
private List <string> HandleMonsterBuffs(GameState gameState, NearbyMonster monster, NearbyMonsterBuff buff) { switch (buff.BuffId) { case (int)BuffId.Healing: return(HealMonster(monster)); case (int)BuffId.OnFire: return(MonsterOnFire(monster)); default: return(new List <string>()); } }
private int RollForDamage(NearbyMonster monster) { return(new Random().Next(1, monster.Monster.Attack)); }
private List <string> HandleMonsterBuffs(GameState gameState, NearbyMonster monster) { return(monster.NearbyMonsterBuff.ToList().SelectMany(b => HandleMonsterBuffs(gameState, monster, b)).ToList()); }