public void ResolveMelee() { Melee.Target attackerTarget = ((Melee)_attackerActions[0].Action).MeleeTarget; Melee.Target defenderTarget = ((Melee)_defenderActions[0].Action).MeleeTarget; Outcome outcome = _resolver.GetOutcome(attackerTarget, defenderTarget); DoApplyTurnOutcome(outcome, _attackerActions[0], _defenderActions[0]); }
public Outcome GetOutcome(Melee.Target attackerTarget, Melee.Target defenderTarget) { MeleeAttack found = MeleeAttacks.Find((MeleeAttack meleeAttack) => { return(meleeAttack.Attacks == attackerTarget); }); return(found.GetOutcome(defenderTarget)); }
private void CreateMelee(Melee.Target meleeTarget, Sprite meleeSprite, float offset) { Melee newMelee = Instantiate(_meleePrefab); newMelee.OnActivate += OnCardChosen; newMelee.transform.position = _meleePosition.position + new Vector3(offset, 0, 0); newMelee.transform.SetParent(transform); newMelee.Initialize(meleeSprite, meleeTarget, _meleeBaseDamage, _meleeBaseStaminaCost); _meleeActions.Add(newMelee); }
public Outcome GetOutcome(Melee.Target defenderTarget) { if (defenderTarget == GetsParriedBy) { return(Outcome.Parry); } else { foreach (Melee.Target target in GetsHitOn) { if (defenderTarget == target) { return(Outcome.Hit); } } } return(Outcome.Defend); }