/// <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> /// <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 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="trophyType"></param> /// <param name="number"></param> public void AddItemForOwnTrophy(TrophyTypeEnum trophyType, long number) { string iconKey = ""; string contentStr = ""; switch (trophyType) { case TrophyTypeEnum.Elementary: iconKey = "trophy_1_0"; contentStr = TextHandler.Instance.manager.GetTextById(307); break; case TrophyTypeEnum.Intermediate: iconKey = "trophy_1_1"; contentStr = TextHandler.Instance.manager.GetTextById(308); break; case TrophyTypeEnum.Advanced: iconKey = "trophy_1_2"; contentStr = TextHandler.Instance.manager.GetTextById(309); break; case TrophyTypeEnum.Legendary: iconKey = "trophy_1_3"; contentStr = TextHandler.Instance.manager.GetTextById(310); break; } Sprite spIcon = IconDataHandler.Instance.manager.GetIconSpriteByName(iconKey); CreateTextItem(spIcon, contentStr, number + ""); }
/// <summary> /// 根据职业和类型获取竞技场数据 /// </summary> /// <param name="type"></param> /// <param name="workerEnum"></param> /// <returns></returns> private StoreInfoBean GetStoreInfoByTypeAndWorker(TrophyTypeEnum type, WorkerEnum workerEnum) { foreach (StoreInfoBean storeInfo in listArenaInfo) { if (storeInfo.mark_type == (int)type && EnumUtil.GetEnum<WorkerEnum>(storeInfo.pre_data) == workerEnum) { return storeInfo; } } return null; }
/// <summary> /// 获取竞技场数据 /// </summary> /// <param name="type"></param> /// <returns></returns> public List <MiniGameBaseBean> GetArenaDataByType(TrophyTypeEnum type) { switch (type) { case TrophyTypeEnum.Elementary: return(listArenaDataForElementary); case TrophyTypeEnum.Intermediate: return(listArenaDataForIntermediate); case TrophyTypeEnum.Advanced: return(listArenaDataForAdvanced); case TrophyTypeEnum.Legendary: return(listArenaDataForLegendary); } return(null); }
/// <summary> /// 增加竞技场数据 /// </summary> /// <param name="type"></param> /// <param name="listMiniGameData"></param> public void AddArenaDataByType(TrophyTypeEnum type, List <MiniGameBaseBean> listMiniGameData) { switch (type) { case TrophyTypeEnum.Elementary: if (listArenaDataForElementary == null) { listArenaDataForElementary = new List <MiniGameBaseBean>(); } listArenaDataForElementary.AddRange(listMiniGameData); break; case TrophyTypeEnum.Intermediate: if (listArenaDataForIntermediate == null) { listArenaDataForIntermediate = new List <MiniGameBaseBean>(); } listArenaDataForIntermediate.AddRange(listMiniGameData); break; case TrophyTypeEnum.Advanced: if (listArenaDataForAdvanced == null) { listArenaDataForAdvanced = new List <MiniGameBaseBean>(); } listArenaDataForAdvanced.AddRange(listMiniGameData); break; case TrophyTypeEnum.Legendary: if (listArenaDataForLegendary == null) { listArenaDataForLegendary = new List <MiniGameBaseBean>(); } listArenaDataForLegendary.AddRange(listMiniGameData); break; } }
/// <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 void RadioButtonSelected(RadioGroupView rgView, int position, RadioButtonView rbview) { this.selectTypePosition = position; TrophyTypeEnum trophyType = EnumUtil.GetEnum<TrophyTypeEnum>(rbview.name); InitData(trophyType); }
/// <summary> /// 创建战斗游戏数据 /// </summary> /// <param name="miniGameData"></param> /// <param name="storeInfo"></param> /// <returns></returns> private MiniGameCombatBean CreateCombatGameData(MiniGameCombatBean miniGameData, StoreInfoBean storeInfo, TrophyTypeEnum type) { int enemyBaseAttribute = 10; int enemyBaseLife = 100; int equipLevel = 0; switch (type) { case TrophyTypeEnum.Elementary: enemyBaseLife = 100; enemyBaseAttribute = 10; equipLevel = 0; break; case TrophyTypeEnum.Intermediate: enemyBaseLife = 200; enemyBaseAttribute = 30; equipLevel = 1; break; case TrophyTypeEnum.Advanced: enemyBaseLife = 300; enemyBaseAttribute = 50; equipLevel = 2; break; case TrophyTypeEnum.Legendary: enemyBaseLife = 500; enemyBaseAttribute = 80; equipLevel = 3; break; } miniGameData.winBringDownNumber = UnityEngine.Random.Range(1, 6); //生成敌人 List<CharacterBean> listEnemyData = new List<CharacterBean>(); for (int i = 0; i < miniGameData.winBringDownNumber; i++) { CharacterBean enemyData = CharacterBean.CreateRandomEnemyData(enemyBaseLife, enemyBaseAttribute, equipLevel); listEnemyData.Add(enemyData); } miniGameData.InitData(new List<CharacterBean>(), listEnemyData); return miniGameData; }
/// <summary> /// 创建斗魅游戏数据 /// </summary> /// <param name="miniGameData"></param> /// <param name="storeInfo"></param> /// <returns></returns> private MiniGameDebateBean CreateDebateGameData(MiniGameDebateBean miniGameData, StoreInfoBean storeInfo, TrophyTypeEnum type) { CharacterBean randomEnemy = null; switch (type) { case TrophyTypeEnum.Elementary: randomEnemy = CharacterBean.CreateRandomEnemyData(100, 10, 0); break; case TrophyTypeEnum.Intermediate: randomEnemy = CharacterBean.CreateRandomEnemyData(200, 30, 1); break; case TrophyTypeEnum.Advanced: randomEnemy = CharacterBean.CreateRandomEnemyData(300, 50, 2); break; case TrophyTypeEnum.Legendary: randomEnemy = CharacterBean.CreateRandomEnemyData(500, 80, 3); break; } miniGameData.InitData(null, randomEnemy); return miniGameData; }
/// <summary> /// 创建算账游戏数据 /// </summary> /// <param name="miniGameData"></param> /// <param name="storeInfo"></param> /// <returns></returns> private MiniGameAccountBean CreateAccountGameData(MiniGameAccountBean miniGameData, StoreInfoBean storeInfo, TrophyTypeEnum type) { switch (type) { case TrophyTypeEnum.Elementary: break; case TrophyTypeEnum.Intermediate: break; case TrophyTypeEnum.Advanced: break; case TrophyTypeEnum.Legendary: break; } return miniGameData; }
/// <summary> /// 创建烹饪游戏数据 /// </summary> /// <param name="miniGameData"></param> /// <param name="storeInfo"></param> /// <returns></returns> private MiniGameCookingBean CreateCookingGameData(MiniGameCookingBean miniGameData, StoreInfoBean storeInfo, TrophyTypeEnum type) { switch (type) { case TrophyTypeEnum.Elementary: break; case TrophyTypeEnum.Intermediate: break; case TrophyTypeEnum.Advanced: break; case TrophyTypeEnum.Legendary: break; } //随机生成敌人 List<CharacterBean> listEnemyData = new List<CharacterBean>(); for (int i = 0; i < 15; i++) { CharacterBean randomEnemy = CharacterBean.CreateRandomWorkerData(); listEnemyData.Add(randomEnemy); } //评审人员 List<CharacterBean> listTownNpc = NpcInfoHandler.Instance.manager.GetCharacterDataByType(NpcTypeEnum.Town); PreTypeForMiniGameEnumTools.GetAllCharacter(storeInfo.pre_data_minigame, out string allCharacterIds); for (int i = 0; i < listTownNpc.Count; i++) { CharacterBean itemNpc = listTownNpc[i]; if (allCharacterIds.Contains(itemNpc.baseInfo.characterId)) { listTownNpc.Remove(itemNpc); i--; } } List<CharacterBean> listAuditerData = RandomUtil.GetRandomDataByListForNumberNR(listTownNpc, 5); miniGameData.InitData(null, listEnemyData, listAuditerData, null); return miniGameData; }
public void SetData(TrophyTypeEnum trophyType, MiniGameBaseBean miniGameData) { InitDataForType(miniGameData.gameType, trophyType, miniGameData); }