/// <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; }
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 }); }
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); }
/// <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); }
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; } }
/// <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; } }
/// <summary> /// 初始化打手考试 /// </summary> private MiniGameBaseBean InitBeaterGame() { MiniGameBaseBean miniGameData = MiniGameEnumTools.GetMiniGameData(MiniGameEnum.Combat); miniGameData = PreTypeForMiniGameEnumTools.GetMiniGameData(miniGameData, levelData.pre_data_minigame, characterData); return(miniGameData); }
/// <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); }
/// <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); }
/// <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); }
/// <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; } }
/// <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); }
/// <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; } }
public void InitDataForCooking(MiniGameBaseBean miniGameData) { MiniGameCookingBean miniGameCookingData = (MiniGameCookingBean)miniGameData; }
/// <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; } }
/// <summary> /// 设置竞技场数据 /// </summary> /// <param name="miniGameData"></param> public static void SetArenaPrepareData(MiniGameBaseBean miniGameData) { ArenaPrepareData = new ArenaPrepareBean(miniGameData); }
/// <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); }
/// <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; } }
public ArenaPrepareBean(MiniGameBaseBean miniGameData) { this.miniGameData = miniGameData; }
public void OpenCountDownUI(MiniGameBaseBean miniGameData) { OpenCountDownUI(miniGameData, true); }
public void SetData(TrophyTypeEnum trophyType, MiniGameBaseBean miniGameData) { InitDataForType(miniGameData.gameType, trophyType, miniGameData); }
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); }
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); } } }
/// <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; }
public static MiniGameBaseBean GetMiniGameData(MiniGameBaseBean miniGameData, string data, CharacterBean userCharacter) { return(GetMiniGameData(miniGameData, data, new List <CharacterBean> { userCharacter })); }