/// <summary> 소탕 보상 아이템 응답 </summary> public void OnPMsgSweepReward(NetData.SweepSlotData slotData) { SweepSlotList.Insert(0, slotData); TempCoroutine.instance.FrameDelay(0.2f, () => { SweepPaging.RefreshSlot(SweepSlotList.Count); SoundManager.instance.PlaySfxSound(eUISfx.UI_reward_popup, false); }); }
public override void NetworkData(params object[] proto) { base.NetworkData(proto); switch ((Sw.MSG_DEFINE)proto[0]) { case Sw.MSG_DEFINE._MSG_ARENA_INFO_S: //금일 횟수 DailyCount = (int)proto[1]; MaxDailyCount = (int)proto[2]; ResetCount = (int)proto[3]; MyTopRank = (int)proto[4]; ArenaGameState.MyTopRank = MyTopRank; if (ResetCount >= 1) { FightCountLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1255), ResetCount - DailyCount, MaxDailyCount); //이떄 한개만 BuyBtn.gameObject.SetActive(ResetCount - DailyCount == 0); } else { FightCountLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1255), MaxDailyCount - DailyCount, MaxDailyCount); BuyBtn.gameObject.SetActive(MaxDailyCount - DailyCount == 0); } //FightCountLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1255), MaxDailyCount - DailyCount, MaxDailyCount); // BuyBtn.gameObject.SetActive(MaxDailyCount - DailyCount == 0); //if (CharInven.ArenaRanking <= 0)//최초 진입일 것이다. //{ //NetworkClient.instance.SendPMsgArenaRankInfoC(); //} //else //{ // transform.FindChild("PvpPanel/info/rank_label").GetComponent<UILabel>().text = // string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(521), CharInven.ArenaRanking); //} break; case Sw.MSG_DEFINE._MSG_ARENA_RANK_INFO_S: //나의 랭킹 정보 { transform.FindChild("PvpPanel/info/rank_label").GetComponent <UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(521), CharInven.ArenaRanking); TodayPoints.text = "0"; //오늘획득가능한보상... List <PVP.PVPAutoRewardInfo> autoList = _LowDataMgr.instance.GetPvpAutoRewardList(); for (int i = 0; i < autoList.Count; i++) { if (autoList[i].RankMax < CharInven.ArenaRanking || CharInven.ArenaRanking < autoList[i].RankMin) { continue; } TodayPoints.text = autoList[i].RewardValue.ToString(); break; } NetworkClient.instance.SendPMsgArenaMatchListC(0); //서버에서 알아서보내준다함. } break; case Sw.MSG_DEFINE._MSG_ARENA_MATCH_LIST_S: //대상 리스트 받음 // 상위 유저 8명 , 나 , 하위유저 2명 => 11명 보여줌 EnemyList = (List <NetData.ArenaUserInfo>)proto[1]; //내껏도 추가해줭 NetData.ArenaUserInfo myInfo = new NetData.ArenaUserInfo((long)CharInven._charUUID, CharInven._charName, (int)CharInven._userCharIndex, (int)CharInven._Level, (int)CharInven._VipLevel, (int)CharInven._TotalAttack, CharInven.ArenaRanking, CharInven._GuildId); EnemyList.Insert(EnemyList.Count, myInfo); //정렬타임 EnemyList.Sort(delegate(NetData.ArenaUserInfo a, NetData.ArenaUserInfo b) { if (a.Rank > b.Rank) { return(1); } else if (b.Rank > a.Rank) { return(-1); } return(0); }); OnMatchListSlotdelegate(); break; case Sw.MSG_DEFINE._MSG_ARENA_MATCH_INFO_S: //게임 시작 로딩으로 넘기는 곳 ArenaGameState.TargetRank = EnemyInfo.Rank; ArenaGameState.MyRank = CharInven.ArenaRanking; ArenaGameState.TargetAttack = EnemyInfo.Attack; SceneManager.instance.SetSubLoadingPanelParams((int)NetData.instance.GetUserInfo()._TotalAttack, EnemyInfo.Attack, MyGuildName, EnemyInfo.GuildName); SceneManager.instance.ShowLoadingTipPanel(true, GAME_MODE.ARENA, () => { SceneManager.instance.ActionEvent(_ACTION.PLAY_ARENA); }); Hide(); break; case Sw.MSG_DEFINE._MSG_ARENA_FIGHT_LIST_S: //유아이에 있을 경우 한번만 실행하도록 한다 이후에는 팝업만 껏다 켜줌 IsSendFightList = true; //막아줄 변수 List <NetData.ArenaFightInfo> list = (List <NetData.ArenaFightInfo>)proto[1]; UIHelper.CreateSlotItem(true, list.Count, RecordSlotPrefab.transform, RecordGrid.transform, delegate(Transform tf, int i) { if (list.Count <= i) { tf.gameObject.SetActive(false); return; } tf.gameObject.SetActive(true); tf.FindChild("battle").GetComponent <UILabel>().text = SceneManager.instance.NumberToString(list[i].BattlePoint); //list[i].BattlePoint.ToString(); // ToString("#,##"); tf.FindChild("name").GetComponent <UILabel>().text = list[i].UserName; //tf.FindChild("rank").GetComponent<UILabel>().text = string.Format("{0}", list[i].Ranking); //tf.FindChild("result").GetComponent<UILabel>().text = _LowDataMgr.instance.GetStringCommon((uint)(list[i].FightResult == (int)Sw.FIGHT_RESULT.FIGHT_RESULT_WIN ? 69 : 70)); //승리.패배시 슬롯색이달라짐 bool isWin = list[i].FightResult == (int)Sw.FIGHT_RESULT.FIGHT_RESULT_WIN; tf.FindChild("winBg").gameObject.SetActive(isWin); tf.FindChild("loseBg").gameObject.SetActive(!isWin); tf.FindChild("winResult").gameObject.SetActive(isWin); tf.FindChild("loseResult").gameObject.SetActive(!isWin); //랭킹변화도 표시해줘야함 //녹색 :3ddb80 //빨강: ed353a string rank = ""; if (isWin && list[i].Ranking != list[i].WinRanking) { rank = string.Format("{0}[ed353a](-{1})[-]", list[i].WinRanking, list[i].Ranking - list[i].WinRanking); } else { rank = string.Format("{0}", list[i].Ranking); } //if (CharInven.ArenaRanking == list[i].Ranking) // rank = string.Format("{0}", list[i].Ranking); //else if (CharInven.ArenaRanking > list[i].Ranking) // rank = string.Format("{0}[3ddb80](+{1})[-]", list[i].Ranking, CharInven.ArenaRanking - list[i].Ranking); //else // rank = string.Format("{0}[ed353a](-{1})[-]", list[i].Ranking, list[i].Ranking - CharInven.ArenaRanking); tf.FindChild("rank").GetComponent <UILabel>().text = rank; }); RecordGrid.repositionNow = true; BattleRecordPopup.SetActive(true); break; case Sw.MSG_DEFINE._MSG_ARENA_RANK_LIST_S: //랭킹 리스트 List <NetData.ArenaUserInfo> addList = (List <NetData.ArenaUserInfo>)proto[1]; List <ulong> guildIdList = new List <ulong>(); for (int i = 0; i < addList.Count; i++) { RankList.Add(addList[i]); guildIdList.Add(addList[i].GuildId); } NetworkClient.instance.SendPMsgGuildNameQueryC(guildIdList); break; case Sw.MSG_DEFINE._MSG_GUILD_NAME_QUERY_S: Sw.PMsgGuildNameQueryS protocol = (Sw.PMsgGuildNameQueryS)proto[1]; for (int i = 0; i < protocol.UnCount; i++) { ulong guildId = protocol.CGuildInfo[i].UllGuildId; string guild = string.IsNullOrEmpty(protocol.CGuildInfo[i].SzGuildName) ? "" : string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(8), protocol.CGuildInfo[i].SzGuildName); for (int j = 0; j < RankList.Count; j++) { if (!string.IsNullOrEmpty(RankList[j].GuildName) || RankList[j].GuildId != guildId) { continue; } if (CharInven.ArenaRanking == RankList[j].Rank) //유저의 길드 이름이다. { MyGuildName = guild; } RankList[j].SetGuildName(guild); break; } } if (protocol.UnCount != 50 || RankList.Count == 100) { RankPaging.RefreshSlot(RankList.Count); if (!RankPopup.activeSelf) { RankPopup.SetActive(true); //유저의 정보 transform.FindChild("RankPopup/HeroRank/name").GetComponent <UILabel>().text = CharInven._charName; transform.FindChild("RankPopup/HeroRank/guild_name").GetComponent <UILabel>().text = MyGuildName; transform.FindChild("RankPopup/HeroRank/rank").GetComponent <UILabel>().text = CharInven.ArenaRanking.ToString();//string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(521), CharInven.ArenaRanking); transform.FindChild("RankPopup/HeroRank/class").GetComponent <UISprite>().spriteName = UIHelper.GetClassIcon(CharInven._userCharIndex); transform.FindChild("RankPopup/HeroRank/face").GetComponent <UISprite>().spriteName = _LowDataMgr.instance.GetCharcterData(CharInven._userCharIndex).PortraitId; transform.FindChild("RankPopup/HeroRank/Bestrank/rank_label").GetComponent <UILabel>().text = MyTopRank.ToString(); transform.FindChild("RankPopup/HeroRank/guild_name").GetComponent <UILabel>().text = string.Format("{0} {1:#,#}", _LowDataMgr.instance.GetStringCommon(47), CharInven._TotalAttack); } } break; case Sw.MSG_DEFINE._MSG_ARENA_RESET_TIMES_S: //차관 금일 횟수 초기화 DailyCount = (int)proto[1]; MaxDailyCount = (int)proto[2]; ResetCount = (int)proto[3]; if (ResetCount >= 1) { FightCountLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1255), ResetCount - DailyCount, MaxDailyCount); //이떄 한개만 BuyBtn.gameObject.SetActive(ResetCount - DailyCount == 0); } else { FightCountLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1255), MaxDailyCount - DailyCount, MaxDailyCount); BuyBtn.gameObject.SetActive(MaxDailyCount - DailyCount == 0); } //NetworkClient.instance.SendPMsgArenaFightStartC(EnemyPartners, EnemyInfo.RoleId, EnemyInfo.Rank);//바로 시작. break; } }