Ejemplo n.º 1
0
 public SettingGeneralPaneVM()
 {
     Name      = "General";
     _options  = new MBBindingList <GenericOptionDataVM>();
     _settings = PartyScreenConfig.ExtraSettings;
     AddSettingVms();
 }
        public PlotsVM(Action closeScreenAction)
        {
            _closeScreenAction = closeScreenAction;

            ActivePlots = new MBBindingList <PlotItemVM>();
            foreach (var gamePlot in GameManager.Instance.PlotManager.GamePlots)
            {
                foreach (var plot in gamePlot)
                {
                    ActivePlots.Add(new PlotItemVM(plot.Title, plot.Description, SetSelectedPlot));
                }
            }

            AvailablePlots = new MBBindingList <PlotItemVM>();
            foreach (var trigger in GameManager.Instance.Triggers.Where(trigger => trigger.CanPlayerStart()))
            {
                AvailablePlots.Add(new PlotItemVM(trigger.Title, trigger.Description, SetSelectedPlot));
            }

            SetSelectedPlot(ActivePlots.FirstOrDefault());

            IsThereAnyPlot = ActivePlots.Any();

            RefreshValues();
        }
Ejemplo n.º 3
0
        public CustomSortVM(PartyManagerSettings settings)
        {
            _settings = settings;

            _options   = new MBBindingList <IPMOptions>();
            _name      = "Custom Sort";
            _titleText = "Custom Sort Options";
            var sortOptions = PartyManagerSettings.GetSelectableSortOrderStrings();

            _options.Add(new PMStringOptionDataType <CustomSortOrder>(_settings.CustomSortOrderField1, "Custom Sort Field 1",
                                                                      "The first sort option to be applied in your custom sort", sortOptions,
                                                                      b => { _settings.CustomSortOrderField1 = b; }, CampaignOptionItemVM.OptionTypes.Selection));
            _options.Add(new PMStringOptionDataType <CustomSortOrder>(_settings.CustomSortOrderField2, "Custom Sort Field 2",
                                                                      "The second sort option to be applied in your custom sort", sortOptions,
                                                                      b => { _settings.CustomSortOrderField2 = b; }, CampaignOptionItemVM.OptionTypes.Selection));
            _options.Add(new PMStringOptionDataType <CustomSortOrder>(_settings.CustomSortOrderField3, "Custom Sort Field 3",
                                                                      "The third sort option to be applied in your custom sort", sortOptions,
                                                                      b => { _settings.CustomSortOrderField3 = b; }, CampaignOptionItemVM.OptionTypes.Selection));
            _options.Add(new PMStringOptionDataType <CustomSortOrder>(_settings.CustomSortOrderField4, "Custom Sort Field 4",
                                                                      "The fourth sort option to be applied in your custom sort", sortOptions,
                                                                      b => { _settings.CustomSortOrderField4 = b; }, CampaignOptionItemVM.OptionTypes.Selection));
            _options.Add(new PMStringOptionDataType <CustomSortOrder>(_settings.CustomSortOrderField5, "Custom Sort Field 5",
                                                                      "The fifth sort option to be applied in your custom sort", sortOptions,
                                                                      b => { _settings.CustomSortOrderField5 = b; }, CampaignOptionItemVM.OptionTypes.Selection));

            this.RefreshValues();
        }
        // weaponDesignVM._pieceLists[pieceType] would be cleaner but it's private
        private CraftPartVM GetCraftPartVM(WeaponDesignVM weaponDesignVM, CraftingPiece.PieceTypes pieceType, string pieceId)
        {
            MBBindingList <CraftPartVM> partList = null;

            switch (pieceType)
            {
            case CraftingPiece.PieceTypes.Blade:
                partList = weaponDesignVM.BladePartList;
                break;

            case CraftingPiece.PieceTypes.Guard:
                partList = weaponDesignVM.GuardPartList;
                break;

            case CraftingPiece.PieceTypes.Handle:
                partList = weaponDesignVM.HandlePartList;
                break;

            case CraftingPiece.PieceTypes.Pommel:
                partList = weaponDesignVM.PommelPartList;
                break;

            case CraftingPiece.PieceTypes.Invalid:
            case CraftingPiece.PieceTypes.NumberOfPieceTypes:
                break;
            }
            return(partList.First(p => p.CraftingPiece.CraftingPiece.StringId == pieceId));
        }
