private void StartActionFor(BattleObject battleObject) { _battleState = BattleState.StoppedTime; _activeBattleObjectsToProcess.Enqueue(battleObject); }
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; } }