public static string GetHero_Icon(ActorRoot actor, bool bSmall) { string str = string.Empty; if (actor != null) { IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); ActorServerData actorData = new ActorServerData(); if ((actorDataProvider != null) && actorDataProvider.GetActorServerData(ref actor.TheActorMeta, ref actorData)) { str = GetHero_Icon((uint)actorData.TheActorMeta.ConfigId, 0, bSmall); } } return(str); }
public int GetActorMarkID(ActorMeta actorMeta) { int skinCfgId = 0; IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); ActorServerData actorData = new ActorServerData(); if ((actorDataProvider != null) && actorDataProvider.GetActorServerData(ref actorMeta, ref actorData)) { int skinId = (int)actorData.SkinId; if (skinId != 0) { skinCfgId = (int)CSkinInfo.GetSkinCfgId((uint)actorMeta.ConfigId, (uint)skinId); } } return(skinCfgId); }
public static void ApplyHP2Game(List <PoolObjHandle <ActorRoot> > actorList) { List <PoolObjHandle <ActorRoot> > .Enumerator enumerator = actorList.GetEnumerator(); while (enumerator.MoveNext()) { PoolObjHandle <ActorRoot> current = enumerator.Current; current.handle.ActorControl.bForceNotRevive = true; IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); ActorServerData actorData = new ActorServerData(); PoolObjHandle <ActorRoot> handle2 = enumerator.Current; actorDataProvider.GetActorServerData(ref handle2.handle.TheActorMeta, ref actorData); PoolObjHandle <ActorRoot> handle3 = enumerator.Current; int actorHpTotal = handle3.handle.ValueComponent.actorHpTotal; int num2 = (int)Convert_FactHP(actorData.TheBurnInfo.HeroRemainingHp, (uint)actorHpTotal); PoolObjHandle <ActorRoot> handle4 = enumerator.Current; handle4.handle.ValueComponent.actorHp = num2; } }
public static void ApplyHP2Game(List <PoolObjHandle <ActorRoot> > actorList) { List <PoolObjHandle <ActorRoot> > .Enumerator enumerator = actorList.GetEnumerator(); while (enumerator.MoveNext()) { PoolObjHandle <ActorRoot> current = enumerator.get_Current(); current.handle.ActorControl.bForceNotRevive = true; IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); ActorServerData actorServerData = default(ActorServerData); IGameActorDataProvider gameActorDataProvider = actorDataProvider; PoolObjHandle <ActorRoot> current2 = enumerator.get_Current(); gameActorDataProvider.GetActorServerData(ref current2.handle.TheActorMeta, ref actorServerData); PoolObjHandle <ActorRoot> current3 = enumerator.get_Current(); int actorHpTotal = current3.handle.ValueComponent.actorHpTotal; int actorHp = (int)BurnExpeditionUT.Convert_FactHP(actorServerData.TheBurnInfo.HeroRemainingHp, (uint)actorHpTotal); PoolObjHandle <ActorRoot> current4 = enumerator.get_Current(); current4.handle.ValueComponent.actorHp = actorHp; } }
public void Init(ref ActorMeta actorMeta) { this.InitValueDataArr(ref actorMeta, false); IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); ActorServerData actorData = new ActorServerData(); if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { ResHeroCfgInfo dataByKey = GameDataMgr.heroDatabin.GetDataByKey((long)actorMeta.ConfigId); ResHeroEnergyInfo info2 = GameDataMgr.heroEnergyDatabin.GetDataByKey(dataByKey.dwEnergyType); this.EpRecFrequency = info2.iRecFrequency; } if (actorDataProvider.GetActorServerData(ref actorMeta, ref actorData)) { this.actorLvl = (int)actorData.Level; this.actorExp = (int)actorData.Exp; this.actorStar = (int)actorData.Star; this.actorQuality = (int)actorData.TheQualityInfo.Quality; this.actorSubQuality = (int)actorData.TheQualityInfo.SubQuality; } else { if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Monster) { IGameActorDataProvider provider2 = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); ActorStaticData data2 = new ActorStaticData(); this.actorLvl = !provider2.GetActorStaticData(ref actorMeta, ref data2) ? 1 : data2.TheMonsterOnlyInfo.MonsterBaseLevel; } else { this.actorLvl = 1; } this.actorExp = 0; this.actorStar = 1; this.actorQuality = 1; this.actorSubQuality = 0; } }
public void Initialize(PoolObjHandle <ActorRoot> actorRoot) { this.actorHero = actorRoot; this.HeroId = this.actorHero.handle.TheActorMeta.ConfigId; ActorServerData actorData = new ActorServerData(); IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); if (actorDataProvider.GetActorServerData(ref actorRoot.handle.TheActorMeta, ref actorData)) { this.SkinId = actorData.SkinId; } this.commonSkillID = 0; actorDataProvider.GetActorServerCommonSkillData(ref this.actorHero.handle.TheActorMeta, out this.commonSkillID); for (int i = 0; i < 5; i++) { this.TalentArr[i] = new COMDT_SETTLE_TALENT_INFO(); } base.m_numKill = 0; base.m_numAssist = 0; base.m_numDead = 0; base._totalCoin = 0; }
public override void Fight() { base.Fight(); if (ActorHelper.IsCaptainActor(ref this.actorPtr)) { this.m_isControledByMan = true; this.m_isAutoAI = false; } else { this.m_isControledByMan = false; this.m_isAutoAI = true; } IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); ActorServerData actorServerData = default(ActorServerData); if (actorDataProvider != null && actorDataProvider.GetActorServerData(ref this.actor.TheActorMeta, ref actorServerData)) { this.m_skinId = actorServerData.SkinId; this.m_skinCfgId = CSkinInfo.GetSkinCfgId((uint)this.actor.TheActorMeta.ConfigId, this.m_skinId); if (this.m_skinId != 0u) { ResHeroSkin heroSkin = CSkinInfo.GetHeroSkin((uint)this.actor.TheActorMeta.ConfigId, this.m_skinId); if (heroSkin != null && !string.IsNullOrEmpty(heroSkin.szSoundSwitchEvent)) { Singleton <CSoundManager> .instance.PostEvent(heroSkin.szSoundSwitchEvent, this.actor.gameObject); } } } this.SetSkillEffectPath(); base.EnableRVO(false); if (this.actor.HorizonMarker != null && FogOfWar.enable) { this.actor.HorizonMarker.SightRadius = Horizon.QueryGlobalSight(); } }
private static void ShowMultiLoading() { CUIFormScript cUIFormScript = Singleton <CUIManager> .GetInstance().OpenForm(CUILoadingSystem.PVP_PATH_LOADING, false, false); if (cUIFormScript == null) { return; } if (!Singleton <CUIEventManager> .GetInstance().HasUIEventListener(enUIEventID.IntimacyRela_LoadingClick)) { Singleton <CUIEventManager> .GetInstance().AddUIEventListener(enUIEventID.IntimacyRela_LoadingClick, new CUIEventManager.OnUIEventHandler(CUILoadingSystem.On_IntimacyRela_LoadingClick)); } SLevelContext curLvelContext = Singleton <BattleLogic> .instance.GetCurLvelContext(); IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); IGameActorDataProvider actorDataProvider2 = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); ActorStaticData actorStaticData = default(ActorStaticData); ActorMeta actorMeta = default(ActorMeta); ActorMeta actorMeta2 = default(ActorMeta); ActorServerData actorServerData = default(ActorServerData); actorMeta.ActorType = ActorTypeDef.Actor_Type_Hero; for (int i = 1; i <= 2; i++) { List <Player> allCampPlayers = Singleton <GamePlayerCenter> .GetInstance().GetAllCampPlayers((COM_PLAYERCAMP)i); if (allCampPlayers == null) { DebugHelper.Assert(false, "Loading Players is Null"); } else { Transform transform = (i == 1) ? cUIFormScript.transform.FindChild("UpPanel") : cUIFormScript.transform.FindChild("DownPanel"); int num = 1; while ((long)num <= 5L) { string name = (i == 1) ? string.Format("Up_Player{0}", num) : string.Format("Down_Player{0}", num); GameObject gameObject = transform.FindChild(name).gameObject; gameObject.CustomSetActive(false); num++; } List <Player> .Enumerator enumerator = allCampPlayers.GetEnumerator(); Player hostPlayer = Singleton <GamePlayerCenter> .instance.GetHostPlayer(); COM_PLAYERCAMP playerCamp = hostPlayer.PlayerCamp; while (enumerator.MoveNext()) { Player current = enumerator.get_Current(); if (current != null) { bool flag = current.PlayerId == hostPlayer.PlayerId; string name2 = (i == 1) ? string.Format("Up_Player{0}", current.CampPos + 1) : string.Format("Down_Player{0}", current.CampPos + 1); GameObject gameObject2 = transform.FindChild(name2).gameObject; gameObject2.CustomSetActive(true); GameObject gameObject3 = gameObject2.transform.Find("RankFrame").gameObject; bool flag2 = current.PlayerCamp == playerCamp && (!Singleton <WatchController> .GetInstance().IsWatching || !Singleton <WatchController> .GetInstance().IsReplaying); if (gameObject3 != null) { if (flag2) { string rankFrameIconPath = CLadderView.GetRankFrameIconPath((byte)current.GradeOfRank, current.ClassOfRank); if (string.IsNullOrEmpty(rankFrameIconPath)) { gameObject3.CustomSetActive(false); } else { Image component = gameObject3.GetComponent <Image>(); if (component != null) { component.SetSprite(rankFrameIconPath, cUIFormScript, true, false, false, false); } gameObject3.CustomSetActive(true); } } else { gameObject3.CustomSetActive(false); } } Transform transform2 = gameObject2.transform.Find("RankClassText"); if (transform2 != null) { GameObject gameObject4 = transform2.gameObject; if (flag2 && CLadderView.IsSuperKing((byte)current.GradeOfRank, current.ClassOfRank)) { gameObject4.CustomSetActive(true); gameObject4.GetComponent <Text>().set_text(current.ClassOfRank.ToString()); } else { gameObject4.CustomSetActive(false); } } Text component2 = gameObject2.transform.Find("Txt_PlayerName/Name").gameObject.GetComponent <Text>(); component2.set_text(current.Name); Image component3 = gameObject2.transform.Find("Txt_PlayerName/NobeIcon").gameObject.GetComponent <Image>(); if (component3) { MonoSingleton <NobeSys> .GetInstance().SetNobeIcon(component3, (int)current.VipLv, true, flag, current.privacyBits); } Text component4 = gameObject2.transform.Find("Txt_HeroName").gameObject.GetComponent <Text>(); actorMeta.ConfigId = (int)current.CaptainId; component4.set_text(actorDataProvider.GetActorStaticData(ref actorMeta, ref actorStaticData) ? actorStaticData.TheResInfo.Name : null); GameObject gameObject5 = gameObject2.transform.Find("Txt_Qinmidu").gameObject; if (gameObject5 != null) { if (current.IntimacyData != null) { gameObject5.CustomSetActive(true); Text component5 = gameObject5.transform.Find("Text").gameObject.GetComponent <Text>(); if (component5 != null) { component5.set_text(current.IntimacyData.title); } GameObject gameObject6 = gameObject5.transform.Find("BlueBg").gameObject; GameObject gameObject7 = gameObject5.transform.Find("RedBg").gameObject; if (current.IntimacyData.state == COM_INTIMACY_STATE.COM_INTIMACY_STATE_GAY || current.IntimacyData.state == COM_INTIMACY_STATE.COM_INTIMACY_STATE_SIDEKICK) { gameObject6.CustomSetActive(true); gameObject7.CustomSetActive(false); } else if (current.IntimacyData.state == COM_INTIMACY_STATE.COM_INTIMACY_STATE_LOVER || current.IntimacyData.state == COM_INTIMACY_STATE.COM_INTIMACY_STATE_BESTIE) { gameObject6.CustomSetActive(false); gameObject7.CustomSetActive(true); } } else { gameObject5.CustomSetActive(false); } } GameObject gameObject8 = gameObject2.transform.Find("btns").gameObject; if (gameObject8 != null) { if (current.IntimacyData != null && IntimacyRelationViewUT.IsRelaState(current.IntimacyData.state)) { int relaLevel = IntimacyRelationViewUT.CalcRelaLevel(current.IntimacyData.intimacyValue); string relaIconByRelaLevel = IntimacyRelationViewUT.GetRelaIconByRelaLevel(relaLevel, current.IntimacyData.state); if (!string.IsNullOrEmpty(relaIconByRelaLevel)) { Image componetInChild = Utility.GetComponetInChild <Image>(gameObject8, "btnRela"); if (componetInChild != null) { componetInChild.gameObject.CustomSetActive(true); componetInChild.SetSprite(relaIconByRelaLevel, cUIFormScript, true, false, false, false); } } } else { gameObject8.CustomSetActive(false); } } component2.set_color(Color.white); GameObject gameObject9 = gameObject2.transform.Find("Txt_PlayerName_Mine").gameObject; if (flag) { gameObject9.CustomSetActive(true); } else { gameObject9.CustomSetActive(false); } GameObject gameObject10 = gameObject2.transform.Find("Txt_LoadingPct").gameObject; if (gameObject10) { Text component6 = gameObject10.GetComponent <Text>(); if (current.Computer) { component6.set_text(curLvelContext.m_isWarmBattle ? "1%" : "100%"); } else { component6.set_text((MonoSingleton <Reconnection> .instance.isProcessingRelayRecover || Singleton <WatchController> .GetInstance().IsWatching) ? "100%" : "1%"); } } ResHeroCfgInfo dataByKey = GameDataMgr.heroDatabin.GetDataByKey(current.CaptainId); if (dataByKey != null) { actorMeta2.PlayerId = current.PlayerId; actorMeta2.ActorCamp = (COM_PLAYERCAMP)i; actorMeta2.ConfigId = (int)dataByKey.dwCfgID; actorMeta2.ActorType = ActorTypeDef.Actor_Type_Hero; Image component7 = gameObject2.transform.Find("Hero").gameObject.GetComponent <Image>(); if (actorDataProvider2.GetActorServerData(ref actorMeta2, ref actorServerData)) { ResHeroSkin heroSkin = CSkinInfo.GetHeroSkin((uint)actorServerData.TheActorMeta.ConfigId, actorServerData.SkinId); if (heroSkin != null) { component7.SetSprite(CUIUtility.s_Sprite_Dynamic_BustHero_Dir + StringHelper.UTF8BytesToString(ref heroSkin.szSkinPicID), cUIFormScript, true, false, false, true); if (heroSkin.dwSkinID > 0u) { component4.set_text(string.Format(Singleton <CTextManager> .GetInstance().GetText("LoadingSkinNameTxt"), heroSkin.szSkinName, heroSkin.szHeroName)); } if (flag) { component4.set_color(CUIUtility.s_Text_Color_MyHeroName); Outline component8 = component4.gameObject.GetComponent <Outline>(); if (component8 != null) { component8.set_effectColor(CUIUtility.s_Text_OutLineColor_MyHeroName); } } } bool flag3 = current.PlayerCamp == playerCamp && (!Singleton <WatchController> .GetInstance().IsWatching || !Singleton <WatchController> .GetInstance().IsReplaying) && (curLvelContext.m_isWarmBattle || !current.Computer); Transform transform3 = gameObject2.transform.Find("heroProficiencyBgImg"); if (transform3 != null) { transform3.gameObject.CustomSetActive(flag3); if (flag3) { CUICommonSystem.SetHeroProficiencyBgImage(cUIFormScript, transform3.gameObject, (int)actorServerData.TheProficiencyInfo.Level, true); } } Transform transform4 = gameObject2.transform.Find("heroProficiencyImg"); if (transform4 != null) { transform4.gameObject.CustomSetActive(flag3); if (flag3) { CUICommonSystem.SetHeroProficiencyIconImage(cUIFormScript, transform4.gameObject, (int)actorServerData.TheProficiencyInfo.Level); } } } else { component7.SetSprite(CUIUtility.s_Sprite_Dynamic_BustHero_Dir + StringHelper.UTF8BytesToString(ref dataByKey.szImagePath), cUIFormScript, true, false, false, true); } uint num2 = 0u; if (actorDataProvider2.GetActorServerCommonSkillData(ref actorMeta2, out num2) && num2 != 0u) { ResSkillCfgInfo dataByKey2 = GameDataMgr.skillDatabin.GetDataByKey(num2); if (dataByKey2 != null) { gameObject2.transform.Find("SelSkill").gameObject.CustomSetActive(true); string prefabPath = string.Format("{0}{1}", CUIUtility.s_Sprite_Dynamic_Skill_Dir, Utility.UTF8Convert(dataByKey2.szIconPath)); Image component9 = gameObject2.transform.Find("SelSkill/Icon").GetComponent <Image>(); component9.SetSprite(prefabPath, cUIFormScript.GetComponent <CUIFormScript>(), true, false, false, false); } else { gameObject2.transform.Find("SelSkill").gameObject.CustomSetActive(false); } } else { gameObject2.transform.Find("SelSkill").gameObject.CustomSetActive(false); } Transform transform5 = gameObject2.transform.Find("skinLabelImage"); if (transform5 != null) { CUICommonSystem.SetHeroSkinLabelPic(cUIFormScript, transform5.gameObject, dataByKey.dwCfgID, actorServerData.SkinId); } } } else { DebugHelper.Assert(false, "Loading Player is Null"); } } } } GameObject widget = cUIFormScript.GetWidget(0); GameObject widget2 = cUIFormScript.GetWidget(1); GameObject widget3 = cUIFormScript.GetWidget(2); if (curLvelContext.IsGameTypeGuildMatch()) { widget.CustomSetActive(false); widget2.CustomSetActive(false); widget3.CustomSetActive(true); CSDT_CAMP_EXT_GUILDMATCH[] campExtGuildMatchInfo = curLvelContext.GetCampExtGuildMatchInfo(); if (campExtGuildMatchInfo != null && campExtGuildMatchInfo.Length == 2) { Image component10 = cUIFormScript.GetWidget(3).GetComponent <Image>(); Text component11 = cUIFormScript.GetWidget(4).GetComponent <Text>(); Image component12 = cUIFormScript.GetWidget(5).GetComponent <Image>(); Text component13 = cUIFormScript.GetWidget(6).GetComponent <Text>(); component10.SetSprite(CUIUtility.s_Sprite_Dynamic_GuildHead_Dir + campExtGuildMatchInfo[0].dwGuildHeadID, cUIFormScript, true, false, false, false); component11.set_text(StringHelper.UTF8BytesToString(ref campExtGuildMatchInfo[0].szGuildName)); component12.SetSprite(CUIUtility.s_Sprite_Dynamic_GuildHead_Dir + campExtGuildMatchInfo[1].dwGuildHeadID, cUIFormScript, true, false, false, false); component13.set_text(StringHelper.UTF8BytesToString(ref campExtGuildMatchInfo[1].szGuildName)); } } else { widget.CustomSetActive(true); widget2.CustomSetActive(true); widget3.CustomSetActive(false); Text component14 = cUIFormScript.GetWidget(7).GetComponent <Text>(); component14.set_text(CUILoadingSystem.GenerateRandomPvpLoadingTips(CUILoadingSystem.GenerateMultiRandomNum())); widget2.CustomSetActive(MonoSingleton <Reconnection> .instance.isProcessingRelayRecover); } }
private static void ShowMultiLoading() { CUIFormScript formScript = Singleton <CUIManager> .GetInstance().OpenForm(PVP_PATH_LOADING, false, false); if (formScript != null) { SLevelContext curLvelContext = Singleton <BattleLogic> .instance.GetCurLvelContext(); GameObject widget = formScript.GetWidget(0); if (widget != null) { if (MonoSingleton <Reconnection> .instance.isProcessingRelayRecover) { widget.CustomSetActive(true); } else { widget.CustomSetActive(false); } } IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); IGameActorDataProvider provider2 = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); ActorStaticData actorData = new ActorStaticData(); ActorMeta actorMeta = new ActorMeta(); ActorMeta meta2 = new ActorMeta(); ActorServerData data2 = new ActorServerData(); actorMeta.ActorType = ActorTypeDef.Actor_Type_Hero; string name = null; for (int i = 1; i <= 2; i++) { List <Player> allCampPlayers = Singleton <GamePlayerCenter> .GetInstance().GetAllCampPlayers((COM_PLAYERCAMP)i); if (allCampPlayers != null) { Transform transform = (i != 1) ? formScript.transform.FindChild("DownPanel") : formScript.transform.FindChild("UpPanel"); for (int j = 1; j <= 5L; j++) { name = (i != 1) ? string.Format("Down_Player{0}", j) : string.Format("Up_Player{0}", j); transform.FindChild(name).gameObject.CustomSetActive(false); } List <Player> .Enumerator enumerator = allCampPlayers.GetEnumerator(); while (enumerator.MoveNext()) { Player current = enumerator.Current; if (current != null) { name = (i != 1) ? string.Format("Down_Player{0}", current.CampPos + 1) : string.Format("Up_Player{0}", current.CampPos + 1); GameObject gameObject = transform.FindChild(name).gameObject; gameObject.CustomSetActive(true); GameObject obj5 = gameObject.transform.Find("RankFrame").gameObject; if (obj5 != null) { if ((curLvelContext != null) && (curLvelContext.GameType == COM_GAME_TYPE.COM_MULTI_GAME_OF_LADDER)) { string rankFrameIconPath = CLadderView.GetRankFrameIconPath((byte)current.GradeOfRank); if (string.IsNullOrEmpty(rankFrameIconPath)) { obj5.CustomSetActive(false); } else { Image image = obj5.GetComponent <Image>(); if (image != null) { image.SetSprite(rankFrameIconPath, formScript, true, false, false); } obj5.CustomSetActive(true); } } else { obj5.CustomSetActive(false); } } Text component = gameObject.transform.Find("Txt_PlayerName/Name").gameObject.GetComponent <Text>(); component.text = current.Name; Image image2 = gameObject.transform.Find("Txt_PlayerName/NobeIcon").gameObject.GetComponent <Image>(); if (image2 != null) { MonoSingleton <NobeSys> .GetInstance().SetNobeIcon(image2, (int)current.VipLv, true); } Text text2 = gameObject.transform.Find("Txt_HeroName").gameObject.GetComponent <Text>(); actorMeta.ConfigId = (int)current.CaptainId; text2.text = !actorDataProvider.GetActorStaticData(ref actorMeta, ref actorData) ? null : actorData.TheResInfo.Name; if (current.PlayerId == Singleton <GamePlayerCenter> .instance.GetHostPlayer().PlayerId) { component.color = CUIUtility.s_Text_Color_Self; } else { component.color = CUIUtility.s_Text_Color_CommonGray; } GameObject obj6 = gameObject.transform.Find("Txt_LoadingPct").gameObject; if (obj6 != null) { Text text3 = obj6.GetComponent <Text>(); if (current.Computer) { text3.text = !curLvelContext.isWarmBattle ? "100%" : "1%"; } else { text3.text = !MonoSingleton <Reconnection> .instance.isProcessingRelayRecover ? "1%" : "100%"; } } ResHeroCfgInfo dataByKey = GameDataMgr.heroDatabin.GetDataByKey(current.CaptainId); if (dataByKey != null) { meta2.PlayerId = current.PlayerId; meta2.ActorCamp = (COM_PLAYERCAMP)i; meta2.ConfigId = (int)dataByKey.dwCfgID; meta2.ActorType = ActorTypeDef.Actor_Type_Hero; Image image3 = gameObject.transform.Find("Hero").gameObject.GetComponent <Image>(); if (provider2.GetActorServerData(ref meta2, ref data2)) { ResHeroSkin heroSkin = CSkinInfo.GetHeroSkin((uint)data2.TheActorMeta.ConfigId, data2.SkinId); if (heroSkin != null) { image3.SetSprite(CUIUtility.s_Sprite_Dynamic_BustHero_Dir + StringHelper.UTF8BytesToString(ref heroSkin.szSkinPicID), formScript, true, false, false); } bool bActive = curLvelContext.isWarmBattle || !current.Computer; Transform transform2 = gameObject.transform.Find("heroProficiencyBgImg"); if (transform2 != null) { transform2.gameObject.CustomSetActive(bActive); if (bActive) { CUICommonSystem.SetHeroProficiencyBgImage(formScript, transform2.gameObject, (int)data2.TheProficiencyInfo.Level, true); } } Transform transform3 = gameObject.transform.Find("heroProficiencyImg"); if (transform3 != null) { transform3.gameObject.CustomSetActive(bActive); if (bActive) { CUICommonSystem.SetHeroProficiencyIconImage(formScript, transform3.gameObject, (int)data2.TheProficiencyInfo.Level); } } } else { image3.SetSprite(CUIUtility.s_Sprite_Dynamic_BustHero_Dir + StringHelper.UTF8BytesToString(ref dataByKey.szImagePath), formScript, true, false, false); } uint skillID = 0; if (provider2.GetActorServerCommonSkillData(ref meta2, out skillID) && (skillID != 0)) { ResSkillCfgInfo info2 = GameDataMgr.skillDatabin.GetDataByKey(skillID); if (info2 != null) { gameObject.transform.Find("SelSkill").gameObject.CustomSetActive(true); string prefabPath = string.Format("{0}{1}", CUIUtility.s_Sprite_Dynamic_Skill_Dir, Utility.UTF8Convert(info2.szIconPath)); gameObject.transform.Find("SelSkill/Icon").GetComponent <Image>().SetSprite(prefabPath, formScript.GetComponent <CUIFormScript>(), true, false, false); } else { gameObject.transform.Find("SelSkill").gameObject.CustomSetActive(false); } } else { gameObject.transform.Find("SelSkill").gameObject.CustomSetActive(false); } Transform transform4 = gameObject.transform.Find("skinLabelImage"); if (transform4 != null) { CUICommonSystem.SetHeroSkinLabelPic(formScript, transform4.gameObject, dataByKey.dwCfgID, data2.SkinId); } } } } } } formScript.gameObject.transform.FindChild("Img_Tiao").FindChild("Tips").gameObject.GetComponent <Text>().text = GenerateRandomPvpLoadingTips(GenerateMultiRandomNum()); } }
public void AddPreloadActor(ref List <ActorPreloadTab> list, ref ActorMeta actorMeta, float spawnCnt, int ownerSkinID = 0) { ActorStaticData actorData = new ActorStaticData(); IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); actorDataProvider.GetActorStaticData(ref actorMeta, ref actorData); ActorServerData data2 = new ActorServerData(); IGameActorDataProvider provider2 = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); provider2.GetActorServerData(ref actorMeta, ref data2); CActorInfo actorInfo = CActorInfo.GetActorInfo(actorData.TheResInfo.ResPath, enResourceType.BattleScene); if (actorInfo != null) { for (int i = 0; i < list.Count; i++) { ActorPreloadTab tab = list[i]; if ((tab.theActor.ActorType == actorMeta.ActorType) && (tab.theActor.ConfigId == actorMeta.ConfigId)) { if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { if (this.GetActorMarkID(actorMeta) != tab.MarkID) { continue; } uint skillID = 0; if (provider2.GetActorServerCommonSkillData(ref actorMeta, out skillID)) { this.AnalyseSkill(ref tab, (int)skillID); } } else if ((actorMeta.ActorType == ActorTypeDef.Actor_Type_Monster) && (spawnCnt > 0f)) { tab.spawnCnt += spawnCnt; list[i] = tab; } retCnt++; return; } } ActorPreloadTab loadInfo = new ActorPreloadTab { theActor = actorMeta }; loadInfo.modelPrefab.assetPath = actorInfo.GetArtPrefabName((ownerSkinID == 0) ? ((int)data2.SkinId) : ownerSkinID, -1); loadInfo.modelPrefab.nInstantiate = 1; loadInfo.spawnCnt = spawnCnt; loadInfo.MarkID = this.GetActorMarkID(actorMeta); loadInfo.ageActions = new List <AssetLoadBase>(); loadInfo.parPrefabs = new List <AssetLoadBase>(); loadInfo.mesPrefabs = new List <AssetLoadBase>(); if (data2.SkinId != 0) { actorInfo.PreLoadAdvanceSkin(loadInfo.mesPrefabs, data2.SkinId, -1); } loadInfo.spritePrefabs = new List <AssetLoadBase>(); loadInfo.soundBanks = new List <AssetLoadBase>(); loadInfo.behaviorXml = new List <AssetLoadBase>(); ActorStaticSkillData skillData = new ActorStaticSkillData(); for (int j = 0; j < 8; j++) { actorDataProvider.GetActorStaticSkillData(ref actorMeta, (ActorSkillSlot)j, ref skillData); this.AnalyseSkill(ref loadInfo, skillData.SkillId); this.AnalysePassiveSkill(ref loadInfo, skillData.PassiveSkillId); } if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { int num5; int num6; int num7; int num8; this.GetMapSkills(out num5, out num6, out num7, out num8); this.AnalyseSkill(ref loadInfo, num5); this.AnalyseSkill(ref loadInfo, num6); this.AnalyseSkill(ref loadInfo, num7); this.AnalysePassiveSkill(ref loadInfo, num8); uint num9 = 0; if (provider2.GetActorServerCommonSkillData(ref actorMeta, out num9)) { this.AnalyseSkill(ref loadInfo, (int)num9); } ResTalentHero dataByKey = GameDataMgr.talentHero.GetDataByKey((uint)actorMeta.ConfigId); if (dataByKey != null) { this.AnalyseHeroTalent(ref loadInfo, dataByKey); } this.AnalyseHeroBornAndReviveAge(ref loadInfo, actorMeta.ConfigId); ResHeroCfgInfo info2 = GameDataMgr.heroDatabin.GetDataByKey((uint)actorMeta.ConfigId); if (info2 != null) { this.AnalysePassiveSkill(ref loadInfo, info2.iPassiveID1); this.AnalysePassiveSkill(ref loadInfo, info2.iPassiveID2); } } else if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Monster) { ActorStaticData data4 = new ActorStaticData(); Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider).GetActorStaticData(ref actorMeta, ref data4); int randomPassiveSkillRule = data4.TheBaseAttribute.RandomPassiveSkillRule; if ((randomPassiveSkillRule > 0) && !this.randomSkillCheckerSet.ContainsKey(randomPassiveSkillRule)) { this.randomSkillCheckerSet.Add(randomPassiveSkillRule, true); ResRandomSkillPassiveRule rule = GameDataMgr.randomSkillPassiveDatabin.GetDataByKey((long)randomPassiveSkillRule); if ((rule.astRandomSkillPassiveID1 != null) && (rule.astRandomSkillPassiveID1.Length > 0)) { for (int k = 0; k < rule.astRandomSkillPassiveID1.Length; k++) { this.AnalysePassiveSkill(ref loadInfo, rule.astRandomSkillPassiveID1[k].iParam); } } if ((rule.astRandomSkillPassiveID2 != null) && (rule.astRandomSkillPassiveID2.Length > 0)) { for (int m = 0; m < rule.astRandomSkillPassiveID2.Length; m++) { this.AnalysePassiveSkill(ref loadInfo, rule.astRandomSkillPassiveID2[m].iParam); } } } } if (!string.IsNullOrEmpty(actorInfo.deadAgePath)) { AssetLoadBase item = new AssetLoadBase { assetPath = actorInfo.deadAgePath }; loadInfo.ageActions.Add(item); } if (!string.IsNullOrEmpty(actorInfo.BtResourcePath) && !this.behaviorXmlSet.ContainsKey(actorInfo.BtResourcePath)) { AssetLoadBase base3 = new AssetLoadBase { assetPath = actorInfo.BtResourcePath }; loadInfo.behaviorXml.Add(base3); this.behaviorXmlSet.Add(actorInfo.BtResourcePath, true); } loadInfo.soundBanks = new List <AssetLoadBase>(); this.AnalyseSoundBanks(ref loadInfo, ref actorInfo, ref data2); list.Add(loadInfo); if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { this.CheckCallMonsterSkill(actorInfo, ref list, ref actorMeta, (int)data2.SkinId); } else if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Organ) { this.CheckOrganSoldierWave(ref list, ref actorMeta, actorData); } } }
public PoolObjHandle <ActorRoot> SpawnActorEx(GameObject rootObj, ref ActorMeta actorMeta, VInt3 pos, VInt3 dir, bool useLobbyModel, bool addComponent) { if (actorMeta.Difficuty == 0) { actorMeta.Difficuty = (byte)Singleton <BattleLogic> .get_instance().GetCurLvelContext().m_levelDifficulty; } ActorStaticData theStaticData = default(ActorStaticData); IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .get_instance().GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); actorDataProvider.GetActorStaticData(ref actorMeta, ref theStaticData); ActorServerData actorServerData = default(ActorServerData); IGameActorDataProvider actorDataProvider2 = Singleton <ActorDataCenter> .get_instance().GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); actorDataProvider2.GetActorServerData(ref actorMeta, ref actorServerData); if (actorMeta.SkinID == 0u) { actorMeta.SkinID = actorServerData.SkinId; } GameObject gameObject = null; ActorConfig component; if (rootObj == null) { rootObj = MonoSingleton <SceneMgr> .GetInstance().Spawn(typeof(ActorRoot).get_Name(), (SceneObjType)theStaticData.TheActorMeta.ActorType, pos, dir); component = rootObj.GetComponent <ActorConfig>(); } else { component = rootObj.GetComponent <ActorConfig>(); Animation componentInChildren = rootObj.GetComponentInChildren <Animation>(); if (componentInChildren != null) { gameObject = componentInChildren.gameObject; } rootObj.transform.parent = MonoSingleton <SceneMgr> .GetInstance().GetRoot((SceneObjType)theStaticData.TheActorMeta.ActorType).transform; } component.ConfigID = actorMeta.ConfigId; CActorInfo cActorInfo = null; if (!string.IsNullOrEmpty(theStaticData.TheResInfo.ResPath)) { CActorInfo actorInfo = CActorInfo.GetActorInfo(theStaticData.TheResInfo.ResPath, 0); if (actorInfo != null) { cActorInfo = (CActorInfo)Object.Instantiate(actorInfo); string text = (!useLobbyModel) ? cActorInfo.GetArtPrefabName((int)actorMeta.SkinID, -1) : cActorInfo.GetArtPrefabNameLobby((int)actorMeta.SkinID); if (gameObject == null && !string.IsNullOrEmpty(text)) { bool flag = false; gameObject = MonoSingleton <SceneMgr> .GetInstance().GetPooledGameObjLOD(text, false, SceneObjType.ActionRes, Vector3.zero, Quaternion.identity, out flag); if (gameObject != null) { Transform component2 = gameObject.GetComponent <Transform>(); component2.SetParent(rootObj.transform); component2.localPosition = Vector3.zero; component2.localRotation = Quaternion.identity; TransformConfig transformConfigIfHaveOne = cActorInfo.GetTransformConfigIfHaveOne(ETransformConfigUsage.CharacterInGame); if (transformConfigIfHaveOne != null) { component2.localPosition += transformConfigIfHaveOne.Offset; component2.localScale *= transformConfigIfHaveOne.Scale; } } } } } PoolObjHandle <ActorRoot> result = component.AttachActorRoot(rootObj, ref actorMeta, cActorInfo); result.get_handle().TheStaticData = theStaticData; if (addComponent) { result.get_handle().Spawned(); } return(result); }
public bool GetRevivePosDir(ref ActorMeta actorMeta, bool bGiveBirth, out VInt3 outPosWorld, out VInt3 outDirWorld) { outPosWorld = VInt3.zero; outDirWorld = VInt3.forward; if (Singleton <GamePlayerCenter> .instance.GetPlayer(actorMeta.PlayerId) != null) { ListView <ReviveRegion> .Enumerator enumerator = this.reviveAreas.GetEnumerator(); while (enumerator.MoveNext()) { if ((enumerator.Current != null) && (actorMeta.ActorCamp == enumerator.Current.CampType)) { IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); ActorServerData actorData = new ActorServerData(); actorDataProvider.GetActorServerData(ref actorMeta, ref actorData); int bornPointIndex = actorData.TheExtraInfo.BornPointIndex; Transform transform = enumerator.Current.transform; if (!bGiveBirth) { uint length = (uint)enumerator.Current.SubRevivePlaces.Length; if (!enumerator.Current.OnlyBirth) { length++; int num3 = FrameRandom.Random(length); if ((0 < num3) && (enumerator.Current.SubRevivePlaces[num3 - 1] != null)) { transform = enumerator.Current.SubRevivePlaces[num3 - 1].transform; } } else if (length >= 1) { int index = FrameRandom.Random(length); if (enumerator.Current.SubRevivePlaces[index] != null) { transform = enumerator.Current.SubRevivePlaces[index].transform; } } } Transform child = null; if (transform != null) { if (bornPointIndex < transform.childCount) { child = transform.GetChild(bornPointIndex); } else { child = transform; } } if (child != null) { outPosWorld = (VInt3)child.position; outDirWorld = (VInt3)child.forward; return(true); } } } } return(false); }
public void AddPreloadActor(ref List <ActorPreloadTab> list, ref ActorMeta actorMeta, float spawnCnt, int ownerSkinID = 0) { ActorStaticData inStaticData = default(ActorStaticData); IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); actorDataProvider.GetActorStaticData(ref actorMeta, ref inStaticData); ActorServerData actorServerData = default(ActorServerData); IGameActorDataProvider actorDataProvider2 = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider); actorDataProvider2.GetActorServerData(ref actorMeta, ref actorServerData); CActorInfo actorInfo = CActorInfo.GetActorInfo(inStaticData.TheResInfo.ResPath, enResourceType.BattleScene); if (actorInfo == null) { return; } for (int i = 0; i < list.get_Count(); i++) { ActorPreloadTab actorPreloadTab = list.get_Item(i); if (actorPreloadTab.theActor.ActorType == actorMeta.ActorType && actorPreloadTab.theActor.ConfigId == actorMeta.ConfigId) { if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Hero || actorMeta.ActorType == ActorTypeDef.Actor_Type_Call) { int actorMarkID = this.GetActorMarkID(actorMeta); if (actorMarkID != actorPreloadTab.MarkID) { goto IL_13B; } uint skillID = 0u; if (actorDataProvider2.GetActorServerCommonSkillData(ref actorMeta, out skillID)) { this.AnalyseSkill(ref actorPreloadTab, (int)skillID); } } else if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Monster && spawnCnt > 0f) { actorPreloadTab.spawnCnt += spawnCnt; list.set_Item(i, actorPreloadTab); } LoaderHelper.retCnt++; return; } IL_13B :; } ActorPreloadTab actorPreloadTab2 = new ActorPreloadTab(); actorPreloadTab2.theActor = actorMeta; actorPreloadTab2.modelPrefab.assetPath = actorInfo.GetArtPrefabName((ownerSkinID != 0) ? ownerSkinID : ((int)actorServerData.SkinId), -1); actorPreloadTab2.modelPrefab.nInstantiate = 1; actorPreloadTab2.spawnCnt = spawnCnt; actorPreloadTab2.MarkID = this.GetActorMarkID(actorMeta); actorPreloadTab2.ageActions = new List <AssetLoadBase>(); actorPreloadTab2.parPrefabs = new List <AssetLoadBase>(); actorPreloadTab2.mesPrefabs = new List <AssetLoadBase>(); if (actorServerData.SkinId != 0u) { actorInfo.PreLoadAdvanceSkin(actorPreloadTab2.mesPrefabs, actorServerData.SkinId, -1); } actorPreloadTab2.spritePrefabs = new List <AssetLoadBase>(); actorPreloadTab2.soundBanks = new List <AssetLoadBase>(); actorPreloadTab2.behaviorXml = new List <AssetLoadBase>(); ActorStaticSkillData actorStaticSkillData = default(ActorStaticSkillData); for (int j = 0; j < 8; j++) { actorDataProvider.GetActorStaticSkillData(ref actorMeta, (ActorSkillSlot)j, ref actorStaticSkillData); this.AnalyseSkill(ref actorPreloadTab2, actorStaticSkillData.SkillId); this.AnalysePassiveSkill(ref actorPreloadTab2, actorStaticSkillData.PassiveSkillId); } if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Hero || actorMeta.ActorType == ActorTypeDef.Actor_Type_Call) { int skillID2; int skillID3; int skillID4; int passiveSkillID; this.GetMapSkills(out skillID2, out skillID3, out skillID4, out passiveSkillID); this.AnalyseSkill(ref actorPreloadTab2, skillID2); this.AnalyseSkill(ref actorPreloadTab2, skillID3); this.AnalyseSkill(ref actorPreloadTab2, skillID4); this.AnalysePassiveSkill(ref actorPreloadTab2, passiveSkillID); uint skillID5 = 0u; if (actorDataProvider2.GetActorServerCommonSkillData(ref actorMeta, out skillID5)) { this.AnalyseSkill(ref actorPreloadTab2, (int)skillID5); } this.AnalyseHeroBornAndReviveAge(ref actorPreloadTab2, actorMeta.ConfigId); ResHeroCfgInfo dataByKey = GameDataMgr.heroDatabin.GetDataByKey((uint)actorMeta.ConfigId); if (dataByKey != null) { this.AnalysePassiveSkill(ref actorPreloadTab2, dataByKey.iPassiveID1); this.AnalysePassiveSkill(ref actorPreloadTab2, dataByKey.iPassiveID2); } } else if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Monster) { ActorStaticData actorStaticData = default(ActorStaticData); IGameActorDataProvider actorDataProvider3 = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider); actorDataProvider3.GetActorStaticData(ref actorMeta, ref actorStaticData); int randomPassiveSkillRule = actorStaticData.TheBaseAttribute.RandomPassiveSkillRule; if (randomPassiveSkillRule > 0 && !this.randomSkillCheckerSet.ContainsKey(randomPassiveSkillRule)) { this.randomSkillCheckerSet.Add(randomPassiveSkillRule, true); ResRandomSkillPassiveRule dataByKey2 = GameDataMgr.randomSkillPassiveDatabin.GetDataByKey((long)randomPassiveSkillRule); if (dataByKey2.astRandomSkillPassiveID1 != null && dataByKey2.astRandomSkillPassiveID1.Length > 0) { for (int k = 0; k < dataByKey2.astRandomSkillPassiveID1.Length; k++) { this.AnalysePassiveSkill(ref actorPreloadTab2, dataByKey2.astRandomSkillPassiveID1[k].iParam); } } if (dataByKey2.astRandomSkillPassiveID2 != null && dataByKey2.astRandomSkillPassiveID2.Length > 0) { for (int l = 0; l < dataByKey2.astRandomSkillPassiveID2.Length; l++) { this.AnalysePassiveSkill(ref actorPreloadTab2, dataByKey2.astRandomSkillPassiveID2[l].iParam); } } } ResMonsterCfgInfo dataCfgInfoByCurLevelDiff = MonsterDataHelper.GetDataCfgInfoByCurLevelDiff(actorMeta.ConfigId); if (dataCfgInfoByCurLevelDiff != null && dataCfgInfoByCurLevelDiff.iBufDropID != 0 && dataCfgInfoByCurLevelDiff.iBufDropRate > 0) { ShenFuSystem.PreLoadShenfuResource(dataCfgInfoByCurLevelDiff.iBufDropID, ref actorPreloadTab2, this); } if (actorStaticData.TheMonsterOnlyInfo.SoldierType == 8 && dataCfgInfoByCurLevelDiff != null) { ListView <Assets.Scripts.GameLogic.SoldierWave> listView = new ListView <Assets.Scripts.GameLogic.SoldierWave>(); int iKillByCamp1ChangeSoldierWave = dataCfgInfoByCurLevelDiff.iKillByCamp1ChangeSoldierWave; int iKillByCamp2ChangeSoldierWave = dataCfgInfoByCurLevelDiff.iKillByCamp2ChangeSoldierWave; listView.AddRange(SoldierRegion.GetWavesForPreLoad(iKillByCamp1ChangeSoldierWave)); listView.AddRange(SoldierRegion.GetWavesForPreLoad(iKillByCamp2ChangeSoldierWave)); for (int m = 0; m < listView.Count; m++) { Assets.Scripts.GameLogic.SoldierWave soldierWave = listView[m]; if (soldierWave != null && soldierWave.WaveInfo != null && soldierWave.WaveInfo.astNormalSoldierInfo != null && soldierWave.WaveInfo.astNormalSoldierInfo.Length > 0) { for (int n = 0; n < soldierWave.WaveInfo.astNormalSoldierInfo.Length; n++) { ResSoldierTypeInfo resSoldierTypeInfo = soldierWave.WaveInfo.astNormalSoldierInfo[n]; if (resSoldierTypeInfo.dwSoldierID == 0u) { break; } ActorMeta actorMeta2 = default(ActorMeta); ActorMeta actorMeta3 = actorMeta2; actorMeta3.ActorType = ActorTypeDef.Actor_Type_Monster; actorMeta3.ConfigId = (int)resSoldierTypeInfo.dwSoldierID; actorMeta2 = actorMeta3; this.AddPreloadActor(ref list, ref actorMeta2, resSoldierTypeInfo.dwSoldierNum * 2f, 0); } } } } } if (!string.IsNullOrEmpty(actorInfo.deadAgePath)) { actorPreloadTab2.ageActions.Add(new AssetLoadBase { assetPath = actorInfo.deadAgePath }); } if (!string.IsNullOrEmpty(actorInfo.BtResourcePath) && !this.behaviorXmlSet.ContainsKey(actorInfo.BtResourcePath)) { actorPreloadTab2.behaviorXml.Add(new AssetLoadBase { assetPath = actorInfo.BtResourcePath }); this.behaviorXmlSet.Add(actorInfo.BtResourcePath, true); } actorPreloadTab2.soundBanks = new List <AssetLoadBase>(); this.AnalyseSoundBanks(ref actorPreloadTab2, ref actorInfo, ref actorServerData); list.Add(actorPreloadTab2); if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { this.CheckCallMonsterSkill(actorInfo, ref list, ref actorMeta, (int)actorServerData.SkinId); } else if (actorMeta.ActorType == ActorTypeDef.Actor_Type_Organ) { this.CheckOrganSoldierWave(ref list, ref actorMeta, inStaticData); } }