Ejemplo n.º 5
0
 public CultureItemVM(CultureObject value, ref MBBindingList <CultureItemVM> cultureItemList, ref CultureChangerProperties cultureChangerProperties)
 {
     this._item        = value;
     this._is_selected = false;
     this._cultureChangerProperties = cultureChangerProperties;
     this._cultureItemList          = cultureItemList;
 }
Ejemplo n.º 6
0
        public void Search()
        {
            if (_searchText == _prevSearchText)
            {
                return;
            }

            // Clear Page Model
            _pagemodel = new MBBindingList <PrefabVM>();
            List <PrefabVM> result = new List <PrefabVM>();



            foreach (var category in _xmlParse.Entities)
            {
                foreach (var sub_category in category.Value)
                {
                    result.AddRange(sub_category.Value.Select(name => name).Where(name => name.ModelID.Contains(_searchText)));
                }
            }


            _enumerator = result.GetEnumerator();

            _prevSearchText = _searchText;
            var entities = Enumerate(_amount);

            if (entities.Count < 1)
            {
                return;
            }

            GameEntityList = entities;
        }
 public HeroAdminDevelopSkillPerkVM(HeroAdminCharacter heroAdminCharacter, Action <int> onResetLevelAction)
 {
     this._onResetLevelAction = onResetLevelAction;
     this._heroAdminCharacter = heroAdminCharacter;
     this._skills             = new MBBindingList <HeroAdminSkillVM>();
     RefreshHeroSkill();
 }
Ejemplo n.º 8
0
        public static void SortUnits(TroopRoster input, SortType sortType, MBBindingList <PartyCharacterVM> partyVmUnits = null, bool useStickySlots = false)
        {
            if (input == null || input.Count == 0)
            {
                return;
            }

            int sticky = 0;

            if (useStickySlots)
            {
                sticky = PartyManagerSettings.Settings.StickySlots;
            }

            var stickyUnits = input.Where(x => !x.Character.IsHero).Select(x => x.Character.Name.ToString()).Take(sticky).ToList();

            var inputList = input.ToList();

            var flattenedOrder = CreateFlattenedRoster(input, sortType, partyVmUnits);

            flattenedOrder = flattenedOrder.Where(x => !stickyUnits.Contains(x.Troop.Name.ToString())).ToList();

            for (int i = 0; i < inputList.Count; i++)
            {
                if (!inputList[i].Character.IsHero && !stickyUnits.Contains(inputList[i].Character.Name.ToString()))
                {
                    input.RemoveTroop(inputList[i].Character, inputList[i].Number);
                }
            }

            input.Add(flattenedOrder);
        }
Ejemplo n.º 9
0
 public override void OnFinalize()
 {
     base.OnFinalize();
     _partyVm       = null;
     _parent        = null;
     _mainPartyList = null;
 }
 public SortAllTroopsVM(PartyVM partyVm, PartyScreenLogic logic)
 {
     _partyVM            = partyVm;
     _partyLogic         = logic;
     _mainPartyList      = _partyVM.MainPartyTroops;
     _mainPartyPrisoners = _partyVM.MainPartyPrisoners;
     _sortHint           = new HintViewModel(new TextObject("Sort Troops\nCtrl Click to sort just main party"));
 }
Ejemplo n.º 11
0
        public PMGenericOptionVM(string name, string titleText, MBBindingList <IPMOptions> options)
        {
            _options   = options;
            _name      = name;
            _titleText = titleText;

            this.RefreshValues();
        }
        MBBindingList <HeroAdminAttributeItemVM> _attributes; //成长属性

        public HeroAdminDevelopAttributeVM(HeroAdminCharacter hero)
        {
            this.hero        = hero;
            this.Level       = hero.Level;
            this._attributes = new MBBindingList <HeroAdminAttributeItemVM>();

            RefreshAttribute();
        }
