private void OnWelcomeDelay(int inTimeSeq) { KillDetailInfo killDetailInfo = new KillDetailInfo(); killDetailInfo.Type = KillDetailInfoType.Info_Type_Game_Start_Wel; Singleton <EventRouter> .get_instance().BroadCastEvent <KillDetailInfo>(EventID.AchievementRecorderEvent, killDetailInfo); Singleton <CTimerManager> .get_instance().RemoveTimer(inTimeSeq); this.WelcomeDelaySeq = -1; }
private void OnSoldierActivateCountDelay2(int inTimeSeq) { KillDetailInfo killDetailInfo = new KillDetailInfo(); killDetailInfo.Type = KillDetailInfoType.Info_Type_Soldier_Activate_Countdown5; Singleton <EventRouter> .get_instance().BroadCastEvent <KillDetailInfo>(EventID.AchievementRecorderEvent, killDetailInfo); Singleton <CTimerManager> .get_instance().RemoveTimer(inTimeSeq); this.SoldierActivateCountDelay2Seq = -1; }
private void OnSoldierActivateDelay(int inTimeSeq) { KillDetailInfo info = new KillDetailInfo { Type = KillDetailInfoType.Info_Type_Soldier_Activate }; Singleton <EventRouter> .instance.BroadCastEvent <KillDetailInfo>(EventID.AchievementRecorderEvent, info); Singleton <CTimerManager> .instance.RemoveTimer(inTimeSeq); this.SoldierActivateDelaySeq = -1; }
private void OnAchievementEvent(KillDetailInfo KillDetail) { if ((((KillDetail.Killer != 0) && (KillDetail.Killer.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero)) && ActorHelper.IsHostCtrlActor(ref KillDetail.Killer)) && ((KillDetail.HeroContiKillType == this.targetAchievementType) || (KillDetail.HeroMultiKillType == this.targetAchievementType))) { this.CompleteCount++; if (!this.bHasComplete && (this.status == StarEvaluationStatus.Success)) { this.bHasComplete = true; this.TriggerChangedEvent(); } } }
public void ExecCommand(IFrameCommand cmd) { Player player = Singleton <GamePlayerCenter> .GetInstance().GetPlayer(cmd.playerID); if (((player != null) && (player.Captain != 0)) && ActorHelper.IsHostCampActor(ref player.Captain)) { KillDetailInfo info = new KillDetailInfo { Killer = player.Captain, bSelfCamp = true, Type = KillDetailInfoType.Info_Type_Reconnect }; Singleton <EventRouter> .instance.BroadCastEvent <KillDetailInfo>(EventID.AchievementRecorderEvent, info); Singleton <EventRouter> .instance.BroadCastEvent <bool, uint>(EventID.DisConnectNtf, false, cmd.playerID); } }
public void ExecCommand(IFrameCommand cmd) { Player player = Singleton <GamePlayerCenter> .GetInstance().GetPlayer(cmd.playerID); if (player != null && player.Captain) { if (ActorHelper.IsHostCampActor(ref player.Captain)) { KillDetailInfo killDetailInfo = new KillDetailInfo(); killDetailInfo.Killer = player.Captain; killDetailInfo.bSelfCamp = true; killDetailInfo.Type = KillDetailInfoType.Info_Type_Reconnect; Singleton <EventRouter> .get_instance().BroadCastEvent <KillDetailInfo>(EventID.AchievementRecorderEvent, killDetailInfo); Singleton <EventRouter> .get_instance().BroadCastEvent <bool, uint>(EventID.DisConnectNtf, false, cmd.playerID); } Singleton <CBattleSystem> .GetInstance().m_battleEquipSystem.ExecuteInOutEquipShopFrameCommand(0, ref player.Captain); } }
public void ExecCommand(IFrameCommand cmd) { Player player = Singleton <GamePlayerCenter> .GetInstance().GetPlayer(cmd.playerID); if ((player != null) && (player.Captain != 0)) { if (ActorHelper.IsHostCampActor(ref player.Captain)) { KillDetailInfo info = new KillDetailInfo { Killer = player.Captain, bSelfCamp = true, Type = KillDetailInfoType.Info_Type_RunningMan }; Singleton <EventRouter> .instance.BroadCastEvent <KillDetailInfo>(EventID.AchievementRecorderEvent, info); } Singleton <EventRouter> .instance.BroadCastEvent <Player>(EventID.PlayerRunAway, player); player.Captain.handle.ActorControl.SetOffline(true); } }
public void ExecCommand(IFrameCommand cmd) { Player player = Singleton <GamePlayerCenter> .GetInstance().GetPlayer(cmd.playerID); if (player != null && player.Captain) { if (ActorHelper.IsHostCampActor(ref player.Captain)) { KillDetailInfo killDetailInfo = new KillDetailInfo(); killDetailInfo.Killer = player.Captain; killDetailInfo.bSelfCamp = true; killDetailInfo.Type = KillDetailInfoType.Info_Type_RunningMan; Singleton <EventRouter> .get_instance().BroadCastEvent <KillDetailInfo>(EventID.AchievementRecorderEvent, killDetailInfo); } Singleton <EventRouter> .get_instance().BroadCastEvent <Player>(EventID.PlayerRunAway, player); player.Captain.get_handle().ActorControl.SetOffline(true); Singleton <CBattleSystem> .GetInstance().m_battleEquipSystem.ExecuteInOutEquipShopFrameCommand(0, ref player.Captain); } }
private void OnActorDeath(ref GameDeadEventParam prm) { if (((prm.src != 0) && (prm.orignalAtker != 0)) && !prm.bImmediateRevive) { bool flag = false; switch (prm.src.handle.ActorControl.GetActorSubSoliderType()) { case 8: case 9: flag = true; break; } if (((prm.src.handle.TheActorMeta.ActorType != ActorTypeDef.Actor_Type_Monster) || (prm.src.handle.TheActorMeta.ConfigId == Singleton <BattleLogic> .instance.DragonId)) || flag) { KillDetailInfo info = this.OnActorDeathd(ref prm); if (info != null) { Singleton <EventRouter> .instance.BroadCastEvent <KillDetailInfo>(EventID.AchievementRecorderEvent, info); } } } }
public void ExecCommand(IFrameCommand cmd) { Player player = Singleton <GamePlayerCenter> .instance.GetPlayer(cmd.playerID); if (player != null && player.Captain) { PoolObjHandle <ActorRoot> orignalActor = player.Captain.handle.ActorControl.GetOrignalActor(); if (orignalActor) { if (ActorHelper.IsHostCampActor(ref orignalActor)) { KillDetailInfo killDetailInfo = new KillDetailInfo(); killDetailInfo.Killer = orignalActor; killDetailInfo.bSelfCamp = true; killDetailInfo.Type = KillDetailInfoType.Info_Type_Disconnect; Singleton <EventRouter> .instance.BroadCastEvent <KillDetailInfo>(EventID.AchievementRecorderEvent, killDetailInfo); Singleton <EventRouter> .instance.BroadCastEvent <bool, uint>(EventID.DisConnectNtf, true, cmd.playerID); } orignalActor.handle.ActorControl.SetOffline(true); } Singleton <CBattleSystem> .GetInstance().m_battleEquipSystem.ExecuteInOutEquipShopFrameCommand(0, ref player.Captain); } }
private void OnActorDeath(ref GameDeadEventParam prm) { if (!prm.src || !prm.orignalAtker || prm.bImmediateRevive || prm.bSuicide) { return; } bool flag = false; byte actorSubSoliderType = prm.src.handle.ActorControl.GetActorSubSoliderType(); if (actorSubSoliderType == 8 || actorSubSoliderType == 9) { flag = true; } if (prm.src.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Monster && prm.src.handle.TheActorMeta.ConfigId != Singleton <BattleLogic> .instance.DragonId && !flag) { return; } KillDetailInfo killDetailInfo = this.OnActorDeathd(ref prm); if (killDetailInfo != null) { Singleton <EventRouter> .instance.BroadCastEvent <KillDetailInfo>(EventID.AchievementRecorderEvent, killDetailInfo); } }
private KillDetailInfo OnActorDeathd(ref GameDeadEventParam param) { KillDetailInfo killDetailInfo = null; KillDetailInfoType killDetailInfoType = KillDetailInfoType.Info_Type_None; KillDetailInfoType heroMultiKillType = KillDetailInfoType.Info_Type_None; KillDetailInfoType heroContiKillType = KillDetailInfoType.Info_Type_None; PoolObjHandle <ActorRoot> poolObjHandle = default(PoolObjHandle <ActorRoot>); PoolObjHandle <ActorRoot> poolObjHandle2 = default(PoolObjHandle <ActorRoot>); List <uint> list = new List <uint>(); DefaultGameEventParam defaultGameEventParam = new DefaultGameEventParam(param.src, param.atker, ref param.orignalAtker, ref param.logicAtker); HeroWrapper heroWrapper = null; HeroWrapper heroWrapper2 = null; bool flag = false; bool flag2 = false; bool flag3 = false; Player hostPlayer = Singleton <GamePlayerCenter> .instance.GetHostPlayer(); DebugHelper.Assert(hostPlayer != null, "Fatal error in OnActorDeadthd, HostPlayer is null!"); if (hostPlayer != null) { DebugHelper.Assert(hostPlayer.Captain, "Fatal error in OnActorDeadthd, Captain is null!"); } bool bSelfCamp = hostPlayer.PlayerCamp == defaultGameEventParam.orignalAtker.handle.TheActorMeta.ActorCamp; uint objID = hostPlayer.Captain.handle.ObjID; bool bPlayerSelf_KillOrKilled = objID == defaultGameEventParam.src.handle.ObjID || objID == defaultGameEventParam.orignalAtker.handle.ObjID; bool flag4 = defaultGameEventParam.src.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero; bool flag5 = defaultGameEventParam.src.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Organ; byte actorSubSoliderType = defaultGameEventParam.src.handle.ActorControl.GetActorSubSoliderType(); bool flag6 = false; bool flag7 = false; bool flag8 = false; if (defaultGameEventParam.src.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Monster && actorSubSoliderType == 8) { flag6 = true; } else if (defaultGameEventParam.src.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Monster && actorSubSoliderType == 9) { flag7 = true; } else if (defaultGameEventParam.src.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Monster && actorSubSoliderType == 7) { flag8 = true; } PoolObjHandle <ActorRoot> src = defaultGameEventParam.src; PoolObjHandle <ActorRoot> poolObjHandle3 = defaultGameEventParam.orignalAtker; if (flag4) { heroWrapper = (defaultGameEventParam.src.handle.ActorControl as HeroWrapper); heroWrapper2 = (defaultGameEventParam.orignalAtker.handle.ActorControl as HeroWrapper); if (defaultGameEventParam.orignalAtker.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { if (defaultGameEventParam.orignalAtker.handle.ObjID == objID) { bPlayerSelf_KillOrKilled = true; } flag = true; bSelfCamp = (hostPlayer.PlayerCamp == defaultGameEventParam.orignalAtker.handle.TheActorMeta.ActorCamp); } else if (heroWrapper.IsKilledByHero()) { flag = true; poolObjHandle3 = heroWrapper.LastHeroAtker; heroWrapper2 = (heroWrapper.LastHeroAtker.handle.ActorControl as HeroWrapper); if (poolObjHandle3.handle.ObjID == objID) { bPlayerSelf_KillOrKilled = true; } bSelfCamp = (hostPlayer.PlayerCamp == poolObjHandle3.handle.TheActorMeta.ActorCamp); } else if (defaultGameEventParam.orignalAtker.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Organ) { flag2 = true; flag = false; bSelfCamp = (hostPlayer.PlayerCamp == defaultGameEventParam.orignalAtker.handle.TheActorMeta.ActorCamp); } else if (defaultGameEventParam.orignalAtker.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Monster) { flag3 = true; flag = false; bSelfCamp = (hostPlayer.PlayerCamp == defaultGameEventParam.orignalAtker.handle.TheActorMeta.ActorCamp); } if (flag4 && flag) { heroWrapper2.ContiDeadNum = 0; heroWrapper2.ContiKillNum++; if (heroWrapper2.IsInMultiKill()) { heroWrapper2.MultiKillNum++; } else { heroWrapper2.MultiKillNum = 1; } heroWrapper2.UpdateLastKillTime(); } } if (flag4 && flag) { if (src && src.handle.ActorControl != null) { List <KeyValuePair <uint, ulong> > .Enumerator enumerator = src.handle.ActorControl.hurtSelfActorList.GetEnumerator(); while (enumerator.MoveNext()) { KeyValuePair <uint, ulong> current = enumerator.get_Current(); if (current.get_Key() != poolObjHandle3.handle.ObjID) { List <uint> list2 = list; KeyValuePair <uint, ulong> current2 = enumerator.get_Current(); list2.Add(current2.get_Key()); } } } if (poolObjHandle3 && poolObjHandle3.handle.ActorControl != null) { List <KeyValuePair <uint, ulong> > .Enumerator enumerator2 = poolObjHandle3.handle.ActorControl.helpSelfActorList.GetEnumerator(); while (enumerator2.MoveNext()) { KeyValuePair <uint, ulong> current3 = enumerator2.get_Current(); if (current3.get_Key() != poolObjHandle3.handle.ObjID) { List <uint> list3 = list; KeyValuePair <uint, ulong> current4 = enumerator2.get_Current(); list3.Add(current4.get_Key()); } } } for (int i = 0; i < list.get_Count() - 1; i++) { for (int j = i + 1; j < list.get_Count(); j++) { if (list.get_Item(i) == list.get_Item(j)) { list.RemoveAt(j); j--; } } } bool flag9 = false; if (heroWrapper2.MultiKillNum == 2) { flag9 = true; heroMultiKillType = KillDetailInfoType.Info_Type_DoubleKill; Singleton <GameEventSys> .GetInstance().SendEvent <DefaultGameEventParam>(GameEventDef.Event_DoubleKill, ref defaultGameEventParam); } else if (heroWrapper2.MultiKillNum == 3) { flag9 = true; heroMultiKillType = KillDetailInfoType.Info_Type_TripleKill; Singleton <GameEventSys> .GetInstance().SendEvent <DefaultGameEventParam>(GameEventDef.Event_TripleKill, ref defaultGameEventParam); } else if (heroWrapper2.MultiKillNum == 4) { flag9 = true; heroMultiKillType = KillDetailInfoType.Info_Type_QuataryKill; Singleton <GameEventSys> .GetInstance().SendEvent <DefaultGameEventParam>(GameEventDef.Event_QuataryKill, ref defaultGameEventParam); } else if (heroWrapper2.MultiKillNum >= 5) { flag9 = true; heroMultiKillType = KillDetailInfoType.Info_Type_PentaKill; Singleton <GameEventSys> .GetInstance().SendEvent <DefaultGameEventParam>(GameEventDef.Event_PentaKill, ref defaultGameEventParam); } if (flag9 && killDetailInfo == null) { killDetailInfo = this._create(poolObjHandle3, src, list, killDetailInfoType, heroMultiKillType, killDetailInfoType, bSelfCamp, false, bPlayerSelf_KillOrKilled, false); } } if (flag4 && flag && heroWrapper.ContiKillNum >= 3) { if (heroWrapper.ContiKillNum >= 7) { Singleton <GameEventSys> .GetInstance().SendEvent <DefaultGameEventParam>(GameEventDef.Event_OdysseyBeStopped, ref defaultGameEventParam); } if (killDetailInfo == null) { killDetailInfo = this._create(poolObjHandle3, src, list, KillDetailInfoType.Info_Type_StopMultiKill, heroMultiKillType, killDetailInfoType, bSelfCamp, false, bPlayerSelf_KillOrKilled, false); } } if (flag4 && flag && !this.bFristBlood) { this.bFristBlood = true; return(this._create(poolObjHandle3, src, list, KillDetailInfoType.Info_Type_First_Kill, heroMultiKillType, killDetailInfoType, bSelfCamp, false, bPlayerSelf_KillOrKilled, false)); } if (flag5 && (defaultGameEventParam.src.handle.TheStaticData.TheOrganOnlyInfo.OrganType == 1 || defaultGameEventParam.src.handle.TheStaticData.TheOrganOnlyInfo.OrganType == 4)) { KillDetailInfo killDetailInfo2 = this._create(poolObjHandle3, src, list, KillDetailInfoType.Info_Type_DestroyTower, killDetailInfoType, killDetailInfoType, bSelfCamp, false, bPlayerSelf_KillOrKilled, false); if (defaultGameEventParam.src.handle.TheStaticData.TheOrganOnlyInfo.DeadEnemySoldier > 0) { Singleton <EventRouter> .instance.BroadCastEvent <KillDetailInfo>(EventID.AchievementRecorderEvent, killDetailInfo2); return(this._create(poolObjHandle3, src, list, KillDetailInfoType.Info_Type_Soldier_Boosted, killDetailInfoType, killDetailInfoType, bSelfCamp, false, bPlayerSelf_KillOrKilled, false)); } return(killDetailInfo2); } else { if (flag4 && flag) { bool flag10 = false; if (heroWrapper2.ContiKillNum == 3) { flag10 = true; heroContiKillType = KillDetailInfoType.Info_Type_MonsterKill; } else if (heroWrapper2.ContiKillNum == 4) { flag10 = true; heroContiKillType = KillDetailInfoType.Info_Type_DominateBattle; } else if (heroWrapper2.ContiKillNum == 5) { flag10 = true; heroContiKillType = KillDetailInfoType.Info_Type_Legendary; } else if (heroWrapper2.ContiKillNum == 6) { flag10 = true; heroContiKillType = KillDetailInfoType.Info_Type_TotalAnnihilat; } else if (heroWrapper2.ContiKillNum >= 7) { flag10 = true; heroContiKillType = KillDetailInfoType.Info_Type_Odyssey; Singleton <GameEventSys> .GetInstance().SendEvent <DefaultGameEventParam>(GameEventDef.Event_Odyssey, ref defaultGameEventParam); } if (flag10 && killDetailInfo == null) { killDetailInfo = this._create(poolObjHandle3, src, list, killDetailInfoType, killDetailInfoType, heroContiKillType, bSelfCamp, false, bPlayerSelf_KillOrKilled, false); } } if (flag4 && this.IsAllDead(ref defaultGameEventParam.src)) { KillDetailInfo arg = this._create(poolObjHandle3, src, list, killDetailInfoType, killDetailInfoType, killDetailInfoType, bSelfCamp, true, bPlayerSelf_KillOrKilled, false); Singleton <EventRouter> .instance.BroadCastEvent <KillDetailInfo>(EventID.AchievementRecorderEvent, arg); } if (killDetailInfo != null) { return(killDetailInfo); } if (flag4 && (flag || flag2 || flag3)) { return(this._create(poolObjHandle3, src, list, KillDetailInfoType.Info_Type_Kill, killDetailInfoType, killDetailInfoType, bSelfCamp, false, bPlayerSelf_KillOrKilled, false)); } if (flag8) { return(this._create(poolObjHandle3, src, list, KillDetailInfoType.Info_Type_Kill_3V3_Dragon, killDetailInfoType, killDetailInfoType, bSelfCamp, false, bPlayerSelf_KillOrKilled, param.bSuicide)); } if (flag7) { Singleton <EventRouter> .GetInstance().BroadCastEvent <PoolObjHandle <ActorRoot>, int>(EventID.BATTLE_DATAANL_DRAGON_KILLED, poolObjHandle3, 0); return(this._create(poolObjHandle3, src, list, KillDetailInfoType.Info_Type_Kill_5V5_SmallDragon, killDetailInfoType, killDetailInfoType, bSelfCamp, false, bPlayerSelf_KillOrKilled, param.bSuicide)); } if (flag6) { Singleton <EventRouter> .GetInstance().BroadCastEvent <PoolObjHandle <ActorRoot>, int>(EventID.BATTLE_DATAANL_DRAGON_KILLED, poolObjHandle3, 1); return(this._create(poolObjHandle3, src, list, KillDetailInfoType.Info_Type_Kill_5V5_BigDragon, killDetailInfoType, killDetailInfoType, bSelfCamp, false, bPlayerSelf_KillOrKilled, param.bSuicide)); } return(null); } }
private KillDetailInfo OnActorDeathd(ref GameDeadEventParam param) { KillDetailInfo info = null; KillDetailInfoType type = KillDetailInfoType.Info_Type_None; KillDetailInfoType heroMultiKillType = KillDetailInfoType.Info_Type_None; KillDetailInfoType heroContiKillType = KillDetailInfoType.Info_Type_None; PoolObjHandle <ActorRoot> victim = new PoolObjHandle <ActorRoot>(); PoolObjHandle <ActorRoot> killer = new PoolObjHandle <ActorRoot>(); DefaultGameEventParam prm = new DefaultGameEventParam(param.src, param.atker, ref param.orignalAtker); HeroWrapper actorControl = null; HeroWrapper wrapper2 = null; bool flag = false; bool flag2 = false; bool flag3 = false; bool flag4 = false; bool flag5 = false; bool flag6 = false; Player hostPlayer = Singleton <GamePlayerCenter> .instance.GetHostPlayer(); DebugHelper.Assert(hostPlayer != null, "Fatal error in OnActorDeadthd, HostPlayer is null!"); if (hostPlayer != null) { DebugHelper.Assert((bool)hostPlayer.Captain, "Fatal error in OnActorDeadthd, Captain is null!"); } bool bSelfCamp = hostPlayer.PlayerCamp == prm.orignalAtker.handle.TheActorMeta.ActorCamp; bool flag8 = false; uint objID = hostPlayer.Captain.handle.ObjID; flag8 = (objID == prm.src.handle.ObjID) || (objID == prm.orignalAtker.handle.ObjID); flag = prm.src.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero; flag2 = prm.src.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Organ; flag3 = (prm.src.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Monster) && (prm.src.handle.TheActorMeta.ConfigId == Singleton <BattleLogic> .instance.DragonId); byte actorSubSoliderType = prm.src.handle.ActorControl.GetActorSubSoliderType(); bool flag9 = false; bool flag10 = false; switch (actorSubSoliderType) { case 8: flag9 = true; flag3 = false; break; case 9: flag10 = true; flag3 = false; break; } victim = prm.src; killer = prm.orignalAtker; if (flag) { actorControl = prm.src.handle.ActorControl as HeroWrapper; wrapper2 = prm.orignalAtker.handle.ActorControl as HeroWrapper; if (prm.orignalAtker.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { if (prm.orignalAtker.handle.ObjID == objID) { flag8 = true; } flag4 = true; bSelfCamp = hostPlayer.PlayerCamp == prm.orignalAtker.handle.TheActorMeta.ActorCamp; } else if (actorControl.IsKilledByHero()) { flag4 = true; killer = actorControl.LastHeroAtker; wrapper2 = actorControl.LastHeroAtker.handle.ActorControl as HeroWrapper; if (killer.handle.ObjID == objID) { flag8 = true; } bSelfCamp = hostPlayer.PlayerCamp == killer.handle.TheActorMeta.ActorCamp; } else if (prm.orignalAtker.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Organ) { flag5 = true; flag4 = false; bSelfCamp = hostPlayer.PlayerCamp == prm.orignalAtker.handle.TheActorMeta.ActorCamp; } else if (prm.orignalAtker.handle.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Monster) { flag6 = true; flag4 = false; bSelfCamp = hostPlayer.PlayerCamp == prm.orignalAtker.handle.TheActorMeta.ActorCamp; } if (flag && flag4) { wrapper2.ContiDeadNum = 0; wrapper2.ContiKillNum++; if (wrapper2.IsInMultiKill()) { wrapper2.MultiKillNum++; } else { wrapper2.MultiKillNum = 1; } wrapper2.UpdateLastKillTime(); } } if (flag && flag4) { bool flag11 = false; if (wrapper2.MultiKillNum == 2) { flag11 = true; heroMultiKillType = KillDetailInfoType.Info_Type_DoubleKill; Singleton <GameEventSys> .GetInstance().SendEvent <DefaultGameEventParam>(GameEventDef.Event_DoubleKill, ref prm); } else if (wrapper2.MultiKillNum == 3) { flag11 = true; heroMultiKillType = KillDetailInfoType.Info_Type_TripleKill; Singleton <GameEventSys> .GetInstance().SendEvent <DefaultGameEventParam>(GameEventDef.Event_TripleKill, ref prm); } else if (wrapper2.MultiKillNum == 4) { flag11 = true; heroMultiKillType = KillDetailInfoType.Info_Type_QuataryKill; Singleton <GameEventSys> .GetInstance().SendEvent <DefaultGameEventParam>(GameEventDef.Event_QuataryKill, ref prm); } else if (wrapper2.MultiKillNum >= 5) { flag11 = true; heroMultiKillType = KillDetailInfoType.Info_Type_PentaKill; Singleton <GameEventSys> .GetInstance().SendEvent <DefaultGameEventParam>(GameEventDef.Event_PentaKill, ref prm); } if (flag11 && (info == null)) { info = this._create(killer, victim, type, heroMultiKillType, type, bSelfCamp, false, flag8); } } if ((flag && flag4) && (actorControl.ContiKillNum >= 3)) { if (actorControl.ContiKillNum >= 7) { Singleton <GameEventSys> .GetInstance().SendEvent <DefaultGameEventParam>(GameEventDef.Event_OdysseyBeStopped, ref prm); } if (info == null) { info = this._create(killer, victim, KillDetailInfoType.Info_Type_StopMultiKill, heroMultiKillType, type, bSelfCamp, false, flag8); } } if ((flag && flag4) && !this.bFristBlood) { this.bFristBlood = true; return(this._create(killer, victim, KillDetailInfoType.Info_Type_First_Kill, heroMultiKillType, type, bSelfCamp, false, flag8)); } if (flag2 && ((prm.src.handle.TheStaticData.TheOrganOnlyInfo.OrganType == 1) || (prm.src.handle.TheStaticData.TheOrganOnlyInfo.OrganType == 4))) { KillDetailInfo info2 = this._create(killer, victim, KillDetailInfoType.Info_Type_DestroyTower, type, type, bSelfCamp, false, flag8); if (prm.src.handle.TheStaticData.TheOrganOnlyInfo.DeadEnemySoldier > 0) { Singleton <EventRouter> .instance.BroadCastEvent <KillDetailInfo>(EventID.AchievementRecorderEvent, info2); return(this._create(killer, victim, KillDetailInfoType.Info_Type_Soldier_Boosted, type, type, bSelfCamp, false, flag8)); } return(info2); } if (flag && flag4) { bool flag12 = false; if (wrapper2.ContiKillNum == 3) { flag12 = true; heroContiKillType = KillDetailInfoType.Info_Type_MonsterKill; } else if (wrapper2.ContiKillNum == 4) { flag12 = true; heroContiKillType = KillDetailInfoType.Info_Type_DominateBattle; } else if (wrapper2.ContiKillNum == 5) { flag12 = true; heroContiKillType = KillDetailInfoType.Info_Type_Legendary; } else if (wrapper2.ContiKillNum == 6) { flag12 = true; heroContiKillType = KillDetailInfoType.Info_Type_TotalAnnihilat; } else if (wrapper2.ContiKillNum >= 7) { flag12 = true; heroContiKillType = KillDetailInfoType.Info_Type_Odyssey; Singleton <GameEventSys> .GetInstance().SendEvent <DefaultGameEventParam>(GameEventDef.Event_Odyssey, ref prm); } if (flag12 && (info == null)) { info = this._create(killer, victim, type, type, heroContiKillType, bSelfCamp, false, flag8); } } if (info != null) { return(info); } if (flag && ((flag4 || flag5) || flag6)) { return(this._create(killer, victim, KillDetailInfoType.Info_Type_Kill, type, type, bSelfCamp, false, flag8)); } if (flag && this.IsAllDead(ref prm.src)) { KillDetailInfo info3 = this._create(killer, victim, type, type, type, bSelfCamp, true, flag8); Singleton <EventRouter> .instance.BroadCastEvent <KillDetailInfo>(EventID.AchievementRecorderEvent, info3); } if (flag3) { return(this._create(killer, victim, KillDetailInfoType.Info_Type_KillDragon, type, type, bSelfCamp, false, flag8)); } if (flag10) { return(this._create(killer, victim, KillDetailInfoType.Info_Type_KillBIGDRAGON, type, type, bSelfCamp, false, flag8)); } if (flag9) { return(this._create(killer, victim, KillDetailInfoType.Info_Type_KillBARON, type, type, bSelfCamp, false, flag8)); } return(null); }