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]main
parent
7fc1347377
commit
ad61dc6bce
@ -1,7 +1,9 @@
|
|||||||
package mock.model.commandFactory;
|
package mock.model.commandFactory;
|
||||||
|
|
||||||
import mock.model.MockBoat;
|
import mock.model.MockBoat;
|
||||||
|
import mock.model.MockRace;
|
||||||
|
|
||||||
public interface CommandFactory {
|
public interface CommandFactory {
|
||||||
void runCommand(MockBoat boat);
|
|
||||||
|
void runCommand(MockBoat boat, MockRace race);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,15 +1,21 @@
|
|||||||
package mock.model.commandFactory;
|
package mock.model.commandFactory;
|
||||||
|
|
||||||
import mock.model.MockBoat;
|
import mock.model.MockBoat;
|
||||||
|
import mock.model.MockRace;
|
||||||
|
import mock.model.VMG;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by David on 2/08/2017.
|
* Created by David on 2/08/2017.
|
||||||
*/
|
*/
|
||||||
public class TackGybeCommand implements CommandFactory {
|
public class TackGybeCommand implements CommandFactory {
|
||||||
|
|
||||||
|
//The refactoring of MockRace will require changes to be made
|
||||||
@Override
|
@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);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in new issue