void Start() { characters = new List <GameObject>(); characters.Add(GameState.P1); characters.Add(GameState.P2); damages.Add(damage1); damages.Add(damage2); damage1.text = 0.ToString() + "%"; damage2.text = 0.ToString() + "%"; foreach (GameObject character in characters) { DamageResolver dmgResolver = character.GetComponent <DamageResolver>(); if (dmgResolver != null) { dmgResolver.DoDamage += HandleApplyDamage; } } }
void RespawnCharacter(GameObject go, GameObject respawnPoint, int damageResetPos, int playerNumber) { GameObject p = Instantiate(go, respawnPoint.transform.position, Quaternion.Euler(0, 0, 0)); CharacterController characterController = p.GetComponent <CharacterController>(); if (characterController != null) { characterController.enabled = true; } AICharacterController aiCharacterController = p.GetComponent <AICharacterController>(); if (playerNumber == 1) { p.tag = "Player"; if (aiCharacterController != null) { Destroy(aiCharacterController); } } else { p.tag = "AI"; aiCharacterController.enabled = true; } Animator animator = p.GetComponent <Animator>(); animator.enabled = true; p.transform.position = new Vector3(transform.position.x, transform.position.y, -1); battleController.ResetDamageAtPosition(damageResetPos); DamageResolver dmgResolver = p.GetComponent <DamageResolver>(); if (dmgResolver != null) { dmgResolver.DoDamage += battleController.HandleApplyDamage; } }
public void ResetDamageAtPosition(int pos) { damages[pos].color = Color.white; damages[pos].text = 0.ToString() + "%"; if (pos == 0) { characters[pos] = GameObject.Find(GameState.P1_Character.ToString()); } else if (pos == 1) { characters[pos] = GameObject.Find(GameState.P2_Character.ToString()); } if (characters[pos] != null) { DamageResolver dmgResolver = characters[pos].GetComponent <DamageResolver>(); if (dmgResolver != null) { dmgResolver.DoDamage += HandleApplyDamage; } } }