예제 #1
0
 /// <summary>
 /// 初始化游戏数据
 /// </summary>
 /// <param name="type"></param>
 public void InitData(TrophyTypeEnum type)
 {
     CptUtil.RemoveChildsByActive(objArenaContainer);
     List<MiniGameBaseBean> listMiniGameData = GameCommonInfo.DailyLimitData.GetArenaDataByType(type);
     if (listMiniGameData == null)
     {
         listMiniGameData = CreateMiniGameData(type);
         GameCommonInfo.DailyLimitData.AddArenaDataByType(type, listMiniGameData);
     }
     bool hasData = false;
     for (int i = 0; i < listMiniGameData.Count; i++)
     {
         MiniGameBaseBean itemMiniGameData = listMiniGameData[i];
         GameObject objItem = Instantiate(objArenaContainer, objArenaModel);
         ItemTownArenaCpt arenaItem = objItem.GetComponent<ItemTownArenaCpt>();
         arenaItem.SetData(type, itemMiniGameData);
         //GameUtil.RefreshRectViewHight((RectTransform)objItem.transform, true);
         objItem.transform.DOScale(new Vector3(0, 0, 0), 0.5f).From().SetEase(Ease.OutBack);
         hasData = true;
     }
     if (hasData)
         tvNull.gameObject.SetActive(false);
     else
         tvNull.gameObject.SetActive(true);
     GameUtil.RefreshRectViewHight((RectTransform)objArenaContainer.transform, true);
     scrollRectContainer.content.localPosition = Vector2.zero;
 }
예제 #2
0
    public void UITextSelectResult(TextInfoBean textData, List <CharacterBean> listPickCharacterData)
    {
        if (!CheckUtil.StringIsNull(textData.pre_data_minigame))
        {
            //小游戏初始化
            List <PreTypeForMiniGameBean> listPre    = PreTypeForMiniGameEnumTools.GetListPreData(textData.pre_data_minigame);
            List <RewardTypeBean>         listReward = RewardTypeEnumTools.GetListRewardData(textData.reward_data);
            MiniGameBaseBean miniGameData            = PreTypeForMiniGameEnumTools.GetMiniGameData(null, textData.pre_data_minigame, listPickCharacterData);
            miniGameData.listReward = listReward;
            switch (miniGameData.gameType)
            {
            case MiniGameEnum.Combat:
                MiniGameHandler.Instance.handlerForCombat.RegisterNotifyForMiniGameStatus(NotifyForMiniGameStatus);
                MiniGameHandler.Instance.handlerForCombat.InitGame((MiniGameCombatBean)miniGameData);
                break;

            case MiniGameEnum.Debate:
                MiniGameHandler.Instance.handlerForDebate.RegisterNotifyForMiniGameStatus(NotifyForMiniGameStatus);
                MiniGameHandler.Instance.handlerForDebate.InitGame((MiniGameDebateBean)miniGameData);
                break;
            }
            //隐藏重要NPC
            if (NpcHandler.Instance.buildForImportant)
            {
                NpcHandler.Instance.buildForImportant.HideNpc();
            }
            if (NpcHandler.Instance.builderForFamily)
            {
                NpcHandler.Instance.builderForFamily.HideNpc();
            }
        }
        notifyForEvent?.Invoke(NotifyEventTypeEnum.TextSelectResult, new object[] { textData });
    }
예제 #3
0
    public void InitDataForType(MiniGameEnum gameType, TrophyTypeEnum trophyType, MiniGameBaseBean miniGameData)
    {
        this.gameType     = gameType;
        this.miniGameData = miniGameData;
        this.trophyType   = trophyType;
        SetTitle(miniGameData);
        SetReward(miniGameData.listReward);
        SetPrice(miniGameData.preMoneyL, miniGameData.preMoneyM, miniGameData.preMoneyS);
        SetRuleContent(miniGameData.GetListWinConditions());
        SetGameTime(miniGameData.preGameTime);
        switch (gameType)
        {
        case MiniGameEnum.Cooking:
            break;

        case MiniGameEnum.Barrage:
            break;

        case MiniGameEnum.Account:
            break;

        case MiniGameEnum.Debate:
            break;

        case MiniGameEnum.Combat:
            break;
        }
        GameUtil.RefreshRectViewHight((RectTransform)transform, true);
    }
