Commit graph

475 commits

Author SHA1 Message Date
FateJH 35ed000ccc code documentation and tests 2018-04-19 08:03:06 -04:00
FateJH 29cf59775a working medical terminal and stubs for other proximity-based terminal operations 2018-04-19 08:01:13 -04:00
Fate-JH d8fe6bab28
Merge pull request #196 from Fate-JH/spawn-tube
The Real Resurrection Update
2018-04-19 07:45:47 -04:00
FateJH 82c68ebedb Modifying AvatarDeadStateMessage to manipulate visible respawn points on deployment mpa; improving postStop conditions on WSA to consider player in different situations; added basic Zone.Population.(message) case statements 2018-04-09 19:12:23 -04:00
Fate-JH fc3837268c
Merge pull request #194 from Fate-JH/pca
Packet Splitting, Bundling
2018-04-02 09:39:55 -04:00
FateJH f444a35785 Changes to AvatarService packets and support actors in regards to corpse management and tests regarding corpse management. Seriously, those tests. 2018-03-31 20:03:40 -04:00
FateJH 7f40b31a34 Akna Air Tower, Ceryshen, has its amenities wired. The default spawn point has been moved to allow for the tower at Akna to interfere with the tower at Anguta. 2018-03-31 20:02:40 -04:00
FateJH ddc2450541 Buildings now have simple type distinctions to work using the known output of a SpawnRequestMessage packet. Support for cross-continental respawning (actually a failure case for being unable to spawn). Corpse tuning and testing. 2018-03-31 19:59:11 -04:00
FateJH 20b7726653 Stripped down LivePlayerList functionality, moving player lists onto the appropriate corresponding zones. Corpses are now created, stored, and deleted. 2018-03-31 19:55:44 -04:00
FateJH 8a21df429b The former Player class (former-former PlaterAvatar class) has been split into a persisting Avatar class and a transitory Player class. 2018-03-31 19:54:37 -04:00
FateJH 3e9e3df0fa Simple player spawning proof of concept using buildings mapped to their spawn tube amenities in a "spawn group." 2018-03-31 19:53:45 -04:00
FateJH 001f9a40e9 Anguta, Ceryshen, the Anguta Watchower, and Anguta's two bunkers have had their amenities wired together, excluding the door locks being connected to doors. Modified how things like spectator status, fly status and speed persist. 2018-03-31 19:51:01 -04:00
FateJH 19224e471b wrote tests for MultiPacketCollector, MultiPacketBundle, and the new functionality in PCA 2018-03-14 18:53:19 -04:00
FateJH 87d314942a added utility classes and functionality to compose SlottedMetaPacket0/MultiPacketEx combos 2018-03-13 23:00:47 -04:00
FateJH 68e3377d2e RelatedA0 and RelatedB0 have been superceded by RelatedA and RelatedB, respectively, with slots 0-3 for each; SlottedMetaAck has been removed and tests have been changed 2018-03-12 23:16:49 -04:00
FateJH e76b4de2ea repairs to ZFCCM test 2018-03-08 21:27:19 -05:00
FateJH d965b5b3c8 added initial AvatarStatisticsMessage packet and tests; gave an Enumeration type to AvtarImplant action field 2018-03-08 15:48:19 -05:00
FateJH 2475b468b8 added initial AvatarSearchCriteriaMessage packet and tests; worked ASCM into WSA login workflow 2018-03-07 22:58:42 -05:00
FateJH 0578d291a5 add initial SetChatFilterMessage packet and tests; gave FriendsResponse a valid action enumeration; changed continent id and building id in DensityUpdateLevel to use simple data type rather than PlanetSideGUID; worked these packet changes into WSA initialization workflow 2018-03-07 22:32:27 -05:00
FateJH 2526f15406 changing continent id to normal data type in HotSpotUpdate; implementing token logic for HotSpotUpdate in WSA; updating tests 2018-03-06 15:27:17 -05:00
FateJH 4973e8df29 implemented initial HackMessage during WSA login phase on building id 2018-03-05 23:49:34 -05:00
FateJH 33a7636f5e changing continent id and building id to normal data types in BroadcastWarpgateUpdate and BuildingInfoUpdate; implementing warp gates and branched logic for warp gate initialization in WSA; updating tests 2018-03-05 23:26:38 -05:00
FateJH f0bec9cf3a changing continent id to normal data types and away from PlanetSideGUID in ZoneForcedCavernConnections and ContinentalLockUpdate; implementing ForcedZoneCavernConnections and ContinentalLockUpdate in WSA 2018-03-05 20:21:13 -05:00
FateJH b61097a22d changing continent id to normal data types and away from PlanetSideGUID in DensityLevelUpdate, ZoneInfo, and ZoneLockInfo; implementing better init ZoneInfo, ZoneLockInfo, and ZonePopulationUpdate packets in WSA 2018-03-05 20:21:13 -05:00
FateJH 3965437116 added DensityLevelUpdateMessage packet and tests; including default packet during initialization phase 2018-03-05 20:21:13 -05:00
FateJH 77b4890706 begin initialization of buildings and configuration of their amenities; reorganize entries in Maps.scala to better associate buildings and amenities 2018-03-05 20:21:13 -05:00
FateJH eea01c8072 additional matrix terminal tests and error message correction 2018-03-01 11:09:17 -05:00
FateJH 72b7c35b3f tests and corrections 2018-03-01 10:39:34 -05:00
FateJH 74863858f7 adding tests for utilities and fixing tests for AMS; adding information to PAMessage; scaling back modifications to WSA 2018-03-01 10:24:56 -05:00
FateJH e93c510d22 added initial DestroyMessage packet and tests 2018-03-01 10:24:42 -05:00
FateJH 4b2e3763f1 adding the ams utility: matrix terminal c; gave it an binding sound action in WSA 2018-03-01 10:24:14 -05:00
FateJH e1581c94e7 adding the ams utility: ams respawn tube 2018-03-01 10:23:53 -05:00
SouNourS d34817c5a8 10 / 100 * 255 = 0
When a player dont have full life, he is on ground with 0 HP ;)
2018-02-22 16:02:16 +01:00
FateJH 051283337c rebase did not flag these conflicts during operation, so they had to be manually corrected 2018-02-17 17:57:04 -05:00
FateJH 0fe46311ad Deployment:
Class and Actor mixins for Deployment state.  The logic is surprisingly self-contained, mostly.

