Allow number to be used in all commands

This commit is contained in:
Marc Di Luzio 2020-07-26 17:19:04 +01:00
parent bcf71f0bf9
commit 1514603517
3 changed files with 40 additions and 57 deletions

View file

@ -717,50 +717,31 @@ func (w *World) Tick() {
func (w *World) ExecuteCommand(c *roveapi.Command, rover string) (done bool, err error) {
log.Printf("Executing command: %+v for %s\n", c.Command, rover)
// Decrement the number of the command
c.Number--
switch c.Command {
case roveapi.CommandType_toggle:
if _, err := w.RoverToggle(rover); err != nil {
return true, err
}
_, err = w.RoverToggle(rover)
case roveapi.CommandType_stash:
if _, err := w.RoverStash(rover); err != nil {
return true, err
}
_, err = w.RoverStash(rover)
case roveapi.CommandType_repair:
if _, err := w.RoverRepair(rover); err != nil {
return true, err
}
_, err = w.RoverRepair(rover)
case roveapi.CommandType_broadcast:
if err := w.RoverBroadcast(rover, c.GetData()); err != nil {
return true, err
}
err = w.RoverBroadcast(rover, c.GetData())
case roveapi.CommandType_turn:
if _, err := w.RoverTurn(rover, c.GetBearing()); err != nil {
return true, err
}
_, err = w.RoverTurn(rover, c.GetBearing())
case roveapi.CommandType_salvage:
if _, err := w.RoverSalvage(rover); err != nil {
return true, err
}
_, err = w.RoverSalvage(rover)
case roveapi.CommandType_transfer:
if _, err := w.RoverTransfer(rover); err != nil {
return true, err
}
_, err = w.RoverTransfer(rover)
case roveapi.CommandType_wait:
c.Number--
return c.Number == 0, nil
// Nothing to do
default:
return true, fmt.Errorf("unknown command: %s", c.Command)
}
return
return c.Number <= 0, err
}
// Daytime returns if it's currently daytime