public void TryAbility(CreatureGene.CreatureAbility.AbilityType abilityType, Creature enemy) { foreach (CreatureGene.CreatureAbility ability in abilities[abilityType]) { if (ability.chargesRemaining > 0) { if (rand.NextDouble() > abilityChance) { ability.Use(this, enemy); ability.chargesRemaining--; break; } } } }
public void DoTurn(Creature enemy) { if (healthPoints > 0) { if (healthPoints / preBattleHealthPoints <= tryHealPercent) { TryAbility(CreatureGene.CreatureAbility.AbilityType.Heal, enemy); } if (enemy.healthPoints > 0) { CreatureGene.CreatureAbility.AbilityType rndAbilityType = (CreatureGene.CreatureAbility.AbilityType)rand.Next(1, 4); TryAbility(rndAbilityType, enemy); BasicAttack(enemy); } } }