Ejemplo n.º 13
0
 public TransferWoundedTroopsVM(PartyEnhancementsVM parent, PartyVM partyVm, bool shouldShow)
 {
     _parent                    = parent;
     _partyVm                   = partyVm;
     _mainPartyList             = partyVm?.MainPartyTroops;
     _shouldShowTransferWounded = shouldShow;
     _woundedHint               = new HintViewModel(new TextObject("Transfer All Wounded"));
 }
Ejemplo n.º 14
0
 public SpousesStatisticsVM()
 {
     this._statisticsViews = new MBBindingList <SpouseStatisticsItemVM>();
     GenerateStatsData();
     InitRoleTypeData();
     InitSortTypeData();
     InitOrderTypeData();
 }
        public new void OnFinalize()
        {
            base.OnFinalize();
            SaveSettingList();

            _possibleSettingList = null;
            _settingList         = null;
        }
 public RecruitPrisonerVM(PartyEnhancementsVM parent, PartyVM partyVm, PartyScreenLogic logic)
 {
     _parent             = parent;
     _partyVM            = partyVm;
     _partyLogic         = logic;
     _mainPartyPrisoners = _partyVM.MainPartyPrisoners;
     _recruitHint        = new HintViewModel(new TextObject("Recruit All Prisoners.\nClick with CTRL pressed to ignore party size limits"));
 }
Ejemplo n.º 17
0
 public ClanFinanceWorkshopItemExpandedVM(Workshop workshop,
                                          Action <ClanFinanceIncomeItemBaseVM> onSelection,
                                          Action onRefresh) : base(workshop, onSelection, onRefresh)
 {
     _ownWorkshopCopy = workshop;
     _productions     = new MBBindingList <ClanFinanceWorkshopProductionsVM>();
     RefreshValues();
 }
 public override void OnFinalize()
 {
     base.OnFinalize();
     _mainPartyPrisoners = null;
     _mainPartyList      = null;
     _partyLogic         = null;
     _partyVM            = null;
 }
Ejemplo n.º 19
0
        public SettingSortingOrderScreenVM(SettingScreenVM parent, PartySort sorter)
        {
            _settingScreen = parent;
            _sorter        = sorter;
            _sortingOrder  = new MBBindingList <SettingSortingOrderVM>();
            Name           = sorter.GetName();

            InitializeList();
        }