예제 #4
0
    /// <summary>
    /// 获取基础游戏数据
    /// </summary>
    /// <param name="miniGameType"></param>
    /// <returns></returns>
    public static MiniGameBaseBean GetMiniGameData(MiniGameEnum miniGameType)
    {
        MiniGameBaseBean miniGameData = null;

        switch (miniGameType)
        {
        case MiniGameEnum.Cooking:
            miniGameData = new MiniGameCookingBean();
            break;

        case MiniGameEnum.Barrage:
            miniGameData = new MiniGameBarrageBean();
            break;

        case MiniGameEnum.Account:
            miniGameData = new MiniGameAccountBean();
            break;

        case MiniGameEnum.Debate:
            miniGameData = new MiniGameDebateBean();
            break;

        case MiniGameEnum.Combat:
            miniGameData = new MiniGameCombatBean();
            break;

        case MiniGameEnum.Birth:
            miniGameData = new MiniGameBirthBean();
            break;
        }
        return(miniGameData);
    }
예제 #5
0
    public void NotifyForMiniGameStatus(MiniGameStatusEnum type, params object[] obj)
    {
        switch (type)
        {
        case MiniGameStatusEnum.Gameing:
            break;

        case MiniGameStatusEnum.GameEnd:
            break;

        case MiniGameStatusEnum.GameClose:
            MiniGameBaseBean miniGameData = (MiniGameBaseBean)obj[0];
            GameControlHandler.Instance.StartControl <BaseControl>(ControlEnum.Normal);
            SetEventStatus(EventStatusEnum.EventEnd);
            if (miniGameData.GetGameResult() == MiniGameResultEnum.Win)
            {
                if (miniGameData.gameResultWinTalkMarkId != 0)
                {
                    EventTriggerForTalk(miniGameData.gameResultWinTalkMarkId, true);
                }
            }
            else
            {
                if (miniGameData.gameResultLoseTalkMarkId != 0)
                {
                    EventTriggerForTalk(miniGameData.gameResultLoseTalkMarkId, true);
                }
            }
            break;
        }
    }
예제 #6
0
    /// <summary>
    /// 删除数据
    /// </summary>
    /// <param name="type"></param>
    /// <param name="miniGameData"></param>
    public void RemoveArenaDataByType(TrophyTypeEnum type, MiniGameBaseBean miniGameData)
    {
        switch (type)
        {
        case TrophyTypeEnum.Elementary:
            if (listArenaDataForElementary != null)
            {
                listArenaDataForElementary.Remove(miniGameData);
            }
            break;

        case TrophyTypeEnum.Intermediate:
            if (listArenaDataForIntermediate != null)
            {
                listArenaDataForIntermediate.Remove(miniGameData);
            }
            break;

        case TrophyTypeEnum.Advanced:
            if (listArenaDataForAdvanced != null)
            {
                listArenaDataForAdvanced.Remove(miniGameData);
            }
            break;

        case TrophyTypeEnum.Legendary:
            if (listArenaDataForLegendary != null)
            {
                listArenaDataForLegendary.Remove(miniGameData);
            }
            break;
        }
    }
예제 #7
0
    /// <summary>
    /// 初始化打手考试
    /// </summary>
    private MiniGameBaseBean InitBeaterGame()
    {
        MiniGameBaseBean miniGameData = MiniGameEnumTools.GetMiniGameData(MiniGameEnum.Combat);

        miniGameData = PreTypeForMiniGameEnumTools.GetMiniGameData(miniGameData, levelData.pre_data_minigame, characterData);
        return(miniGameData);
    }
예제 #8
0
    /// <summary>
    /// 打开倒计时UI
    /// </summary>
    /// <param name="miniGameData"></param>
    public void OpenCountDownUI(MiniGameBaseBean miniGameData, bool isCountDown)
    {
        //打开游戏准备倒计时UI
        UIMiniGameCountDown uiCountDown = UIHandler.Instance.manager.OpenUIAndCloseOther <UIMiniGameCountDown>(UIEnum.MiniGameCountDown);

        uiCountDown.SetCallBack(this);
        //设置胜利条件
        List <string> listWinConditions = miniGameData.GetListWinConditions();
        string        targetTitleStr    = miniGameData.GetGameName();

        //设置准备UI的数据
        uiCountDown.SetData(targetTitleStr, listWinConditions, isCountDown);
    }
예제 #9
0
 /// <summary>
 /// 设置数据
 /// </summary>
 /// <param name="isWin"></param>
 public void SetData(MiniGameBaseBean miniGameData)
 {
     this.miniGameData = miniGameData;
     if (miniGameData.GetGameResult() == MiniGameResultEnum.Win)
     {
         SetWin();
     }
     else
     {
         SetLose();
     }
     objContent.transform.localScale = new Vector3(1, 1, 1);
     objContent.transform.DOScale(new Vector3(0.2f, 0.2f, 0.2f), 0.5f).From().SetEase(Ease.OutBack);
 }
