public virtual void FireEvent(BaseEvent evt, MPEventDispatchMode mode = 0) { if (!this._isStopped && ((this._maskedEvtTypes.Count <= 0) || !this._maskedEvtTypes.Contains(evt.GetType()))) { evt.parent = this._curParentEvt; this._queuedEvents.Add(evt); } }
public override void FireEvent(BaseEvent evt, MPEventDispatchMode mode) { evt.remoteState = (mode != MPEventDispatchMode.CheckRemoteMode) ? EventRemoteState.Idle : EventRemoteState.NeedCheckForRemote; if (mode == MPEventDispatchMode.CheckRemoteMode) { evt.fromPeerID = Singleton <MPManager> .Instance.peerID; } base.FireEvent(evt, mode); }
public static void SendHitEvent(uint attackerID, uint beHitID, string attackName, AttackResult.HitCollsion hitCollision, AttackData attackData, bool forceSkipAttackerResolve = false, MPEventDispatchMode mode = 0) { if (forceSkipAttackerResolve || Singleton <LevelManager> .Instance.gameMode.ShouldAttackPatternSendBeingHit(beHitID)) { EvtBeingHit evt = new EvtBeingHit { targetID = beHitID, sourceID = attackerID, animEventID = attackName }; if (attackData != null) { if (attackData.hitCollision == null) { attackData.hitCollision = hitCollision; } evt.attackData = attackData; } else { evt.attackData = DamageModelLogic.CreateAttackDataFromAttackerAnimEvent(Singleton <EventManager> .Instance.GetActor(attackerID), attackName); evt.attackData.resolveStep = AttackData.AttackDataStep.AttackerResolved; evt.attackData.hitCollision = hitCollision; } Singleton <EventManager> .Instance.FireEvent(evt, mode); } else { EvtHittingOther other = new EvtHittingOther { hitCollision = hitCollision, targetID = attackerID, toID = beHitID, animEventID = attackName }; if (attackData != null) { if (attackData.hitCollision == null) { attackData.hitCollision = hitCollision; } other.attackData = attackData; } else { other.hitCollision = hitCollision; } Singleton <EventManager> .Instance.FireEvent(other, mode); } }