Commit graph

71 commits

Author SHA1 Message Date
FateJH fbb3946857 resolution of issue with registering a specific number as a GUID 2018-08-12 20:03:38 -04:00
Fate-JH 8b5073dcbc
accounted for collapsing cert trees, exclusive certifications, and a method of keeping track of certification costs (#227) 2018-07-30 10:20:23 -04:00
Fate-JH 7901f66324
Damages (#225)
* refactored WSA code handling HitMessage, handling SplashMessage, and handling LashMessage; modified projectiles for future functionality

* players can die from being shot now; the damage model is simplistic since main goal was to write around the potential for negative damage ('healed from getting shot'); HitHint works correctly; dedicated AvatarService channel for each avatar helps reduce message spam

* vehicle destruction, and replacement with lightweight wreckage objects upon continent join; made flushing vehicle terminal more accessible

* simple work on vehicle shield charging (amp station benefit) (that's my commit story and I'm sticking with it)

* a flexible calculation workflow that can be applied, grabbing damage information, resistance information, and then combining it with a resolution function; players and vehicles have resistance values; removed redundant damage calculations from WSA

* broke up DamageCalculations, ResistanceCalculations, and ResolutionCalculations into packages under vital; fixed an error with exo-suit calculation resistances; events for dealing with synchronized player and vehicle damage calculations and building the papertrail of those damages; updating codecov.yml file for ignore classes

* added tests for various components (damage model, destroyed vehicle converter, vitality, etc..) and some functionality improvements

* added a field to keep track of how projectiles will be attributed at the time of target death
2018-07-30 09:28:45 -04:00
Mazo fc78d53ecb Fix NTU warning flag having the wrong data type (#224)
Fix LowNtuWarning having the wrong data type
2018-07-18 08:41:28 -04:00
Fate-JH b81ff2bbf4
Facility Turrets (#223)
* object class, actor class, and definitions for base turrets; untested

* wired base turrets into existence, with hoop jumping; created interface for objects with mounted weapons (vehicles and turrets); working example phalanx_sgl_hevgatcan in Anguta, Ceryshen

* re-wiring manned turrets so that the turreted weapon itself never changes externally but merely identifies different and changes internally; workflow for upgrading wall turrets in place (30s); clarifications and documentation for HackMessage and UseItemMessage; getting rid of orphaned packages from previous location of services

* added a simple task that reverts upgraded manned turrets to their None state after a certain amount of time has passed; it works but need improvement

* turret weapon upgrades now last for a duration of 30 minutes before reverting; created a service support actor base actor that underlies all current support actors; nano-dispenser now properly loads 1 unit of upgrade canister, rather than 100 units; all canister types have appropriate 2x3 inventory size

* forgot to hurry; moved over the Services tests from main/test folder into the common/test folder and needed to change the location of ActorTest to accommodate it; test and documentation for MannedTurret; codecov ignore update

* wired facility turrets in Anguta, Ceryshen; Akna tower, Ceryshen; and S.Villa tower, home3 (Anguta tower is a watchtower); attempted workaround for Travis CI issues with receiveN; re-introduced RemoveActorTest, at least the first test; expanded how ZoneActor performs tests on MannedTurret setup

* getting rid of useless commented-out code; making common operations for mounting and dismounting

* removed outdated comment; added ResourceSilo tests; added extra test for Zone
2018-07-14 21:25:44 -04:00
FateJH 41f0cdc0a0 repairing tests 2018-06-16 20:09:25 -04:00
FateJH 20a4fdfe45 documentation for projectiles; moved LocalProjectile construction intoMaps.scala; extensive test corrections 2018-06-16 17:31:49 -04:00
FateJH 000652c969 documentation and tests; added projectile names; changed logging level for ActorTests to OFF to remove the majority of log clutter; issue with number pool hub re-assignment and the existence of fixed objects (LocalProjectile) that requires unrelated tests be modified 2018-06-16 17:31:49 -04:00
FateJH 1bceb35226 importing the basics of the projectile/damage system from the Sounours Play-Live branch (51200); only modified how damage numbers and modifiers are interacted with and how a projectile's characteristics is accessed from the Tool that emits it; GlobalDefinitions could be imported over almost entirely, fortunately 2018-06-16 17:29:03 -04:00
Fate-JH 3eb49e6b55
Merge pull request #220 from Fate-JH/inventory-items
Minor Inventory Modifications
2018-06-11 19:28:09 -04:00
FateJH 44741b2898 modification to GridInventory to avoid unnecessary leaking of internal support value and unnecessary complication of item access 2018-06-10 00:23:59 -04:00
FateJH ffd8c02de9 some code clean-up; tests for VehicleControl mount behavior override 2018-06-09 01:09:34 -04:00
FateJH a20e75d07c added an enumeration for character voices, which prompoted a massive file update; separated BasicCharacterData from CharacterAppearanceData; added some yet unimplemented support to WSA and VehicleData; completely commented out RemoveActorTests for later repairs so they do not break in Travis CI 2018-06-08 21:07:47 -04:00
FateJH c664f96bd4 a little bit of vehicles everything; work on the endocder/decoder for vehicles and seated players and bitstream size; vehicle ownership is extremely passable right now; seat restrictionsfor getting into vehicles is now in place; tests repaired; adjustment to vehicle spawn pad (again) to hopefully increase tolerance and recovery 2018-06-06 19:13:39 -04:00
FateJH 9e75fd1191 even more generosity with the tests 2018-05-28 09:04:09 -04:00
FateJH d26e8834c6 hopefully more generous timing for the tests 2018-05-28 08:24:57 -04:00
FateJH c7641fc117 modified zone ground actor operation to include no-callback item removal message; adjusted tests for Zone and wrote tests for RemoverActor 2018-05-27 02:24:20 -04:00
FateJH f6f7ad5617 unified code paths for dropping an item, and reinforced code path for picking an item back up; LocalService will handle some of the work now; ActionResultMessage embraces its simplistic nature (we don't have enough error messages) 2018-05-22 19:13:59 -04:00
FateJH cd91080c9a Worked ams spawning rules into normal SpawnRequestMessage workflow using the (reliable) spawn group number of 2 2018-05-21 10:58:18 -04:00
FateJH 848929fd01 test fix 2018-05-21 10:48:32 -04:00
FateJH a3f50cc8a4 fixing Infiltration Suit issues as well as streamlining the process of exo-suit switching 2018-05-21 10:16:20 -04:00
FateJH cf3bf19d4d tests for prior MAX changes; correcting a 13mm problem with the Lightning's chaingun ammunition type 2018-05-21 10:16:20 -04:00
FateJH e9aac5514a more tests for the proximity amenities; added the other silo in Anguta, Ceryshen and the terminal-facing silo in home3; initial work on FacilityBenefitShieldCharge packet and tests 2018-05-16 19:24:50 -04:00
FateJH a513f4996e working vehicle loadouts from repair/rearm silos; code documentation and expanded tests 2018-05-16 00:27:25 -04:00
FateJH 2a4fe4865e partially-working vehicle favorites system; modifications to existing favorites system, identification of packet parameters 2018-05-15 08:05:33 -04:00
FateJH 9d7d1b0456 split previous Loadout into separate InfantryLoadout and VehicleLoadout classes; moved new Loadout code into its own package and corrected import statements; corrected Terminal code and tests 2018-05-13 23:06:01 -04:00
FateJH 1d956c834c improved object name exposure for log messages; removed 'init with GUID' constructors that were no longer necessary 2018-05-10 23:03:34 -04:00
FateJH 526ab7d5ec Removed duplicate code by moving the logic of Container around; removed duplicate code by producing a functional inventory search algorithm that handles both ammunition and weapon magazine options; corrected tests 2018-05-09 16:26:33 -04:00
FateJH 68422401e5 Another revamp to vehicle spawn process. Wrote tests. 2018-04-29 00:16:55 -04:00
FateJH 5d5c609a2f Reorganized vehicle spawning process and wrote tests for process. 2018-04-29 00:13:15 -04:00
FateJH fde49773cd Splitting single vehicle spawn control process into several subtasks. Vehicle event bus attached to zone objects, especially for interacting with VehicleSpawnControl. Importing SouNourS copy of ServerVehicleOverrideMessage packet and tests. 2018-04-29 00:13:15 -04:00
FateJH a31207322b accomodations for tests; adjusting conditions for proximity terminal operations; adding the medical terminals in Anguta 2018-04-19 19:51:04 -04:00
FateJH 35ed000ccc code documentation and tests 2018-04-19 08:03:06 -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 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 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 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 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 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 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 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