DriveState:

This is not the former DriveState Enumeration of /packet/game/objectcreate/.  This is now a /types/ Enumeration shared across /common/ objects and serves the functionality of both, at least to the extent that it is understood.  Functions are includes that define the logic order or state changes and divides states into (two) groups.

VehicleService:

The directory /pslogin/src/test has been created and tests have been migrated there.  Originally, the tests were located in the wrong place and were being skipped when not executed manually.  They should now appear in coverage reports and be run as a part of continuous integration.
2018-02-17 17:37:53 -05:00
FateJH 62b2c54b67 added utility filtering so that only valid indexed utilities are assigned GUIDs and are translated into OCM 2018-02-12 09:59:07 -05:00
FateJH 860edf9a97 Utility:
A container class for vehicle-installed Amenity objects that are owned by the vehicle.  It not only constructs the internalized Amenity but harbors logic that is required to setup the object at a more appropriate time (at start of VehicleControl).

OrderTerminalABDefinition:
Terminals built into the sides of the advanced mobile spawn, accessible when it deploys.

OCM packet converters, GUID registrtaion, and setup code allows the code to wire into the vehicle.
2018-02-12 00:22:57 -05:00
FateJH eefe4d2e20 Building:
Replaces class object/serverobject/door/Base.scala.  It performs nearly the exact same purpose but now has a list of owned objects called Amenities.  Buildings are now a PlanetSideServerObject (PSSO), which allows them to have accept a *Control Actor and possess FactionAffinity.

FoundationBuilder:
FoundationBuilder : Building :: ServerObjectBuilder : [T <: PlanetSideServerObject]

Amenity:
Most PSSO's now accept Amenity as their parent in class hierarchy.  Flagged PSSO's like Building and Vehicle are, on the other hand, capable of becoming the owner for these Amenity PSSOs, which allows them to inherit the same FactionAffinity.

