示例#1
0
    public void Act(bool automatic = true)
    {
        var cooldown = IsInCooldown;

        m_model.Animators.ForEach(a => a.SetBool("Cooldown", cooldown));
        UpdateCooldownProgressBar();

        if (automatic != m_model.Automatic)
        {
            return;
        }

        if (IsInCooldown)
        {
            return;
        }

        var charactersInTrap = GameSingleton.Instance.GetCharactersAt(m_activationPositions).ToList();

        if (automatic && charactersInTrap.Count == 0)
        {
            return;
        }

        foreach (var characterBehaviour in charactersInTrap)
        {
            m_model.Activate(characterBehaviour, Evolved, Position, characterBehaviour.PositionInt);
        }

        m_model.Animators.ForEach(a => a.SetTrigger("TriggerTrap"));
        m_nextActivation = Time.realtimeSinceStartup + m_model.Cooldown;
    }