예제 #10
0
    /// <summary>
    /// 获取迷你游戏故事的备用文本数据
    /// </summary>
    /// <returns></returns>
    private SortedList <string, string> GetMiniGameMarkStrData(MiniGameBaseBean miniGameData)
    {
        SortedList <string, string> listData = new SortedList <string, string>();
        //为所有友方角色称呼 和 姓名
        string userCharacterList = "";

        foreach (MiniGameCharacterBean itemCharacter in miniGameData.listUserGameData)
        {
            userCharacterList += (itemCharacter.characterData.baseInfo.titleName + "" + itemCharacter.characterData.baseInfo.name) + " ";
        }
        listData.Add(GameSubstitutionInfo.MiniGame_UserNameList, userCharacterList);
        //为所有敌方角色称呼 和 姓名
        string enemyCharacterList = "";

        foreach (MiniGameCharacterBean itemCharacter in miniGameData.listEnemyGameData)
        {
            enemyCharacterList += (itemCharacter.characterData.baseInfo.titleName + "" + itemCharacter.characterData.baseInfo.name) + " ";
        }
        listData.Add(GameSubstitutionInfo.MiniGame_EnemyNameList, enemyCharacterList);

        if (miniGameData.gameType == MiniGameEnum.Cooking)
        {
            MiniGameCookingBean gameCookingData = (MiniGameCookingBean)miniGameData;
            //所有评审人员角色姓名
            string auditerCharaterList = "";
            foreach (MiniGameCharacterBean itemCharacter in gameCookingData.listAuditerGameData)
            {
                auditerCharaterList += (itemCharacter.characterData.baseInfo.titleName + "" + itemCharacter.characterData.baseInfo.name) + " ";
            }
            listData.Add(GameSubstitutionInfo.MiniGame_Cooking_AuditerNameList, auditerCharaterList);
            //料理的主题
            listData.Add(GameSubstitutionInfo.MiniGame_Cooking_Theme, gameCookingData.GetCookingTheme().name);
            //所有友方角色
            foreach (MiniGameCharacterBean itemCharacter in gameCookingData.listUserGameData)
            {
                MiniGameCharacterForCookingBean cookingCharacterData = (MiniGameCharacterForCookingBean)itemCharacter;
                if (cookingCharacterData.GetCookingMenuInfo() != null)
                {
                    listData.Add(GameSubstitutionInfo.MiniGame_Cooking_UserFoodName, cookingCharacterData.GetCookingMenuInfo().name);
                }
            }
        }
        return(listData);
    }
예제 #11
0
    /// <summary>
    /// 获取战斗游戏数据
    /// </summary>
    /// <param name="itemPreData"></param>
    /// <param name="miniGameData"></param>
    private static void GetMiniGameDataForCombat(PreTypeForMiniGameBean itemPreData, MiniGameBaseBean miniGameData)
    {
        if (miniGameData.gameType != MiniGameEnum.Combat)
        {
            return;
        }
        MiniGameCombatBean miniGameCombat = (MiniGameCombatBean)miniGameData;

        switch (itemPreData.dataType)
        {
        case PreTypeForMiniGameEnum.CombatForBringDownNumber:
            miniGameData.winBringDownNumber = int.Parse(itemPreData.data);
            break;

        case PreTypeForMiniGameEnum.CombatForSurvivalNumber:
            miniGameData.winSurvivalNumber = int.Parse(itemPreData.data);
            break;
        }
    }
예제 #12
0
    /// <summary>
    /// 初始化厨师考试
    /// </summary>
    private MiniGameBaseBean InitChefGame()
    {
        MiniGameBaseBean miniGameData = MiniGameEnumTools.GetMiniGameData(MiniGameEnum.Cooking);

        miniGameData = PreTypeForMiniGameEnumTools.GetMiniGameData(miniGameData, levelData.pre_data_minigame);
        //先清除数据中的指定敌人
        miniGameData.listEnemyGameData.Clear();
        //随机生成敌人
        List <CharacterBean>    listEnemyData       = new List <CharacterBean>();
        CharacterWorkerBaseBean characterWorkerData = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Chef);
        int equipLevel = (characterWorkerData.GetLevel() + 1) / 2;

        for (int i = 0; i < UnityEngine.Random.Range(1, 16); i++)
        {
            CharacterBean randomEnemy = CharacterBean.CreateRandomEnemyData(100, 10, equipLevel);
            listEnemyData.Add(randomEnemy);
        }
        miniGameData.InitData(characterData, listEnemyData);
        return(miniGameData);
    }
