Ejemplo n.º 1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="colorSettings">
        /// The color settings data.
        /// </param>
        /// <param name="requirements">
        /// The requirement dictionary.
        /// </param>
        /// <param name="undoRedoManager">
        /// The undo/redo manager.
        /// </param>
        /// <param name="undoableFactory">
        /// A factory for creating undoable actions.
        /// </param>
        /// <param name="alternativeFactory">
        /// An Autofac factory for creating alternative requirements.
        /// </param>
        /// <param name="alwaysDisplayFactory">
        /// An Autofac factory for creating always display dungeon items requirements.
        /// </param>
        /// <param name="dungeon">
        /// The dungeon whose small keys are to be represented.
        /// </param>
        public SmallKeySmallItemVM(
            IColorSettings colorSettings, IRequirementDictionary requirements,
            IUndoRedoManager undoRedoManager, IUndoableFactory undoableFactory,
            AlternativeRequirement.Factory alternativeFactory,
            AlwaysDisplayDungeonItemsRequirement.Factory alwaysDisplayFactory, IDungeon dungeon)
        {
            _colorSettings   = colorSettings;
            _undoRedoManager = undoRedoManager;
            _undoableFactory = undoableFactory;

            _item = dungeon.SmallKeyItem;

            _spacerRequirement = alternativeFactory(new List <IRequirement>
            {
                alwaysDisplayFactory(true),
                requirements[RequirementType.SmallKeyShuffleOn]
            });

            _requirement = dungeon.ID == LocationID.EasternPalace ?
                           requirements[RequirementType.KeyDropShuffleOn] :
                           requirements[RequirementType.NoRequirement];

            HandleClick = ReactiveCommand.Create <PointerReleasedEventArgs>(HandleClickImpl);

            _colorSettings.PropertyChanged     += OnColorsChanged;
            _item.PropertyChanged              += OnItemChanged;
            _requirement.PropertyChanged       += OnRequirementChanged;
            _spacerRequirement.PropertyChanged += OnRequirementChanged;
        }
Ejemplo n.º 2
0
        public SmallItemVMFactory(
            ILocationDictionary locations, IRequirementDictionary requirements,
            AggregateRequirement.Factory aggregateFactory,
            AlternativeRequirement.Factory alternativeFactory,
            AlwaysDisplayDungeonItemsRequirement.Factory alwaysDisplayFactory,
            DisplayMapsCompassesRequirement.Factory displayMapsCompassesFactory,
            ItemsPanelOrientationRequirement.Factory itemsPanelOrientationFactory,
            SmallKeySmallItemVM.Factory smallKeyFactory,
            SpacerSmallItemVM.Factory spacerFactory,
            SmallItemVM.Factory smallItemFactory, BigKeySmallItemVM.Factory bigKeyFactory,
            DungeonItemSmallItemVM.Factory dungeonItemFactory,
            PrizeSmallItemVM.Factory prizeFactory, BossSmallItemVM.Factory bossFactory)
        {
            _locations    = locations;
            _requirements = requirements;

            _aggregateFactory             = aggregateFactory;
            _alternativeFactory           = alternativeFactory;
            _alwaysDisplayFactory         = alwaysDisplayFactory;
            _displayMapsCompassesFactory  = displayMapsCompassesFactory;
            _itemsPanelOrientationFactory = itemsPanelOrientationFactory;

            _smallKeyFactory    = smallKeyFactory;
            _spacerFactory      = spacerFactory;
            _smallItemFactory   = smallItemFactory;
            _bigKeyFactory      = bigKeyFactory;
            _dungeonItemFactory = dungeonItemFactory;
            _prizeFactory       = prizeFactory;
            _bossFactory        = bossFactory;
        }