This release is slated to be the last one to support Artemis 2.1.1 and provides many improvements. Significant effort was also put into improving unit test coverage. Covered instructions has increased to 26.9%. Props go to the following individuals for creating issues, submitting pull requests, and general awesomeness: @briandurney, @IvanSanchez, @karafelix, @mrfishie and @prophile. (Hopefully I haven't missed anyone.)
Added support for the following new packet types: EngAutoDamconUpdatePacket (#50), FireBeamPacket (#51), GameMasterSelectPacket (#52), Perspective Packet(#49)
Removed GameStartPacket, which is no longer emitted (#33)
Moved impulse property from ArtemisPlayer to BaseArtemisShip, which allows ArtemisNpc to inherit it (#54)
Exposed properties on various classes: ArtemisNpc.fleetNumber (#54), ClimbDivePacket.up, EngGridUpdatePacket.GridDamage.coord, EngGridUpdatePacket.GridDamage.damage, EngSetCoolantPacket.coolant, EngSetCoolantPacket.system, HelmJumpPacket.distance, HelmJumpPacket.heading, HelmSetImpulsePacket.power, HelmSetSteeringPacket.steering, Vessel.dronePorts, Vessel.baseTorpedoPorts, Vessel.internalData, Vessel.productionCoeff
Vessel.hasTorpedoes() changed to canLaunchOrdnance() to make clear that this says that the vessel is capable of launching torpedoes, not whether it happens to have any at the moment
Calling Vessel.canLaunchOrdnance() on a base that can launch torpedoes will return true
Fixed ClassCastExceptions when calling Vessel.getAttributes(), Vessel.getBeamPorts() and Vessel.getTorpedoTubes() (pull request #45)
Fixed incorrect packet subtype for PerspectivePacket
Fixed a bug that prevented SkyboxPacket from being parsed
Fixed a problem preventing GameMasterMessagePacket from parsing correctly (#47)
FIxed a packet header parsing issue that occasionally caused PacketReader to erroneously conclude that the stream had been closed
EngGridUpdatePacket.DamconStatus, EngGridUpdatePacket.GridDamage and EngSendDamconPacket now use the existing GridCoord class for consistency
Created Artemis.MAP_SIZE constant
Fields on EngGridUpdatePacket.DamconStatus and EngGridUpdatePacket.GridDamage made private to ensure immutability
BitFields can now be constructed specifying only the number of bits it needs to contain
Exposed message in WelcomePacket
Removed TxtUtil.hexToInt(), which was never used
Improved documentation for many classes
Packet unit tests now check for unused bytes at the end of the packet, and emit additional info when run in debug mode
TestPacketFile can now write test packets in addition to reading them
Unit tests now exercise ArtemisPacket.toString()
Added unit tests for ClimbDivePacket, EngAutoDamconUpdatePacket, EngGridUpdatePacket, EngSetCoolantPacket, HelmJumpPacket, HelmRequestDockPacket,
HelmSetClimbDivePacket, HelmSetImpulsePacket, HelmSetSteeringPacket
This release is slated to be the last one to support Artemis 2.1.1 and provides many improvements. Significant effort was also put into improving unit test coverage. Covered instructions has increased to 26.9%. Props go to the following individuals for creating issues, submitting pull requests, and general awesomeness: @briandurney, @IvanSanchez, @karafelix, @mrfishie and @prophile. (Hopefully I haven't missed anyone.)
EngAutoDamconUpdatePacket
(#50),FireBeamPacket
(#51),GameMasterSelectPacket
(#52),Perspective Packet
(#49)GameStartPacket
, which is no longer emitted (#33)impulse
property fromArtemisPlayer
toBaseArtemisShip
, which allowsArtemisNpc
to inherit it (#54)ArtemisNpc.fleetNumber
(#54),ClimbDivePacket.up
,EngGridUpdatePacket.GridDamage.coord
,EngGridUpdatePacket.GridDamage.damage
,EngSetCoolantPacket.coolant
,EngSetCoolantPacket.system
,HelmJumpPacket.distance
,HelmJumpPacket.heading
,HelmSetImpulsePacket.power
,HelmSetSteeringPacket.steering
,Vessel.dronePorts
,Vessel.baseTorpedoPorts
,Vessel.internalData
,Vessel.productionCoeff
Vessel.hasTorpedoes()
changed tocanLaunchOrdnance()
to make clear that this says that the vessel is capable of launching torpedoes, not whether it happens to have any at the momentVessel.canLaunchOrdnance()
on a base that can launch torpedoes will returntrue
ClassCastException
s when callingVessel.getAttributes()
,Vessel.getBeamPorts()
andVessel.getTorpedoTubes()
(pull request #45)PerspectivePacket
SkyboxPacket
from being parsedGameMasterMessagePacket
from parsing correctly (#47)PacketReader
to erroneously conclude that the stream had been closedEngGridUpdatePacket.DamconStatus
,EngGridUpdatePacket.GridDamage
andEngSendDamconPacket
now use the existingGridCoord
class for consistencyArtemis.MAP_SIZE
constantEngGridUpdatePacket.DamconStatus
andEngGridUpdatePacket.GridDamage
made private to ensure immutabilityBitField
s can now be constructed specifying only the number of bits it needs to containWelcomePacket
TxtUtil.hexToInt()
, which was never usedTestPacketFile
can now write test packets in addition to reading themArtemisPacket.toString()
ClimbDivePacket
,EngAutoDamconUpdatePacket
,EngGridUpdatePacket
,EngSetCoolantPacket
,HelmJumpPacket
,HelmRequestDockPacket
,HelmSetClimbDivePacket
,HelmSetImpulsePacket
,HelmSetSteeringPacket
VersionPacketTest