private List <BattleRound> GetProgression(BattleStageSide left, BattleStageSide right) { BattleState currentState = new BattleState(left, right); List <BattleRound> ret = new List <BattleRound>(); while (ret.Count < BattleRoundLimit) { IEnumerable <BattalionBattleEffects> effects = currentState.GetUnitEffects().ToArray(); BattleState withEffectsApplied = currentState.GetWithEffectsApplied(effects); if (withEffectsApplied.Status == BattleStatus.Ongoing) { BattleState withDefeatedRemoved = withEffectsApplied.GetWithDefeatedRemoved(); BattleRound round = new BattleRound(currentState, effects, withEffectsApplied, withDefeatedRemoved); ret.Add(round); currentState = withDefeatedRemoved; } else { BattleRound round = new BattleRound(currentState, effects, withEffectsApplied, withEffectsApplied); ret.Add(round); break; } } return(ret); }
private void switchToNextTurnInQueue() { if (null == queue) { InitializeQueue(); } if (0 == enemies.Count) { return; } BattleRound nextRound = queue.Dequeue(); currentTurn = nextRound; for (int i = 0; queue.Count != BATTLE_QUEUE_MAX; i++) { CalculateTurn(); } Utilities().AppendBattleText(new SingleLineText(string.Format("--------- {0}'s turn,--------", currentTurn.actor.name))); if (!currentTurn.bIsPlayer) { DoEnemyTurn(); } else { Utilities().TransitionBattleWindowsOn(); } }
public void AddTestData() { troopData = new TroopData(); //troopData.AddTestData(); battleRound = new BattleRound(); battleRound.AddTestData(); isPlayed = false; isWin = true; }
public ActionResult BattleStart(int?id) { BattleRound round = new BattleRound(); // Starting a Battle round var Fighters = db.Battles.Include("Gladiator").Include("Opponent").SingleOrDefault(i => i.Id == id); if (Fighters == null) { return(new HttpStatusCodeResult(400)); } else { round.Round(Fighters); // Running the Battle metod with the gladiator and opponent info. db.SaveChanges(); return(PartialView("_Battle", round)); } }
private static BattleResult performBattle( Hero hero, Robot robot, DiceService diceService) { var battleResult = new BattleResult(); var round = 0; while (hero.Health > 0 && robot.Health > 0) { var battleRound = new BattleRound(); round++; battleRound.RoundNumber = round; battleRound.RobotHealthBeginning = robot.Health; battleRound.HeroDamageInflicted = robot.Defend(hero.Attack(diceService)); battleRound.RobotHealth = robot.Health; battleRound.HeroHealthBeginning = hero.Health; battleRound.RobotDamageInflicted = hero.Defend(robot.Attack(hero, diceService)); battleRound.HeroHealth = hero.Health; battleResult.BattleRounds.Add(battleRound); } if (hero.Health > 0) { hero.MovesRemaining--; hero.Wins++; hero.Health = hero.Health; battleResult.CreditsEarned = hero.CollectCredits(diceService, robot.Difficulty); battleResult.BonusMovesAwarded = hero.AwardBonusMoves(diceService, robot.Difficulty); } else { hero.MovesRemaining = 0; hero.Losses--; hero.Health = 0; } battleResult.Hero = hero; battleResult.Robot = robot; return(battleResult); }
private Dictionary <BattalionIdentifier, BattalionVisualizer> InitializeVisualizers(Battle battle) { Dictionary <BattalionIdentifier, BattalionVisualizer> ret = new Dictionary <BattalionIdentifier, BattalionVisualizer>(); for (int i = 0; i < battle.Progression.Count; i++) { BattleRound round = battle.Progression[i]; IEnumerable <BattalionState> allUnits = round.InitialState.LeftSide.Concat(round.InitialState.RightSide); foreach (BattalionState unitState in allUnits) { if (!ret.ContainsKey(unitState.Id)) { BattalionVisualizer visualizer = mainScript.CreateVisualsFor(unitState.Id.Type, battle.Progression.Count); ret.Add(unitState.Id, visualizer); } ret[unitState.Id].InsertState(unitState, battle.Progression[i], i); } } return(ret); }
public BattalionStateVisuals(BattalionState state, BattleRound round) { State = state; Side = round.InitialState.LeftSide.Any(unit => unit.Id == state.Id) ? BattleSide.Left : BattleSide.Right; }
private void switchToNextTurnInQueue() { if(null == queue) { InitializeQueue(); } if(0 == enemies.Count) { return; } BattleRound nextRound = queue.Dequeue(); currentTurn = nextRound; for(int i=0; queue.Count != BATTLE_QUEUE_MAX; i++) { CalculateTurn(); } Utilities().AppendBattleText(new SingleLineText(string.Format("--------- {0}'s turn,--------", currentTurn.actor.name))); if(!currentTurn.bIsPlayer) { DoEnemyTurn(); } else { Utilities().TransitionBattleWindowsOn(); } }
public void setBattleRoundState(BattleRound.State state) { currentTurn.state = state; }
internal void InsertState(BattalionState state, BattleRound battleRound, int index) { states[index] = new BattalionStateVisuals(state, battleRound); }
public override void onBattleRoundStart(BattleRound battleRound, BattleTeam attackTeam) { }
public override bool needHungUp(BattleRound round, BattleTeam attackTeam) { return attackTeam.FighterType == FighterType.HERO; }
public override void onBattleRoundFinish(BattleRound battleRound) { }