public static List <PuzzlesGameInfoBean> MergePuzzlesInfo(List <PuzzlesInfoBean> listInfo, List <PuzzlesCompleteStateBean> listCompleteState, List <PuzzlesProgressBean> listProgressInfo) { List <PuzzlesGameInfoBean> listData = new List <PuzzlesGameInfoBean>(); if (listInfo == null) { LogUtil.log("合并拼图数据和完成数据失败-没有原始数据"); return(listData); } int listInfoSize = listInfo.Count; for (int i = 0; i < listInfoSize; i++) { PuzzlesGameInfoBean itemData = new PuzzlesGameInfoBean(); PuzzlesInfoBean tempInfo = listInfo[i]; itemData.puzzlesInfo = tempInfo; //合并完成状态 if (listCompleteState != null) { int listCompleteStateSize = listCompleteState.Count; for (int f = 0; f < listCompleteStateSize; f++) { PuzzlesCompleteStateBean tempCompleteState = listCompleteState[f]; if (tempInfo.data_type.Equals((int)JigsawResourcesEnum.Custom)) { if (tempInfo.mark_file_name.Equals(tempCompleteState.puzzleMarkName) && tempInfo.Data_type.Equals(tempCompleteState.puzzleType)) { itemData.completeStateInfo = tempCompleteState; } } else { if (tempInfo.Id.Equals(tempCompleteState.puzzleId) && tempInfo.Data_type.Equals(tempCompleteState.puzzleType)) { itemData.completeStateInfo = tempCompleteState; } } } } //合并进度信息 if (listProgressInfo != null) { int listProgressSize = listProgressInfo.Count; for (int f = 0; f < listProgressSize; f++) { PuzzlesProgressBean tempProgressInfo = listProgressInfo[f]; if (tempInfo.id.Equals(tempProgressInfo.puzzleId) && tempInfo.mark_file_name.Equals(tempProgressInfo.markFileName)) { itemData.progressInfo = tempProgressInfo; } } } listData.Add(itemData); } return(listData); }
/// <summary> /// 解锁所有拼图 /// </summary> private void unlockPuzzles() { List <PuzzlesInfoBean> listData = PuzzlesInfoManager.LoadAllPuzzlesData(); foreach (PuzzlesInfoBean itemData in listData) { PuzzlesCompleteStateBean completeStateBean = DataStorageManage.getPuzzlesCompleteDSHandle().getData(itemData.id); if (completeStateBean == null) { completeStateBean = new PuzzlesCompleteStateBean(); } completeStateBean.puzzleId = itemData.id; completeStateBean.puzzleType = itemData.data_type; completeStateBean.unlockState = JigsawUnlockEnum.UnLock; DataStorageManage.getPuzzlesCompleteDSHandle().saveData(completeStateBean); } }
private void Start() { mCurrentScore = CptUtil.getCptFormParentByName <Transform, Transform>(transform, "CurrentScore"); mCurrentScoreTitle = CptUtil.getCptFormParentByName <Transform, Text>(transform, "CurrentScoreTitle"); mCurrentScoreContent = CptUtil.getCptFormParentByName <Transform, Text>(transform, "CurrentScoreContent"); mRankTitle = CptUtil.getCptFormParentByName <Transform, Text>(transform, "RankTitle"); mRankContent = CptUtil.getCptFormParentByName <Transform, Text>(transform, "RankContent"); mBestScoreTitle = CptUtil.getCptFormParentByName <Transform, Text>(transform, "BestScoreTitle"); mBestScoreContent = CptUtil.getCptFormParentByName <Transform, Text>(transform, "BestScoreContent"); mTrophyName = CptUtil.getCptFormParentByName <Transform, Text>(transform, "TrophyName"); mCancelBT = CptUtil.getCptFormParentByName <Transform, Button>(transform, "CancelBT"); mCancelText = CptUtil.getCptFormParentByName <Button, Text>(mCancelBT, "Text"); mSubmitBT = CptUtil.getCptFormParentByName <Transform, Button>(transform, "SubmitBT"); mSubmitText = CptUtil.getCptFormParentByName <Button, Text>(mSubmitBT, "Text"); mWorldRank = CptUtil.getCptFormParentByName <Transform, Transform>(transform, "Content"); mTrophy = CptUtil.getCptFormParentByName <Transform, Transform>(transform, "Trophy"); mLoading = CptUtil.getCptFormParentByName <Transform, Transform>(transform, "Loading"); mCancelBT.onClick.AddListener(cancelOnClick); mSubmitBT.onClick.AddListener(submitOnClick); initData(); //设置本地最好分数 PuzzlesCompleteStateBean completeData = mGameInfoBean.completeStateInfo; if (completeData != null && completeData.completeTime != null) { mBestScore = completeData.completeTime.totalSeconds; mBestScoreContentStr = GameUtil.GetTimeStr(completeData.completeTime.totalSeconds); mBestScoreContent.text = mBestScoreContentStr; } //查询网络数据 mLeaderboardHandle.findLeaderboard(mGameInfoBean.puzzlesInfo.Id + "_" + mGameInfoBean.puzzlesInfo.Mark_file_name, this); }
/// <summary> /// 创建相对应按钮 /// </summary> /// <param name="itemInfo"></param> private void createSelectItem(int position, PuzzlesGameInfoBean itemInfo) { PuzzlesInfoBean infoBean = itemInfo.puzzlesInfo; PuzzlesCompleteStateBean completeStateBean = itemInfo.completeStateInfo; GameObject selectItem; if (infoBean.data_type.Equals((int)JigsawResourcesEnum.Custom)) { selectItem = createCustomItem(itemInfo); } else { if (completeStateBean == null || completeStateBean.unlockState.Equals(JigsawUnlockEnum.Lock)) { if (infoBean.level == 1) { selectItem = createNormalItem(itemInfo); } else { selectItem = createLockItem(position, itemInfo); } } else { selectItem = createNormalItem(itemInfo); } } //添加动画 //if(selectItem!=null) //{ // CanvasGroup itemCG= selectItem.GetComponent<CanvasGroup>(); // itemCG.alpha = 0; // itemCG.DOFade(1, 1); //} }
private GameObject CreateInstallItem(PuzzlesGameInfoBean itemInfo) { PuzzlesInfoBean infoBean = itemInfo.puzzlesInfo; PuzzlesCompleteStateBean completeStateBean = itemInfo.completeStateInfo; itemInfo.completeStateInfo = completeStateBean; itemInfo.puzzlesInfo = infoBean; GameObject itemObj = Instantiate(installModel); itemObj.transform.parent = this.transform; itemObj.transform.localScale = new Vector3(1f, 1f, 1f); itemObj.SetActive(true); itemObj.name = infoBean.Mark_file_name; itemObj.transform.SetParent(transform); //设置背景图片 Image backImage = CptUtil.getCptFormParentByName <Transform, Image>(itemObj.transform, "JigsawPic"); string filePath = infoBean.thumb_file_path; StartCoroutine(ResourcesManager.LoadAsyncHttpImage(filePath, backImage)); //设置按键 Button startBT = CptUtil.getCptFormParentByName <Transform, Button>(itemObj.transform, "JigsawStart"); Text startBTText = CptUtil.getCptFormParentByName <Transform, Text>(itemObj.transform, "JigsawStartText"); if (!CheckUtil.StringIsNull(infoBean.data_file_path)) { startBT.onClick.AddListener(delegate() { SoundUtil.playSoundClip(AudioButtonOnClickEnum.btn_sound_1); CommonData.SelectPuzzlesInfo = itemInfo; SceneUtil.jumpGameScene(); }); if (itemInfo.progressInfo != null) { startBTText.text = CommonData.getText(85); } else { startBTText.text = CommonData.getText(14); } } else { startBTText.text = CommonData.getText(130); } //最好分数 Transform bestScoreTF = CptUtil.getCptFormParentByName <Transform, Transform>(itemObj.transform, "JigsawBestScore"); Text bestScore = CptUtil.getCptFormParentByName <Transform, Text>(itemObj.transform, "JigsawBestScoreText"); if (completeStateBean != null && completeStateBean.completeTime != null) { bestScore.text = GameUtil.GetTimeStr(completeStateBean.completeTime.totalSeconds); } else { bestScoreTF.gameObject.SetActive(false); } //设置文本信息 Text jigsawNameText = CptUtil.getCptFormParentByName <Transform, Text>(itemObj.transform, "JigsawName"); jigsawNameText.text = infoBean.Name; return(itemObj); }
/// <summary> /// 记录完成时间 /// </summary> /// <param name="selectItem"></param> /// <param name="completeTime"></param> public static void FinshSaveCompleteData(PuzzlesGameInfoBean selectItem, TimeBean completeTime) { PuzzlesInfoBean puzzlesInfo = selectItem.puzzlesInfo; PuzzlesCompleteStateBean completeStateBean = selectItem.completeStateInfo; if (completeStateBean == null) { completeStateBean = new PuzzlesCompleteStateBean(); } List <PuzzlesCompleteStateBean> listCompleteState = DataStorageManage.getPuzzlesCompleteDSHandle().getAllData(); if (listCompleteState == null || listCompleteState.Count == 0) { listCompleteState = new List <PuzzlesCompleteStateBean>(); completeStateBean.puzzleId = puzzlesInfo.id; completeStateBean.puzzleType = puzzlesInfo.data_type; completeStateBean.puzzleName = puzzlesInfo.name; completeStateBean.puzzleMarkName = puzzlesInfo.mark_file_name; completeStateBean.completeTime = completeTime; completeStateBean.unlockState = JigsawUnlockEnum.UnLock; listCompleteState.Add(completeStateBean); } else { int listCompleteSize = listCompleteState.Count; bool hasData = false; for (int i = 0; i < listCompleteSize; i++) { PuzzlesCompleteStateBean itemCompleteBean = listCompleteState[i]; bool isThisPuzzles = false; if (itemCompleteBean.puzzleType.Equals((int)JigsawResourcesEnum.Custom)) { if (itemCompleteBean.puzzleMarkName.Equals(puzzlesInfo.mark_file_name)) { isThisPuzzles = true; } } else { if (itemCompleteBean.puzzleId.Equals(puzzlesInfo.Id)) { isThisPuzzles = true; } } if (isThisPuzzles) { hasData = true; if (itemCompleteBean.completeTime.totalSeconds != 0 && !TimeUtil.isFasterTime(itemCompleteBean.completeTime, completeTime)) { //存时间更快的 } else { itemCompleteBean.puzzleId = puzzlesInfo.id; itemCompleteBean.puzzleType = puzzlesInfo.data_type; completeStateBean.puzzleName = puzzlesInfo.name; completeStateBean.puzzleMarkName = puzzlesInfo.mark_file_name; itemCompleteBean.unlockState = JigsawUnlockEnum.UnLock; itemCompleteBean.completeTime = completeTime; completeStateBean = itemCompleteBean; } break; } } if (!hasData) { completeStateBean.puzzleId = puzzlesInfo.id; completeStateBean.puzzleType = puzzlesInfo.data_type; completeStateBean.puzzleName = puzzlesInfo.name; completeStateBean.puzzleMarkName = puzzlesInfo.mark_file_name; completeStateBean.completeTime = completeTime; completeStateBean.unlockState = JigsawUnlockEnum.UnLock; listCompleteState.Add(completeStateBean); } } DataStorageManage.getPuzzlesCompleteDSHandle().saveAllData(listCompleteState); }
/// <summary> /// 创建自定义样式 /// </summary> /// <param name="itemInfo"></param> private GameObject createCustomItem(PuzzlesGameInfoBean itemInfo) { PuzzlesInfoBean infoBean = itemInfo.puzzlesInfo; PuzzlesCompleteStateBean completeStateBean = itemInfo.completeStateInfo; GameObject itemObj = Instantiate(ResourcesManager.LoadData <GameObject>(JigsawSelectCustomItemPath)); //设置大小 setItemSize(itemObj); itemObj.name = infoBean.Mark_file_name; itemObj.transform.SetParent(transform); //设置背景图片 Image backImage = CptUtil.getCptFormParentByName <Transform, Image>(itemObj.transform, "JigsawPic"); string filePath = infoBean.Data_file_path + infoBean.Mark_file_name; StartCoroutine(ResourcesManager.LoadAsyncLocationImage(filePath, backImage)); //设置按键 Button startBT = CptUtil.getCptFormParentByName <Transform, Button>(itemObj.transform, "JigsawStart"); startBT.onClick.AddListener(delegate() { SoundUtil.playSoundClip(AudioButtonOnClickEnum.btn_sound_1); CommonData.SelectPuzzlesInfo = itemInfo; SceneUtil.jumpGameScene(); }); //最好分数 Transform bestScoreTF = CptUtil.getCptFormParentByName <Transform, Transform>(itemObj.transform, "JigsawBestScore"); Text bestScore = CptUtil.getCptFormParentByName <Transform, Text>(itemObj.transform, "JigsawBestScoreText"); if (completeStateBean != null && completeStateBean.completeTime != null) { bestScore.text = GameUtil.GetTimeStr(completeStateBean.completeTime.totalSeconds); } else { bestScoreTF.gameObject.SetActive(false); } //设置文本信息 Text jigsawNameText = CptUtil.getCptFormParentByName <Transform, Text>(itemObj.transform, "JigsawName"); Text startBTText = CptUtil.getCptFormParentByName <Transform, Text>(itemObj.transform, "JigsawStartText"); if (itemInfo.progressInfo != null) { startBTText.text = CommonData.getText(85); } else { startBTText.text = CommonData.getText(14); } jigsawNameText.text = infoBean.Name; //设置按钮信息 //编辑按钮 //Button editBT = CptUtil.getCptFormParentByName<Transform, Button>(itemObj.transform, "JigsawEdit"); //editBT.onClick.AddListener(delegate () //{ // SoundUtil.playSoundClip(AudioButtonOnClickEnum.btn_sound_1); // MenuCustomUpLoadUIControl upLoadUIControl = menuSelectUIControl.mUIMasterControl.getUIByType<MenuCustomUpLoadUIControl>(UIEnum.MenuCustomUpLoadUI); // upLoadUIControl.setInitData(infoBean); // menuSelectUIControl.mUIMasterControl.openUIByTypeAndCloseOther(UIEnum.MenuCustomUpLoadUI); //}); //删除按钮 Button deleteBT = CptUtil.getCptFormParentByName <Transform, Button>(itemObj.transform, "JigsawDelete"); deleteBT.onClick.AddListener(delegate() { SoundUtil.playSoundClip(AudioButtonOnClickEnum.btn_sound_1); FileUtil.DeleteFile(filePath); CustomPuzzlesInfoDSHandle handle = (CustomPuzzlesInfoDSHandle)DataStorageManage.getCustomPuzzlesInfoDSHandle(); handle.removeData(infoBean); menuSelectUIControl.setJigsawSelectData(JigsawResourcesEnum.Custom); }); return(itemObj); }
/// <summary> /// 创建正常样式 /// </summary> public GameObject createNormalItem(PuzzlesGameInfoBean itemInfo) { PuzzlesInfoBean infoBean = itemInfo.puzzlesInfo; PuzzlesCompleteStateBean completeStateBean = itemInfo.completeStateInfo; GameObject itemObj = Instantiate(ResourcesManager.LoadData <GameObject>(JigsawSelectItemPath)); Button itemBT = itemObj.GetComponent <Button>(); //设置大小 setItemSize(itemObj); itemObj.name = infoBean.Mark_file_name; itemObj.transform.SetParent(transform); //设置背景图片 Image backImage = CptUtil.getCptFormParentByName <Transform, Image>(itemObj.transform, "JigsawPic"); string filePath = infoBean.Data_file_path + infoBean.Mark_file_name; StartCoroutine(ResourcesManager.LoadAsyncDataImage(filePath + "_Thumb", backImage)); //设置状态 Text puzzleStatus = CptUtil.getCptFormParentByName <Transform, Text>(itemObj.transform, "JigsawStatus"); if (completeStateBean == null || completeStateBean.completeTime == null || completeStateBean.completeTime.totalSeconds == 0) { Material material = new Material(Shader.Find("Custom/Gray")); backImage.material = material; puzzleStatus.gameObject.SetActive(true); puzzleStatus.text = CommonData.getText(32); } else { puzzleStatus.gameObject.SetActive(false); puzzleStatus.text = CommonData.getText(32); } //设置按键 Button startBT = CptUtil.getCptFormParentByName <Transform, Button>(itemObj.transform, "JigsawStart"); startBT.onClick.AddListener(delegate() { SoundUtil.playSoundClip(AudioButtonOnClickEnum.btn_sound_1); CommonData.SelectPuzzlesInfo = itemInfo; SceneUtil.jumpGameScene(); }); Button scoreBT = CptUtil.getCptFormParentByName <Transform, Button>(itemObj.transform, "JigsawScore"); scoreBT.onClick.AddListener(delegate() { SoundUtil.playSoundClip(AudioButtonOnClickEnum.btn_sound_1); DialogManager.createLeaderBoradDialog(1, itemInfo); }); //设置文本信息 Text jigsawNameText = CptUtil.getCptFormParentByName <Button, Text>(itemBT, "JigsawName"); Text startBTText = CptUtil.getCptFormParentByName <Button, Text>(itemBT, "JigsawStartText"); Text scoreBTText = CptUtil.getCptFormParentByName <Button, Text>(itemBT, "JigsawScoreText"); jigsawNameText.text = infoBean.Name; scoreBTText.text = CommonData.getText(15); if (itemInfo.progressInfo != null) { startBTText.text = CommonData.getText(85); } else { startBTText.text = CommonData.getText(14); } //设置拼图等级 setLevel(itemObj, infoBean.level); return(itemObj); }
/// <summary> /// 创建未解锁样式 /// </summary> /// <param name="itemInfo"></param> private GameObject createLockItem(int position, PuzzlesGameInfoBean itemInfo) { PuzzlesInfoBean infoBean = itemInfo.puzzlesInfo; PuzzlesCompleteStateBean completeStateBean = itemInfo.completeStateInfo; //解锁点数处理 if (infoBean.unlock_point == 1) { infoBean.unlock_point = infoBean.level; } GameObject itemObj = Instantiate(ResourcesManager.LoadData <GameObject>(JigsawSelectLockItemPath)); Button itemBT = itemObj.GetComponent <Button>(); //设置大小 setItemSize(itemObj); itemObj.name = infoBean.Mark_file_name; itemObj.transform.SetParent(transform); //设置按键 Button unLockBT = CptUtil.getCptFormParentByName <Transform, Button>(itemObj.transform, "JigsawUnLock"); unLockBT.onClick.AddListener( delegate() { SoundUtil.playSoundClip(AudioButtonOnClickEnum.btn_sound_1); long userPoint = DataStorageManage.getUserInfoDSHandle().getData(0).puzzlesPoint; if (userPoint < infoBean.unlock_point) { //如果没有PP则提示不足 DialogManager.createToastDialog().setToastText(CommonData.getText(16)); } else { //如果有PP则解锁 //保存信息 ((UserInfoDSHandle)DataStorageManage.getUserInfoDSHandle()).decreaseUserPuzzlesPoint(infoBean.unlock_point); menuSelectUIControl.refreshPuzzlesPoint(); //解锁拼图 if (completeStateBean == null) { completeStateBean = new PuzzlesCompleteStateBean(); completeStateBean.puzzleId = infoBean.id; completeStateBean.puzzleType = infoBean.data_type; } completeStateBean.unlockState = JigsawUnlockEnum.UnLock; DataStorageManage.getPuzzlesCompleteDSHandle().saveData(completeStateBean); //menuSelectUIControl.refreshJigsawSelectData(); menuSelectUIControl.refreshItemJigsawSelectData(position, itemObj, itemInfo); //解锁成功动画 string filePath = infoBean.Data_file_path + infoBean.Mark_file_name; DialogManager.createUnlockPuzzlesDialog(infoBean.name, infoBean.mark_file_name, filePath); } }); //设置文本信息 Text jigsawUnLockText = CptUtil.getCptFormParentByName <Button, Text>(itemBT, "JigsawUnLockText"); jigsawUnLockText.text = CommonData.getText(13) + "( " + infoBean.unlock_point + "PP )"; //设置拼图等级 setLevel(itemObj, infoBean.level); return(itemObj); }