Пример #1
0
    public void SetWSProperty(E_PropKey key, E_EventTypes value)
    {
        int index = (int)key;

        if (m_PropState[index] != null)
        {
            WorldStatePropFactory.Return(m_PropState[index]);
        }

        m_PropState[index] = WorldStatePropFactory.Create(key, value);
        m_PropBitSet.Set(index, true);         // set info that key is set
    }
Пример #2
0
    static public WorldStateProp Create(E_PropKey key, E_EventTypes eventType)
    {
        WorldStateProp p = null;

        if (m_UnusedProps.Count > 0)
        {
            p           = m_UnusedProps.Dequeue();
            p.PropValue = new ValueEvent(eventType);
            p.PropType  = E_PropType.E_EVENT;
        }
        else
        {
            p = new WorldStateProp(eventType);
        }

        p.Time    = UnityEngine.Time.timeSinceLevelLoad;
        p.PropKey = key;
        return(p);
    }
Пример #3
0
    public override void Update()
    {
        E_EventTypes eventType = Owner.WorldState.GetWSProperty(E_PropKey.E_EVENT).GetEvent();

        if (eventType == E_EventTypes.HitBlocked)
        {
            ActionInjuryBlocked                = AgentActionFactory.Create(AgentActionFactory.E_Type.E_DAMAGE_BLOCKED) as AgentActionDamageBlocked;
            ActionInjuryBlocked.Attacker       = Owner.BlackBoard.Attacker;
            ActionInjuryBlocked.AttackerWeapon = Owner.BlackBoard.AttackerWeapon;
            ActionInjuryBlocked.BreakBlock     = Owner.BlackBoard.DamageType == E_DamageType.BreakBlock;


            Owner.BlackBoard.ActionAdd(ActionInjuryBlocked);
            Owner.WorldState.SetWSProperty(E_PropKey.E_EVENT, E_EventTypes.None);
        }

        if (ActionInjuryBlocked != null && ActionInjuryBlocked.IsActive() == false)
        {
            //AgentActionFactory.Return(ActionInjuryBlocked);
            ActionInjuryBlocked = null;
        }
    }
Пример #4
0
 public WorldStateProp(E_EventTypes eventType)
 {
     PropValue = new ValueEvent(eventType); PropType = E_PropType.E_EVENT;
 }
Пример #5
0
 public ValueEvent(E_EventTypes eventType)
 {
     Event = eventType;
 }