Ejemplo n.º 20
0
        private static void Prefix(ItemMenuVM __instance, MBBindingList <ItemFlagVM> list, ref WeaponComponentData weapon)
        {
            var character = (BasicCharacterObject)ItemMenuVmCharacterField.GetValue(__instance);

            if (weapon.WeaponClass == WeaponClass.Crossbow) // Make sure we're always using the correct value, in case this overwrites some shared WeaponComponentData
            {
                weapon.WeaponFlags = HeroHasPerk(character, _crossbowExpert) ? weapon.WeaponFlags & ~WeaponFlags.CantReloadOnHorseback : weapon.WeaponFlags;
            }
        }
        private static void Prefix(ItemMenuVM __instance, MBBindingList <ItemFlagVM> list, ref WeaponComponentData weapon)
        {
            var character = (BasicCharacterObject)typeof(ItemMenuVM).GetField("_character", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(__instance);

            if (weapon.WeaponClass == WeaponClass.Crossbow) // Make sure we're always using the correct value, in case this overwrites some shared WeaponComponentData
            {
                weapon.WeaponFlags = HeroHasPerk(character, CrossbowCavalry) ? weapon.WeaponFlags & ~WeaponFlags.CantReloadOnHorseback : weapon.WeaponFlags;
            }
        }
 public GrantFiefSortControllerVM(ref MBBindingList <GrantFiefItemVM> listToControl)
 {
     _listToControl      = listToControl;
     _typeComparer       = new GrantFiefSortControllerVM.ItemTypeComparer();
     _prosperityComparer = new GrantFiefSortControllerVM.ItemProsperityComparer();
     _defendersComparer  = new GrantFiefSortControllerVM.ItemDefendersComparer();
     _relationComparer   = new GrantFiefSortControllerVM.ItemRelationComparer();
     _nameComparer       = new GrantFiefSortControllerVM.ItemNameComparer();
 }
Ejemplo n.º 23
0
 public RecruitAllPrisonersWidget(UIContext context) : base(context)
 {
     if (ScreenManager.TopScreen is GauntletPartyScreen)
     {
         this._partyVM       = (PartyVM)((GauntletPartyScreen)ScreenManager.TopScreen).GetField("_dataSource");
         this._partyLogic    = (PartyScreenLogic)this._partyVM.GetField("_partyScreenLogic");
         this._mainPartyList = this._partyVM.MainPartyTroops;
     }
 }
        private static void Prefix(ItemMenuVM __instance, MBBindingList <ItemFlagVM> list, ref WeaponComponentData weapon)
        {
            var character = (BasicCharacterObject)ItemMenuVmCharacterField.GetValue(__instance);

            if (weapon.ItemUsage == "long_bow") // Make sure we're always using the correct value, in case this overwrites some shared WeaponComponentData
            {
                WeaponComponentDataItemUsageMethod
                .Invoke(weapon, new[] { HeroHasPerk(character, _bowExpert) ? "bow" : weapon.ItemUsage });
            }
        }
Ejemplo n.º 25
0
        public new void OnFinalize()
        {
            base.OnFinalize();
            SaveList();
            PartyScreenConfig.Save();

            _sortingOrder  = null;
            _settingScreen = null;
            _sorter        = null;
        }
        public HeroAdminRecordItemVM(HeroAdminCharacter heroAdminCharacter, Action <HeroAdminRecordItemVM> selectAction)
        {
            _heroAdminCharacter    = heroAdminCharacter;
            this._onRecordSelected = selectAction;
            CharacterCode characterCode = CreateFrom(heroAdminCharacter);

            this.Visual  = new ImageIdentifierVM(characterCode);
            this._skills = new MBBindingList <EncyclopediaSkillVM>();
            RefreshHeroSkill();
        }
Ejemplo n.º 27
0
 public HeroAdminSkillVM(SkillObject skillObject, HeroAdminCharacter hero, Action <HeroAdminSkillVM> onSkillSelection)
 {
     this._perks       = new MBBindingList <HeroAdminPerkVM>();
     this._skillObject = skillObject;
     this.SkillId      = skillObject.StringId;
     this.NameText     = skillObject.Name.ToString();
     this.MaxLevel     = 300;
     FillHeroData(hero);
     this.onSkillSelection = onSkillSelection;
 }
        public void RandomizeMap()
        {
            MBBindingList <MapItemVM> mapSearchResults = MapSearchResults;

            // ISSUE: explicit non-virtual call
            if (mapSearchResults != null && mapSearchResults.Count > 0)
            {
                MapSearchResults[MBRandom.RandomInt(MapSearchResults.Count)].ExecuteSelection();
            }
        }
 public CanvassKingdomClanSortControllerVM(ref MBBindingList <KingdomClanItemVM> listToControl) : base(ref listToControl)
 {
     this._listToControl     = listToControl;
     this._bannerComparer    = new ItemBannerComparer();
     this._influenceComparer = new CanvassKingdomClanSortControllerVM.ItemInfluenceComparer();
     this._membersComparer   = new CanvassKingdomClanSortControllerVM.ItemMembersComparer();
     this._nameComparer      = new CanvassKingdomClanSortControllerVM.ItemNameComparer();
     this._fiefsComparer     = new CanvassKingdomClanSortControllerVM.ItemFiefsComparer();
     this._typeComparer      = new CanvassKingdomClanSortControllerVM.ItemTypeComparer();
 }
Ejemplo n.º 30
0
 public WangClanMembersVM(Action onRefresh)
 {
     _onRefresh       = onRefresh;
     _faction         = Hero.MainHero.Clan;
     Family           = new MBBindingList <WangLordItemVM>();
     Companions       = new MBBindingList <WangLordItemVM>();
     CanWashPerksHint = new HintViewModel();
     RefreshMembersList();
     RefreshValues();
 }