/// <summary> /// 设置队伍ID /// </summary> /// <param name="teamId"></param> public void SetTeamData(string teamCode, NpcTeamBean teamData, int teamRank, Color teamColor) { this.teamCode = teamCode; this.teamData = teamData; this.teamRank = teamRank; this.teamColor = teamColor; }
public void BuildConvert(NpcTeamBean npcTeam, Vector3 npcPosition) { if (npcTeam == null || listExistTeamId.Contains(npcTeam.id)) { return; } //获取小队成员数据 npcTeam.GetTeamCharacterData(out List <CharacterBean> listLeader, out List <CharacterBean> listMembers); //设置小队相关 string teamCode = SystemUtil.GetUUID(SystemUtil.UUIDTypeEnum.N); int npcNumber = listLeader.Count + listMembers.Count; for (int i = 0; i < npcNumber; i++) { CharacterBean characterData = null; if (i < listLeader.Count) { characterData = listLeader[i]; } else { characterData = listMembers[i - listLeader.Count]; } //生成NPC GameObject npcObj = BuildNpc(listConvertHide, objConvertModel, characterData, npcPosition + new Vector3(UnityEngine.Random.Range(-0.5f, 0.5f), UnityEngine.Random.Range(-0.5f, 0.5f))); //设置意图 NpcAIConvertCpt convertCpt = npcObj.GetComponent <NpcAIConvertCpt>(); GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); CharacterFavorabilityBean characterFavorability = gameData.GetCharacterFavorability(long.Parse(characterData.baseInfo.characterId)); convertCpt.SetTeamData(teamCode, npcTeam, i); convertCpt.SetIntent(NpcAISundryCpt.SundryIntentEnum.GoToInn); } listExistTeamId.Add(npcTeam.id); }
public void SetDataForTeamCustomer(long teamId) { CptUtil.RemoveChildsByActive(objLoveMenuContainer); //获取团队数据 NpcTeamBean npcTeamData = NpcTeamHandler.Instance.manager.GetCustomerTeam(teamId); if (npcTeamData == null) { return; } //获取喜爱的菜单 List <long> listLoveMenu = npcTeamData.GetLoveMenus(); GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); UserAchievementBean userAchievement = gameData.GetAchievementData(); foreach (long menuId in listLoveMenu) { MenuInfoBean menuInfo = InnFoodHandler.Instance.manager.GetFoodDataById(menuId); Sprite spFood = InnFoodHandler.Instance.manager.GetFoodSpriteByName(menuInfo.icon_key); GameObject objLoveMenu = Instantiate(objLoveMenuContainer, objLoveMenuModel); ItemBaseTextCpt itemLoveMenu = objLoveMenu.GetComponent <ItemBaseTextCpt>(); if (userAchievement.CheckHasTeamCustomerLoveMenu(teamId, menuId)) { itemLoveMenu.SetData(spFood, menuInfo.name, ""); } else { itemLoveMenu.SetData(spUnLock, "???", Color.gray, ""); } } }
/// <summary> /// 创建转换者事件 /// </summary> public void BuildConvert() { Vector3 npcPosition = GetRandomStartPosition(); NpcTeamBean teamData = RandomUtil.GetRandomDataByList(listConvert); BuildConvert(teamData, npcPosition); }
/// <summary> /// 更新数据 /// </summary> /// <param name="teamData"></param> public void Update(NpcTeamBean teamData) { if (DeleteDataById(teamData.id)) { InsertData(teamData); } }
/// <summary> /// 创建杂项事件 /// </summary> public void BuildSundry() { Vector3 npcPosition = GetRandomStartPosition(); NpcTeamBean teamData = RandomUtil.GetRandomDataByList(listSundry); BuildSundry(teamData, npcPosition); }
public void BuildGuestTeam(long teamId) { Vector3 npcPosition = GetRandomStartPosition(); NpcTeamBean teamData = NpcTeamHandler.Instance.manager.GetCustomerTeam(teamId); BuildGuestTeam(teamData, npcPosition); }
public void BuildTownFriendsForTeam(long teamId) { Vector3 npcPosition = GetRandomStartPosition(); NpcTeamBean teamData = NpcTeamHandler.Instance.manager.GetFriendTeam(teamId); BuildTownFriendsForTeam(teamData, npcPosition); }
public void BuildTownFriendsForTeam() { Vector3 npcPosition = GetRandomStartPosition(); NpcTeamBean teamData = RandomUtil.GetRandomDataByList(listFriend); BuildTownFriendsForTeam(teamData, npcPosition); }
public void BuildSundry(long teamId) { Vector3 npcPosition = GetRandomStartPosition(); NpcTeamBean teamData = NpcTeamHandler.Instance.manager.GetSundryTeam(teamId); BuildSundry(teamData, npcPosition); }
/// <summary> /// 创建团队顾客 /// </summary> public void BuildGuestTeam() { Vector3 npcPosition = GetRandomStartPosition(); NpcTeamBean teamData = RandomUtil.GetRandomDataByList(listTeamCustomer); BuildGuestTeam(teamData, npcPosition); }
/// <summary> /// 插入数据 /// </summary> /// <param name="teamData"></param> public void InsertData(NpcTeamBean teamData) { List <string> listLeftName = new List <string> { "team_id", "name" }; BaseInsertDataWithLeft(teamData, listLeftName); }
public void BuildGuestTeam(NpcTeamBean npcTeam, Vector3 npcPosition) { if (npcTeam == null) { return; } //设置小队相关 string teamCode = SystemUtil.GetUUID(SystemUtil.UUIDTypeEnum.N); Color teamColor = new Color(UnityEngine.Random.Range(0f, 1f), UnityEngine.Random.Range(0f, 1f), UnityEngine.Random.Range(0f, 1f)); //设置是否想吃 bool isWant = IsWantEat(CustomerTypeEnum.Team); //获取小队成员数据 npcTeam.GetTeamCharacterData(out List <CharacterBean> listLeader, out List <CharacterBean> listMembers); //设置小队人数(团队领袖全生成,小队成员随机生成) int npcNumber = UnityEngine.Random.Range(listLeader.Count + 1, listLeader.Count + 1 + npcTeam.team_number); for (int i = 0; i < npcNumber; i++) { CharacterBean characterData = null; if (i < listLeader.Count) { characterData = listLeader[i]; } else { characterData = RandomUtil.GetRandomDataByList(listMembers); } //如果发现成员数据为空 默认取领导的 if (characterData == null) { characterData = listLeader[0]; } //随机生成身体数据 characterData.body.CreateRandomEye(); GameObject npcObj = BuildNpc(listGuestTeamHide, objGuestTeamModel, characterData, npcPosition + new Vector3(UnityEngine.Random.Range(-0.5f, 0.5f), UnityEngine.Random.Range(-0.5f, 0.5f))); BaseNpcAI baseNpcAI = npcObj.GetComponent <BaseNpcAI>(); baseNpcAI.SetCharacterData(characterData); baseNpcAI.AddStatusIconForGuestTeam(teamColor); NpcAICustomerForGuestTeamCpt customerAI = baseNpcAI.GetComponent <NpcAICustomerForGuestTeamCpt>(); customerAI.SetTeamData(teamCode, npcTeam, i, teamColor); if (GameTimeHandler.Instance.GetDayStatus() == GameTimeHandler.DayEnum.Work && isWant) { customerAI.SetIntent(NpcAICustomerCpt.CustomerIntentEnum.Want); } else { customerAI.SetIntent(NpcAICustomerCpt.CustomerIntentEnum.Walk); } } }
public void BuildTownFriendsForTeam(NpcTeamBean teamData, Vector3 npcPosition) { if (teamData == null) { return; } if (listExistTeamId.Contains(teamData.id)) { return; } //设置小队相关 string teamCode = SystemUtil.GetUUID(SystemUtil.UUIDTypeEnum.N); Color teamColor = new Color(UnityEngine.Random.Range(0f, 1f), UnityEngine.Random.Range(0f, 1f), UnityEngine.Random.Range(0f, 1f)); //获取小队成员数据 teamData.GetTeamCharacterData(out List <CharacterBean> listLeader, out List <CharacterBean> listMembers); GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); //设置小队人数(团队领袖全生成,小队成员随机生成) int npcNumber = listLeader.Count + listMembers.Count; for (int i = 0; i < npcNumber; i++) { CharacterBean characterData = null; if (i < listLeader.Count) { characterData = listLeader[i]; } else { characterData = listMembers[i - listLeader.Count]; } //获取好感 CharacterFavorabilityBean characterFavorability = gameData.GetCharacterFavorability(characterData.npcInfoData.id); GameObject npcObj = Instantiate(objContainer, objFriendModel); npcObj.transform.localScale = new Vector3(1, 1); npcObj.transform.position = npcPosition + new Vector3(UnityEngine.Random.Range(-0.5f, 0.5f), UnityEngine.Random.Range(-0.5f, 0.5f)); BaseNpcAI baseNpcAI = npcObj.GetComponent <BaseNpcAI>(); baseNpcAI.SetCharacterData(characterData); baseNpcAI.AddStatusIconForFriend(); baseNpcAI.AddStatusIconForGuestTeam(teamColor); baseNpcAI.SetFavorabilityData(characterFavorability); NpcAICostomerForFriendCpt customerAI = baseNpcAI.GetComponent <NpcAICostomerForFriendCpt>(); customerAI.SetTeamData(teamCode, teamData, i, teamColor); customerAI.SetIntent(NpcAICustomerCpt.CustomerIntentEnum.Want); } listExistTeamId.Add(teamData.id); }
/// <summary> /// 团队创建 UI /// </summary> public static void GUINpcTeamCreate(NpcTeamService npcTeamService, NpcTeamBean npcTeamData) { GUILayout.Label("Npc团队创建", GUILayout.Width(100), GUILayout.Height(20)); GUILayout.BeginHorizontal(); if (GUILayout.Button("创建", GUILayout.Width(100), GUILayout.Height(20))) { npcTeamData.valid = 1; npcTeamService.InsertData(npcTeamData); } GUILayout.EndHorizontal(); GUINpcTeamItem(npcTeamData); }
public void BuildRascal(NpcTeamBean npcTeam, Vector3 npcPosition) { if (npcTeam == null) { return; } //if (listExistTeamId.Contains(npcTeam.id)) //改成了每日一次 if (listExistTeamId.Count > 0) { return; } //获取小队成员数据 npcTeam.GetTeamCharacterData(out List <CharacterBean> listLeader, out List <CharacterBean> listMembers); //设置小队相关 string teamCode = SystemUtil.GetUUID(SystemUtil.UUIDTypeEnum.N); int npcNumber = listLeader.Count + listMembers.Count; for (int i = 0; i < npcNumber; i++) { CharacterBean characterData = null; if (i < listLeader.Count) { characterData = listLeader[i]; } else { characterData = listMembers[i - listLeader.Count]; } //生成NPC GameObject npcObj = BuildNpc(listRascalHide, objRascalModel, characterData, npcPosition + new Vector3(UnityEngine.Random.Range(-0.5f, 0.5f), UnityEngine.Random.Range(-0.5f, 0.5f))); //设置意图 NpcAIRascalCpt rascalCpt = npcObj.GetComponent <NpcAIRascalCpt>(); GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); CharacterFavorabilityBean characterFavorability = gameData.GetCharacterFavorability(long.Parse(characterData.baseInfo.characterId)); rascalCpt.SetTeamData(teamCode, npcTeam, i); rascalCpt.SetFavorabilityData(characterFavorability); rascalCpt.AddStatusIconForRascal(); rascalCpt.SetIntent(NpcAIRascalCpt.RascalIntentEnum.GoToInn); //设置捣乱者血量 characterData.GetAttributes(out CharacterAttributesBean characterAttributes); rascalCpt.characterMaxLife = characterAttributes.life; rascalCpt.characterLife = characterAttributes.life; } listExistTeamId.Add(npcTeam.id); }
/// <summary> /// 初始化客人团队 /// </summary> public IEnumerator InitTeamCustomer() { CptUtil.RemoveChildsByActive(objTeamCustomerContainer); GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); UserAchievementBean userAchievement = gameData.GetAchievementData(); if (tvTeamCustomerNumber != null) { tvTeamCustomerNumber.text = TextHandler.Instance.manager.GetTextById(323) + " " + userAchievement.GetNumberForCustomerFoodByType(CustomerTypeEnum.Team) + TextHandler.Instance.manager.GetTextById(82); } //查询所有团队 List <NpcTeamBean> listNpcTeamData = NpcTeamHandler.Instance.manager.GetCustomerTeam(); for (int i = 0; i < listNpcTeamData.Count; i++) { NpcTeamBean itemNpcTeamData = listNpcTeamData[i]; GameObject objItem = Instantiate(objTeamCustomerContainer, objItemCustomerModel); ItemGameStatisticsForCustomerCpt itemCustomer = objItem.GetComponent <ItemGameStatisticsForCustomerCpt>(); long[] teamLeaderIds = itemNpcTeamData.GetTeamLeaderId(); CharacterBean teamLeaderData = NpcInfoHandler.Instance.manager.GetCharacterDataById(teamLeaderIds[0]); UserCustomerBean userCustomerData = userAchievement.GetCustomerData(CustomerTypeEnum.Team, itemNpcTeamData.id + ""); //检测是否解锁该顾客团队 if (userAchievement.CheckHasTeamCustomer(itemNpcTeamData.id + "")) { long number = 0; if (userCustomerData != null) { number = userCustomerData.number; } itemCustomer.SetData(teamLeaderData, true, itemNpcTeamData.name, number, itemNpcTeamData.id + ""); } else { long number = 0; if (userCustomerData != null) { number = userCustomerData.number; } itemCustomer.SetData(teamLeaderData, false, itemNpcTeamData.name, number, itemNpcTeamData.id + ""); } if (i % ProjectConfigInfo.ITEM_REFRESH_NUMBER == 0) { yield return(new WaitForEndOfFrame()); } } }
public void GetAllNpcTeamSuccess(List <NpcTeamBean> listData, Action <List <NpcTeamBean> > action) { listCustomerTeam.Clear(); listFriendTeam.Clear(); listRascalTeam.Clear(); listSundryTeam.Clear(); listEntertainTeam.Clear(); listDisappointedTeam.Clear(); listInfiniteTowersBossTeam.Clear(); for (int i = 0; i < listData.Count; i++) { NpcTeamBean npcTeamData = listData[i]; switch (npcTeamData.GetTeamType()) { case NpcTeamTypeEnum.Customer: listCustomerTeam.Add(npcTeamData); break; case NpcTeamTypeEnum.Friend: listFriendTeam.Add(npcTeamData); break; case NpcTeamTypeEnum.Rascal: listRascalTeam.Add(npcTeamData); break; case NpcTeamTypeEnum.Sundry: listSundryTeam.Add(npcTeamData); break; case NpcTeamTypeEnum.Entertain: listEntertainTeam.Add(npcTeamData); break; case NpcTeamTypeEnum.Disappointed: listDisappointedTeam.Add(npcTeamData); break; case NpcTeamTypeEnum.InfiniteTowersBoss: listInfiniteTowersBossTeam.Add(npcTeamData); break; } } action?.Invoke(listData); }
/// <summary> /// 记录顾客点菜 /// </summary> public void RecordCustomerForMenu(OrderForCustomer order, long menuId) { GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); //成就记录 UserAchievementBean userAchievement = gameData.GetAchievementData(); //如果是团队 if (order.customerType == CustomerTypeEnum.Team) { NpcTeamBean teamData = ((NpcAICustomerForGuestTeamCpt)order.customer).teamData; userAchievement.AddMenuForCustomer(order.customerType, teamData.id + "", menuId); } else if (order.customerType == CustomerTypeEnum.Friend) { CharacterBean characterData = ((NpcAICostomerForFriendCpt)order.customer).characterData; userAchievement.AddMenuForCustomer(order.customerType, characterData.baseInfo.characterId, menuId); } }
/// <summary> /// 团队Iteam UI /// </summary> public static void GUINpcTeamItem(NpcTeamBean npcTeamData) { GUILayout.BeginHorizontal(); GUILayout.Label("是否启用", GUILayout.Width(100), GUILayout.Height(20)); npcTeamData.valid = (int)(ValidEnum)EditorGUILayout.EnumPopup((ValidEnum)npcTeamData.valid, GUILayout.Width(100), GUILayout.Height(20)); GUILayout.Label("团队类型 " + npcTeamData.team_type, GUILayout.Width(100), GUILayout.Height(20)); npcTeamData.team_type = (int)(NpcTeamTypeEnum)EditorGUILayout.EnumPopup((NpcTeamTypeEnum)npcTeamData.team_type, GUILayout.Width(100), GUILayout.Height(20)); GUILayout.Label("团队名称", GUILayout.Width(100), GUILayout.Height(20)); npcTeamData.name = EditorGUILayout.TextArea(npcTeamData.name + "", GUILayout.Width(100), GUILayout.Height(20)); GUILayout.Label("团队ID", GUILayout.Width(100), GUILayout.Height(20)); npcTeamData.id = long.Parse(EditorGUILayout.TextArea(npcTeamData.id + "", GUILayout.Width(100), GUILayout.Height(20))); npcTeamData.team_id = npcTeamData.id; GUILayout.Label("团队领袖IDs(,)", GUILayout.Width(100), GUILayout.Height(20)); npcTeamData.team_leader = EditorGUILayout.TextArea(npcTeamData.team_leader + "", GUILayout.Width(200), GUILayout.Height(20)); GUILayout.Label("团队成员IDs(,)", GUILayout.Width(100), GUILayout.Height(20)); npcTeamData.team_members = EditorGUILayout.TextArea(npcTeamData.team_members + "", GUILayout.Width(200), GUILayout.Height(20)); switch ((NpcTeamTypeEnum)npcTeamData.team_type) { case NpcTeamTypeEnum.Customer: GUILayout.Label("成员数量最大值", GUILayout.Width(100), GUILayout.Height(20)); npcTeamData.team_number = int.Parse(EditorGUILayout.TextArea(npcTeamData.team_number + "", GUILayout.Width(50), GUILayout.Height(20))); break; case NpcTeamTypeEnum.Friend: break; case NpcTeamTypeEnum.Rascal: case NpcTeamTypeEnum.Sundry: case NpcTeamTypeEnum.Entertain: case NpcTeamTypeEnum.Disappointed: GUILayout.Label("持续时间", GUILayout.Width(100), GUILayout.Height(20)); npcTeamData.effect_time = EditorUI.GUIEditorText(npcTeamData.effect_time, 100); GUILayout.Label("对话markId(,)", GUILayout.Width(100), GUILayout.Height(20)); npcTeamData.talk_ids = EditorUI.GUIEditorText(npcTeamData.talk_ids, 200); GUILayout.Label("喊话markId(,)", GUILayout.Width(100), GUILayout.Height(20)); npcTeamData.shout_ids = EditorUI.GUIEditorText(npcTeamData.shout_ids, 200); break; } EditorUI.GUIText("喜欢的菜品"); npcTeamData.love_menus = EditorGUILayout.TextArea(npcTeamData.love_menus, GUILayout.Width(250), GUILayout.Height(20)); npcTeamData.condition = EditorUI.GUIListData <ShowConditionEnum>("团队出现条件", npcTeamData.condition); GUILayout.EndHorizontal(); }
/// <summary> /// 记录顾客 用于顾客正式进店 /// </summary> public void RecordCustomer(OrderForBase order) { GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); //成就记录 UserAchievementBean userAchievement = gameData.GetAchievementData(); if (order as OrderForCustomer != null) { OrderForCustomer orderForCustomer = order as OrderForCustomer; //如果是团队需要记录团队ID if (orderForCustomer.customerType == CustomerTypeEnum.Team) { NpcTeamBean teamData = ((NpcAICustomerForGuestTeamCpt)orderForCustomer.customer).teamData; userAchievement.AddNumberForCustomerFood(orderForCustomer.customerType, teamData.id + "", 1); } else if (orderForCustomer.customerType == CustomerTypeEnum.Friend) { CharacterBean characterData = ((NpcAICostomerForFriendCpt)orderForCustomer.customer).characterData; userAchievement.AddNumberForCustomerFood(orderForCustomer.customerType, characterData.baseInfo.characterId, 1); } else { CharacterBean characterData = orderForCustomer.customer.characterData; userAchievement.AddNumberForCustomerFood(orderForCustomer.customerType, characterData.baseInfo.characterId, 1); } //流水记录 innRecord.AddCutomerForFoodNumber(orderForCustomer.customerType, 1); } else if (order as OrderForHotel != null) { OrderForHotel orderForHotel = order as OrderForHotel; userAchievement.AddNumberForCustomerHotel(1); //流水记录 innRecord.AddCutomerForHotelNumber(1); } }
/// <summary> /// 团队查询 UI /// </summary> public static void GUINpcTeamFind( TextInfoService textInfoService, NpcTeamService npcTeamService, string findIdsStr, List <NpcTeamBean> listFindData, Dictionary <long, List <TextInfoBean> > mapTeamTalkInfo, out string outFindIdsStr, out List <NpcTeamBean> outlistFindData, out Dictionary <long, List <TextInfoBean> > outMapTeamTalkInfo) { GUILayout.Label("Npc团队查询", GUILayout.Width(100), GUILayout.Height(20)); GUILayout.BeginHorizontal(); outFindIdsStr = EditorGUILayout.TextArea(findIdsStr + "", GUILayout.Width(200), GUILayout.Height(20)); if (GUILayout.Button("查询团队", GUILayout.Width(100), GUILayout.Height(20))) { long[] findIds = StringUtil.SplitBySubstringForArrayLong(findIdsStr, ','); listFindData = npcTeamService.QueryDataById(findIds); } if (GUILayout.Button("查询顾客团队", GUILayout.Width(100), GUILayout.Height(20))) { listFindData = npcTeamService.QueryDataByType((int)NpcTeamTypeEnum.Customer); } if (GUILayout.Button("查询好友团队", GUILayout.Width(100), GUILayout.Height(20))) { listFindData = npcTeamService.QueryDataByType((int)NpcTeamTypeEnum.Friend); } if (GUILayout.Button("查询捣乱团队", GUILayout.Width(100), GUILayout.Height(20))) { listFindData = npcTeamService.QueryDataByType((int)NpcTeamTypeEnum.Rascal); } if (GUILayout.Button("查询杂项团队", GUILayout.Width(100), GUILayout.Height(20))) { listFindData = npcTeamService.QueryDataByType((int)NpcTeamTypeEnum.Sundry); } if (GUILayout.Button("查询助兴团队", GUILayout.Width(100), GUILayout.Height(20))) { listFindData = npcTeamService.QueryDataByType((int)NpcTeamTypeEnum.Entertain); } if (GUILayout.Button("查询扫兴团队", GUILayout.Width(100), GUILayout.Height(20))) { listFindData = npcTeamService.QueryDataByType((int)NpcTeamTypeEnum.Disappointed); } GUILayout.EndHorizontal(); if (listFindData != null) { NpcTeamBean itemRemoveData = null; foreach (NpcTeamBean itemData in listFindData) { GUILayout.BeginHorizontal(); if (GUILayout.Button("更新", GUILayout.Width(100), GUILayout.Height(20))) { npcTeamService.Update(itemData); } if (GUILayout.Button("删除", GUILayout.Width(100), GUILayout.Height(20))) { npcTeamService.DeleteDataById(itemData.id); itemRemoveData = itemData; } if (GUILayout.Button("查询团队对话", GUILayout.Width(100), GUILayout.Height(20))) { List <TextInfoBean> listNpcTeamTalkInfo = textInfoService.QueryDataByMarkId(TextEnum.Talk, itemData.GetTalkIds()); HandleTalkInfoDataByMarkId(listNpcTeamTalkInfo, mapTeamTalkInfo); } GUILayout.EndHorizontal(); GUINpcTeamItem(itemData); GUILayout.Space(20); } if (itemRemoveData != null) { listFindData.Remove(itemRemoveData); itemRemoveData = null; } } outlistFindData = listFindData; outMapTeamTalkInfo = mapTeamTalkInfo; }
public List <CharacterBean> GetCharacterDataByInfiniteTowersLayer(long layer) { List <CharacterBean> listData = new List <CharacterBean>(); if (layer % 10 == 0) { //Boss层数 string bossTeamMembers = ""; switch (layer) { case 10: case 20: case 30: GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersBossForLevel1, out bossTeamMembers); //bossTeamMembers = "7400011"; break; case 40: case 50: case 60: GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersBossForLevel2, out bossTeamMembers); break; case 70: case 80: case 90: GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersBossForLevel3, out bossTeamMembers); break; case 100: case 110: case 120: GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersBossForLevel4, out bossTeamMembers); break; default: GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersBossForLevel1, out string level1); GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersBossForLevel2, out string level2); GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersBossForLevel2, out string level3); GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersBossForLevel2, out string level4); bossTeamMembers = level1 + "|" + level2 + "|" + level3 + "|" + level4; break; } string[] randomBossTeam = StringUtil.SplitBySubstringForArrayStr(bossTeamMembers, '|'); string bossTeamStr = RandomUtil.GetRandomDataByArray(randomBossTeam); long bossTeamId = StringUtil.SplitAndRandomForLong(bossTeamStr, ','); NpcTeamBean bossTeamData = NpcTeamHandler.Instance.manager.GetInfiniteTowerBossTeam(bossTeamId); long[] membersIds = bossTeamData.GetTeamMembersId(); long[] bossId = bossTeamData.GetTeamLeaderId(); foreach (long itemMemberId in membersIds) { CharacterBean memberData = NpcInfoHandler.Instance.manager.GetCharacterDataById(itemMemberId); if (memberData != null) { memberData.body.CreateRandomBody(); listData.Add(memberData); } } foreach (long itemBossId in bossId) { CharacterBean bossData = NpcInfoHandler.Instance.manager.GetCharacterDataById(itemBossId); if (bossData != null) { //bossData.body.CreateRandomBody(characterBodyManager); listData.Insert((membersIds.Length / 2), bossData); } } } else { //普通层数 List <CharacterBean> listCharacter = NpcInfoHandler.Instance.manager.GetCharacterDataByType(NpcTypeEnum.GuestTeam); List <CharacterBean> listTempCharacter = new List <CharacterBean>(); if (!CheckUtil.ListIsNull(listCharacter)) { for (int i = 0; i < listCharacter.Count; i++) { CharacterBean itemCharacter = listCharacter[i]; //判断层数 int level = int.Parse(itemCharacter.npcInfoData.remark); int layerLevel = Mathf.FloorToInt(layer / 10f); if (layerLevel <= 15 && level == layerLevel) { listTempCharacter.Add(itemCharacter); } } } CharacterBean baseCharacterData = null; if (listTempCharacter.Count == 0) { baseCharacterData = RandomUtil.GetRandomDataByList(listCharacter); } else { baseCharacterData = RandomUtil.GetRandomDataByList(listTempCharacter); } //随机生成身体数据 CharacterBean characterOne = ClassUtil.DeepCopyByReflect(baseCharacterData); characterOne.body.CreateRandomBody(); listData.Add(characterOne); CharacterBean characterTwo = ClassUtil.DeepCopyByReflect(baseCharacterData); characterTwo.body.CreateRandomBody(); listData.Add(characterTwo); CharacterBean characterThree = ClassUtil.DeepCopyByReflect(baseCharacterData); characterThree.body.CreateRandomBody(); listData.Add(characterThree); } return(listData); }