private void AddNewInventoryLayer(TutorialContextChangedEvent tutorialContextChangedEvent) { try { if (tutorialContextChangedEvent.NewContext == TutorialContexts.InventoryScreen) { if (ScreenManager.TopScreen is InventoryGauntletScreen) { _inventoryScreen = ScreenManager.TopScreen as InventoryGauntletScreen; Inventory = _inventoryScreen.GetField("_dataSource") as SPInventoryVM; _mainLayer = new MainLayer(1000, "GauntletLayer"); _inventoryScreen.AddLayer(_mainLayer); _mainLayer.InputRestrictions.SetInputRestrictions(true, InputUsageMask.All); _filterLayer = new FilterLayer(1001, "GauntletLayer"); _inventoryScreen.AddLayer(_filterLayer); _filterLayer.InputRestrictions.SetInputRestrictions(true, InputUsageMask.All); } //Temporarily disabled clearing settings file for characters //foreach (CharacterSettings charSettings in SettingsLoader.Instance.CharacterSettings.ToList()) //{ // bool flag = false; // foreach (TroopRosterElement element in EquipBestItemViewModel._inventory.TroopRoster) // { // if (charSettings.Name == element.Character.Name.ToString()) // { // flag = true; // break; // } // } // if (!flag) // { // SettingsLoader.Instance.CharacterSettings.Remove(charSettings); // } //} } else if (tutorialContextChangedEvent.NewContext == TutorialContexts.None) { if (_inventoryScreen != null && _mainLayer != null) { _inventoryScreen.RemoveLayer(this._mainLayer); _mainLayer = null; SettingsLoader.Instance.SaveSettings(); SettingsLoader.Instance.SaveCharacterSettings(); } if (_inventoryScreen != null && _filterLayer != null) { _inventoryScreen.RemoveLayer(_filterLayer); _filterLayer = null; } } } catch (MBException e) { InformationManager.DisplayMessage(new InformationMessage(e.Message)); } }
private static void AfterTransfer(SPInventoryVM __instance, InventoryLogic inventoryLogic, List <TransferCommandResult> results) { if (!CommonSetting.Instance.LockNoMiss) { return; } Func <EquipmentElement, ItemRosterElement, bool> func = delegate(EquipmentElement x, ItemRosterElement itemRosterElement) { if (x.Item.StringId == itemRosterElement.EquipmentElement.Item.StringId) { ItemModifier itemModifier = x.ItemModifier; string a = (itemModifier != null) ? itemModifier.StringId : null; ItemModifier itemModifier2 = itemRosterElement.EquipmentElement.ItemModifier; return(a == ((itemModifier2 != null) ? itemModifier2.StringId : null)); } return(false); }; List <EquipmentElement> list = Campaign.Current.GetCampaignBehavior <IInventoryLockTracker>().GetLocks().ToList(); foreach (SPItemVM spitemVM in __instance.RightItemListVM) { if (list.Exists(a => func(a, spitemVM.ItemRosterElement))) { spitemVM.IsLocked = true; } } }
private static bool ExecuteSellAllItems(SPInventoryVM __instance, ref InventoryLogic ____inventoryLogic, ref CharacterObject ____currentCharacter) { var golds = 0; var leftGold = __instance.LeftInventoryOwnerGold; __instance.IsRefreshed = false; for (int i = __instance.RightItemListVM.Count - 1; i >= 0; i--) { SPItemVM spitemVM = __instance.RightItemListVM[i]; if (spitemVM != null && !spitemVM.IsFiltered && !spitemVM.IsLocked) { golds += spitemVM.ItemCost * spitemVM.ItemRosterElement.Amount; if (__instance.IsTrading && golds > leftGold) { break; } TransferCommand command = TransferCommand.Transfer(spitemVM.ItemRosterElement.Amount, InventoryLogic.InventorySide.PlayerInventory, InventoryLogic.InventorySide.OtherInventory, spitemVM.ItemRosterElement, EquipmentIndex.None, EquipmentIndex.None, ____currentCharacter, !__instance.IsInWarSet); ____inventoryLogic.AddTransferCommand(command); } } Traverse.Create(__instance).Method("RefreshInformationValues").GetValue(); Traverse.Create(__instance).Method("ExecuteRemoveZeroCounts").GetValue(); __instance.IsRefreshed = true; return(false); }
protected override void OnFinalize() { base.OnFinalize(); this._gauntletMovie = (GauntletMovie)null; this._dataSource.OnFinalize(); this._dataSource = (SPInventoryVM)null; this._gauntletLayer = (GauntletLayer)null; }
static void Postfix(SPInventoryVM __instance) { if (Globals.firstLoad) { return; } foreach (SPItemVM item in (__instance as SPInventoryVM).RightItemListVM) { item.IsLocked = Globals.lockedItems.Contains(item.StringId); } }
public void OnInventoryScreenFrame(SPInventoryVM dataSource) { if (!_gameLoaded) { return; } var hasPerk = Hero.MainHero.GetPerkValue(DefaultPerks.Trade.WholeSeller); if (hasPerk) { AddMarginsToItems(dataSource.RightItemListVM); AddMarginsToItems(dataSource.LeftItemListVM); } }
static void Postfix(SPInventoryVM __instance) { foreach (SPItemVM item in (__instance as SPInventoryVM).RightItemListVM) { if (item.IsLocked || (Globals.lockedItems.Contains(item.StringId))) { Globals.lockedItems.Add(item.StringId); } else { Globals.lockedItems.Remove(item.StringId); } } Globals.firstLoad = false; }
protected override void OnInitialize() { UIResourceManager.SpriteData.SpriteCategories["ui_inventory"].Load((ITwoDimensionResourceContext)UIResourceManager.ResourceContext, UIResourceManager.UIResourceDepot); InventoryLogic inventoryLogic = this._inventoryState.InventoryLogic; Mission current = Mission.Current; int num = current != null ? (current.DoesMissionRequireCivilianEquipment ? 1 : 0) : 0; Func <WeaponComponentData, ItemObject.ItemUsageSetFlags> getItemUsageSetFlags = new Func <WeaponComponentData, ItemObject.ItemUsageSetFlags>(this.GetItemUsageSetFlag); string stackShortcutkeyText = this.GetFiveStackShortcutkeyText(); this._dataSource = new SPInventoryVM(inventoryLogic, num != 0, getItemUsageSetFlags, stackShortcutkeyText); GauntletLayer gauntletLayer = new GauntletLayer(15, "GauntletLayer"); gauntletLayer.IsFocusLayer = true; this._gauntletLayer = gauntletLayer; this._gauntletLayer.InputRestrictions.SetInputRestrictions(true, InputUsageMask.All); this.AddLayer((ScreenLayer)this._gauntletLayer); ScreenManager.TrySetFocus((ScreenLayer)this._gauntletLayer); this._gauntletLayer.Input.RegisterHotKeyCategory(HotKeyManager.GetCategory("InventoryHotKeyCategory")); this._gauntletMovie = this._gauntletLayer.LoadMovie("Inventory", (ViewModel)this._dataSource); this._openedFromMission = this._inventoryState.Predecessor is MissionState; InformationManager.ClearAllMessages(); }
private static bool SaveItemLockStates(SPInventoryVM __instance) { if (!CommonSetting.Instance.LockNoMiss) { return(true); } Func <EquipmentElement, ItemRosterElement, bool> func = delegate(EquipmentElement x, ItemRosterElement itemRosterElement) { if (x.Item.StringId == itemRosterElement.EquipmentElement.Item.StringId) { ItemModifier itemModifier = x.ItemModifier; string a = (itemModifier != null) ? itemModifier.StringId : null; ItemModifier itemModifier2 = itemRosterElement.EquipmentElement.ItemModifier; return(a == ((itemModifier2 != null) ? itemModifier2.StringId : null)); } return(false); }; List <EquipmentElement> list = Campaign.Current.GetCampaignBehavior <IInventoryLockTracker>().GetLocks().ToList(); foreach (SPItemVM spitemVM in __instance.RightItemListVM) { if (spitemVM.IsLocked && !list.Exists(a => func(a, spitemVM.ItemRosterElement))) { list.Add(spitemVM.ItemRosterElement.EquipmentElement); } if (!spitemVM.IsLocked && list.Exists(a => func(a, spitemVM.ItemRosterElement))) { list.RemoveAll(a => func(a, spitemVM.ItemRosterElement)); } } Campaign.Current.GetCampaignBehavior <IInventoryLockTracker>().SetLocks(list); return(false); }
/// <summary> /// Refresh the equipment upgrader with new inventory and inventory logic /// </summary> public void RefreshValues() { _inventoryLogic = InventoryManager.InventoryLogic; _inventory = InventoryBehavior.Inventory; }
private static void ProcessItemTooltipPostfix(SPInventoryVM __instance, ref ItemVM item) { AddTargetItemProperties(__instance.ItemMenu, new TextObject("{=pangliangtest}111:", null).ToString(), "v1", Color.FromUint(4285250886U)); __instance.ItemMenu.IsInitializationOver = true; }
public static SPItemVM GetSelectedItem(this SPInventoryVM inventoryVM) { FieldInfo field = inventoryVM.GetType().GetField("_selectedItem", BindingFlags); return((SPItemVM)field.GetValue(inventoryVM)); }