private List <ACommand> GetValidAttacks() { List <ACommand> validAtks = new List <ACommand>(); foreach (ABasicPawn pawn in CurPlayer.GetPawns()) { foreach (ABasicPawn enemy in GetOponent().GetPawns()) { if (Coord.Distance(pawn.Position, enemy.Position) < pawn.MovePoints) { AttackCommand atk = new AttackCommand(); atk.SetUp(Boards, CurPlayer, GetOponent()); atk.SetUp(pawn.Position, enemy.Position, CurPlayer, GetOponent(), Boards); if (atk.IsValid()) { validAtks.Add(atk); } } } } return(validAtks); }
private void Update() { accumMx += Input.GetAxisRaw("Mouse X") * Time.deltaTime; if (Mathf.Abs(accumMx) > lockOnChangeMx && LockOnTarget != null) { accumMx = 0f; if (lockOnChange.IsValid()) { lockOnChange.Execute(accumMx); } } accumMx = Mathf.Lerp(accumMx, 0f, Time.deltaTime); if (!player.IsInAnyState(States.Dodging)) { RotationUpdate(); } if (LockOnTarget != null) { if (LockOnTarget.IsInAnyState(States.Dead)) { LockOnTarget = null; } } if (Input.GetButtonDown("Dodge")) { if (dodge.IsValid()) { dodge.Execute(); } } if (Input.GetButtonDown("LightAttack")) { if (attack.IsValid()) { attack.Execute(0); } } if (Input.GetButtonDown("HeavyAttack")) { if (attack.IsValid()) { attack.Execute(1); } } if (Input.GetButtonDown("LockOn")) { if (lockOn.IsValid()) { lockOn.Execute(); } } if (block.IsValid()) { block.Execute(Input.GetButton("Block")); } }