예제 #13
0
    /// <summary>
    /// 设置标题
    /// </summary>
    /// <param name="title"></param>
    public void SetTitle(MiniGameBaseBean miniGameData)
    {
        string title = "";

        if (miniGameData.gameType == MiniGameEnum.Combat)
        {
            if (miniGameData.winBringDownNumber == 1)
            {
                title = miniGameData.GetGameName() + "(" + TextHandler.Instance.manager.GetTextById(92) + ")";
            }
            else
            {
                title = miniGameData.GetGameName() + "(" + string.Format(TextHandler.Instance.manager.GetTextById(91), miniGameData.winBringDownNumber) + ")";
            }
        }
        else
        {
            title = miniGameData.GetGameName();
        }
        if (tvTitle != null)
        {
            tvTitle.text = title;
        }
    }
예제 #14
0
 public void InitDataForCooking(MiniGameBaseBean miniGameData)
 {
     MiniGameCookingBean miniGameCookingData = (MiniGameCookingBean)miniGameData;
 }
예제 #15
0
    /// <summary>
    /// 获取弹幕游戏数据
    /// </summary>
    /// <param name="itemPreData"></param>
    /// <param name="miniGameData"></param>
    private static void GetMiniGameDataForBarrage(PreTypeForMiniGameBean itemPreData, MiniGameBaseBean miniGameData)
    {
        if (miniGameData.gameType != MiniGameEnum.Barrage)
        {
            return;
        }
        MiniGameBarrageBean miniGameBarrage = (MiniGameBarrageBean)miniGameData;

        switch (itemPreData.dataType)
        {
        case PreTypeForMiniGameEnum.BarrageForLaunchInterval:
            miniGameBarrage.launchInterval = float.Parse(itemPreData.data);
            break;

        case PreTypeForMiniGameEnum.BarrageForLaunchSpeed:
            miniGameBarrage.launchSpeed = float.Parse(itemPreData.data);
            break;

        case PreTypeForMiniGameEnum.BarrageForLaunchTypes:
            MiniGameBarrageEjectorCpt.LaunchTypeEnum[] launchTypes = StringUtil.SplitBySubstringForArrayEnum <MiniGameBarrageEjectorCpt.LaunchTypeEnum>(itemPreData.data, ',');
            miniGameBarrage.launchTypes = launchTypes;
            break;

        case PreTypeForMiniGameEnum.BarrageForLaunchNumber:
            miniGameBarrage.launchNumber = int.Parse(itemPreData.data);
            break;

        case PreTypeForMiniGameEnum.BarrageForBulletType:
            miniGameBarrage.bulletType = (MiniGameBarrageBulletTypeEnum)(int.Parse(itemPreData.data));
            break;
        }
    }
예제 #16
0
 /// <summary>
 /// 设置竞技场数据
 /// </summary>
 /// <param name="miniGameData"></param>
 public static void SetArenaPrepareData(MiniGameBaseBean miniGameData)
 {
     ArenaPrepareData = new ArenaPrepareBean(miniGameData);
 }
