Example #1
0
        public bool LateUpdate(StatusObject _status)
        {
            if (_status == null || ActiveBehaviourMode == null || ActiveBehaviourModeRule == null)
            {
                return(false);
            }

            m_ActiveBehaviourMode.Update();

            if (m_BehaviourModeRuleTimer >= m_BehaviourModeRuleLength)
            {
                if (m_ActiveBehaviourMode.Rule != null && m_ActiveBehaviourMode.Rule.HasModeLink)
                {
                    SetBehaviourModeByKey(ActiveBehaviourMode.Rule.Link.BehaviourModeKey);
                }
                else if (ActiveBehaviourMode.ValidRules.Count > 1)
                {
                    NextBehaviorModeRule();
                }
            }

            BehaviourAnimation.Update(ActiveBehaviourModeRule.Animation);

            ActiveBehaviourModeRule.Inventory.Update(_status.Inventory);

            return(true);
        }
        //--------------------------------------------------
        // Update
        //--------------------------------------------------
        public void UpdateBegin()
        {
            m_BehaviourModeChanged      = false;
            m_BehaviourModeRulesChanged = false;
            m_BehaviourModeRuleChanged  = false;

            m_BehaviourTimer         += Time.deltaTime;
            m_BehaviourModeRuleTimer += Time.deltaTime;

            if (m_BehaviourModeRuleLength > 0 && m_BehaviourModeRuleTimer >= m_BehaviourModeRuleLength)
            {
                if (ActiveBehaviourModeRuleHasModeLink)
                {
                    SetBehaviourModeByKey(m_ActiveBehaviourMode.Rule.Links.BehaviourModeKey);
                }
                else
                {
                    NextBehaviorModeRule();
                }
            }

            BehaviourAnimation.Update();
        }