private bool Act() { bool result = false; this.CombatFormulas.ApplyDamage(this.CurrentActor, this.CurrentEnemy); if (this.CurrentEnemy.CurrentStats.HitPoints <= 0) { if (ActorFunctionality.ActorListHasOtherAliveMembers(this.DetermineEnemyData(), this.CurrentEnemy)) { result = true; this.ContinueCombat(); } else { this.WinnerSide = this.CurrentSide; } } else { result = true; this.ContinueCombat(); } return(result); }
public void ActScene() { //if invalid data is received just assume a winner to avoid a crash if (!ActorFunctionality.ActorListHasMembers(this.Actors) && !ActorFunctionality.ActorListHasMembers(this.Enemies)) { this.WinnerSide = CombatEnums.SideEnum.Left; return; } this.SetSides(); //determine which side starts; this.CurrentSide = CombatEnums.SideEnum.Left; //determine which combatants start, on both sides this.CurrentActor = this.Actors.First(); this.CurrentEnemy = this.Enemies.First(); //main combat loop, runs until one side is obliterated bool combatContinues = true; while (combatContinues) { combatContinues = this.Act(); } }