Commit Graph

73 Commits

Author SHA1 Message Date
DrSmugleaf
f323fb7644 ECS and cleanup body system, merge body templates and presets into body prototypes (#11991)
Co-authored-by: Jezithyr <Jezithyr@gmail.com>
2022-10-22 15:46:28 -07:00
Willhelm53
1a1e72063a Skeleton Accents (#11805) 2022-10-22 15:40:28 -07:00
Nemanja
9363674bd5 Bad 2 Da Bone [Skeleton Tweaks] (#11669)
Co-authored-by: Kara <lunarautomaton6@gmail.com>
2022-10-15 15:06:01 -07:00
Nemanja
5ba36dad25 Removes prototype construction steps (I HATE PROTOTYPE STEPS) (#11611) 2022-10-09 04:47:54 +11:00
metalgearsloth
ad7a851e27 Cargo economy balance (#11123)
Co-authored-by: Visne <39844191+Visne@users.noreply.github.com>
2022-09-15 11:53:17 +10:00
Justin Trotter
4270c3865e Bots can now be put in closets (#10672) 2022-08-31 19:40:16 -07:00
Leon Friedrich
93584f21db Add entity prototype save test (#10274) 2022-08-17 10:47:58 +10:00
Rane
2f4849eae1 Cloning Rework (#8972)
Co-authored-by: fishfish458 <fishfish458>
2022-08-03 21:05:17 -07:00
metalgearsloth
b9e876ca92 The real movement refactor (#9645)
* The real movement refactor

* ref events

* Jetpack cleanup

* a

* Vehicles partially working

* Balance tweaks

* Restore some shitcode

* AAAAAAAA

* Even more prediction

* ECS compstate trying to fix this

* yml

* vehicles kill me

* Don't lock keys

* a

* Fix problem

* Fix sounds

* shuttle inputs

* Shuttle controls

* space brakes

* Keybinds

* Fix merge

* Handle shutdown

* Fix keys

* Bump friction

* fix buckle offset

* Fix relay and friction

* Fix jetpack turning

* contexts amirite
2022-07-16 13:51:52 +10:00
Rane
abab5bedcd Port honkbots from nyano (#9698) 2022-07-15 00:54:34 -07:00
Kara
f092f478f7 Satiety tweaks (#9519)
* Satiety tweaks

* actually lets do this
2022-07-07 11:21:26 -07:00
metalgearsloth
a2a5df1990 Damage masks (#9402) 2022-07-06 17:58:14 +10:00
Peptide90
1af84204d8 Fixes entity spawner icons (#9411)
* fixes asteroid icon / parent and adds suffix

* fixes asteroid icon / parent and adds suffix

* fix rust wall icon

* fix table icon

* fix counter icons

* makes base grenade abstract

* fixes rat stomach sprite error

* really fixed rat stomachs
2022-07-06 00:12:24 +10:00
Kara
2df203b1e4 Intrinsic radio fixes (#9378)
* Inherent radio fixes

* rename
2022-07-03 18:36:40 +10:00
Kara
de6db8cb21 Stomach YAML tweaks (short-term satiety) (#9326) 2022-07-01 13:42:29 -07:00
Rane
b6e2ec4ec0 raw meat poisoning rework (#8831) 2022-06-22 21:13:13 -07:00
Rane
c194e677a5 Give lizzers animal digestion (#9027) 2022-06-22 16:23:01 -07:00
Rane
62034e7b9b Slimes breathe nitrogen (#9001)
* Slimes breathe nitrogen

* max respiration
2022-06-21 11:32:31 -05:00
EmoGarbage404
39d439795f Rat King Tweaks (#8940)
Co-authored-by: Kara <lunarautomaton6@gmail.com>
2022-06-18 16:21:07 -07:00
EmoGarbage404
075eb0d982 The Newest Furry Race [Skeletons] (#7825)
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2022-05-13 09:35:55 +10:00
20kdc
f651bbf1f0 Cleanup of Vox + make them breathe nitrogen (#7853) 2022-04-30 14:15:51 -07:00
Veritius
b880dd5770 Fix various misspellings and grammatical errors (#7397)
Co-authored-by: mirrorcult <lunarautomaton6@gmail.com>
2022-04-08 14:05:53 -07:00
Vera Aguilera Puerto
8a1d5376b6 Fixes many entity prototypes being abstract when they shouldn't be. 2022-04-03 14:07:28 +02:00
Paul Ritter
2ff40d5a1f Serv3 rework content changes (#7145) 2022-04-03 02:01:22 +02:00
T-Stalker
b9a6b19de1 Fix the limzers, weh! (#7256)
* The stuff

* Venus

* Nuclear keg

* Lizzer weh

* Revert "Nuclear keg"

This reverts commit 3426340e5b2a81ea057dfd02aa2e424b1cf969c2.

* Revert "Venus"

This reverts commit 5df94d74b61e92641c4f4401b6ed4410e4421d99.

* Revert "The stuff"

This reverts commit ae8eb3582677566bb2ffbc66695461ae617cd722.

* they now need to breathe

* Literally crying and sobbing rn

* Missed deez

* REEE!
2022-03-25 12:29:23 -05:00
Chris V
90498edbbb Add the Omnitool, drone adjustments (#6948) 2022-03-15 18:11:29 -07:00
Rane
2a25203bef Make a bunch of stuff recyclable (#6771) 2022-02-17 23:00:56 -07:00
Rane
81c7a03c97 Drones (#6448) 2022-02-10 15:15:06 -07:00
mirrorcult
2738b46362 Lung tweaks (#6634) 2022-02-10 14:58:41 -07:00
Leon Friedrich
706ac6af40 Revert "Revert "epic Respiration Rework"" (#6527) 2022-02-09 21:53:10 -07:00
Leon Friedrich
6e8c92d13e Revert "epic Respiration Rework" (#6524) 2022-02-07 18:13:14 +11:00
mirrorcult
4ae1c4e332 epic Respiration Rework (#6022) 2022-02-06 21:48:15 -07:00
Moony
ca984036d6 Upstream species (#6066)
* Step 1 of porting; grabbed most of the files via patches.

* Add species field to the DB

* Appearance patches for slimes.

* Fix the db test.

* Add slime's biocompat.

* slimby

* Fixes, allow specifying if a species is playable or not.

* Update Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs

Co-authored-by: Javier Guardia Fernández <DrSmugleaf@users.noreply.github.com>

* Update Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs

Co-authored-by: Javier Guardia Fernández <DrSmugleaf@users.noreply.github.com>

* Update Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs

Co-authored-by: Javier Guardia Fernández <DrSmugleaf@users.noreply.github.com>

* Address reviews.

* Address reviews.

* make an if-case.

* Fix a goof where species wouldn't get shown in the editor correctly (it'd always default to human)

Co-authored-by: Javier Guardia Fernández <DrSmugleaf@users.noreply.github.com>
2022-01-08 19:53:14 -06:00
mirrorcult
5249ea057a Kill bobby 2.0 (#6023) 2022-01-04 10:17:39 +01:00
mirrorcult
53c0a47e39 Slay bobby pt. 1 (#5632) 2021-12-01 11:44:34 +01:00
mirrorcult
ccf01d7431 Remove LungBehavior and replace with LungComponent/System (#5630) 2021-11-30 18:25:02 -07:00
mirrorcult
828025d020 Turn brain behavior into a component/system (#5281) 2021-11-12 23:47:50 -07:00
FoLoKe
5f3ae602ed Add some animals basic mechanics (#5132)
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2021-11-13 12:48:05 +11:00
mirrorcult
457e8c64ee Convert StomachBehavior to a component/system + rejig body namespaces (#5249)
* Convert StomachBehavior to a component/system + rejig body namespaces

* test

* slightly more namespace changes

* remove

* Hello?????

* fuck you github test runner

* reviews

* oobsy!
2021-11-11 16:10:57 -07:00
mirrorcult
747f02f3f3 Metabolism tweaks / metabolism 4.0 (#5246)
* Metabolism tweaks

* use MetabolismArgs and convert ReagentEntityReactions into ReagentEffects

* fork forgor 💀

* fixes
2021-11-10 11:11:28 +01:00
mirrorcult
c4f91c3fe7 Remove some unused mechanism behaviors (#5248) 2021-11-10 17:42:56 +11:00
mirrorcult
31d622f941 Metabolism 3.0 (#5157)
* basic system + convert all plantmetabolism

* stragglers

* convert all old metabolisms over

* fix YAML errors + dumb serialization issue

* remove unused thingy

* reimplement

* add organ type condition

* organtype condition but real

* cleanups + test fix

* metabolismtype -> metabolizertype

* solution resilience

* fixes

* serializer + use entityuid + hashset

* this is apparently an entirely different thing

* turns out it just works

* oops
2021-11-08 15:33:45 -07:00
ZeroDayDaemon
b8f12f4424 Small bug fixes and tweaks on reagents and food/drinks content (#5146)
* Update Can Sizes, Fill cans with correct reagents, rename brownstar reagent to its can name starkist

* Update drinks.yml

* add energy drink

* Update soda.yml

* Potato Juice

* Fix Yaml

* Add energy drink to vending
2021-11-03 21:31:21 -07:00
Ygg01
8c81312c0c Extractible tweak - Allow grinding and juicing (#5112) 2021-11-02 15:20:14 +11:00
ZeroDayDaemon
293186b563 Bartending Content & Bug Fixes (#5038) 2021-10-31 14:57:05 +01:00
Fortune117
55249e3688 Add Overdosing Behaviour to Meth (#4949)
* Added debug bottle of meth as well as a damage increase on a Reagent Threshold

* fix for metabolism getting funked when there is a failed reaction condition

* removed max, raised minimum to 10

* reduced regular meth damage, increased overdose damage
2021-10-20 13:30:55 -07:00
Leon Friedrich
df584ad446 ECS damageable (#4529)
* ECS and damage Data

* Comments and newlines

* Added Comments

* Make TryChangeDamageEvent immutable

* Remove SetAllDamage event

Use public SetAllDamage function instead

* Undo destructible mistakes

That was some shit code.

* Rename DamageData to DamageSpecifier

And misc small edits

misc

* Cache trigger prototypes.

* Renaming destructible classes & functions

* Revert "Cache trigger prototypes."

This reverts commit 86bae15ba6616884dba75f552dfdfbe2d1fb6586.

* Replace prototypes with prototype IDs.

* Split damage.yml into individual files

* move get/handle component state to system

* Update HealthChange doc

* Make godmode call Dirty() on damageable component

* Add Initialize() to fix damage test

* Make non-static

* uncache resistance set prototype and trim DamageableComponentState

* Remove unnecessary Dirty() calls during initialization

* RemoveTryChangeDamageEvent

* revert Dirty()

* Fix MobState relying on DamageableComponent.Dirty()

* Fix DisposalUnit Tests.

These were previously failing, but because the async was not await-ed, this never raised the exception.

After I fixed MobState component, this exception stopped happening and instead the assertions started being tested & failing

* Disposal test 2: electric boogaloo

* Fix typos/mistakes

also add comments and fix spacing.

* Use Uids instead of IEntity

* fix merge

* Comments, a merge issue, and making some damage ignore resistances

* Extend DamageSpecifier and use it for DamageableComponent

* fix master merge

* Fix Disposal unit test. Again.

Snapgrids were removed in master

* Execute Exectute
2021-09-14 10:07:37 -07:00
Ygg01
c209e3f29b Solution refactor (#4407)
* Rename SolutionContainerCaps -> Capability

* Move IExamine event to Chemistry System.

* ECS the ISolutionChange into SolutionChangeEvent

* Unify SolutionContainer into a single shared component

* Replace ISolutionInteraction with SolutionContainerComponent

* Move all methods from SolutionContainer to ChemistrySystem

* Refactor EntitySystem calls to Dependencies

* Refactor SolutionContainer to SolutionManager

* Fix yamls

* Fix test fails

* Fix post merge issues

* Fix various issues with SolutionManager

* More fixes

* Fix more components

* Fix events not being directed

* Fixes for Hypospray

* Separate removal and iteration on Metabolism

* Fix creampie problems

* Address some of sloth's issues

* Refactors for Systems

* Refactored solution location

* Fix tests

* Address more sloth issues

* Fix dependency

* Fix merge conflicts

* Add xmldocs for Capabilities components

* Remove HasSolution/TryGetDefaultSolution and Add/Remove Drainable/Refillable

* Replace Grindable/Juiceable with Extractable

* Refactor field names

* Fix Drainable

* Fix some issues with spillable and injector

* Fix issues with Grinder

* Fix Beaker having duplicate solutions

* Fix foaming

* Address some MGS issues

* Fix Uid issues

* Fix errors in solution Tranfer

* Fixed some extra values constant values

* Cola is drinkable now
2021-09-06 23:49:44 +10:00
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
Silver
e708091518 Revert "Refactor Damage to use Protoypes (#4262)"
This reverts commit 20bf5739a9.
2021-08-24 01:06:32 -06:00