예제 #17
0
    /// <summary>
    /// 获取烹饪游戏数据
    /// </summary>
    /// <param name="itemPreData"></param>
    /// <param name="miniGameData"></param>
    private static void GetMiniGameDataForCook(PreTypeForMiniGameBean itemPreData, MiniGameBaseBean miniGameData)
    {
        if (miniGameData.gameType != MiniGameEnum.Cooking)
        {
            return;
        }
        MiniGameCookingBean miniGameCooking = (MiniGameCookingBean)miniGameData;
        //审核人员
        List <CharacterBean> listAuditData = new List <CharacterBean>();
        //主持人
        List <CharacterBean> listCompereData = new List <CharacterBean>();

        switch (itemPreData.dataType)
        {
        case PreTypeForMiniGameEnum.CookingForScore:
            miniGameData.winScore = int.Parse(itemPreData.data);
            break;

        case PreTypeForMiniGameEnum.CookingForStoryStartId:
            miniGameCooking.storyGameStartId = long.Parse(itemPreData.data);
            break;

        case PreTypeForMiniGameEnum.CookingForStoryAuditId:
            miniGameCooking.storyGameAuditId = long.Parse(itemPreData.data);
            break;

        case PreTypeForMiniGameEnum.CookingForAuditCharacter:
            long[] auditIds = StringUtil.SplitBySubstringForArrayLong(itemPreData.data, ',');
            listAuditData = NpcInfoHandler.Instance.manager.GetCharacterDataByIds(auditIds);
            //评审人员只有5位
            listAuditData = RandomUtil.GetRandomDataByListForNumberNR(listAuditData, 5);
            //如果评审人员不够 就随机增加小镇人员
            if (listAuditData.Count < 5)
            {
                int tempNumber = 5 - listAuditData.Count;
                List <CharacterBean> listTempCharacterData = NpcInfoHandler.Instance.manager.GetCharacterDataByType(NpcTypeEnum.Town);
                listAuditData.AddRange(RandomUtil.GetRandomDataByListForNumberNR(listTempCharacterData, tempNumber));
            }
            break;

        case PreTypeForMiniGameEnum.CookingForCompereCharacter:
            long[] compereIds = StringUtil.SplitBySubstringForArrayLong(itemPreData.data, ',');
            listCompereData = NpcInfoHandler.Instance.manager.GetCharacterDataByIds(compereIds);
            break;

        case PreTypeForMiniGameEnum.CookingForThemeLevel:
            int[] themeLevels = StringUtil.SplitBySubstringForArrayInt(itemPreData.data, ',');
            miniGameCooking.cookingThemeLevel = RandomUtil.GetRandomDataByArray(themeLevels);
            break;

        case PreTypeForMiniGameEnum.CookingForThemeId:
            miniGameCooking.cookingThemeId = long.Parse(itemPreData.data);
            break;

        case PreTypeForMiniGameEnum.CookingForButtonNumber:
            miniGameCooking.cookButtonNumber = int.Parse(itemPreData.data);
            break;

        case PreTypeForMiniGameEnum.CookingForWinRank:
            miniGameCooking.winRank = int.Parse(itemPreData.data);
            break;
        }

        miniGameCooking.InitData(null, null, listAuditData, listCompereData);
    }
예제 #18
0
    /// <summary>
    /// 获取算账游戏游戏数据
    /// </summary>
    /// <param name="itemPreData"></param>
    /// <param name="miniGameData"></param>
    private static void GetMiniGameDataForAccount(PreTypeForMiniGameBean itemPreData, MiniGameBaseBean miniGameData)
    {
        if (miniGameData.gameType != MiniGameEnum.Account)
        {
            return;
        }
        MiniGameAccountBean miniGameAccount = (MiniGameAccountBean)miniGameData;

        switch (itemPreData.dataType)
        {
        case PreTypeForMiniGameEnum.AccountForWinMoneyL:
            miniGameData.winMoneyL = int.Parse(itemPreData.data);
            break;

        case PreTypeForMiniGameEnum.AccountForWinMoneyM:
            miniGameData.winMoneyM = int.Parse(itemPreData.data);
            break;

        case PreTypeForMiniGameEnum.AccountForWinMoneyS:
            miniGameData.winMoneyS = int.Parse(itemPreData.data);
            break;
        }
    }
예제 #19
0
 public ArenaPrepareBean(MiniGameBaseBean miniGameData)
 {
     this.miniGameData = miniGameData;
 }
예제 #20
0
 public void OpenCountDownUI(MiniGameBaseBean miniGameData)
 {
     OpenCountDownUI(miniGameData, true);
 }
예제 #21
0
 public void SetData(TrophyTypeEnum trophyType, MiniGameBaseBean miniGameData)
 {
     InitDataForType(miniGameData.gameType, trophyType, miniGameData);
 }
