public void SendCommandToHit(Unit source, IDamageable target, int damage = -1) { Damage _damage = new Damage(damage, true); if (damage == -1) { _damage = DamageCalculator.CalculateDamage(source, target); } if (Global.instance.matchType == MatchTypes.Online) { int targetX = Mathf.RoundToInt(target.GetMyPosition().x); int targetZ = Mathf.RoundToInt(target.GetMyPosition().z); photonView.RPC ("RPCHitTarget", RpcTarget.All, source.currentPosition.bottomLeftCorner.position.x, source.currentPosition.bottomLeftCorner.position.z, targetX, targetZ, _damage.baseDamage, _damage.isHit); } else { source.HitTarget(target, _damage); } }
void RPCHitTarget(int sourceX, int sourceZ, int targetX, int targetZ, int damage, bool isHit) { Unit source = Global.instance.currentMap.board[sourceX, sourceZ].GetMyObject <Unit>(); IDamageable target = Global.instance.currentMap.board[targetX, targetZ].GetMyDamagableObject(); Damage _damage = new Damage(damage, isHit); source.HitTarget(target, _damage); }