private void SetupCommands(IMainPlayer mainPlayer, ICommandsRunner commandsRunner, IScreenDrawer screenDrawer) { commandsRunner.AddCommand("помощ", new HelpCommand(commandsRunner, screenDrawer)); commandsRunner.AddCommand("махни предмет", new DropItemCommand(mainPlayer, screenDrawer)); commandsRunner.AddCommand("отиди до", new GoThroughCommand(mainPlayer, screenDrawer)); commandsRunner.AddCommand("вземи предмет", new PickItemCommand(mainPlayer, screenDrawer)); commandsRunner.AddCommand("покажи всички", new ShowItemsOnGroundCommand(mainPlayer, screenDrawer)); commandsRunner.AddCommand("къде съм", new WhereAmICommand(mainPlayer, screenDrawer)); commandsRunner.AddCommand("къде мога да отида", new WhereCanIGoCommand(mainPlayer, screenDrawer)); }
public PickItemCommand(IMainPlayer player, IScreenDrawer screenDrawer) { this.player = player ?? throw new ArgumentNullException(nameof(player)); this.screenDrawer = screenDrawer ?? throw new ArgumentNullException(nameof(screenDrawer)); }
public GoThroughCommand(IMainPlayer player, IScreenDrawer drawer) { this.player = player ?? throw new ArgumentNullException(nameof(player)); this.drawer = drawer ?? throw new ArgumentNullException(nameof(drawer)); }
public Engine(ICommandsRunner commandsRunner, IInputReader inputReader, IScreenDrawer screenDrawer, IMainPlayer player, IRoom lastRoom) { this.commandsRunner = commandsRunner ?? throw new ArgumentNullException(nameof(commandsRunner)); this.inputReader = inputReader ?? throw new ArgumentNullException(nameof(inputReader)); this.screenDrawer = screenDrawer ?? throw new ArgumentNullException(nameof(screenDrawer)); if (player == null) { throw new ArgumentNullException(nameof(player)); } if (lastRoom == null) { throw new ArgumentNullException(nameof(lastRoom)); } player.OnRoomEnter += (sender, args) => { player.Health -= 10; screenDrawer.ShowMessage($"Ти отиде до стая. Това ти костваше 10 живот. Имаш {player.Health} живот"); if (args.Room.Number == lastRoom.Number) { this.screenDrawer.ShowMessage("Край на играта."); Thread.Sleep(5000); Environment.Exit(0); } }; this.SetupCommands(player, commandsRunner, screenDrawer); }
public DropItemCommand(IMainPlayer mainPlayer, IScreenDrawer drawer) { this.mainPlayer = mainPlayer ?? throw new ArgumentNullException(nameof(mainPlayer)); this.drawer = drawer ?? throw new ArgumentNullException(nameof(drawer)); }