public void OnCharacterClicked(CharacterDisplayItem cha) { selectedCharacter = cha; if (chaDetail != null && !teamController.isChangingMember) { chaDetail.Init(cha); } else if (teamController.isChangingMember) { if (CheckIsSameCharacterInTeam(cha.saved.baseClass.CatalogCode)) { Debug.LogError("same character is in team already"); PF_Bridge.RaiseCallbackError("same character is in the team already", PlayFabAPIMethods.Generic, MessageDisplayStyle.context); teamController.Refresh(); return; } if (string.IsNullOrEmpty(selectedMember.myId.text)) { PF_PlayerData.MyTeamsCharacterId["CurrentTeam"].Add(cha.saved.characterDetails.CharacterId); } else { int index = PF_PlayerData.MyTeamsCharacterId["CurrentTeam"].FindIndex(x => x.Contains(selectedMember.myId.text)); PF_PlayerData.MyTeamsCharacterId["CurrentTeam"][index] = cha.saved.characterDetails.CharacterId; } UpdateTeam(); teamController.Refresh(); } }
public void Init(CharacterDisplayItem selected) { selectedSlot = selected; SetUpCharacterStats(); characterImage.sprite = GameController.Instance.iconManager.GetIconById(selected.saved.baseClass.Icon + "_Card"); this.gameObject.SetActive(true); }
public void OnChangeTeamMember(CharacterMemberSlot selectedSlot) { if (!teamController.isChangingMember) { selectedMember = selectedSlot; teamController.isChangingMember = true; teamController.leaveTeamBtn.interactable = true; // find character itself and interact btn foreach (var id in PF_PlayerData.MyTeamsCharacterId["CurrentTeam"]) { CharacterDisplayItem slot = activedSlots.Find(x => x.saved.characterDetails.CharacterId.Contains(id)); if (slot != null) { slot.myBtn.interactable = false; } } // change slot state foreach (var go in activedSlots) { if (go.saved != null) { go.OnMemberChanging(); } } } else if (teamController.isChangingMember) { if (string.IsNullOrEmpty(selectedSlot.myId.text)) { teamController.Refresh(); return; } //to do : Swap order int index1 = PF_PlayerData.MyTeamsCharacterId["CurrentTeam"].FindIndex(x => x.Contains(selectedMember.myId.text)); int index2 = PF_PlayerData.MyTeamsCharacterId["CurrentTeam"].FindIndex(x => x.Contains(selectedSlot.myId.text)); string temp = PF_PlayerData.MyTeamsCharacterId["CurrentTeam"][index1]; PF_PlayerData.MyTeamsCharacterId["CurrentTeam"][index1] = selectedSlot.myId.text; PF_PlayerData.MyTeamsCharacterId["CurrentTeam"][index2] = temp; UpdateTeam(); teamController.Refresh(); } }
public void Refresh() { foreach (var go in itemSlots) { go.gameObject.SetActive(false); } selectedCha = chaController.selectedCharacter; selectedItem = null; SetUpChaEquipment(activedType); int count = 0; foreach (var kvp in PF_PlayerData.inventoryByCategory) { foreach (var id in kvp.Value.inventory) { bool addItem = false; if (string.Equals(kvp.Value.catalogRef.ItemClass, activedType.ToString()) && !PF_PlayerData.characterEquipedItem.Contains(id.ItemInstanceId)) { addItem = true; } else { continue; } if (addItem == true) { itemSlots[count].gameObject.SetActive(true); itemSlots[count].Init(this); itemSlots[count].SetUpButton(kvp.Value, id.ItemInstanceId); count++; } } } }