Implemented runCommand method in VMGCommand and TackGybeCommand classes. Both classes currently rely on the MockRace class so changes will be required when MockRace is refactored.

#story[1097]
This commit is contained in:
zwu18
2017-08-03 00:22:46 +12:00
parent 7fc1347377
commit ad61dc6bce
6 changed files with 39 additions and 11 deletions
@@ -1,7 +1,9 @@
package mock.model.commandFactory;
import mock.model.MockBoat;
import mock.model.MockRace;
public interface CommandFactory {
void runCommand(MockBoat boat);
void runCommand(MockBoat boat, MockRace race);
}
@@ -1,15 +1,21 @@
package mock.model.commandFactory;
import mock.model.MockBoat;
import mock.model.MockRace;
import mock.model.VMG;
/**
* Created by David on 2/08/2017.
*/
public class TackGybeCommand implements CommandFactory {
//The refactoring of MockRace will require changes to be made
@Override
public void runCommand(MockBoat boat) {
public void runCommand(MockBoat boat, MockRace race) {
VMG newVMG = race.calculateVMG(boat);
VMG boatVMG = new VMG(boat.getCurrentSpeed(), boat.getBearing());
if(race.improvesVelocity(boatVMG, newVMG, boat.calculateBearingToNextMarker())){
boat.setVMG(newVMG);
}
}
}
@@ -0,0 +1,19 @@
package mock.model.commandFactory;
import mock.model.MockBoat;
import mock.model.MockRace;
import mock.model.VMG;
import shared.model.Bearing;
/**
* Created by David on 2/08/2017.
*/
public class VMGCommand implements CommandFactory {
//The refactoring of MockRace will require changes to be made
@Override
public void runCommand(MockBoat boat, MockRace race) {
VMG newVMG = race.calculateVMG(boat);
boat.setVMG(newVMG);
}
}