FactionAffinity:
A trait that connects objects that are intended to communicate PlanetSideEmpire values.

MountableBhevaior:
Split between Mount and Dismount behavior.  Passes appropriate messages to ensure coherent workflows.

Control Actors:
FactionAffinityBehavior and MountableBehavior are PartialFunctions that get processed in series.

VehicleControl:
Distinguished behavior allowed between an operational vehicle and a deactivated one.

WSA:
Tightened up DismountVehicleMsg handling code, since MountableBehavior has been enhanced.

Minor:
Shotgun shell stacking goes from 32 to 16.  Various PSSO classes now have reliable Definition objects.

Tests:
We now have 1012 tests, some of them useful.
2018-02-08 14:22:05 -05:00
FateJH f4b913a5d9 Vector3 normal vector functions; locked door opening from inside mechanics; correction to item/equipment identification in WSA; quick solution to stop door from closing on player who opened it if that player is still standing within sqrt(15)m from it 2018-01-24 20:44:30 -05:00
FateJH f5182030da added support for Lockers and access to Locker contents; modified RequestDelete to handle Locker, as well as previously neglected vehicle trunk contents; added Lockers to Hart C shuttle observation room 2018-01-22 20:45:05 -05:00
FateJH c2bcb63725 corrections for the shared magazine fire modes of the Aurora; conditions for character rendering when in a vehicle; WeaponJammedMessage -> WeaponDryFireMessage 2018-01-20 15:11:11 -05:00
FateJH 4059d50e72 shotgun pellet fire modes; fire mode for melee weapons; cleanup code for phoenix (decimator) and handling last phoneix rocket fire; temporary cleanup of grenades 2018-01-17 07:51:42 -05:00
FateJH 1f04c840d2 synchronized change fire mode; addsupport for fire mode in DetailedWeaponData; corrected bug with LastDrawnSlot/ObjectHeldMessage 2018-01-15 08:15:18 -05:00
FateJH 9e51e33246 synchronizing change ammo 2018-01-15 08:14:17 -05:00
FateJH 26d388d7ff initial VehicleSUbStateMessage packet and test; borrowing angle codec from VehicleStateMessage 2018-01-03 15:31:11 -05:00
FateJH 335b40cdfc correction for LoadoutTest 2017-12-30 21:44:10 -05:00
FateJH 524d6678e6 added Infiltration Suit and Mechanized Exo-Suit to the spawnable exo-suit options for all factions; also works correctly with InfantryLoadouts; better support to dropped items; fixed an issue with Terminal.BuyVehicle from the last merge 2017-12-30 20:51:01 -05:00
Fate-JH abbd5c35ed
Merge pull request #180 from Fate-JH/all-zones
All Zones
2017-12-28 19:04:52 -05:00
FateJH 17a8b8bf38 Zones:
Added continent stubs to InterstellarCluster init list.  All Maps and Zones are defined in temporary objects that may be subdivided further as they grow.

Builder:

Replaced trait ServerObjectBuilder[A] with class ServerObjectBuilder[A] that allows for much greater power.  In ZoneMap.Init override, LocalObject invocations that were previously 'LocalBuilder(FooObjectBuilder(ObjectDefintion, Int))` have been transformed into `LocalObject(ServerObjectBuilder(Int, (Int=>Foo))` where `Foo` is the type of object to be created by the curried function `(Int)=>Foo`.  The examples with Terminals and the VehicleSpawnPad should demonstrate what kind of power this syntax possesses in isolating constant (or at least initial) configuration settings.  At least five files, and some files not yet written, have been rendered obsolete and have been eliminated from the sim pertaining to these created objects.
2017-12-25 17:01:53 -05:00
FateJH 8fbbd31967 modified how subscriptions can subscribe and unsubscribe from specific channels (works now); vehicles now come with default loadouts at time of spawn; MoveItem is now a much more generic process that handles all Container objects; alternate fire modes now have correct ammunition values, but still do not change ammunition type properly; terminals are now distinctively split a bit more; LootItemMessage packet 2017-12-23 01:29:48 -05:00