Пример #1
0
        public MainViewModel(IMonsterManualViewModel monsterManualViewModel, IEquipmentViewModel equipmentViewModel)
        {
            _monsterManualViewModel = monsterManualViewModel;
            _equipmentViewModel     = equipmentViewModel;

            CurrentViewModel = (ObservableObject)_equipmentViewModel;
        }
        private void InitializeEquipmentAndConsumableViewModels()
        {
            this.ModificationContext = new ModificationContext();
            this.LoadedEquipments    = new ObservableCollection <IEquipmentViewModel>();
            this.LoadedConsumables   = new ObservableCollection <IConsumableViewModel>();

            this.AvailableEquipments  = this.Tank.AvailableEquipments.ToDictionary(p => p.Value, p => (IEquipmentViewModel) new EquipmentViewModel(this.CommandBindings, p.Value, this));
            this.AvailableConsumables = this.Tank.AvailableConsumables.ToDictionary(p => p.Value, p => (IConsumableViewModel) new ConsumableViewModel(this.CommandBindings, p.Value, this));

            _removeEquipmentViewModel  = new RemoveEquipmentViewModel(this.CommandBindings, this);
            _removeConsumableViewModel = new RemoveConsumableViewModel(this.CommandBindings, this);
            _emptyEquipmentViewModel   = new EmptyEquipmentViewModel(this.CommandBindings, this);
            _emptyConsumableViewModel  = new EmptyConsumableViewModel(this.CommandBindings, this);

            for (int i = 0; i < MaxEquipmentCount; ++i)
            {
                this.LoadedEquipments.Add(_emptyEquipmentViewModel);
            }

            for (int i = 0; i < MaxConsumableCount; ++i)
            {
                this.LoadedConsumables.Add(_emptyConsumableViewModel);
            }

            this.HandleEquipmentsChangeEvents();
            this.HandleConsumablesChangeEvents();
        }
 internal void EquipEquipment(IEquipmentViewModel equipment)
 {
     if (this.CurrentEquipmentSlotIndex.HasValue)
     {
         this.EquipEquipment(this.CurrentEquipmentSlotIndex.Value, equipment);
         this.CurrentEquipmentSlotIndex = null;
     }
 }
        internal void RemoveEquipment(IEquipmentViewModel equipment)
        {
            if (equipment == _emptyEquipmentViewModel)
            {
                return;
            }

            var index = this.LoadedEquipments.IndexOf(equipment);

            if (index >= 0)
            {
                this.RemoveEquipment(index);
            }
        }
        internal void EquipEquipment(int index, IEquipmentViewModel equipment)
        {
            this.LoadedEquipments[index] = equipment;

            this.NotifyWeightChanged();
        }