private void UpdateAntiHiddenEyeHurt(int inDelta) { if (base.IsDeadState) { return; } if (this.actorSubType != 1 && this.actorSubType != 4 && this.actorSubType != 2) { return; } GlobalConfig instance = MonoSingleton <GlobalConfig> .get_instance(); int defenseAntiHiddenFrameInterval = instance.DefenseAntiHiddenFrameInterval; this.antiHiddenTimer += inDelta; if (this.antiHiddenTimer >= instance.DefenseAntiHiddenInterval && (ulong)this.actor.ObjID % (ulong)((long)defenseAntiHiddenFrameInterval) == (ulong)Singleton <FrameSynchr> .get_instance().CurFrameNum % (ulong)((long)defenseAntiHiddenFrameInterval)) { this.antiHiddenTimer = 0; List <PoolObjHandle <ActorRoot> > fakeTrueEyes = Singleton <GameObjMgr> .get_instance().FakeTrueEyes; int count = fakeTrueEyes.get_Count(); for (int i = 0; i < count; i++) { PoolObjHandle <ActorRoot> poolObjHandle = fakeTrueEyes.get_Item(i); if (poolObjHandle) { if (!this.TarEyeList_.Contains(poolObjHandle)) { ActorRoot handle = poolObjHandle.get_handle(); if (handle.IsEnemyCamp(this.actor)) { VInt3 worldLoc = new VInt3(handle.location.x, handle.location.z, 0); if (Singleton <GameFowManager> .get_instance().IsSurfaceCellVisible(worldLoc, this.actor.TheActorMeta.ActorCamp) && (handle.location - this.actor.location).get_sqrMagnitudeLong2D() < this.attackDistSqr) { this.TarEyeList_.Add(poolObjHandle); } } } } } int count2 = this.TarEyeList_.get_Count(); if (count2 > 0) { for (int j = count2 - 1; j >= 0; j--) { if (!fakeTrueEyes.Contains(this.TarEyeList_.get_Item(j))) { this.TarEyeList_.RemoveAt(j); } } } PoolObjHandle <ActorRoot> poolObjHandle2 = OrganWrapper.FindEyeTarget(this.TarEyeList_); if (poolObjHandle2) { BufConsumer bufConsumer = new BufConsumer(instance.DefenseAntiHiddenHurtId, poolObjHandle2, this.actorPtr); bufConsumer.Use(); } } }
public override void TriggerUpdate(PoolObjHandle <ActorRoot> src, PoolObjHandle <ActorRoot> atker, ITrigger inTrigger) { int updateUniqueId = this.UpdateUniqueId; if (updateUniqueId > 0) { BufConsumer bufConsumer = new BufConsumer(updateUniqueId, src, atker); bufConsumer.Use(); } }
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(); } } } } } } }
public override RefParamOperator TriggerEnter(PoolObjHandle <ActorRoot> src, PoolObjHandle <ActorRoot> atker, ITrigger inTrigger) { int enterUniqueId = this.EnterUniqueId; GameObject[] refObjList = this.RefObjList; RefParamOperator refParamOperator = new RefParamOperator(); if (enterUniqueId > 0) { if (refObjList != null) { int num = refObjList.Length; for (int i = 0; i < num; i++) { GameObject gameObject = refObjList[i]; if (!(gameObject == null)) { PoolObjHandle <ActorRoot> actorRoot = ActorHelper.GetActorRoot(gameObject); if (actorRoot) { BufConsumer bufConsumer = new BufConsumer(enterUniqueId, actorRoot, actorRoot); if (bufConsumer.Use()) { refParamOperator = new RefParamOperator(); string name = string.Format("TriggerActionBuffTar_{0}", i); refParamOperator.AddRefParam(name, bufConsumer.buffSkill); } } } } } if (this.bSrc && src) { BufConsumer bufConsumer2 = new BufConsumer(enterUniqueId, src, atker); if (bufConsumer2.Use()) { refParamOperator = new RefParamOperator(); refParamOperator.AddRefParam("TriggerActionBuffSrc", bufConsumer2.buffSkill); } } if (this.bAtker && atker) { BufConsumer bufConsumer3 = new BufConsumer(enterUniqueId, atker, src); if (bufConsumer3.Use()) { refParamOperator = new RefParamOperator(); refParamOperator.AddRefParam("TriggerActionBuffAtker", bufConsumer3.buffSkill); } } } return(refParamOperator); }
public override RefParamOperator TriggerEnter(PoolObjHandle <ActorRoot> src, PoolObjHandle <ActorRoot> atker, ITrigger inTrigger, object prm) { int enterUniqueId = base.EnterUniqueId; GameObject[] refObjList = base.RefObjList; RefParamOperator @operator = new RefParamOperator(); if (enterUniqueId > 0) { if (refObjList != null) { int length = refObjList.Length; for (int i = 0; i < length; i++) { GameObject go = refObjList[i]; if (go != null) { PoolObjHandle <ActorRoot> actorRoot = ActorHelper.GetActorRoot(go); if (actorRoot != 0) { BufConsumer consumer = new BufConsumer(enterUniqueId, actorRoot, actorRoot); if (consumer.Use()) { @operator = new RefParamOperator(); string name = string.Format("TriggerActionBuffTar_{0}", i); @operator.AddRefParam(name, consumer.buffSkill); } } } } } if (base.bSrc && (src != 0)) { BufConsumer consumer2 = new BufConsumer(enterUniqueId, src, atker); if (consumer2.Use()) { @operator = new RefParamOperator(); @operator.AddRefParam("TriggerActionBuffSrc", consumer2.buffSkill); } } if (base.bAtker && (atker != 0)) { BufConsumer consumer3 = new BufConsumer(enterUniqueId, atker, src); if (consumer3.Use()) { @operator = new RefParamOperator(); @operator.AddRefParam("TriggerActionBuffAtker", consumer3.buffSkill); } } } return(@operator); }
public static void ApplyBuff(List <PoolObjHandle <ActorRoot> > actorList, int buffid) { if (buffid == 0) { return; } List <PoolObjHandle <ActorRoot> > .Enumerator enumerator = actorList.GetEnumerator(); while (enumerator.MoveNext()) { PoolObjHandle <ActorRoot> current = enumerator.get_Current(); if (current.handle.IsHostCamp()) { BufConsumer bufConsumer = new BufConsumer(buffid, enumerator.get_Current(), enumerator.get_Current()); bufConsumer.Use(); } } }
private void SetMyselfOnFire(PoolObjHandle <ActorRoot> inActor) { if (inActor != 0) { if (this.CharmId > 0) { ShenFuInfo dataByKey = GameDataMgr.shenfuBin.GetDataByKey(this.CharmId); if (dataByKey != null) { BufConsumer consumer = new BufConsumer(dataByKey.iBufId, inActor, inActor); if (consumer.Use()) { PoolObjHandle <CTailsman> inTailsman = new PoolObjHandle <CTailsman>(this); STailsmanEventParam prm = new STailsmanEventParam(inTailsman, inActor); Singleton <GameEventSys> .instance.SendEvent <STailsmanEventParam>(GameEventDef.Event_TailsmanUsed, ref prm); } } } this.DoClearing(); } }
public static void DoSpawn(GameObject inGameObj, VInt3 bornPos, VInt3 bornDir, bool bInSeqMeta, ActorMeta[] inActorMetaList, GeoPolygon inPolygon, GameObject inDeadPoint, PursuitInfo pursuitInfo, int[] inBuffDemand, int inRandPassSkillRule, ref List <PoolObjHandle <ActorRoot> > inSpawnedList) { if (inGameObj == null || inActorMetaList == null || inActorMetaList.Length == 0 || inSpawnedList == null) { return; } List <ActorMeta> list = new List <ActorMeta>(); if (bInSeqMeta) { list.AddRange(inActorMetaList); } else if (inActorMetaList.Length > 0) { int nMax = inActorMetaList.Length; int num = (int)FrameRandom.Random((uint)nMax); list.Add(inActorMetaList[num]); } List <ActorMeta> .Enumerator enumerator = list.GetEnumerator(); while (enumerator.MoveNext()) { ActorMeta current = enumerator.get_Current(); if (current.ConfigId > 0 && current.ActorType != ActorTypeDef.Invalid) { PoolObjHandle <ActorRoot> poolObjHandle = default(PoolObjHandle <ActorRoot>); if (!Singleton <GameObjMgr> .GetInstance().TryGetFromCache(ref poolObjHandle, ref current)) { poolObjHandle = Singleton <GameObjMgr> .GetInstance().SpawnActorEx(null, ref current, bornPos, bornDir, false, true); if (poolObjHandle) { poolObjHandle.get_handle().InitActor(); poolObjHandle.get_handle().PrepareFight(); Singleton <GameObjMgr> .get_instance().AddActor(poolObjHandle); poolObjHandle.get_handle().StartFight(); } } else { poolObjHandle.get_handle().ReactiveActor(bornPos, bornDir); } if (poolObjHandle) { poolObjHandle.get_handle().ObjLinker.Invincible = current.Invincible; poolObjHandle.get_handle().ObjLinker.CanMovable = !current.NotMovable; poolObjHandle.get_handle().BornPos = bornPos; if (inPolygon != null && inDeadPoint != null) { poolObjHandle.get_handle().ActorControl.m_rangePolygon = inPolygon; poolObjHandle.get_handle().ActorControl.m_deadPointGo = inDeadPoint; } if (pursuitInfo != null && pursuitInfo.IsVaild()) { MonsterWrapper monsterWrapper = poolObjHandle.get_handle().ActorControl as MonsterWrapper; if (monsterWrapper != null) { monsterWrapper.Pursuit = pursuitInfo; } } inSpawnedList.Add(poolObjHandle); if (inBuffDemand != null) { for (int i = 0; i < inBuffDemand.Length; i++) { int inBuffID = inBuffDemand[i]; BufConsumer bufConsumer = new BufConsumer(inBuffID, poolObjHandle, poolObjHandle); bufConsumer.Use(); } } if (inRandPassSkillRule > 0 && poolObjHandle.get_handle().SkillControl != null) { poolObjHandle.get_handle().SkillControl.InitRandomSkill(inRandPassSkillRule); } } } } }
public void ApplyBuff(PoolObjHandle <ActorRoot> InTarget) { BufConsumer bufConsumer = new BufConsumer((int)this.BufDropInfo.dwBufID, InTarget, InTarget); bufConsumer.Use(); }