예제 #22
0
    public static MiniGameBaseBean GetMiniGameData(MiniGameBaseBean miniGameData, string data, List <CharacterBean> listPickCharacter)
    {
        List <PreTypeForMiniGameBean> listPreData   = GetListPreData(data);
        List <CharacterBean>          listUserData  = new List <CharacterBean>();
        List <CharacterBean>          listEnemyData = new List <CharacterBean>();
        Vector2 minigamePosition = Vector2.zero;

        //如果没有传入游戏数据则先根据条件生成一个
        if (miniGameData == null)
        {
            GetMiniGameType(data, out MiniGameEnum miniGameType);
            miniGameData = MiniGameEnumTools.GetMiniGameData(miniGameType);
        }

        foreach (PreTypeForMiniGameBean itemPreData in listPreData)
        {
            switch (itemPreData.dataType)
            {
            case PreTypeForMiniGameEnum.MiniGameType:
                MiniGameEnum miniGameType = (MiniGameEnum)int.Parse(itemPreData.data);
                miniGameData.gameType = miniGameType;
                break;

            case PreTypeForMiniGameEnum.GameReason:
                MiniGameReasonEnum miniGameReason = (MiniGameReasonEnum)int.Parse(itemPreData.data);
                miniGameData.gameReason = miniGameReason;
                break;

            case PreTypeForMiniGameEnum.UserIds:
                long[] userIds = StringUtil.SplitBySubstringForArrayLong(itemPreData.data, ',');
                listUserData = NpcInfoHandler.Instance.manager.GetCharacterDataByIds(userIds);
                break;

            case PreTypeForMiniGameEnum.EnemyIds:
                long[] enemyIds = StringUtil.SplitBySubstringForArrayLong(itemPreData.data, ',');
                listEnemyData = NpcInfoHandler.Instance.manager.GetCharacterDataByIds(enemyIds);
                break;

            case PreTypeForMiniGameEnum.MiniGamePosition:
                float[] arrayPosition = StringUtil.SplitBySubstringForArrayFloat(itemPreData.data, ',');
                minigamePosition = new Vector2(arrayPosition[0], arrayPosition[1]);
                break;

            case PreTypeForMiniGameEnum.TalkMarkIdForWin:
                miniGameData.gameResultWinTalkMarkId = long.Parse(itemPreData.data);
                break;

            case PreTypeForMiniGameEnum.TalkMarkIdForLose:
                miniGameData.gameResultLoseTalkMarkId = long.Parse(itemPreData.data);
                break;

            case PreTypeForMiniGameEnum.WinLife:
                miniGameData.winLife = long.Parse(itemPreData.data);
                break;

            case PreTypeForMiniGameEnum.WinSurvivalTime:
                miniGameData.winSurvivalTime = float.Parse(itemPreData.data);
                break;

            case PreTypeForMiniGameEnum.BarrageForLaunchInterval:
            case PreTypeForMiniGameEnum.BarrageForLaunchSpeed:
            case PreTypeForMiniGameEnum.BarrageForLaunchTypes:
            case PreTypeForMiniGameEnum.BarrageForLaunchNumber:
            case PreTypeForMiniGameEnum.BarrageForBulletType:
                GetMiniGameDataForBarrage(itemPreData, miniGameData);
                break;

            case PreTypeForMiniGameEnum.AccountForWinMoneyL:
            case PreTypeForMiniGameEnum.AccountForWinMoneyM:
            case PreTypeForMiniGameEnum.AccountForWinMoneyS:
                GetMiniGameDataForAccount(itemPreData, miniGameData);
                break;

            case PreTypeForMiniGameEnum.CombatForBringDownNumber:
            case PreTypeForMiniGameEnum.CombatForSurvivalNumber:
                GetMiniGameDataForCombat(itemPreData, miniGameData);
                break;

            case PreTypeForMiniGameEnum.CookingForScore:
            case PreTypeForMiniGameEnum.CookingForStoryStartId:
            case PreTypeForMiniGameEnum.CookingForStoryAuditId:
            case PreTypeForMiniGameEnum.CookingForAuditCharacter:
            case PreTypeForMiniGameEnum.CookingForCompereCharacter:
            case PreTypeForMiniGameEnum.CookingForThemeId:
            case PreTypeForMiniGameEnum.CookingForThemeLevel:
            case PreTypeForMiniGameEnum.CookingForButtonNumber:
            case PreTypeForMiniGameEnum.CookingForWinRank:

                GetMiniGameDataForCook(itemPreData, miniGameData);
                break;
            }
        }
        if (miniGameData == null)
        {
            return(miniGameData);
        }
        //如果有传入角色则把传入角色也加入到用户数据中
        if (listPickCharacter != null)
        {
            listUserData.AddRange(listPickCharacter);
        }
        miniGameData.miniGamePosition = minigamePosition;
        miniGameData.InitData(listUserData, listEnemyData);
        return(miniGameData);
    }
