Example #1
0
    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);
    }
Example #2
0
    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;
 }
Example #4
0
        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);
    }
Example #7
0
 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)
		{

		}