using System; using UnityEngine; using System.Collections; /// /// This class contains the information of the Vampire Units. /// public class VampireSquad : Squad { // Use this for initialization void Start () { InitializeSquad(); InitializeDefaultTag(); // initialize default hp //Hp = defaultHp; // initialize default attack Attack = defaultAttack; // initialize default team // initialize default specie IsDead = false; } // Update is called once per frame void Update () { if (IsDead) { // TODO play dead animation before destroying unit DestroyUnit(); } } private void InitializeDefaultTag() { try { this.Tag = TagManager.VampirePlayer; // set the tag to player 1 } catch (IndexOutOfRangeException ex) { Debug.LogError( "Please set a vampire Tag, check the Tag & layers in the inspector!\n" + ex ); } // set the tag of the gameObject to vampire if (this.gameObject.tag != Tag) { this.gameObject.tag = Tag; } } /*void CaptureHuman(Unit unit) { // TODO either add the human as a squad member or change it's tag to vampireHuman // when the player is transformed we just make VampireSquad vampireUnit2 = (VampireSquad) unit; Debug.Log("Entered in collision with: " + unit.Tag ); }*/ /* void AttackEnemySquad(Unit unit) { //TODO improve this method to compute the reduce of hp, etc... // compute the amount of hp reduced to this unit unit.Hp -= Attack; // we remove some hp of the unit that was Debug.Log("Attacked the ennemy : " + unit.Tag); }*/ void OnTriggerEnter(Collider collider) { //var objectTag = collider.gameObject; // check if the game object have an attached Unit class //switch(objectTag.GetType()) var unitComponent = collider.GetComponent(); if (unitComponent == null) return; // check if the unit is not a friendly one if (this.Tag == unitComponent.Tag) return; if (unitComponent.Tag.Equals(TagManager.Human)) { if (unitComponent.IsCaptured) { return; } else { CaptureHuman(unitComponent); } } else // we know that it's an ennemy { try { AttackEnemySquad(unitComponent as Squad); } catch (InvalidCastException exception) { Debug.LogError(exception.ToString()); //throw; } } } }