예제 #23
0
    public void Submit(DialogView dialogView, DialogBean dialogBean)
    {
        GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();

        //支付金钱
        gameData.PayMoney(levelData.price_l, levelData.price_m, levelData.price_s);
        //扣除时间
        int preGameTime = int.Parse(levelData.mark);

        //扣除时间
        GameTimeHandler.Instance.AddHour(preGameTime);
        //如果有研究菜谱 菜谱增加经验
        GameDataHandler.Instance.AddTimeProcess(preGameTime * 60);
        //判断玩哪个游戏
        MiniGameBaseBean miniGameData = null;

        switch (workerType)
        {
        case WorkerEnum.Chef:
            miniGameData = InitChefGame();
            break;

        case WorkerEnum.Waiter:
            //设置弹幕游戏数据
            miniGameData = InitWaiterGame();
            break;

        case WorkerEnum.Accountant:
            //设置算账游戏
            miniGameData = InitAccountantGame();
            break;

        case WorkerEnum.Accost:
            //设置辩论游戏
            miniGameData = InitAccostGame();
            break;

        case WorkerEnum.Beater:
            miniGameData = InitBeaterGame();
            break;

        default:
            break;
        }
        miniGameData.preGameTime = preGameTime;
        miniGameData.gameReason  = MiniGameReasonEnum.Improve;
        if (dialogBean.dialogPosition == 0)
        {
            //设置竞技场数据
            GameCommonInfo.SetArenaPrepareData(miniGameData);
            //保存之前的位置
            GameCommonInfo.ScenesChangeData.beforeUserPosition = GameControlHandler.Instance.manager.GetControl <BaseControl>(ControlEnum.Normal).transform.position;
            //跳转到竞技场
            GameScenesHandler.Instance.ChangeScene(ScenesEnum.GameArenaScene);
        }
        else
        {
            bool isWin = characterData.CalculationGuildSendWin(miniGameData.gameType);
            if (isWin)
            {
                ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(7021));
                AudioHandler.Instance.PlaySound(AudioSoundEnum.Reward);
                //完成奖励
                RewardTypeEnumTools.CompleteReward(miniGameData.GetListUserCharacterData(), miniGameData.listReward);

                //数据添加
                Sprite attributeIcon          = IconDataHandler.Instance.manager.GetIconSpriteByName("keyboard_button_up_1");
                string attributeRewardContent = "";
                foreach (MiniGameCharacterBean miniGameCharacterData in miniGameData.listUserGameData)
                {
                    switch (miniGameData.gameType)
                    {
                    case MiniGameEnum.Cooking:
                        attributeRewardContent = AttributesTypeEnumTools.GetAttributesName(AttributesTypeEnum.Cook) + " +5";
                        miniGameCharacterData.characterData.baseInfo.chefInfo.LevelUp(miniGameCharacterData.characterData.attributes);
                        break;

                    case MiniGameEnum.Barrage:
                        attributeRewardContent = AttributesTypeEnumTools.GetAttributesName(AttributesTypeEnum.Speed) + " +5";
                        miniGameCharacterData.characterData.baseInfo.waiterInfo.LevelUp(miniGameCharacterData.characterData.attributes);
                        break;

                    case MiniGameEnum.Account:
                        attributeRewardContent = AttributesTypeEnumTools.GetAttributesName(AttributesTypeEnum.Account) + " +5";
                        miniGameCharacterData.characterData.baseInfo.accountantInfo.LevelUp(miniGameCharacterData.characterData.attributes);
                        break;

                    case MiniGameEnum.Debate:
                        attributeRewardContent = AttributesTypeEnumTools.GetAttributesName(AttributesTypeEnum.Charm) + " +5";
                        miniGameCharacterData.characterData.baseInfo.accostInfo.LevelUp(miniGameCharacterData.characterData.attributes);
                        break;

                    case MiniGameEnum.Combat:
                        attributeRewardContent = AttributesTypeEnumTools.GetAttributesName(AttributesTypeEnum.Force) + " +5";
                        miniGameCharacterData.characterData.baseInfo.beaterInfo.LevelUp(miniGameCharacterData.characterData.attributes);
                        break;
                    }
                }
                ToastHandler.Instance.ToastHint(attributeIcon, attributeRewardContent);
                //刷新UI
                ((UITownGuildImprove)uiComponent).RefreshUI();
            }
            else
            {
                ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(7022));
                AudioHandler.Instance.PlaySound(AudioSoundEnum.Passive);
            }
        }
    }
