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(); }