/* * Alert */ protected virtual void OnTriggerExit2D(Collider2D collider) { ISpirit colliderAgent = collider.GetComponent <Spirit>(); if (colliderAgent != null) { if (colliderAgent.GetAffinity() == spirit.GetAffinity()) { presentAllyList.Remove(colliderAgent); // Debug.Log(presentAllyList.Count); if (colliderAgent == primeAlly) { FindPrimeAlly(); } } else { presentAdversaryList.Remove(colliderAgent); // Debug.Log(presentAdversaryList.Count); if (colliderAgent == primeAdversary) { FindPrimeAdversary(); } } } }
protected virtual void Start() { presentAllyList = new List <ISpirit>(); presentAdversaryList = new List <ISpirit>(); primeAlly = null; primeAdversary = null; }
/** * Returns prime present ally circle agent or null if none. */ protected virtual void FindPrimeAlly() { if (presentAllyList.Count > 0) { primeAlly = presentAllyList[0]; } else { primeAlly = null; } }
public float baseDamage; // set in inspector public override void Actuate(IActivator activator, Dictionary <object, object> argumentDictionary = null) { CompleteBody completeBodyActivator = (CompleteBody)activator; Vector2 headPosition = completeBodyActivator.transform.TransformPoint(completeBodyActivator.headPosition); // PrefabReferences.prefabReferences.bullet.SetActive(false); // done in inspector/editor now // https://answers.unity.com/questions/636079/assign-exposed-vars-before-instantianting-prefab.html GameObject projectileGameObject = Instantiate(PrefabReferences.prefabReferences.bullet, headPosition, completeBodyActivator.transform.rotation); ISpirit spirit = projectileGameObject.GetComponent <Spirit>(); spirit.SetAffinity(completeBodyActivator.GetAffinity()); Projectile projectile = projectileGameObject.GetComponent <Projectile>(); projectile.completeBodyActivator = completeBodyActivator; projectile.timeout = projectileTimeout; projectile.initialVelocity = initialVelocity; projectile.baseDamage = baseDamage; projectileGameObject.SetActive(true); projectileGameObject.GetComponent <Rigidbody2D>().velocity = projectileGameObject.transform.TransformDirection(new Vector2(0, projectile.initialVelocity)); projectileGameObject.GetComponent <Collider2D>().enabled = true; }
protected virtual void Awake() { spirit = GetComponent <Spirit>(); }
public void SplashWater(ISpirit enemy) { enemy.Douse("Holy Water"); // Kills with holy water }