/// <summary> 파트너 슬롯 버튼 </summary> void OnClickPartnerRoot(int rootID) { PnTouchEff[SelectPnRootID].SetActive(false); PnTouchEff[rootID].SetActive(true); SelectPnRootID = rootID; if (PnRootInfo[rootID].isInsert)//이미 무언가가 들어가 있음 뺀다. { NetData._PartnerData partnerData = CharInven.GetEquipPartner(rootID + 1); CharInven.UnEquipPartner(rootID + 1); //사용하던 슬롯 다시 사용가능하게 해준다. Transform slotTf = PartnerGrid.FindChild(string.Format("{0}", PnRootInfo[rootID].insertSlotID)); slotTf.FindChild("face_d3").GetComponent <UISprite>().color = Color.white; Debug.Log("<color=blue/>DisMount slotID " + PnRootInfo[rootID].insertSlotID); PnRootInfo[rootID].DeleteSlot(); //슬롯 정보 삭제 PnTouchObj[rootID].SetActive(true); //터치 라벨 킨다. if (0 < PartnerModelRoot[rootID].childCount) { PartnerModelRoot[rootID].GetChild(0).gameObject.SetActive(false); } TakeParNames[rootID].text = null; } else//아무것도 없음 추가해준다. { //PartnerSlotList.SetActive(true); UIGrid grid = PartnerGrid.GetComponent <UIGrid>(); grid.enabled = true; grid.Reposition(); } }
/// <summary> 파트너 추가함 </summary> void OnClickAddPartner(NetData._PartnerData data) { int lenght = PnRootInfo.Length; for (int i = 0; i < lenght; i++) { if (PnRootInfo[i] == null) { continue; } if (PnRootInfo[i].isInsert && data._partnerDataIndex == PnRootInfo[i].insertSlotID)//장착중이거나 장착중인 녀석과 동일하다면 무시. { return; } } //파트너 장착 CharInven.UnEquipPartner(SelectPnRootID + 1); CharInven.EquipPartner(data, SelectPnRootID + 1); Transform modelRoot = PartnerModelRoot[SelectPnRootID]; PnTouchObj[SelectPnRootID].SetActive(false); //터치 라벨 끈다. UIHelper.CreateEffectInGame(PnTouchObj[SelectPnRootID].transform.parent, "Fx_UI_par_insert"); //교체이펙트 if (PnRootInfo[SelectPnRootID].isInsert) { //사용하던 슬롯 다시 사용가능하게 해준다. Transform prevSlotTf = PartnerGrid.FindChild(string.Format("{0}", PnRootInfo[SelectPnRootID].insertSlotID)); prevSlotTf.FindChild("face_d3").GetComponent <UISprite>().color = Color.white; } //등록한 파트너 슬롯 딤처리 Transform slotTf = PartnerGrid.FindChild(string.Format("{0}", data._partnerDataIndex)); slotTf.FindChild("face_d3").GetComponent <UISprite>().color = Color.gray; //파트너 이름, level 넣는다. string lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), data._NowLevel); TakeParNames[SelectPnRootID].text = string.Format("{0} {1}", lvStr, data.GetLocName()); UIHelper.CreatePartnerUIModel(modelRoot, data._partnerDataIndex, 3, true, false, "ReadyPopup"); PnRootInfo[SelectPnRootID].SetModel(data._partnerDataIndex); //PartnerSlotList.SetActive(false); }
void Update() { if (Input.GetKeyDown(KeyCode.P)) { //Cam3D.rect = new Rect(0, Cam3D.rect.y, Cam3D.rect.width, Cam3D.rect.height); List <NetData._PartnerData> dataList = GetSortPartnerList();//CharInven.GetPartnerList(); NetData._PartnerData partnerData = dataList[CurPnDataArray]; IsDuringEffect = true; //ChangeShader(true, false); ChangeInfoView(InfoViewType.SpawnInfo); Transform tf = InfoViewObj[(int)InfoViewType.SpawnInfo].transform.FindChild("root"); GameObject go = UIHelper.CreatePartnerUIModel(tf, partnerData._partnerDataIndex, 1, true, false, "PartnerPanel"); UIModel model = go.GetComponent <UIModel>(); GameObject effGo = model.PlayIntro(SpawnEffectRoot, ParticleScale); if (effGo != null) { SpawnEffectRoot.localRotation = Quaternion.Euler(Vector3.zero); } else { effGo = Instantiate(SpawnEffectPrefab) as GameObject; SpawnEffectRoot.localRotation = Quaternion.Euler(new Vector3(20, 0, 0)); } float delay = model.UnitAnim.GetAnimLength(eAnimName.Anim_intro) + 0.1f; //RotationTargetList[0].transform.parent.gameObject.SetActive(false); TempCoroutine.instance.FrameDelay(delay, () => { // Cam3D.rect = new Rect(Cam3DViewport, Cam3D.rect.y, Cam3D.rect.width, Cam3D.rect.height); model.SetWeaponEffectActive(true); SpawnEffectRoot.parent = transform; DestroyImmediate(effGo); IsDuringEffect = false; ChangeInfoView(InfoViewType.ListInfo); }); } }
void CreatePartnerModel(Transform parent, NetData._PartnerData data) { GameObject go = UIHelper.CreatePartnerUIModel(parent, data._partnerDataIndex, 1, data._isOwn, false, "PartnerPanel"); //go.SetActive(false); parent.localEulerAngles = Vector3.zero; //TempCoroutine.instance.FrameDelay(0.01f, () => { if (go == null) { return; } //go.SetActive(true); //go.GetComponent<UIModel>().PlayAnim(eAnimName.Anim_idle); Transform modelTf = go.transform; int childCount = modelTf.childCount; for (int i = 0; i < childCount; i++) { Transform tf = modelTf.GetChild(i); if (!tf.name.Contains("par_")) { continue; } int shaders = tf.renderer.materials.Length; for (int j = 0; j < shaders; j++) { Material m = tf.renderer.materials[j]; //if (isSpawnView) //{ // m.SetFloat("_FlashAmount", 0f); //} //else { m.SetFloat("_FlashAmount", data._isOwn ? 0f : 1f); m.SetColor("_FlashColor", Color.black); } } } //}); }
/// <summary> 진화 별 상승 응답 </summary> public void OnPMsgHeroPromoSHandler(uint partnerId) { CurData = UserInfo.GetPartnerForIdx(partnerId); UIHelper.CreateEffectInGame(EvolveEffRoot, "Fx_partner_skillup_01"); EvolveLevel[1].GetComponent <TweenColor>().ResetToBeginning(); EvolveLevel[1].GetComponent <TweenColor>().PlayForward(); EvolveLevel[1].GetComponent <TweenScale>().ResetToBeginning(); EvolveLevel[1].GetComponent <TweenScale>().PlayForward(); IsUpgrading = true; TempCoroutine.instance.KeyDelay("ParEvolve", 1f, delegate() { IsUpgrading = false; DestroyImmediate(EvolveEffRoot.GetChild(0).gameObject); InitPromo(); SoundManager.instance.PlaySfxSound(eUISfx.UI_par_upgrade_01, false); }); }
/// <summary> /// ListSlot을 클릭하면 실행 됨 /// </summary> /// <param name="itemInfo"></param> void OnClickListSlot(ushort parDataId) { //CurPnDataArray = idx; NetData._PartnerData data = null;//MovePartnerView(); List <NetData._PartnerData> list = GetSortPartnerList(); for (int i = 0; i < list.Count; i++) { if (list[i]._partnerDataIndex != parDataId) { continue; } CurPnDataArray = i; data = list[i]; break; } ChangeInfoView(InfoViewType.OwnInfo); OwnPartnerView.SetPartnerInfo(data); }
/// <summary> /// 파트너 획득 /// </summary> /// <param name="itemInfo"></param> void OnClickPartnerGet(ushort parDataId) { if (IsDuringEffect) { return; } List <NetData._PartnerData> dataList = GetSortPartnerList(); NetData._PartnerData data = null;//MovePartnerView(); List <NetData._PartnerData> list = GetSortPartnerList(); for (int i = 0; i < list.Count; i++) { if (list[i]._partnerDataIndex != parDataId) { continue; } CurPnDataArray = i; break; } data = dataList[CurPnDataArray]; if (data.NowShard < data._needShard) { UIMgr.instance.AddPopup(141, 1176, 117); return; } if (SpawnEffectPrefab == null) { return; } NetworkClient.instance.SendPMsgHeroFusionC(data._partnerDataIndex); }
public override void LateInit() { base.LateInit(); if (mStarted && parameters != null && 0 < parameters.Length && (bool)parameters[0])//초기화 { parameters[0] = false; ChangeInfoView(InfoViewType.ListInfo); OnTabPartnerList(CurPartnerTabArr); uiMgr.SetTopMenuTitleName(7); ListGridTf.parent.GetComponent <UIScrollView>().ResetPosition(); } List <NetData._PartnerData> dataList = GetSortPartnerList();//CharInven.GetPartnerList(); NetData._PartnerData partnerData = dataList[CurPnDataArray]; if (CurInfoView == InfoViewType.SpawnInfo) { ChangeInfoView(InfoViewType.OwnInfo); OwnPartnerView.SetPartnerInfo(partnerData); } //else if(CurInfoView == InfoViewType.OwnInfo) //{ // ChangeInfoView(InfoViewType.ListInfo); // OnTabPartnerList(CurPartnerTabArr); // uiMgr.SetTopMenuTitleName(7); // ListGridTf.parent.GetComponent<UIScrollView>().ResetPosition(); //} if (CurInfoView == InfoViewType.ListInfo) { OnSubTutorial(); } }
/// <summary> OwnDetailInfo를 실행하는 함수 </summary> public void SetPartnerInfo(NetData._PartnerData data, int openView = (int)ViewType.Attribute) { if (ModelRoot.childCount > 0) { DestroyImmediate(ModelRoot.GetChild(0).gameObject); } UIHelper.CreatePartnerUIModel(ModelRoot, data._partnerDataIndex, 3, true, false, "PartnerPanel"); ModelRoot.localEulerAngles = Vector3.zero; string lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), data._NowLevel); Name.text = data.GetLocName(); Damage.text = string.Format(_LowDataMgr.instance.GetStringCommon(1163), data._Attack); GradeLabel.text = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor((int)data.CurQuality), data.GetGradeName()); Transform skillTab = TabBtn[1].transform; Transform upTab = TabBtn[2].transform; if (data._isOwn) { if (data._NowLevel >= data._MaxLevel) { Level.text = string.Format(_LowDataMgr.instance.GetStringCommon(1152), data._NowLevel); } else { Level.text = string.Format(_LowDataMgr.instance.GetStringCommon(1151), data._NowLevel); } } else { Level.text = string.Format(_LowDataMgr.instance.GetStringCommon(1151), 1); } CurData = data; CheckMoveState(openView); transform.FindChild("Info/Mark").GetComponent <UISprite>().spriteName = CurData.GetClassType(); OnClickTabList(openView); //TabGroup.CoercionTab(openView); skillTab.GetComponent <BoxCollider>().enabled = data._isOwn; upTab.GetComponent <BoxCollider>().enabled = data._isOwn; skillTab.transform.FindChild("tab_off").gameObject.SetActive(data._isOwn); skillTab.transform.FindChild("tab_disable").gameObject.SetActive(!data._isOwn); upTab.transform.FindChild("tab_off").gameObject.SetActive(data._isOwn); upTab.transform.FindChild("tab_disable").gameObject.SetActive(!data._isOwn); //중심축때문에.. //파트너 모델링의 x 좌표만큼 상위의 ModelPos에더해줌. ModelRoot.SetLocalX(ModelRootX + ModelRoot.GetChild(0).transform.localPosition.x); ModelRoot.GetChild(0).transform.SetLocalX(0); if (SceneManager.instance.CurTutorial == TutorialType.PARTNER) { TabBtn[1].gameObject.GetComponent <TutorialSupport>().OnTutoSupportStart(); } }
void SetMaterialReadyPopup() { string nickName = NetData.instance.Nickname; string _lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), NetData.instance.UserLevel); charNameLv.text = string.Format("{0} {1}", _lvStr, nickName); //장착중인 파트너 생성 NetData._CostumeData equipCostumeData = CharInven.GetEquipCostume(); uint weaponId = 0, clothId = 0, headId = 0; if (CharInven.isHideCostum) { NetData._ItemData head = CharInven.GetEquipParts(ePartType.HELMET); NetData._ItemData cloth = CharInven.GetEquipParts(ePartType.CLOTH); NetData._ItemData weapon = CharInven.GetEquipParts(ePartType.WEAPON); if (head != null) { headId = head._equipitemDataIndex; } if (cloth != null) { clothId = cloth._equipitemDataIndex; } if (weapon != null) { weaponId = weapon._equipitemDataIndex; } } UIHelper.CreatePcUIModel("DungeonPanel", PlayCharRoot, CharInven.GetCharIdx(), headId, equipCostumeData._costmeDataIndex, clothId, weaponId, CharInven.GetEquipSKillSet().SkillSetId, 3, CharInven.isHideCostum, false); NetData._PartnerData partner_0 = CharInven.GetEquipPartner(1); NetData._PartnerData partner_1 = CharInven.GetEquipPartner(2); if (partner_0 != null) { Transform modelRoot = PartnerModelRoot[0]; PnTouchObj[0].SetActive(false);//터치 라벨 끈다. PnTouchEff[0].SetActive(false); PartnerModelRoot[0].gameObject.SetActive(true); UIHelper.CreatePartnerUIModel(modelRoot, partner_0._partnerDataIndex, 3, true, false, "DungeonPanel"); string lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), partner_0._NowLevel); TakeParNames[0].text = string.Format("{0} {1}", lvStr, partner_0.GetLocName()); } else { PnTouchObj[0].SetActive(true);//터치 라벨 킨다. PnTouchEff[0].SetActive(true); PartnerModelRoot[0].gameObject.SetActive(false); TakeParNames[0].text = ""; } if (partner_1 != null) { Transform modelRoot = PartnerModelRoot[1]; PnTouchObj[1].SetActive(false);//터치 라벨 끈다. PnTouchEff[1].SetActive(false); PartnerModelRoot[1].gameObject.SetActive(true); UIHelper.CreatePartnerUIModel(modelRoot, partner_1._partnerDataIndex, 3, true, false, "DungeonPanel"); string lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), partner_1._NowLevel); TakeParNames[1].text = string.Format("{0} {1}", lvStr, partner_1.GetLocName()); } else { PnTouchObj[1].SetActive(true);//터치 라벨 킨다. PnTouchEff[1].SetActive(true); PartnerModelRoot[1].gameObject.SetActive(false); TakeParNames[1].text = ""; } }
void OnMatchListSlotdelegate() { for (int i = 0; i < PvpGrid.transform.childCount; i++) { if (i >= EnemyList.Count) { PvpGrid.transform.GetChild(i).gameObject.SetActive(false); continue; } GameObject slotGo = PvpGrid.transform.GetChild(i).gameObject; Transform slotTf = slotGo.transform; slotGo.SetActive(true); slotTf.FindChild("win_reward").gameObject.SetActive(MyTopRank > EnemyList[i].Rank); //상대승리시 최고래밸을 달성할수있을시 .. if (slotTf.FindChild("win_reward").gameObject.activeSelf) { slotTf.FindChild("win_reward/label").GetComponent <UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(1259), (MyTopRank - EnemyList[i].Rank) * _LowDataMgr.instance.GetEtcTableValue <uint>(EtcID.PvPfirstgetcash)); } slotTf.FindChild("lv").GetComponent <UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(14), EnemyList[i].Level); slotTf.FindChild("battle").GetComponent <UILabel>().text = string.Format("{0} {1:#,#}", _LowDataMgr.instance.GetStringCommon(47), EnemyList[i].Attack); slotTf.FindChild("name").GetComponent <UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(155), EnemyList[i].Name); slotTf.FindChild("rank").GetComponent <UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(1020), EnemyList[i].Rank); slotTf.FindChild("class").GetComponent <UISprite>().spriteName = UIHelper.GetClassIcon((uint)EnemyList[i].Type); if ((ulong)EnemyList[i].RoleId == CharInven.GetCharUUID()) { slotTf.FindChild("win_reward").gameObject.SetActive(false); slotTf.FindChild("BtnStart").gameObject.SetActive(false); } else { slotTf.FindChild("BtnStart").gameObject.SetActive(true); } int idx = i; EventDelegate.Set(slotTf.FindChild("BtnStart").GetComponent <UIButton>().onClick, delegate() { NetData._PartnerData par_1 = CharInven.GetEquipPartner(1); NetData._PartnerData par_2 = CharInven.GetEquipPartner(2); EnemyPartners = new int[] { (int)(par_1 != null ? par_1._partnerIndex : 0), (int)(par_2 != null ? par_2._partnerIndex : 0) }; EnemyInfo = EnemyList[idx]; if (ResetCount >= 1) { if (ResetCount - DailyCount == 0) { OnClickBuyBtn(); return; } } else { if (MaxDailyCount <= DailyCount) { OnClickBuyBtn(); return; } } NetworkClient.instance.SendPMsgArenaFightStartC(EnemyPartners, EnemyInfo.RoleId, EnemyInfo.Rank); }); } PvpGrid.repositionNow = true; //if (EnemyList.Count <= arr) //{ // go.SetActive(false); // return; //} //go.SetActive(true); //Transform tf = go.transform; //tf.FindChild("win_reward").gameObject.SetActive(MyTopRank > EnemyList[arr].Rank); //상대승리시 최고래밸을 달성할수있을시 .. //if (tf.FindChild("win_reward").gameObject.activeSelf) //{ // tf.FindChild("win_reward/label").GetComponent<UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(1259), (MyTopRank - EnemyList[arr].Rank) * _LowDataMgr.instance.GetEtcTableValue<uint>(EtcID.PvPfirstgetcash)); //} //tf.FindChild("lv").GetComponent<UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(14), EnemyList[arr].Level); //tf.FindChild("battle").GetComponent<UILabel>().text = string.Format("{0} {1:#,#}", _LowDataMgr.instance.GetStringCommon(47), EnemyList[arr].Attack); //tf.FindChild("name").GetComponent<UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(155), EnemyList[arr].Name); //tf.FindChild("rank").GetComponent<UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(1020), EnemyList[arr].Rank); //tf.FindChild("class").GetComponent<UISprite>().spriteName = UIHelper.GetClassIcon((uint)EnemyList[arr].Type); //if ((ulong)EnemyList[arr].RoleId == CharInven.GetCharUUID()) //{ // tf.FindChild("win_reward").gameObject.SetActive(false); // tf.FindChild("BtnStart").gameObject.SetActive(false); //} //else // tf.FindChild("BtnStart").gameObject.SetActive(true); //EventDelegate.Set(tf.FindChild("BtnStart").GetComponent<UIButton>().onClick, delegate () { // NetData._PartnerData par_1 = CharInven.GetEquipPartner(1); // NetData._PartnerData par_2 = CharInven.GetEquipPartner(2); // EnemyPartners = new int[] { // (int)(par_1 != null ? par_1._partnerIndex : 0), // (int)(par_2 != null ? par_2._partnerIndex : 0) // }; // EnemyInfo = EnemyList[arr]; // if (ResetCount >= 1) // { // if(ResetCount - DailyCount == 0) // { // OnClickBuyBtn(); // return; // } // } // else // { // if (MaxDailyCount <= DailyCount) // { // OnClickBuyBtn(); // return; // } // } // NetworkClient.instance.SendPMsgArenaFightStartC(EnemyPartners, EnemyInfo.RoleId, EnemyInfo.Rank); //}); /* * * * 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.ga */ }
public override void LateInit() { base.LateInit(); GameMode = (GAME_MODE)parameters[0]; BasePanel = (UIBasePanel)parameters[1]; int energe = (int)parameters[2]; int max = (int)parameters[3]; float scale = PartnerModelRoot[0].localScale.x;//파트너는 이값으로 bool isNetwork = false; string startBtnLbl = null; switch (GameMode) { case GAME_MODE.SINGLE: { //모험모드일때만 체력표시되게해주세요 UIMgr.instance.TopMenu.MenuType[3].transform.parent.gameObject.SetActive(true); startBtnLbl = string.Format("{0} ({1} {2})", _LowDataMgr.instance.GetStringCommon(66), energe, _LowDataMgr.instance.GetStringCommon(1)); //("시작"), ("에너지") break; } case GAME_MODE.SPECIAL_EXP: case GAME_MODE.SPECIAL_GOLD: case GAME_MODE.RAID: case GAME_MODE.TOWER: startBtnLbl = string.Format("{0}/{1} {2}", max - energe, max, _LowDataMgr.instance.GetStringCommon(66)); break; case GAME_MODE.COLOSSEUM: case GAME_MODE.MULTI_RAID: isNetwork = true; startBtnLbl = string.Format("{0}/{1} {2}", max - energe, max, _LowDataMgr.instance.GetStringCommon(66)); scale = 0.8f;//플레이어는 이값으로 break; case GAME_MODE.ARENA: startBtnLbl = string.Format("{0}", _LowDataMgr.instance.GetStringCommon(1053)); //transform.FindChild("BtnStartGame").collider.enabled = false; break; default: startBtnLbl = "unDefined 0"; break; } NetInfoTf.gameObject.SetActive(isNetwork); transform.FindChild("Partner").gameObject.SetActive(!isNetwork); transform.FindChild("BtnStartGame").gameObject.SetActive(!isNetwork);//상황따라 꺼놓는다. PartnerModelRoot[0].localScale = new Vector3(scale, scale, scale); PartnerModelRoot[1].localScale = new Vector3(scale, scale, scale); IsRoom = isNetwork; if (isNetwork) { InitNetworkDungeon(startBtnLbl); } else { transform.FindChild("BtnStartGame/need_food").GetComponent <UILabel>().text = startBtnLbl; //캐릭터 닉네임, 레벨 셋팅 string nickName = NetData.instance.Nickname; string lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), NetData.instance.UserLevel); transform.FindChild("Character/CharView/CharSlot/player_name").GetComponent <UILabel>().text = string.Format("{0} {1}", lvStr, nickName); //플레이어 생성 NetData._CostumeData equipCostumeData = CharInven.GetEquipCostume(); uint weaponId = 0, clothId = 0, headId = 0; if (CharInven.isHideCostum) { NetData._ItemData head = CharInven.GetEquipParts(ePartType.HELMET); NetData._ItemData cloth = CharInven.GetEquipParts(ePartType.CLOTH); NetData._ItemData weapon = CharInven.GetEquipParts(ePartType.WEAPON); if (head != null) { headId = head._equipitemDataIndex; } if (cloth != null) { clothId = cloth._equipitemDataIndex; } if (weapon != null) { weaponId = weapon._equipitemDataIndex; } } UIHelper.CreatePcUIModel("ReadyPopup", PlayCharRoot, CharInven.GetCharIdx(), headId, equipCostumeData._costmeDataIndex, clothId, weaponId, CharInven.GetEquipSKillSet().SkillSetId, 0, CharInven.isHideCostum, false); } if (GameMode != GAME_MODE.COLOSSEUM && GameMode != GAME_MODE.MULTI_RAID)//파트너못대려가는 지역. { Transform parBtnTf = transform.FindChild("Character/CharView"); EventDelegate.Set(parBtnTf.FindChild("BtnPartnerSlot_0").GetComponent <UIEventTrigger>().onClick, delegate() { OnClickPartnerRoot(0); }); EventDelegate.Set(parBtnTf.FindChild("BtnPartnerSlot_1").GetComponent <UIEventTrigger>().onClick, delegate() { OnClickPartnerRoot(1); }); //CanNotTakePartner.SetActive(false); //슬롯 셋팅 int ownCount = 0; List <NetData._PartnerData> dataList = CharInven.GetPartnerList(); if (PartnerGrid.childCount < dataList.Count) { int loopCount = dataList.Count; for (int i = 0; i < loopCount; i++) { Transform slotTf = null; if (i < PartnerGrid.childCount) { slotTf = PartnerGrid.GetChild(i); } else { GameObject slotGo = Instantiate(PartnerSlotPrefab) as GameObject; slotTf = slotGo.transform; slotTf.parent = PartnerGrid; slotTf.localPosition = Vector3.zero; slotTf.localScale = Vector3.one; } NetData._PartnerData data = dataList[i]; if (!data._isOwn) { slotTf.gameObject.SetActive(false); continue; } slotTf.name = string.Format("{0}", data._partnerDataIndex); ++ownCount; slotTf.gameObject.SetActive(true); UIButton uiBtn = slotTf.GetComponent <UIButton>(); EventDelegate.Set(uiBtn.onClick, delegate() { OnClickAddPartner(data); }); UISprite faceIcon = slotTf.FindChild("face_d3").GetComponent <UISprite>(); UISprite gradeIcon = slotTf.FindChild("grade").GetComponent <UISprite>(); UISprite gradebgIcon = slotTf.FindChild("grade_bg").GetComponent <UISprite>(); UILabel nameLbl = slotTf.FindChild("partner_name_d4").GetComponent <UILabel>(); nameLbl.text = data.GetLocName(); faceIcon.spriteName = data.GetIcon(); gradeIcon.spriteName = string.Format("Icon_0{0}", data.CurQuality); gradebgIcon.spriteName = string.Format("Icon_bg_0{0}", data.CurQuality); if (!data._isEquip)//장착중이 아니면 { slotTf.FindChild("face_d3").GetComponent <UISprite>().color = Color.white; continue; } //장착중인 것 셋팅 //등록한 파트너 슬롯 딤처리 slotTf.FindChild("face_d3").GetComponent <UISprite>().color = Color.gray; PnRootInfo[data._SlotNumber - 1].SetModel(data._partnerDataIndex); } UIScrollView scroll = PartnerGrid.parent.GetComponent <UIScrollView>(); if (4 < ownCount) { scroll.enabled = true; } else { if (ownCount <= 0) { NotPartner.SetActive(true); } else { NotPartner.SetActive(false); } scroll.enabled = false; } if (0 < ownCount) { GameObject effGo_01 = UIHelper.CreateEffectInGame(PnTouchEff[0].transform, "Fx_UI_partner_select_01", false); GameObject effGo_02 = UIHelper.CreateEffectInGame(PnTouchEff[1].transform, "Fx_UI_partner_select_01", false); effGo_01.transform.localEulerAngles = Vector3.zero; effGo_02.transform.localEulerAngles = Vector3.zero; effGo_01.layer = LayerMask.NameToLayer("UI"); effGo_02.layer = LayerMask.NameToLayer("UI"); effGo_01.transform.SetChildLayer(LayerMask.NameToLayer("UI")); effGo_02.transform.SetChildLayer(LayerMask.NameToLayer("UI")); PnTouchEff[0].SetActive(true); PnTouchEff[1].SetActive(false); } } //장착중인 파트너 생성 NetData._PartnerData partner_0 = CharInven.GetEquipPartner(1); NetData._PartnerData partner_1 = CharInven.GetEquipPartner(2); if (partner_0 != null) { Transform modelRoot = PartnerModelRoot[0]; PnTouchObj[0].SetActive(false);//터치 라벨 끈다. UIHelper.CreatePartnerUIModel(modelRoot, partner_0._partnerDataIndex, 3, true, false, "ReadyPopup"); string lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), partner_0._NowLevel); TakeParNames[0].text = string.Format("{0} {1}", lvStr, partner_0.GetLocName()); } else if (0 < ownCount) { PnTouchObj[0].SetActive(true);//터치 라벨 킨다. } //else //{ // PnTouchObj[0].SetActive(true);//터치 라벨 킨다. // TakeParNames[0].text = ""; //} if (partner_1 != null) { Transform modelRoot = PartnerModelRoot[1]; PnTouchObj[1].SetActive(false);//터치 라벨 끈다. UIHelper.CreatePartnerUIModel(modelRoot, partner_1._partnerDataIndex, 3, true, false, "ReadyPopup"); string lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), partner_1._NowLevel); TakeParNames[1].text = string.Format("{0} {1}", lvStr, partner_1.GetLocName()); } else if (0 < ownCount) { PnTouchObj[1].SetActive(true);//터치 라벨 킨다. } //else //{ // PnTouchObj[1].SetActive(true);//터치 라벨 킨다. // TakeParNames[1].text = ""; //} } else { NotPartner.SetActive(false); } }
/* * 1순위 소환가능한파트너.. * 2순위 보유 * 3순위 보유중, 높은등급 * 4순위 보유중, 높은등급, 낮은파트너ID * 5순위 미보유 * 6순위 미보유 낮은 파트너ID */ int SortPartnerList(NetData._PartnerData a, NetData._PartnerData b) { if (a._isOwn && b._isOwn) { //둘다 보유하고있을때체크 uint aGrade = a.CurQuality, bGrade = b.CurQuality; if (a == b) { return(0); } if (aGrade < bGrade) { return(1); } else if (aGrade == bGrade) { if (a._partnerDataIndex < b._partnerDataIndex) { return(1); } else { return(-1); } } else { return(-1); } } else if (a == b) { return(0); } else if (a._isOwn && !b._isOwn) { if (b.NowShard >= b._needShard) { return(1); } return(-1); } else if (!a._isOwn && b._isOwn) { if (a.NowShard >= a._needShard) { return(-1); } return(1); } else { //둘다 보유안하고잇음 , 소환가능한것을 앞으로 if (a.NowShard >= a._needShard && b.NowShard < b._needShard) //a가능 b불가 { return(-1); } else if (a.NowShard >= a._needShard && b.NowShard >= b._needShard) //a가능 b가능 -> 인덱스순 { if (a._partnerDataIndex < b._partnerDataIndex) { return(-1); } return(1); } else if (a.NowShard < a._needShard && b.NowShard < b._needShard) // a불가 b불가 { //둘다 소환불가능하면 인덱스순으로 if (a._partnerDataIndex < b._partnerDataIndex) { return(-1); } return(1); } else //a불가 b가능? { return(1); } } }
/// <summary> /// Partner를 셋팅 및 보여준다. /// </summary> /// <param name="type">PartnerType으로 타입에 맞게 보여줌</param> int OnTabPartnerList(int typeIdx) { PartnerClassType type = (PartnerClassType)typeIdx; int gridSlotCount = 0; bool isTuto = SceneManager.instance.CurTutorial == TutorialType.PARTNER; List <NetData._PartnerData> dataList = CharInven.GetPartnerList(); int loopCount = dataList.Count; for (int i = 0; i < loopCount; i++) { ListGridTf.GetChild(i).gameObject.SetActive(false); NetData._PartnerData data = dataList[i]; Partner.PartnerDataInfo info = data.GetLowData(); if (type != PartnerClassType.None && (PartnerClassType)info.Class != type) { continue; } Transform slotTf = ListGridTf.GetChild(gridSlotCount); slotTf.gameObject.SetActive(true); slotTf.FindChild("Mark").GetComponent <UISprite>().spriteName = data.GetClassType(); //보유조각수 slotTf.FindChild("Txt_count").GetComponent <UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(1154), data.NowShard, data._needShard); UISprite face = slotTf.FindChild("Itemroot/face").GetComponent <UISprite>(); UISprite bg = slotTf.FindChild("Itemroot/gradebg").GetComponent <UISprite>(); face.spriteName = data.GetIcon(); slotTf.FindChild("Txt_name").GetComponent <UILabel>().text = data.GetLocName(); UILabel level = slotTf.FindChild("Txt_class").GetComponent <UILabel>(); //등급은 색상도 고려해줘.. UILabel gradeLabel = slotTf.FindChild("Txt_type").GetComponent <UILabel>(); slotTf.FindChild("Itemroot/grade").GetComponent <UISprite>().spriteName = string.Format("Icon_0{0}", data.CurQuality); bg.spriteName = string.Format("Icon_bg_0{0}", data.CurQuality); Transform btnGetTf = slotTf.FindChild("Btn_Get"); //소환버튼 GameObject btnGetAfter = slotTf.FindChild("Btn_Getafter").gameObject; //보유중일때나옴 btnGetAfter.SetActive(data._isOwn); btnGetTf.gameObject.SetActive(!data._isOwn); slotTf.FindChild("bg_on").gameObject.SetActive(data._isOwn);//배경 if (data._isOwn) { EventDelegate.Set(btnGetAfter.GetComponent <UIEventTrigger>().onClick, delegate() { UIMgr.instance.AddPopup(141, 1177, 117); //보유중알림메시지 }); if (data._NowLevel >= data._MaxLevel)//최대렙 { level.text = string.Format(_LowDataMgr.instance.GetStringCommon(1152), data._NowLevel); } else { level.text = string.Format(_LowDataMgr.instance.GetStringCommon(1151), data._NowLevel); } //색상도고려 gradeLabel.text = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor((int)data.CurQuality), data.GetGradeName()); } else { if (isTuto && type == PartnerClassType.Attack && data.NowShard >= data._needShard) { isTuto = false; TutorialSupport support = btnGetTf.gameObject.AddComponent <TutorialSupport>(); support.TutoType = TutorialType.PARTNER; support.SortId = 3; support.IsScroll = true; //support.NextTuto = OwnPartnerView.TabBtn[1].gameObject.GetComponent<TutorialSupport>(); support.OnTutoSupportStart(); } btnGetTf.FindChild("Btn_on").gameObject.SetActive(data.NowShard >= data._needShard); btnGetTf.FindChild("Btn_off").gameObject.SetActive(data.NowShard < data._needShard); level.text = ""; gradeLabel.text = _LowDataMgr.instance.GetStringCommon(1155); //없으면 미보유 EventDelegate.Set(btnGetTf.GetComponent <UIEventTrigger>().onClick, delegate() { OnClickPartnerGet(data._partnerDataIndex); }); //소환 } //슬롯 클릭시 실행할 함수 셋팅 EventDelegate.Set(slotTf.GetComponent <UIEventTrigger>().onClick, delegate() { OnClickListSlot(data._partnerDataIndex); }); ++gridSlotCount; } ListGridTf.GetComponent <UIGrid>().repositionNow = true; return(gridSlotCount); }
public void OnPartnerFusion(uint lowDataId) { List <NetData._PartnerData> dataList = GetSortPartnerList(); NetData._PartnerData partnerData = null; int count = dataList.Count; for (int i = 0; i < count; i++) { if (dataList[i]._partnerDataIndex != lowDataId) { continue; } CurPnDataArray = i; MovePartnerView(); partnerData = dataList[i]; break; } IsDuringEffect = true; ChangeInfoView(InfoViewType.SpawnInfo); Transform tf = InfoViewObj[(int)InfoViewType.SpawnInfo].transform.FindChild("root"); GameObject go = UIHelper.CreatePartnerUIModel(tf, partnerData._partnerDataIndex, 1, true, false, "PartnerPanel"); UIModel model = go.GetComponent <UIModel>(); GameObject effGo = model.PlayIntro(SpawnEffectRoot, ParticleScale); if (effGo != null) { SpawnEffectRoot.localRotation = Quaternion.Euler(Vector3.zero); } else { effGo = Instantiate(SpawnEffectPrefab) as GameObject; SpawnEffectRoot.localRotation = Quaternion.Euler(new Vector3(20, 0, 0)); } float delay = model.UnitAnim.GetAnimLength(eAnimName.Anim_intro) + 0.1f; TempCoroutine.instance.FrameDelay(delay, () => { if (!IsDuringEffect) { return; } //Cam3D.rect = new Rect(Cam3DViewport, Cam3D.rect.y, Cam3D.rect.width, Cam3D.rect.height); SpawnEffectRoot.parent = transform; DestroyImmediate(effGo); IsDuringEffect = false; ///보유하고 있는 뷰로 이동시킨다. ChangeInfoView(InfoViewType.OwnInfo); OwnPartnerView.SetPartnerInfo(partnerData); }); string msg = string.Format(_LowDataMgr.instance.GetStringCommon(833), partnerData.GetLocName()); UIMgr.AddLogChat(msg); }