public override void TriggerLeave(PoolObjHandle <ActorRoot> src, ITrigger inTrigger) { GameObject inSrc = src ? src.handle.gameObject : null; GameObject inAtker = (inTrigger != null) ? inTrigger.GetTriggerObj() : null; this.PlayAgeActionPrivate(AreaEventTrigger.EActTiming.Leave, inSrc, inAtker); AreaEventTrigger areaEventTrigger = inTrigger as AreaEventTrigger; if (areaEventTrigger != null) { RefParamOperator refParamOperator = areaEventTrigger._inActors.get_Item(src.handle.ObjID).refParams[this]; if (refParamOperator != null) { ListView <Action> refParamObject = refParamOperator.GetRefParamObject <ListView <Action> >("TriggerActionAgeEnterDura"); if (refParamObject != null) { ListView <Action> .Enumerator enumerator = refParamObject.GetEnumerator(); while (enumerator.MoveNext()) { enumerator.Current.Stop(false); } } } } int num = this.RefObjList.Length; if (num > 0) { for (int i = 0; i < num; i++) { this.PlayAgeActionPrivate(AreaEventTrigger.EActTiming.Leave, this.RefObjList[i], this.RefObjList[i]); } } }
public override void TriggerLeave(PoolObjHandle <ActorRoot> src, ITrigger inTrigger) { GameObject inSrc = (src == 0) ? null : src.handle.gameObject; GameObject inAtker = (inTrigger == null) ? null : inTrigger.GetTriggerObj(); this.PlayAgeActionPrivate(AreaEventTrigger.EActTiming.Leave, inSrc, inAtker); AreaEventTrigger trigger = inTrigger as AreaEventTrigger; if (trigger != null) { AreaEventTrigger.STriggerContext context = trigger._inActors[src.handle.ObjID]; RefParamOperator @operator = context.refParams[this]; if (@operator != null) { ListView <AGE.Action> refParamObject = @operator.GetRefParamObject <ListView <AGE.Action> >("TriggerActionAgeEnterDura"); if (refParamObject != null) { ListView <AGE.Action> .Enumerator enumerator = refParamObject.GetEnumerator(); while (enumerator.MoveNext()) { enumerator.Current.Stop(false); } } } } }
public void SendEvent(TriggerEventDef eventDef, AreaEventTrigger sourceTrigger, object param) { switch (eventDef) { case TriggerEventDef.ActorInside: if (this.OnActorInside != null) { this.OnActorInside(sourceTrigger, param); } break; case TriggerEventDef.ActorEnter: if (this.OnActorEnter != null) { this.OnActorEnter(sourceTrigger, param); } break; case TriggerEventDef.ActorLeave: if (this.OnActorLeave != null) { this.OnActorLeave(sourceTrigger, param); } break; } }
public override void TriggerLeave(PoolObjHandle <ActorRoot> src, ITrigger inTrigger) { GameObject inSrc = (!src) ? null : src.get_handle().gameObject; GameObject inAtker = (inTrigger == null) ? null : inTrigger.GetTriggerObj(); this.PlayAgeActionPrivate(AreaEventTrigger.EActTiming.Leave, inSrc, inAtker); AreaEventTrigger areaEventTrigger = inTrigger as AreaEventTrigger; if (areaEventTrigger != null) { RefParamOperator refParamOperator = areaEventTrigger._inActors.get_Item(src.get_handle().ObjID).refParams.get_Item(this); if (refParamOperator != null) { ListView <Action> refParamObject = refParamOperator.GetRefParamObject <ListView <Action> >("TriggerActionAgeEnterDura"); if (refParamObject != null) { ListView <Action> .Enumerator enumerator = refParamObject.GetEnumerator(); while (enumerator.MoveNext()) { enumerator.get_Current().Stop(false); } } } } }
private void OnActorEnter(AreaEventTrigger sourceTrigger, object param) { ActorRoot actorRoot = param as ActorRoot; if (actorRoot != null && sourceTrigger != null && sourceTrigger.ID == this.targetTriggerID && actorRoot.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Monster && actorRoot.TheActorMeta.ConfigId == this.targetMonsterID) { this.TriggerCount++; this.CheckResult(); } }
public override void TriggerLeave(PoolObjHandle <ActorRoot> src, ITrigger inTrigger) { int leaveUniqueId = base.LeaveUniqueId; if (leaveUniqueId > 0) { new BufConsumer(leaveUniqueId, src, new PoolObjHandle <ActorRoot>(null)).Use(); } int enterUniqueId = base.EnterUniqueId; if ((base.bStopWhenLeaving && (enterUniqueId > 0)) && (inTrigger != null)) { AreaEventTrigger trigger = inTrigger as AreaEventTrigger; if (trigger != null) { AreaEventTrigger.STriggerContext context = trigger._inActors[src.handle.ObjID]; RefParamOperator @operator = context.refParams[this]; if (@operator != null) { ListView <string> view = new ListView <string>(); GameObject[] refObjList = base.RefObjList; if (refObjList != null) { int length = refObjList.Length; for (int i = 0; i < length; i++) { view.Add(string.Format("TriggerActionBuffTar_{0}", i)); } } if (base.bSrc) { view.Add("TriggerActionBuffSrc"); } if (base.bAtker) { view.Add("TriggerActionBuffAtker"); } ListView <string> .Enumerator enumerator = view.GetEnumerator(); while (enumerator.MoveNext()) { string current = enumerator.Current; if (!string.IsNullOrEmpty(current)) { BuffFense refParamObject = @operator.GetRefParamObject <BuffFense>(current); if (refParamObject != null) { refParamObject.Stop(); } } } } } } }
public override void TriggerLeave(PoolObjHandle <ActorRoot> src, ITrigger inTrigger) { int leaveUniqueId = this.LeaveUniqueId; if (leaveUniqueId > 0) { BufConsumer bufConsumer = new BufConsumer(leaveUniqueId, src, new PoolObjHandle <ActorRoot>(null)); bufConsumer.Use(); } int enterUniqueId = this.EnterUniqueId; if (this.bStopWhenLeaving && enterUniqueId > 0 && inTrigger != null) { AreaEventTrigger areaEventTrigger = inTrigger as AreaEventTrigger; if (areaEventTrigger != null) { RefParamOperator refParamOperator = areaEventTrigger._inActors.get_Item(src.handle.ObjID).refParams[this]; if (refParamOperator != null) { ListView <string> listView = new ListView <string>(); GameObject[] refObjList = this.RefObjList; if (refObjList != null) { int num = refObjList.Length; for (int i = 0; i < num; i++) { listView.Add(string.Format("TriggerActionBuffTar_{0}", i)); } } if (this.bSrc) { listView.Add("TriggerActionBuffSrc"); } if (this.bAtker) { listView.Add("TriggerActionBuffAtker"); } ListView <string> .Enumerator enumerator = listView.GetEnumerator(); while (enumerator.MoveNext()) { string current = enumerator.Current; if (!string.IsNullOrEmpty(current)) { BuffFense refParamObject = refParamOperator.GetRefParamObject <BuffFense>(current); if (refParamObject != null) { refParamObject.Stop(); } } } } } } }
private void onActorInside(AreaEventTrigger sourceTrigger, object param) { if (sourceTrigger.Mark == this.TargetArea) { if ((this.SubjectType == RES_BATTLE_TASK_SUBJECT.CAMP) && sourceTrigger.HasActorInside(new Func <PoolObjHandle <ActorRoot>, bool>(this, (IntPtr)this.< onActorInside > m__B))) { base.Current += (int)param; } else if ((this.SubjectType == RES_BATTLE_TASK_SUBJECT.ORGAN) && sourceTrigger.HasActorInside(new Func <PoolObjHandle <ActorRoot>, bool>(this, (IntPtr)this.< onActorInside > m__C))) { base.Current += (int)param; } }
private void onActorInside(AreaEventTrigger sourceTrigger, object param) { if (sourceTrigger.Mark == this.TargetArea) { if (this.SubjectType == RES_BATTLE_TASK_SUBJECT.CAMP && sourceTrigger.HasActorInside((PoolObjHandle <ActorRoot> enr) => enr.handle.TheActorMeta.ActorCamp == (COM_PLAYERCAMP)this.SourceSubj)) { base.Current += (int)param; } else if (this.SubjectType == RES_BATTLE_TASK_SUBJECT.ORGAN && sourceTrigger.HasActorInside((PoolObjHandle <ActorRoot> enr) => enr.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Organ && enr.handle.TheActorMeta.ConfigId == this.SourceSubj)) { base.Current += (int)param; } } }
private void onActorInside(AreaEventTrigger sourceTrigger, object param) { if (sourceTrigger.Mark == this.TargetArea) { if (this.SubjectType == null && sourceTrigger.HasActorInside((PoolObjHandle <ActorRoot> enr) => enr.get_handle().TheActorMeta.ActorCamp == this.SourceSubj)) { base.Current += (int)param; } else if (this.SubjectType == 1 && sourceTrigger.HasActorInside((PoolObjHandle <ActorRoot> enr) => enr.get_handle().TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Organ && enr.get_handle().TheActorMeta.ConfigId == this.SourceSubj)) { base.Current += (int)param; } } }
private void onActorInside(AreaEventTrigger sourceTrigger, object param) { if (sourceTrigger.Mark == this.TargetArea) { if ((this.SubjectType == RES_BATTLE_TASK_SUBJECT.CAMP) && sourceTrigger.HasActorInside((Func <PoolObjHandle <ActorRoot>, bool>)(enr => (enr.handle.TheActorMeta.ActorCamp == this.SourceSubj)))) { base.Current += (int)param; } else if ((this.SubjectType == RES_BATTLE_TASK_SUBJECT.ORGAN) && sourceTrigger.HasActorInside((Func <PoolObjHandle <ActorRoot>, bool>)(enr => ((enr.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Organ) && (enr.handle.TheActorMeta.ConfigId == this.SourceSubj))))) { base.Current += (int)param; } } }
public void BeginCollidedActorList(PoolObjHandle<ActorRoot> InActor, VCollisionShape collisionShape, bool bFilterEnemy, bool bFilterAlly, AreaEventTrigger InTriggerRef) { this.collidedActors.Clear(); if (collisionShape != null) { this._coordActor = InActor; this._coordShape = collisionShape; this._coordFilterEnemy = bFilterEnemy; this._coordFilterAlly = bFilterAlly; this._coordTriggerRef = InTriggerRef; SceneManagement instance = Singleton<SceneManagement>.GetInstance(); SceneManagement.Coordinate coord = new SceneManagement.Coordinate(); instance.GetCoord(ref coord, collisionShape); instance.UpdateDirtyNodes(); instance.ForeachActors(coord, this._coordHandler); this._coordShape = null; this._coordTriggerRef = null; } }
private void BuildInternalWrappers() { if (this.PresetActWrapper != null) { this.m_internalActList = AreaEventTrigger.AddElement <TriggerActionWrapper>(this.m_internalActList, this.PresetActWrapper); } if (this.TriggerActions.Length > 0) { this.m_internalActList = AreaEventTrigger.AppendElements <TriggerActionWrapper>(this.m_internalActList, this.TriggerActions); } TriggerActionWrapper[] internalActList = this.m_internalActList; for (int i = 0; i < internalActList.Length; i++) { TriggerActionWrapper triggerActionWrapper = internalActList[i]; if (triggerActionWrapper != null && triggerActionWrapper.GetActionInternal() == null) { triggerActionWrapper.Init(this.ID); } } }
private void ModifyHorizonMarks(PoolObjHandle <ActorRoot> src, ITrigger inTrigger, bool enterOrLeave) { if (src) { int num = enterOrLeave ? 1 : -1; AreaEventTrigger areaEventTrigger = inTrigger as AreaEventTrigger; List <PoolObjHandle <ActorRoot> > actors = areaEventTrigger.GetActors((PoolObjHandle <ActorRoot> enr) => enr.handle.TheActorMeta.ActorCamp != src.handle.TheActorMeta.ActorCamp); for (int i = 0; i < actors.get_Count(); i++) { PoolObjHandle <ActorRoot> poolObjHandle = actors.get_Item(i); poolObjHandle.handle.HorizonMarker.AddShowMark(src.handle.TheActorMeta.ActorCamp, HorizonConfig.ShowMark.Jungle, num * 1); src.handle.HorizonMarker.AddShowMark(poolObjHandle.handle.TheActorMeta.ActorCamp, HorizonConfig.ShowMark.Jungle, num * 1); } COM_PLAYERCAMP[] othersCmp = BattleLogic.GetOthersCmp(src.handle.TheActorMeta.ActorCamp); for (int j = 0; j < othersCmp.Length; j++) { src.handle.HorizonMarker.AddHideMark(othersCmp[j], HorizonConfig.HideMark.Jungle, num * 1, false); } } }
private void OnActorLeave(AreaEventTrigger sourceTrigger, object param) { }
private void Start() { FuncRegion[] componentsInChildren = base.GetComponentsInChildren <FuncRegion>(true); for (int i = 0; i < componentsInChildren.Length; i++) { FuncRegion funcRegion = componentsInChildren[i]; if (!(funcRegion == null)) { if (funcRegion.enabled && funcRegion.gameObject.activeInHierarchy && funcRegion.gameObject.activeSelf) { if (funcRegion is ReviveRegion) { this.reviveAreas.Add(funcRegion as ReviveRegion); } else if (funcRegion is SoldierRegion) { this.soldierAreas.Add(funcRegion as SoldierRegion); } else if (funcRegion is CommonSpawnGroup) { this.commonSpawnGroups.Add(funcRegion as CommonSpawnGroup); } else if (funcRegion is SpawnGroup) { this.spawnGroups.Add(funcRegion as SpawnGroup); } else if (funcRegion is WaypointsHolder) { this.waypointsList.Add(funcRegion as WaypointsHolder); } else if (funcRegion is AreaEventTrigger) { AreaEventTrigger areaEventTrigger = funcRegion as AreaEventTrigger; this.triggerList.Add(areaEventTrigger); GameObject gameObject = funcRegion.gameObject; ListView <AreaEventTrigger> listView = null; for (int j = this.objTriggerMultiMap.get_Count() - 1; j >= 0; j--) { MapWrapper.ObjTriggerKeyValuePair objTriggerKeyValuePair = this.objTriggerMultiMap.get_Item(j); if (objTriggerKeyValuePair.obj == gameObject) { listView = objTriggerKeyValuePair.triggers; break; } } if (listView == null) { listView = new ListView <AreaEventTrigger>(); this.objTriggerMultiMap.Add(new MapWrapper.ObjTriggerKeyValuePair { obj = gameObject, triggers = listView }); } listView.Add(areaEventTrigger); } else if (funcRegion is DynamicChannel) { this.channelList.Add(funcRegion as DynamicChannel); } } } } this.TrueMen = new List <PoolObjHandle <ActorRoot> >(Singleton <GameObjMgr> .GetInstance().SoldierActors); }
public void UpdateLogic(int delta) { Singleton <SceneManagement> .GetInstance().UpdateDirtyNodes(); if (!this.m_bSoldierOverNum) { bool flag = true; int count = this.soldierAreas.get_Count(); for (int i = 0; i < count; i++) { SoldierRegion soldierRegion = this.soldierAreas.get_Item(i); if (soldierRegion.isStartup) { SoldierSpawnResult soldierSpawnResult = soldierRegion.UpdateLogicSpec(delta); flag &= (soldierSpawnResult != SoldierSpawnResult.ShouldWaitSoldierInterval); } } if (flag) { this.CheckSoldierOverNumUpper(); } } else { this.CheckSoldierOverNumLower(); } int count2 = this.commonSpawnGroups.get_Count(); for (int j = 0; j < count2; j++) { CommonSpawnGroup commonSpawnGroup = this.commonSpawnGroups.get_Item(j); if (commonSpawnGroup.isStartup) { commonSpawnGroup.UpdateLogic(delta); } } for (int k = 0; k < this.spawnGroups.get_Count(); k++) { SpawnGroup spawnGroup = this.spawnGroups.get_Item(k); if (spawnGroup.isStartup) { spawnGroup.UpdateLogic(delta); } } int count3 = this.objTriggerMultiMap.get_Count(); for (int l = 0; l < count3; l++) { MapWrapper.ObjTriggerKeyValuePair objTriggerKeyValuePair = this.objTriggerMultiMap.get_Item(l); GameObject obj = objTriggerKeyValuePair.obj; ListView <AreaEventTrigger> triggers = objTriggerKeyValuePair.triggers; if (obj != null && obj.activeSelf && (ulong)(Singleton <FrameSynchr> .get_instance().CurFrameNum % 4u) == (ulong)((long)(l % 4))) { bool flag2 = false; int count4 = triggers.get_Count(); for (int m = 0; m < count4; m++) { AreaEventTrigger areaEventTrigger = triggers.get_Item(m); if (areaEventTrigger != null && areaEventTrigger.isStartup) { areaEventTrigger.UpdateLogic(delta * 4); flag2 |= areaEventTrigger.bDoDeactivating; } } if (flag2) { for (int n = 0; n < count4; n++) { AreaEventTrigger areaEventTrigger2 = triggers.get_Item(n); if (areaEventTrigger2 != null) { areaEventTrigger2.DoSelfDeactivating(); } } } } } }
public int GetActorsInCircle(VInt3 center, int radius, PoolObjHandle <ActorRoot>[] outResults, AreaEventTrigger InTriggerRef) { int num = 0; ulong num2 = (ulong)(radius * radius); List <PoolObjHandle <ActorRoot> > gameActors = Singleton <GameObjMgr> .GetInstance().GameActors; int count = gameActors.Count; for (int i = 0; i < count; i++) { if (num >= outResults.Length) { return(num); } PoolObjHandle <ActorRoot> act = gameActors[i]; VInt3 num6 = act.handle.location - center; if ((num6.sqrMagnitudeLong2D < num2) && ((null == InTriggerRef) || InTriggerRef.ActorFilter(ref act))) { outResults[num++] = act; } } return(num); }
public List <PoolObjHandle <ActorRoot> > GetActorsInPolygon(GeoPolygon collisionPolygon, AreaEventTrigger InTriggerRef) { if (collisionPolygon == null) { return(null); } List <PoolObjHandle <ActorRoot> > list = null; List <PoolObjHandle <ActorRoot> > gameActors = Singleton <GameObjMgr> .GetInstance().GameActors; int count = gameActors.Count; for (int i = 0; i < count; i++) { PoolObjHandle <ActorRoot> act = gameActors[i]; if (((act != 0) && ((null == InTriggerRef) || InTriggerRef.ActorFilter(ref act))) && collisionPolygon.IsPointIn(act.handle.location)) { if (list == null) { list = new List <PoolObjHandle <ActorRoot> >(); } list.Add(act); } } return(list); }
public void UpdateLogic(int delta) { Singleton <SceneManagement> .GetInstance().UpdateDirtyNodes(); if (!this.m_bSoldierOverNum) { bool flag = true; for (int m = 0; m < this.soldierAreas.Count; m++) { SoldierRegion region = this.soldierAreas[m]; if (region.isStartup) { SoldierSpawnResult result = region.UpdateLogicSpec(delta); flag &= result != SoldierSpawnResult.ShouldWaitSoldierInterval; } } if (flag) { this.CheckSoldierOverNumUpper(); } } else { this.CheckSoldierOverNumLower(); } for (int i = 0; i < this.commonSpawnGroups.Count; i++) { CommonSpawnGroup group = this.commonSpawnGroups[i]; if (group.isStartup) { group.UpdateLogic(delta); } } for (int j = 0; j < this.spawnGroups.Count; j++) { SpawnGroup group2 = this.spawnGroups[j]; if (group2.isStartup) { group2.UpdateLogic(delta); } } int count = this.objTriggerMultiMap.Count; for (int k = 0; k < count; k++) { ObjTriggerKeyValuePair pair = this.objTriggerMultiMap[k]; GameObject obj2 = pair.obj; ListView <AreaEventTrigger> triggers = pair.triggers; if (((obj2 != null) && obj2.activeSelf) && ((Singleton <FrameSynchr> .instance.CurFrameNum % 4) == (k % 4))) { bool flag2 = false; for (int n = 0; n < triggers.Count; n++) { AreaEventTrigger trigger = triggers[n]; if ((trigger != null) && trigger.isStartup) { trigger.UpdateLogic(delta * 4); flag2 |= trigger.bDoDeactivating; } } if (flag2) { for (int num7 = 0; num7 < triggers.Count; num7++) { AreaEventTrigger trigger2 = triggers[num7]; if (trigger2 != null) { trigger2.DoSelfDeactivating(); } } } } } }
private void Start() { foreach (FuncRegion region in base.GetComponentsInChildren <FuncRegion>(true)) { if (((region == null) || (!region.enabled || !region.gameObject.activeInHierarchy)) || !region.gameObject.activeSelf) { continue; } if (region is ReviveRegion) { this.reviveAreas.Add(region as ReviveRegion); continue; } if (region is SoldierRegion) { this.soldierAreas.Add(region as SoldierRegion); continue; } if (region is CommonSpawnGroup) { this.commonSpawnGroups.Add(region as CommonSpawnGroup); continue; } if (region is SpawnGroup) { this.spawnGroups.Add(region as SpawnGroup); continue; } if (region is WaypointsHolder) { this.waypointsList.Add(region as WaypointsHolder); continue; } if (region is AreaEventTrigger) { AreaEventTrigger item = region as AreaEventTrigger; this.triggerList.Add(item); GameObject gameObject = region.gameObject; ListView <AreaEventTrigger> triggers = null; for (int i = this.objTriggerMultiMap.Count - 1; i >= 0; i--) { ObjTriggerKeyValuePair pair = this.objTriggerMultiMap[i]; if (pair.obj == gameObject) { triggers = pair.triggers; break; } } if (triggers == null) { triggers = new ListView <AreaEventTrigger>(); ObjTriggerKeyValuePair pair2 = new ObjTriggerKeyValuePair { obj = gameObject, triggers = triggers }; this.objTriggerMultiMap.Add(pair2); } triggers.Add(item); continue; } if (region is DynamicChannel) { this.channelList.Add(region as DynamicChannel); } } this.TrueMen = new List <PoolObjHandle <ActorRoot> >(Singleton <GameObjMgr> .GetInstance().SoldierActors); }