Esempio n. 1
0
    public IEnemyCommand CreateCommand()
    {
        WeaponCommand instance = CommandsCollection.GetCommandByEnum(_shootType);

        instance.SetParametrs(_weaponCommandData);
        return(instance);
    }
        public void ReportError_GivenInsufficientGil()
        {
            var(commandData, gilBank, eqAccessor, itemAccessor, chat) = SetUpTest(0, "cloud", "1");
            var weaponCommand = new WeaponCommand(eqAccessor.Object, itemAccessor.Object, _materiaAccess.Object,
                                                  new GameDatabase(_loader.Object), gilBank, chat.Object, new EquipmentData <Weapon>(),
                                                  new PaymentProcessor(gilBank, chat.Object));

            weaponCommand.Execute(commandData);

            chat.Verify(x => x.SendMessage(commandData.Channel, It.IsAny <string>(), false), Times.Once);
            eqAccessor.Verify(x => x.SetCharacterEquipment(It.IsAny <CharNames>(), It.IsAny <byte>(), m => m.Weapon.Address), Times.Never);
        }
        public void ChangeCharacterWeapon_GivenValidCallAndEnoughGil()
        {
            var(characterName, weaponNumber) = (CharNames.Cloud.DefaultName, 1);
            var(commandData, gilBank, eqAccessor, itemAccessor, chat) = SetUpTest(1000, characterName, weaponNumber.ToString());
            var weaponCommand = new WeaponCommand(eqAccessor.Object, itemAccessor.Object, _materiaAccess.Object,
                                                  new GameDatabase(_loader.Object), gilBank, chat.Object, new EquipmentData <Weapon>(),
                                                  new PaymentProcessor(gilBank, chat.Object));

            weaponCommand.Execute(commandData);

            eqAccessor.Verify(x => x.SetCharacterEquipment(CharNames.Cloud, It.IsAny <byte>(), m => m.Weapon.Address), Times.Once);
        }
 protected WeaponCommandStrategy(WeaponCommand command)
 {
     Command = command;
 }
    public void Use(WeaponCommand command)
    {
        var strategy = CommandStrategies.FirstOrDefault(c => c.Command == command);

        strategy?.Execute();
    }