public Character StartSimulation() { int characterPlaying = RandomEngine.DoesItHappens(50) ? 0 : 1; do { characterPlaying = (characterPlaying + 1) % 2; Debug.WriteLine(Characters[characterPlaying].Name + " is Attacking"); if (!this.DoesDefenderEscape(characterPlaying)) { var dmg = this.CalculateDamage(characterPlaying); Characters[(characterPlaying + 1) % 2].CurrentHitPoint -= dmg; Debug.WriteLine(Characters[characterPlaying].Name + " inflige " + dmg + " dégats"); } else { Debug.WriteLine(Characters[(characterPlaying + 1) % 2].Name + " Esquive !"); } this.StrokesFired++; Debug.WriteLine(Characters[(characterPlaying + 1) % 2].Name + " " + Characters[(characterPlaying + 1) % 2].CurrentHitPoint + "HP"); Debug.WriteLine("======================="); } while (!this.IsGameOver(characterPlaying)); foreach (var character in Characters) { character.Heal(); } return(Characters[characterPlaying]); }
private bool DoesAttackerCrit(int playerAttacking) { return(RandomEngine.DoesItHappens(Characters[playerAttacking].CriticalHit)); }
private bool DoesDefenderEscape(int playerAttacking) { //Si mage return(Characters[playerAttacking].IgnoreArmor ? false : RandomEngine.DoesItHappens(Characters[(playerAttacking + 1) % 2].EscapePercent)); }