private void BindDefend() { _actions.Player.Defend.performed += ctx => { var command = new PlayerCommand(_player, _ball, _playerController.GetRigidbody(), _playerController.GetTransform()); if (_player.InBlockPosition) { var handler = new BlockCommandHandler(); handler.HandleImmediate(command); } else { var handler = new DefendCommandHandler(); handler.HandleImmediate(command); } }; }
public BlockCommand(List <CommandParameter> parameters) { parameters = new List <CommandParameter>(parameters); PreParseCommands(parameters); Trace("Command Handler Post Parsed Command Parameters: "); parameters.ForEach(param => Trace("" + param.GetType())); foreach (BlockCommandHandler handler in GetHandlers()) { if (handler.canHandle(parameters)) { commandHandler = handler; commandHandler.b = blockHandler; commandHandler.e = entityProvider; return; } } parameters.ForEach(param => Debug("" + param.GetType())); throw new Exception("Unsupported Command Parameter Combination"); }
public BlockCommand(BlockHandler blockHandler, EntityProvider entityProvider, BlockCommandHandler commandHandler) { this.blockHandler = blockHandler; this.entityProvider = entityProvider; this.commandHandler = commandHandler; }