void RPCAttack(int sourceX, int sourceZ, int targetX, int targetZ) { Unit attackingUnit = Global.instance.currentMap.board[sourceX, sourceZ].GetMyObject <Unit>(); IDamageable target = Global.instance.currentMap.board[targetX, targetZ].GetMyDamagableObject(); attackingUnit.Attack(target); }
/// <summary> /// Used to either perform an attack in offline modes or send an RPC in online mode. /// </summary> /// <param name="attackingUnit"></param> /// <param name="target"></param> public void SendCommandToStartAttack(Unit attackingUnit, IDamageable target) { PlayerInput.instance.isInputBlocked = true; Position targetPosition = new Position(Mathf.RoundToInt(target.GetMyPosition().x), Mathf.RoundToInt(target.GetMyPosition().x)); if (Global.instance.matchType == MatchTypes.Online) { photonView.RPC( "RPCAttack", RpcTarget.All, attackingUnit.currentPosition.bottomLeftCorner.position.x, attackingUnit.currentPosition.bottomLeftCorner.position.z, targetPosition.x, targetPosition.z); } else { attackingUnit.Attack(target); } }