private void Unequip(EquipmentSlot slot, bool considerInventoryOnly) { if (Game.Game.instance.Stage.IsInStage) { return; } Find <ItemInformationTooltip>().Close(); if (slot.IsEmpty) { foreach (var item in inventory.SharedModel.Equipments) { item.GlowEnabled.Value = item.ItemBase.Value.ItemSubType == slot.ItemSubType; } return; } var currentAvatarState = Game.Game.instance.States.CurrentAvatarState; var characterSheet = Game.Game.instance.TableSheets.CharacterSheet; var costumeStatSheet = Game.Game.instance.TableSheets.CostumeStatSheet; var prevCp = CPHelper.GetCPV2(currentAvatarState, characterSheet, costumeStatSheet); var slotItem = slot.Item; slot.Clear(); LocalStateItemEquipModify(slotItem, false); var currentCp = CPHelper.GetCPV2(currentAvatarState, characterSheet, costumeStatSheet); cpTextValueTweener.Play(prevCp, currentCp); var player = considerInventoryOnly ? null : Game.Game.instance.Stage.GetPlayer(); switch (slotItem) { default: return; case Costume costume: { if (!inventory.SharedModel.TryGetCostume(costume, out var inventoryItem)) { return; } inventoryItem.EquippedEnabled.Value = false; if (considerInventoryOnly) { break; } UpdateStatViews(); var armor = (Armor)_armorSlot.Item; var weapon = (Weapon)_weaponSlot.Item; player.UnequipCostume(costume, true); player.EquipEquipmentsAndUpdateCustomize(armor, weapon); Game.Event.OnUpdatePlayerEquip.OnNext(player); if (costume.ItemSubType == ItemSubType.Title) { titleText.text = ""; } break; } case Equipment equipment: { if (!inventory.SharedModel.TryGetEquipment(equipment, out var inventoryItem)) { return; } inventoryItem.EquippedEnabled.Value = false; if (considerInventoryOnly) { break; } UpdateStatViews(); switch (slot.ItemSubType) { case ItemSubType.Armor: { var armor = (Armor)_armorSlot.Item; var weapon = (Weapon)_weaponSlot.Item; player.EquipEquipmentsAndUpdateCustomize(armor, weapon); break; } case ItemSubType.Weapon: player.EquipWeapon((Weapon)_weaponSlot.Item); break; } Game.Event.OnUpdatePlayerEquip.OnNext(player); break; } } PostEquipOrUnequip(slot); }