예제 #24
0
    /// <summary>
    /// 创建迷你游戏数据
    /// </summary>
    /// <returns></returns>
    private List<MiniGameBaseBean> CreateMiniGameData(TrophyTypeEnum type)
    {
        List<MiniGameBaseBean> listMiniGameData = new List<MiniGameBaseBean>();
        int arenaNumber = UnityEngine.Random.Range(5, 15);
        for (int i = 0; i < arenaNumber; i++)
        {
            MiniGameEnum gameType = MiniGameEnumTools.GetRandomMiniGameTypeForArena();
            StoreInfoBean storeInfo = null;

            MiniGameBaseBean miniGameData = MiniGameEnumTools.GetMiniGameData(gameType);
            miniGameData.gameReason = MiniGameReasonEnum.Fight;
            switch (gameType)
            {
                case MiniGameEnum.Cooking:
                    storeInfo = GetStoreInfoByTypeAndWorker(type, WorkerEnum.Chef);
                    miniGameData = CreateCookingGameData((MiniGameCookingBean)miniGameData, storeInfo, type);
                    break;
                case MiniGameEnum.Barrage:
                    storeInfo = GetStoreInfoByTypeAndWorker(type, WorkerEnum.Waiter);
                    miniGameData = CreateBarrageGameData((MiniGameBarrageBean)miniGameData, storeInfo, type);
                    break;
                case MiniGameEnum.Account:
                    storeInfo = GetStoreInfoByTypeAndWorker(type, WorkerEnum.Accountant);
                    miniGameData = CreateAccountGameData((MiniGameAccountBean)miniGameData, storeInfo, type);
                    break;
                case MiniGameEnum.Debate:
                    storeInfo = GetStoreInfoByTypeAndWorker(type, WorkerEnum.Accost);
                    miniGameData = CreateDebateGameData((MiniGameDebateBean)miniGameData, storeInfo, type);
                    break;
                case MiniGameEnum.Combat:
                    storeInfo = GetStoreInfoByTypeAndWorker(type, WorkerEnum.Beater);
                    miniGameData = CreateCombatGameData((MiniGameCombatBean)miniGameData, storeInfo, type);
                    break;
            }
            PreTypeForMiniGameEnumTools.GetMiniGameData(miniGameData, storeInfo.pre_data_minigame);
            //奖励添加
            miniGameData.listReward = new List<RewardTypeBean>();
            List<RewardTypeBean> listReward = RewardTypeEnumTools.GetListRewardData(storeInfo.reward_data);
            //固定奖励
            List<RewardTypeBean> listFixedReward = new List<RewardTypeBean>();
            //随机奖励
            List<RewardTypeBean> listRandomReward = new List<RewardTypeBean>();
            foreach (RewardTypeBean itemReward in listReward)
            {
                switch (itemReward.GetRewardType())
                {
                    case RewardTypeEnum.AddMoneyL:
                    case RewardTypeEnum.AddMoneyM:
                    case RewardTypeEnum.AddMoneyS:
                    case RewardTypeEnum.AddArenaTrophyElementary:
                    case RewardTypeEnum.AddArenaTrophyIntermediate:
                    case RewardTypeEnum.AddArenaTrophyAdvanced:
                    case RewardTypeEnum.AddArenaTrophyLegendary:
                        if (miniGameData.winBringDownNumber > 0)
                        {
                            //针对多人战 奖励提升
                            itemReward.data = long.Parse(itemReward.data) * miniGameData.winBringDownNumber + "";
                        }
                        listFixedReward.Add(itemReward);
                        break;
                    default:
                        listRandomReward.Add(itemReward);
                        break;
                }
            }
            miniGameData.listReward.AddRange(listFixedReward);
            if (!CheckUtil.ListIsNull(listRandomReward))
            {
                RewardTypeBean randomReward = RandomUtil.GetRandomDataByList(listRandomReward);
                miniGameData.listReward.Add(randomReward);
            }

            //添加对应的奖杯
            switch (type)
            {
                case TrophyTypeEnum.Elementary:
                    break;
                case TrophyTypeEnum.Intermediate:
                    break;
                case TrophyTypeEnum.Advanced:
                    break;
                case TrophyTypeEnum.Legendary:
                    break;
            }
            //设置游戏时间
            if (storeInfo.mark != null)
                miniGameData.preGameTime = int.Parse(storeInfo.mark);
            //设置前置金钱
            miniGameData.preMoneyL = storeInfo.price_l;
            miniGameData.preMoneyM = storeInfo.price_m;
            miniGameData.preMoneyS = storeInfo.price_s;
            //添加游戏数据
            listMiniGameData.Add(miniGameData);
        }
        return listMiniGameData;
    }
예제 #25
0
 public static MiniGameBaseBean GetMiniGameData(MiniGameBaseBean miniGameData, string data, CharacterBean userCharacter)
 {
     return(GetMiniGameData(miniGameData, data, new List <CharacterBean> {
         userCharacter
     }));
 }