public Coroutine Deposess() { AITarget target = controlledMovement.GetComponent <AITarget>(); if (target != null) { target.ResetAlignmentFrom(Alignment.Player); } ResetDefaultWeapons(InventoryManager.playerInventory, InventoryManager.bodyInventory); controlledMovement.CurrentController = disabledController; Possess(GetComponent <Movement>()); return(spiritMovement.Depossess()); }
private IEnumerator MarkRoutine() { AITarget target = GetComponent <AITarget>(); if (target == null) { yield break; } target.alignment = Alignment.Wildcard; // TODO - Flashing particle effect while (duration > 0) { duration -= Time.deltaTime; Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position, radius); for (int i = 0; i < colliders.Length; ++i) { AIController controller = colliders[i].GetComponent <AIController>(); if (controller != null && controller.gameObject != gameObject) { controller.SetTarget(target); } } yield return(null); } if (target.attackingEnemies.Count == 0) { target.ResetAlignmentFrom(Alignment.Wildcard); } // TODO - Destroy flashing effect Destroy(this); }