Example #1
0
 private void StartActionFor(BattleObject battleObject)
 {
     _battleState = BattleState.StoppedTime;
     _activeBattleObjectsToProcess.Enqueue(battleObject);
 }
Example #2
0
        private void Attack(BattleObject from, BattleObject to, string actionText)
        {
            // find the action from the list loaded in
            var actions = _game.Content.Load<Actions>(@"BattleXML/Actions");
            if(actions.ActionList.Any(x => x.Name == actionText)) {
                var action = actions.ActionList.First(x => x.Name == actionText);

                // determine the damage
                var damage = action.Damage * from.Str;
                to.HP -= damage;

                // start damage display (text of numbers popping up)
                InteractableBattleObjectView toBattleView = null;
                if(to.Enemy) {
                    toBattleView = _battleView.EnemyPartyView.First(x => x.Name == to.Name);
                } else {
                    toBattleView = _battleView.PlayerPartyView.First(x => x.Name == to.Name);
                }
                toBattleView.StartDamageText(damage);

                // start damage animation

                if(_activeBattleObjectsToProcess.Count == 0) {
                    _battleState = BattleState.ActiveTime;
                }
                _activeBattleObject = null;
                _battleMenuView = null;
            }
        }