Esempio n. 1
0
 /// <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;
 }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    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, "");
            }
        }
    }
Esempio n. 4
0
    /// <summary>
    /// 创建转换者事件
    /// </summary>
    public void BuildConvert()
    {
        Vector3     npcPosition = GetRandomStartPosition();
        NpcTeamBean teamData    = RandomUtil.GetRandomDataByList(listConvert);

        BuildConvert(teamData, npcPosition);
    }
Esempio n. 5
0
 /// <summary>
 /// 更新数据
 /// </summary>
 /// <param name="teamData"></param>
 public void Update(NpcTeamBean teamData)
 {
     if (DeleteDataById(teamData.id))
     {
         InsertData(teamData);
     }
 }
Esempio n. 6
0
    /// <summary>
    /// 创建杂项事件
    /// </summary>
    public void BuildSundry()
    {
        Vector3     npcPosition = GetRandomStartPosition();
        NpcTeamBean teamData    = RandomUtil.GetRandomDataByList(listSundry);

        BuildSundry(teamData, npcPosition);
    }
Esempio n. 7
0
    public void BuildGuestTeam(long teamId)
    {
        Vector3     npcPosition = GetRandomStartPosition();
        NpcTeamBean teamData    = NpcTeamHandler.Instance.manager.GetCustomerTeam(teamId);

        BuildGuestTeam(teamData, npcPosition);
    }
Esempio n. 8
0
    public void BuildTownFriendsForTeam(long teamId)
    {
        Vector3     npcPosition = GetRandomStartPosition();
        NpcTeamBean teamData    = NpcTeamHandler.Instance.manager.GetFriendTeam(teamId);

        BuildTownFriendsForTeam(teamData, npcPosition);
    }
Esempio n. 9
0
    public void BuildTownFriendsForTeam()
    {
        Vector3     npcPosition = GetRandomStartPosition();
        NpcTeamBean teamData    = RandomUtil.GetRandomDataByList(listFriend);

        BuildTownFriendsForTeam(teamData, npcPosition);
    }
Esempio n. 10
0
    public void BuildSundry(long teamId)
    {
        Vector3     npcPosition = GetRandomStartPosition();
        NpcTeamBean teamData    = NpcTeamHandler.Instance.manager.GetSundryTeam(teamId);

        BuildSundry(teamData, npcPosition);
    }
Esempio n. 11
0
    /// <summary>
    /// 创建团队顾客
    /// </summary>
    public void BuildGuestTeam()
    {
        Vector3     npcPosition = GetRandomStartPosition();
        NpcTeamBean teamData    = RandomUtil.GetRandomDataByList(listTeamCustomer);

        BuildGuestTeam(teamData, npcPosition);
    }
Esempio n. 12
0
    /// <summary>
    /// 插入数据
    /// </summary>
    /// <param name="teamData"></param>
    public void InsertData(NpcTeamBean teamData)
    {
        List <string> listLeftName = new List <string>
        {
            "team_id",
            "name"
        };

        BaseInsertDataWithLeft(teamData, listLeftName);
    }
Esempio n. 13
0
    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);
            }
        }
    }
Esempio n. 14
0
    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);
    }
Esempio n. 15
0
    /// <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);
    }
Esempio n. 16
0
    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);
    }
Esempio n. 17
0
    /// <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());
            }
        }
    }
Esempio n. 18
0
    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);
    }
Esempio n. 19
0
    /// <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);
        }
    }
Esempio n. 20
0
    /// <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();
    }
Esempio n. 21
0
    /// <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);
        }
    }
Esempio n. 22
0
    /// <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;
    }
Esempio n. 23
0
    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);
    }