public virtual void OnCollideWithShield(CharacterShield shield) { if (shield.Owner == Caster && Distance < 10) { return; } var effectDirection = transform.rotation * Vector3.forward; var shieldDirection = shield.transform.rotation * Vector3.forward; var reflect = Vector3.Reflect(effectDirection, shieldDirection); transform.rotation = Quaternion.FromToRotation(effectDirection, reflect); }
private void OnCollisionEnter(Collision collision) { if (collision.collider.gameObject.tag == "Asteroid") { // Make parent object (main) be pushed. // Main obj GameObject mainChar = _parentCharacter.GetComponent <WarpClone>().GetMainObject(); // Now get the shield script. CharacterShield cs = mainChar.GetComponentInChildren <CharacterShield>(); // Apply asteroid collision on main ship object. cs.OnAsteroidCollision(collision, gameObject); } }
private void GetStats() { if (playerHandler != null) { if (playerHandler.kartInstance != null) { shield = playerHandler.kartInstance.GetComponent<CharacterShield>(); health = playerHandler.kartInstance.GetComponent<CharacterHealth>(); ammo = playerHandler.kartInstance.GetComponent<CharacterAmmo>(); } killsText.text = "K : " + playerHandler.kills; deathsText.text = "D : " + playerHandler.deaths; } else LookForPlayerHandler(); }
private void GetStats() { if (playerHandler != null) { if (playerHandler.kartInstance != null) { shield = playerHandler.kartInstance.GetComponent <CharacterShield>(); health = playerHandler.kartInstance.GetComponent <CharacterHealth>(); ammo = playerHandler.kartInstance.GetComponent <CharacterAmmo>(); } killsText.text = "K : " + playerHandler.kills; deathsText.text = "D : " + playerHandler.deaths; } else { LookForPlayerHandler(); } }
public void Setup() { // Get references to the components. Movement = Instance.GetComponent <CharacterMovement>(); Shooting = Instance.GetComponent <CharacterShooting>(); Health = Instance.GetComponent <CharacterHealth>(); CharacterBehaviour = Instance.GetComponent <CharacterBehaviour>(); CharacterShield = Instance.GetComponent <CharacterShield>(); CharacterSetup = Instance.GetComponent <CharacterSetup>(); Movement.OnDestroyOject += () => { Instance = null; Movement = null; Shooting = null; Health = null; CharacterBehaviour = null; CharacterShield = null; CharacterSetup = null; GameManager.Characters.Remove(this); }; // Get references to the child objects. CharacterRenderers = Health.CharacterRenderers; //Set a reference to that amanger in the health script, to disable control when dying Health.Manager = this; // Set the player numbers to be consistent across the scripts. Movement.PlayerNumber = PlayerNumber; Movement.LocalID = LocalPlayerID; Shooting.PlayerNumber = PlayerNumber; Shooting.localID = LocalPlayerID; //setup is use for diverse Network Related sync CharacterSetup.Color = PlayerColor; CharacterSetup.PlayerName = PlayerName; CharacterSetup.PlayerNumber = PlayerNumber; CharacterSetup.LocalId = LocalPlayerID; CharacterShield.PlayerNumber = PlayerNumber; CharacterShield._character = CharacterBehaviour; }
protected void Start() { _shield = GetComponent <CharacterShield>(); _shield.SetShieldAvailable(true); }