fish-station/Content.Server
Leon Friedrich 32d99eaba9
Damageable Refactor 3: Revenge of the Instamerge (#4524)
* Add DamageType And DamageGroup Prototypes

* Remove DamageTypePrototype Field "name" as its redundant

* Change I/DamageableComponent to use prototypes

* Update DamageContainer, ReisistanceSet and DamageChangeData

* Change Barotrauma Component to use DamageType from DamageSystem

* Update AsteroidRockComponent

* update some more components

* update some more components

* Fix m o r e c o m p o n e n t s and their damageType

* all thats left is bug/missing node hunting then verification.

* push changes

* update submodule

* Merge fixes

* push DGP for example

* update damagecomponent across shared and server

* fix a few bugs

* Fix Merge issues

* Refactor damageablecomponent update (#4406)

* Fixing merge.

I messed up part of the merge. this should fix it?

* Barotrauma now uses prototypeManager

As System.Runtime.CompilerServices also has a [Dependency], I think I had to use the full path [Robust.Shared.IoC.Dependency]

* FlammableComponent now uses prototypeManager

* SuicideCommands now use prototypeManager

* Changed  many files to use prototypeManager to resolve damaege prototypes

Yeah.... prototype references would be very nice. maybe this was all a waste of time.

* Grouping prototypeManager.Index with datafield definitions

This will make it easier to eventually add prototype references

* removed unused variable

* Moved lines around.

Lines now consistent with other TODO PROTOTYPE blocks

* Grouping more prototypeManager.Index with datafield definitions

* Removed unnecessary code

* Added more prototypeManager indexing

These ones weren't pointed out by DrSmug. But I think this is all of them? That or my regex is shit.

* Remove redundant _damage field

* Remove redundant _currentTemperature

* Moved variables down

* Added prototypeManager indexing to TemperatureComponent

* WeaponComponent/System now use ProtptypeManager

And as far as I can tell damageType is required, and therefore should never have been null anyway?

* Make ranged weapon clumsy fire effects datafields

And yes, the order in which the clumsy effects occur is very important.

* Made damage on vital body part loss a datafield

* Renamed several damageGroup variables to group

* Capitalised DamageListToDamageGroup

* Make radiation and explosion damage types datafields

* Renamed _supportedDamageGroupIDs and _supportedDamageTypeIDs

* Fixed mistakes

Frogot to remove prototypeManager index DamageTypeTrigger, and wrong variable visibility in TemperatureComponent

* Added necessary code

Is something tragically wrong?

* MeleeWeapon damageType is not actually required

* Fixing someone else's mistakes

A search comes up with nothing in the yaml files, and its not a required field. So no one uses it? Hopefully?

* Changed and renamed damageTypeToDamageGroup

Previously would incorrectly return the total container damage for each group, not the total in the group

* renaming varitables

* Renamed variable DamageClasses

* Added dictionary converting functions

* Added ID-keyed dictionaries

* Making MedicalScanner use ID dictionaries, instead of prototype dictionaries

Oh oh no. I've been able to avoid UI & networking up until now. I have no Idea what I am doing.

* Fix Medical Scanner

* Summary (required)

The joke here is that this fixes the empty summary.

* Removed DamageableComponent.GetDamageGroup/Type

* Renamed "damage classes" to groups.

* Update ChangeDamage description

* Replaced Heal() with SettAllDamage()

Heal() was just a confusing name,

* More Class -> Group renaming

* Replace Class with Group in yaml files

DamageClassTrigger does not appear in any yaml? only in testing?
DamageTypeTrigger appears only in human.yaml?
HealthChangeMetabolism is Mostly in medicine.yml and one in soad.yaml

Why the hell is Cola metabolizable by plants? Who is pouring cola on their plants!?!?

* Fix _prototypeManager being null errors.

* Changing comments

Where are the prototype references

* MetabolismComponent doesn't give free heals anymore.

* Changes HungerComponent healing.

Previously I think it would actually damage you.  Only did this as I though it was causing the fast healing. Turns out that was just BREATHING.

* Generalised a function in DamageableComponent and moved it to DamageGroupPrototype

previously DamageTypesDictToDamageGroupDict was private to DamageableComponent, but was also quite general (nearly a static function). As this sort of function may be needed by other components using DamageGroupPrototypes in the future, I moved it there as a static function instead.

* modified DamageableComponent.ChangeDamage()

ignoreResistances was renamed to ignoreDamageResistances to make it clearer that it had no effect on healing.

Now uses default argument for ignoreDamageResistances, so when healing you are not forced to specify an argument that does nothing.

Also made some general changes to ignoreResistances()

* Changed class->group and added missing damage type functionality to DamageContainerPrototypes

* Added Comments to damage.yml

* Misc Changes to DamageableComponent

* Differentiated between group support and group applicability

So far, every damage type is a member of one, and only one, damage group. So this change has no real effect so far.

* Added proposed alternative to ChangeDamage()

* fixed error in DamageGroupPrototype

* Changes to DamageableComponent

Lots of changes to comments.
Some variables renamed in IDamageableComponent and DamageableComponent (also required renaming in other files)

Some minor logic changes, mostly for incorrect descirptions of boolean return values.

Also further differentiating between ApplicableGroups and SupportedGroups... if that will ever even matter

* Generalised MedicalScannerComponent

If needed, can print miscellaneous damage types now

* Fixed HealthChangeMetabolism bug

* Changing Comments around

* More questions

* Made Barotrauma default to blunt

* Fix RejuvenateTest.cs

* Comments

* Coments and variable names

* fix some master-merge issues

* Removed redundant fields

* Misc changes for readbility of PR diff

* Consistent naming

* Fixed atmos damage bug

* Removed Ranting

* Fixed Hunger after I broke it

* Fixing Bugs

* Removed stupid question

* Removed more stupid questions

* Fix potential null errors.

* Made boolean return values consistent

Also renamed several functions, to make it clear they return a bool. Docs were also updated.

* Removed IoCManager.InjectDependencies()

* Removed unnecessary 'suffocation' prefix

* Fixed Spelling

Also removed accidentally left in logger call

* Fixed Medical Scanner

* Apply suggestions from code review

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Changing comments and whitespaces

* Made damage thresholds trigger  datafields required

* So many typos

* Changes to DamageableComponents

Changed documentation in IDamageableComponent

Made testing code more readable.

Relabelled groups as 'Applicable' either 'Fully Supported'

* Removed function and degeneralised

* Update DamageableComponent.cs

Removed unused parameters
Fixed Networking

* Added IoCManager.Resolve

* Now using alternative TryChangeDamage()

* Removed function from DamageGroupPrototype

* Removing comments

* Remove bad if statement?

* Fix damageChanged ordering

* Fix hurt server command

* Changed //TODO PROTOTYPE blocks

Now use PrototypeManager differently. Wherever possible, only retrieve the prototype once.

Also added default damage types to some more datafields

* Update Content.Shared/Damage/Container/DamageContainerPrototype.cs

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* renamed _accumulatedHealth -> _accumulatedDamage and added TODOs

* Another class-> group

* Fix bug in generalisation of damage container prototypes

* Addes Tests to make sure I dont keep adding bugs to my own code.

* Changed Return values when setting

* Removed unused class

* Added more tests, split tests into three files

* Made damage types public and VV read-write-able

* Minor changes to DamageableComponent

Replaced internal use of GetDamagePerType with _damageDict and removed some unnecessary fields

* Fix Suicide, by adding IoC Resolve()

* Fix DamageGroupTrigger bug

* Fix typos in tests

* Change comments./docstrings & spacing

* Merge tests, use test prototypes

Co-authored-by: Leon Friedrich <60421075+leonsfriedrich@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Fix merge issues

Co-authored-by: Silver <Silvertorch5@gmail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+leonsfriedrich@users.noreply.github.com>
2021-08-24 11:06:27 -06:00
..
Access Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Act Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Actions removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Administration Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Advertise Removed old Loc.GetString() use instances (#4155) 2021-06-21 02:13:54 +02:00
Advertisements Remove field: from DataField attributes (#3932) 2021-05-04 15:37:16 +02:00
Afk Add AFK tracking system. 2021-07-22 23:20:57 +02:00
AI Update SS14 for grid contraction (#4452) 2021-08-23 16:00:17 +10:00
Alert Make Saltern driveable (#4257) 2021-07-21 21:15:12 +10:00
AME removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Announcements Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Arcade removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Atmos Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
BarSign refactors barsigncomponent to be ecs (#4332) 2021-07-23 12:42:39 +10:00
Body Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Botany removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Buckle Subscribe TransformComponent events by-ref (#4478) 2021-08-21 11:49:31 +02:00
Cabinet Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Camera Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Cargo removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
CharacterAppearance/Components Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
CharacterInfo Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Chat Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Chemistry Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Cleanable Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Climbing Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Cloning Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Clothing/Components Adds the ability to assign equip sounds in ClothingComponent (#4485) 2021-08-19 21:22:23 -07:00
CombatMode Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Commands Revert "Refactor Damage to use Protoypes (#4262)" 2021-08-24 01:06:32 -06:00
Communications Added classic announcement sound to announcements (#4504) 2021-08-21 05:19:39 +00:00
Computer Pow3r: stage 1 (#4208) 2021-07-04 18:11:52 +02:00
Configurable Removed old Loc.GetString() use instances (#4155) 2021-06-21 02:13:54 +02:00
Connection Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Construction remove SetLayerVisibility, doesnt work for some reason 2021-08-05 22:01:24 -07:00
Containers Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Conveyor Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Cooldown Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Coordinates/Helpers Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
CPUJob/JobQueues Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Crayon Fix missing sounds (#4466) 2021-08-13 21:31:37 -07:00
Cuffs Fix stuff 2021-08-10 16:18:57 -07:00
Damage Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Database Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Destructible Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
DeviceNetwork Pow3r: stage 1 (#4208) 2021-07-04 18:11:52 +02:00
Dice Makes DiceComponent ECS 2021-08-20 09:51:54 +02:00
Disposal Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
DoAfter Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Doors Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Engineering Use EntitySystem dependencies in a bunch of systems. 2021-07-26 13:01:47 +02:00
EntityList Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Entry Add AFK tracking system. 2021-07-22 23:20:57 +02:00
EUI Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Examine Removed old Loc.GetString() use instances (#4155) 2021-06-21 02:13:54 +02:00
Explosion Fix stuff 2021-08-10 16:18:57 -07:00
Extinguisher removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Flash Owner Transform to Owner in SoundSystem calls (#4460) 2021-08-18 23:36:57 +02:00
Fluids Adds sound to fire extinguisher safety (#4494) 2021-08-20 05:37:16 +00:00
Friction Increase MoverController performance (#4448) 2021-08-15 14:03:08 +10:00
GameTicking Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Ghost Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Gravity Subscribe TransformComponent events by-ref (#4478) 2021-08-21 11:49:31 +02:00
Hands Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Headset Engine Entity Anchoring Changes (#4195) 2021-06-19 19:41:26 -07:00
Holiday Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Instruments Fix handheld instruments not working 2021-07-18 14:59:40 +02:00
Interaction Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Inventory Adds the ability to assign equip sounds in ClothingComponent (#4485) 2021-08-19 21:22:23 -07:00
IoC Add AFK tracking system. 2021-07-22 23:20:57 +02:00
IP Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Items Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Jobs Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Kitchen Fix indentation 2021-08-10 15:39:24 -07:00
Lathe Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Light Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Lock Revert "Refactor Damage to use Protoypes (#4262)" 2021-08-24 01:06:32 -06:00
MachineLinking Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Materials Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Medical Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Mind Fix can't return to body bug (#4424) 2021-08-06 00:02:36 -07:00
Mining/Components Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
MobState/States Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Module Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
MoMMI Move some files out of Content.Shared root because I forgot (#4182) 2021-06-13 22:52:40 +10:00
Morgue Crematorium now makes a noise on start and during cremation (#4459) 2021-08-11 19:29:57 -07:00
Movement Adds duck-related content and a seclite (#4489) 2021-08-19 16:23:49 -07:00
NodeContainer Subscribe TransformComponent events by-ref (#4478) 2021-08-21 11:49:31 +02:00
Notification Remove NetMessage deprecated boilerplate (#4196) 2021-06-21 07:43:54 +02:00
Nutrition Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Objectives Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Paper Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
ParticleAccelerator Fix PA construction crash, make it clear that PA construction needs LV cables (#4506) 2021-08-22 17:50:43 +02:00
PDA Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Physics Revert "Refactor Damage to use Protoypes (#4262)" 2021-08-24 01:06:32 -06:00
Plants removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Players Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Pointing Merge branch 'master' into replace-sounds-with-sound-specifier 2021-08-10 15:05:49 -07:00
Power Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
PowerCell/Components Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Preferences/Managers Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Pressure Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Projectiles Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Pulling Fix H-pulling? (#4425) 2021-08-19 22:47:59 -07:00
Radiation Revert "Refactor Damage to use Protoypes (#4262)" 2021-08-24 01:06:32 -06:00
Radio Fix handheld radio not accounting for obstructions 2021-07-25 01:07:28 -07:00
RCD/Components removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Recycling Remove IStartCollide from Recyclers (#4312) 2021-07-21 12:35:45 +02:00
Repairable Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Research removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Roles Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Rotation Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
RoundEnd replacing sound (collection) names with SoundSpecifier - part 1 2021-07-10 17:35:33 +02:00
Sandbox Remove NetMessage deprecated boilerplate (#4196) 2021-06-21 07:43:54 +02:00
Security Add security barriers (#4458) 2021-08-23 02:32:24 +10:00
Shuttles fixes some bugs with the shuttleconsole (#4517) 2021-08-24 09:58:06 +02:00
Singularity Singularity fixes (#4383) 2021-08-23 00:54:03 +10:00
Slippery removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Solar Make Saltern driveable (#4257) 2021-07-21 21:15:12 +10:00
Sound removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Spawners Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Speech Add missing space (#4281) 2021-07-17 23:04:04 +02:00
Sprite/Components Engine Entity Anchoring Changes (#4195) 2021-06-19 19:41:26 -07:00
Stack Move some files out of Content.Shared root because I forgot (#4182) 2021-06-13 22:52:40 +10:00
StationEvents Add basic meteor swarm (#4420) 2021-08-23 13:28:47 +10:00
Storage Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Strip Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Stunnable Refactors throw events, makes cream pies ECS (#4500) 2021-08-21 09:18:23 +02:00
Suspicion Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Temperature/Components Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Throwing Fix opposite force when throwing objects (#4398) 2021-07-31 22:53:18 +10:00
Tiles removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Timing Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Toilet removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Tools Fix tool sounds. 2021-08-13 11:05:06 +02:00
Traitor Removed old Loc.GetString() use instances (#4155) 2021-06-21 02:13:54 +02:00
TraitorDeathMatch/Components Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Transform/Verbs Removed old Loc.GetString() use instances (#4155) 2021-06-21 02:13:54 +02:00
UserInterface Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
VendingMachines Removes vending inventory desc and adds missing vending machine descriptions (#4493) 2021-08-20 05:23:02 +00:00
Verbs Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Visible Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Voting Restart vote does not vote no for AFK players. 2021-07-22 23:20:57 +02:00
Warps Removed old Loc.GetString() use instances (#4155) 2021-06-21 02:13:54 +02:00
Weapon Damageable Refactor 3: Revenge of the Instamerge (#4524) 2021-08-24 11:06:27 -06:00
Window Fix stuff 2021-08-10 16:18:57 -07:00
WireHacking removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
app.config Updates submodule (#56) 2018-04-12 23:56:43 +02:00
AssemblyInfo.cs Fix exception in ReagentPrototype caused by IMetabolizable (#451) 2019-11-23 21:55:31 +01:00
Content.Server.csproj Enable nullability in Content.Server (#3685) 2021-03-16 15:50:20 +01:00
Program.cs Content.{Client,Server} are now Exes that can be ran. 2020-01-22 20:17:32 +01:00