Esempio n. 1
0
    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());
    }
Esempio n. 2
0
    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);
    }