From 9d8916dc100f9384603531037b209ee0bbd8513b Mon Sep 17 00:00:00 2001 From: Arthur Ribeiro Date: Thu, 7 Apr 2022 16:28:16 -0300 Subject: [PATCH] Air Strike logic --- .../Resources/PhotonServerSettings.asset | 1 + Assets/Resources/Tank.prefab | 2 ++ .../Scripts/Gameplay/Shell/ShellExplosion.cs | 2 +- Assets/Scripts/Gameplay/Tank/TankShooting.cs | 21 +++++++++++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/Assets/Photon/PhotonUnityNetworking/Resources/PhotonServerSettings.asset b/Assets/Photon/PhotonUnityNetworking/Resources/PhotonServerSettings.asset index beea698..dc14991 100644 --- a/Assets/Photon/PhotonUnityNetworking/Resources/PhotonServerSettings.asset +++ b/Assets/Photon/PhotonUnityNetworking/Resources/PhotonServerSettings.asset @@ -41,6 +41,7 @@ MonoBehaviour: - RespawnSpaceship - OnHit - Turbo + - FireAirStrike - FireMissile DisableAutoOpenWizard: 1 ShowSettings: 0 diff --git a/Assets/Resources/Tank.prefab b/Assets/Resources/Tank.prefab index c6b9a06..04ed335 100644 --- a/Assets/Resources/Tank.prefab +++ b/Assets/Resources/Tank.prefab @@ -10636,6 +10636,8 @@ MonoBehaviour: minLaunchForce: 15 maxLaunchForce: 30 maxChargeTime: 0.75 + airStrikePrefab: {fileID: 2991024517168967846, guid: e4b7615eab6f72d4ca3240068173613a, + type: 3} homingMissileInstantiateOffset: 4 --- !u!114 &-6562457786973999149 MonoBehaviour: diff --git a/Assets/Scripts/Gameplay/Shell/ShellExplosion.cs b/Assets/Scripts/Gameplay/Shell/ShellExplosion.cs index 50ae864..89ef27b 100644 --- a/Assets/Scripts/Gameplay/Shell/ShellExplosion.cs +++ b/Assets/Scripts/Gameplay/Shell/ShellExplosion.cs @@ -31,7 +31,7 @@ private void OnTriggerEnter(Collider other) PhotonNetwork.Destroy(photonView); } else - Destroy(gameObject); + Destroy(transform.parent == null ? gameObject : transform.parent.gameObject); } public void PlayExplosionEffect() diff --git a/Assets/Scripts/Gameplay/Tank/TankShooting.cs b/Assets/Scripts/Gameplay/Tank/TankShooting.cs index 57bc305..eb385e4 100644 --- a/Assets/Scripts/Gameplay/Tank/TankShooting.cs +++ b/Assets/Scripts/Gameplay/Tank/TankShooting.cs @@ -8,6 +8,7 @@ public class TankShooting : MonoBehaviour { private const string FIRE_BUTTON = "Fire1"; private const string HOMING_MISSILE_BUTTON = "Fire2"; + private const string AIR_STRIKE_BUTTON = "Fire3"; public Rigidbody shell; public Transform fireTransform; @@ -19,6 +20,8 @@ public class TankShooting : MonoBehaviour public float maxLaunchForce = 30f; public float maxChargeTime = 0.75f; + public GameObject airStrikePrefab; + public float homingMissileInstantiateOffset = 4; private PhotonView photonView; @@ -45,6 +48,7 @@ private void Update() TryFireMissile(); TryFireHomingMissile(); + TryFireAirStrike(); } private void TryFireHomingMissile() @@ -84,6 +88,14 @@ private bool GetClickPosition(out Vector3 clickPos) return gotHit; } + private void TryFireAirStrike() + { + if (!Input.GetButtonDown(AIR_STRIKE_BUTTON)) return; + if (!GetClickPosition(out var clickPos)) return; + + photonView.RPC("FireAirStrike", RpcTarget.All, clickPos + Vector3.up * .001f); + } + private void TryFireMissile() { aimSlider.value = minLaunchForce; @@ -136,5 +148,14 @@ private void FireMissile(Vector3 position, Quaternion rotation, Vector3 velocity shootingAudio.clip = fireClip; shootingAudio.Play(); } + + [PunRPC] + private void FireAirStrike(Vector3 position) + { + Instantiate(airStrikePrefab, position, Quaternion.identity); + + shootingAudio.clip = fireClip; + shootingAudio.Play(); + } } }