Example #1
0
    public void OnSlotSelected(CharacterSlot _slot)
    {
        if (resetMode)
        {
            bool cancel = false;
            if (PlayerData.Instance.characters[resetJoinCharacter - 1] == _slot.cha)
            {
                cancel = true;
            }

            Character exchange      = null;
            int       exchangeIndex = 0;
            for (int i = 0; i < 5; ++i)
            {
                if (i == resetJoinCharacter - 1)
                {
                    continue;
                }
                Character cha = PlayerData.Instance.characters[i];
                if (cha == _slot.cha)
                {
                    exchange      = cha;
                    exchangeIndex = i;
                }
            }

            resetMode           = false;
            topBackground.color = Color.white;
            botBackground.color = Color.white;
            for (int i = 0; i < 5; ++i)
            {
                joinChaBtn[i].interactable = true;
            }

            if (cancel)
            {
                return;
            }

            if (exchange != null)
            {
                Character ori = PlayerData.Instance.characters[resetJoinCharacter - 1];
                PlayerData.Instance.characters[exchangeIndex] = ori;
                joinChaBtn[exchangeIndex].image.sprite        = ori.portrait;
            }
            PlayerData.Instance.characters[resetJoinCharacter - 1] = _slot.cha;
            PlayerData.Instance.SaveData();
            joinChaBtn[resetJoinCharacter - 1].image.sprite = _slot.cha.portrait;
        }
        else
        {
            int lv = PlayerData.Instance.chaLevel[_slot.cha.id - 1];
            purchase.ActiveTrue();
            purchase.slot = _slot;
            purchase.SetContents(_slot.cha.CalculateLevel(lv));
            purchase.Open();
        }
    }