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);
        }
Exemple #4
0
 protected override void OnFinalize()
 {
     base.OnFinalize();
     this._gauntletMovie = (GauntletMovie)null;
     this._dataSource.OnFinalize();
     this._dataSource    = (SPInventoryVM)null;
     this._gauntletLayer = (GauntletLayer)null;
 }
Exemple #5
0
        static void Postfix(SPInventoryVM __instance)
        {
            if (Globals.firstLoad)
            {
                return;
            }

            foreach (SPItemVM item in (__instance as SPInventoryVM).RightItemListVM)
            {
                item.IsLocked = Globals.lockedItems.Contains(item.StringId);
            }
        }
Exemple #6
0
        public void OnInventoryScreenFrame(SPInventoryVM dataSource)
        {
            if (!_gameLoaded)
            {
                return;
            }

            var hasPerk = Hero.MainHero.GetPerkValue(DefaultPerks.Trade.WholeSeller);

            if (hasPerk)
            {
                AddMarginsToItems(dataSource.RightItemListVM);
                AddMarginsToItems(dataSource.LeftItemListVM);
            }
        }
Exemple #7
0
        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;
        }
Exemple #8
0
        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;
 }
Exemple #12
0
        public static SPItemVM GetSelectedItem(this SPInventoryVM inventoryVM)
        {
            FieldInfo field = inventoryVM.GetType().GetField("_selectedItem", BindingFlags);

            return((SPItemVM)field.GetValue(inventoryVM));
        }