Exemple #1
0
        private void UpdateSlotView(AvatarState avatarState)
        {
            var game        = Game.Game.instance;
            var playerModel = game.Stage.GetPlayer().Model;

            nicknameText.text = string.Format(
                NicknameTextFormat,
                avatarState.level,
                avatarState.NameWithHash);

            var title = avatarState.inventory.Costumes.FirstOrDefault(costume =>
                                                                      costume.ItemSubType == ItemSubType.Title &&
                                                                      costume.equipped);

            titleText.text = title is null
                ? ""
                : title.GetLocalizedName();

            cpText.text = CPHelper
                          .GetCPV2(avatarState, game.TableSheets.CharacterSheet, game.TableSheets.CostumeStatSheet)
                          .ToString();

            costumeSlots.SetPlayerCostumes(playerModel, ShowTooltip, null);
            equipmentSlots.SetPlayerEquipments(playerModel, ShowTooltip, null);
        }
Exemple #2
0
        private void UpdateSlotView(AvatarState avatarState)
        {
            var game = Game.Game.instance;
            // var playerModel = game.Stage.GetPlayer().Model;
            var playerModel = _player.Model;

            nicknameText.text = string.Format(
                NicknameTextFormat,
                avatarState.level,
                avatarState.NameWithHash);

            var title = avatarState.inventory.Costumes.FirstOrDefault(costume =>
                                                                      costume.ItemSubType == ItemSubType.Title &&
                                                                      costume.equipped);

            titleText.text = title is null
                ? ""
                : title.GetLocalizedName();

            costumeSlots.SetPlayerCostumes(playerModel, ShowTooltip, Unequip);
            equipmentSlots.SetPlayerEquipments(playerModel, ShowTooltip, Unequip);

            var currentAvatarState = game.States.CurrentAvatarState;

            if (avatarState.Equals(currentAvatarState))
            {
                // 인벤토리 아이템의 장착 여부를 `equipmentSlots`의 상태를 바탕으로 설정하기 때문에 `equipmentSlots.SetPlayer()`를 호출한 이후에 인벤토리 아이템의 장착 상태를 재설정한다.
                // 또한 인벤토리는 기본적으로 `OnEnable()` 단계에서 `OnResetItems` 이벤트를 일으키기 때문에 `equipmentSlots.SetPlayer()`와 호출 순서 커플링이 생기게 된다.
                // 따라서 강제로 상태를 설정한다.
                inventory.gameObject.SetActive(true);
                SubscribeInventoryResetItems(inventory);

                var currentPlayer = game.Stage.selectedPlayer;
                cpText.text = CPHelper.GetCP(currentPlayer.Model, game.TableSheets.CostumeStatSheet)
                              .ToString();
            }
            else
            {
                inventory.gameObject.SetActive(false);
                cpText.text = CPHelper.GetCPV2(avatarState, game.TableSheets.CharacterSheet, game.TableSheets.CostumeStatSheet)
                              .ToString();
            }

            UpdateUIPlayer();
        }