Exemple #1
0
 public void AttemptTrigger(SpeechTriggerConfig trigger)
 {
     if (trigger != null && m_Unit.IsIdentified)
     {
         TriggerDelayed(trigger.GetSpeech(), trigger.Delay.Value());
     }
 }
Exemple #2
0
    void SetUnit(Unit _m_Unit)
    {
        m_Unit = _m_Unit;

        Unit.OnUnitKilled              += CheckKilled;
        Unit.OnUnitSelect              += CheckSelected;
        Unit.OnTurnStart               += CheckStart;
        m_Unit.OnIdentify              += Identify;
        m_Unit.OnDamageReceived        += DmgReceived;
        m_Unit.Actions.OnActionStarted += ActionStarted;

        m_Unit.GetComponent <Unit_EffectManager>().OnEffectAdded += ReceivedEffect;

        rush = gameObject.AddComponent <UI_AdrenalineRushBase>();
        rush.Init(m_Unit.Stats);
        rush.EnableDelay = 3f;

        if (Config.GainAdrRush != null)
        {
            rush.OnRushGain += () => { AttemptTrigger(Config.GainAdrRush); }
        }
        ;

        if (TurnSystem.Instance != null)
        {
            TurnSystem.Instance.OnGlobalTurn += ResetCounter;
        }
    }

    void ResetCounter(int c)
    {
        selectCounter = 0;
    }

    void Identify(Unit triggerer)
    {
        if (triggerer != null)
        {
            AttemptTrigger(Config.Identify);
        }
    }

    void ActionStarted(UnitActionBase action)
    {
        if (Config.UseAbility != null)
        {
            AttemptTrigger(Config.UseAbility, action.ActionID);
        }
    }

    void DmgReceived(UnitEffect_Damage dmg)
    {
        if (dmg.GetDamage() < m_Unit.Stats.GetStatAmount(StatType.oxygen))
        {
            SpeechTriggerConfig trigger = dmg.GetDamage() > 3 ? Config.ReceiveDamageBig : Config.ReceiveDamageSmall;

            if (trigger != null)
            {
                AttemptTrigger(trigger);
            }
        }
    }

    void ReceivedEffect(UnitEffect effect)
    {
        if (Config.ReceiveEffect != null)
        {
            AttemptTrigger(Config.ReceiveEffect, effect.Unique_ID);
        }
    }

    void CheckKilled(Unit u)
    {
        if (u == m_Unit)
        {
            if (Config.Died != null)
            {
                AttemptTrigger(Config.Died);
            }

            Unit.OnUnitKilled -= CheckKilled;
        }
    }

    void CheckStart(Unit u)
    {
        if (u == m_Unit)
        {
            AttemptTrigger(Config.Turn);
        }
    }

    void CheckSelected(Unit u)
    {
        if (u == m_Unit)
        {
            selectCounter++;

            if (selectCounter == 4)
            {
                if (Config.Selected != null)
                {
                    AttemptTrigger(Config.Selected);
                }
            }
        }
    }