Commit Graph

109 Commits

Author SHA1 Message Date
metalgearsloth 2166958bd0
AutoCompState + ItemToggle fixes (#23422)
* AutoCompState + ItemToggle fixes

Fix a lot of the comp states that are never actually networked and also cleaned up ItemToggle events a bunch. ItemToggle will still need some future work for lights and sounds.

* Also catch these
2024-01-03 17:24:02 +11:00
TemporalOroboros d23c8d5c19
Revert 'Revert 'Solution Entities'' (#23168) 2023-12-29 08:47:43 -04:00
Emisse 938d6d9945
Revert "Solution Entities" (#23160)
Revert "Solution Entities (#21916)"

This reverts commit d75e743dd7.
2023-12-28 20:45:42 -07:00
TemporalOroboros d75e743dd7
Solution Entities (#21916)
* Creates Content.Shared.Chemistry.Solutions
Copies Solution class to new namespace
Obsoletes old Solution class

* Switches over to the Solutions.Solution Solution

* Creates Content.Shared.Chemistry.Containers
Copies relevant components/systems to the new namespace
Obsoletes old versions

* Switches over to the Containers.XYZ namespace

* Creates SolutionSystem and obsoletes old SolutionContainerSystem methods

* Start using SolutionSystem for Solution manipulation

* EnumerateSolutions

* Move TryGetMixableSolution

* Move EnsureSolution to Server

* Create Solution Entities

* Stop using obsolete solution system methods

* Fix prototype component tests

* Add using ..Audio.Systems; back

* Wrap solution container slots in ContainerSlots

* Actually add the slot to the solution container map

* Dirty SolutionContainerComponent when ensuring solutions

* Revert namespace changes

* Remerge SolutionSystem and SolutionContainerSystem

* SolutionContainerManagerComponent refactor

* Avoid wrapping necessary code in DebugTools.Assert as it is removed when compiling for release

* Readd examine reagent sorting

* Fix errors

* Poke tests

* Fix solution names not being applied

* Fix WoolyComponent including statement

* Fix merge skew

* Fix compile errors

* Make reactions use solntities

* Reindent solution class namespace

* Field attribute changes

* AutoGenerateComponentState for SolutionContainerComponent

* SolutionContainerComponent -> ContainedSolutionComponent

* ref ReactionAttemptEvent

* Denetwork preinit solutions

* Misc 1

* Nullable TryGetSolution out vars

* Cache associated solutions

* Fix merge skew

* Use explicit regions in SharedSolutionContainerSystem.Capabilities

* Add debug assert

* Use explicit regions in SharedSolutionContainerSystem.Relay + ref SolutionContainerChangedEvent

* ContainedSolutionComponent.Name -> ContainedSolutionComponent.ContainerName

* SolutionComponent doc comments

* Implicit DataField names and property purge

* ReagentEffect DataField names

* Local variables for readability

* Sort using statements + Entity<T> event handlers

* Fix compile erros

* Fix compile errors

---------

Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
2023-12-28 17:58:14 -08:00
TemporalOroboros 7a77d6d5dd
Content ecs containers (#22484) 2023-12-28 01:30:03 -04:00
Darkie a3fbab84e6
ItemToggle system expansion (#22369)
* Fixed EnergySword and variants having incorrect sound on attacking when in their Off state.

* Removed the unused ItemToggle from the serverside and created a new shared ItemToggleComponent and System, now used for the e-blade family of items. Also added e-blade hum and swing sounds. Thanks Sloth for the initial code!

* Changing Stunbaton system to include the itemToggle system.

* Adapted changes that have come up in the meantime.

* Changed damagespecifier to be serializable and autoNetworked in melee weapon components. Fixes a bug that makes it so client-side, damage values are not updated on toggle.

* Made the ItemToggleSystem have both a shared and a server component. Ported the Stun Baton and Stun Prod to the new toggleable system. Added a failure to activate noise component.

* Ported the welders to the new item toggle system. Set it so deactivated damage and item size default to the item's regular options.

* Removed unnecessary usings.

* Small modification to the stun prod.

* Made the integration test use the new method to turn the welders on.

* Fixed a few testing issues, applied a few changes requested by Delta.

* Updated Stunbaton code for consistentcy when it comes to calling the itemToggle component.

* Removed a redundant return; as per Delta.
Made examining the stun baton for charge rely on the battery component instead.

* Removed the welder visualizer system, now using the generic one. Removed some unused usings. Removed the welder visuals and layers.
Ported lighters to the new system.
Added zippi (sic) lighters.

* Renamed variables used to make them less generic.

* Simplified the light update code.

* Fixed the unit test to use the itemToggle system for welders now.

* Made the name shorter. I can't tell if the welding damage when interacted with actually does anything though. I can't figure out how to trigger it.

* Fixed some YML issues.

* Added a client side item toggle system just to make the shared code run on local UID's too.

* Fixed some more Yaml.

* Made the Zippi lighter have its own parent item, so it doesnt' conflict with the random pattern on the regular lighter.

* Made the zippi lighter its own in-hand sprites.

* Added a summary for the activated property in itemtoggle component.

* Fixed a typo in the itemToggle Component.

* Fixed a typo.

* Added to the remarks for the ItemToggleComponent.

* Fixed up the lighter yaml to make it use a generic term instead of a toggle layer enum for the random skin.

* Fixed a bug I introduced accidentally with the humming sound.

* Removed 2 unnecessary events from the ItemToggleSystem and component.

* Fixed a bug by only making the server run the item activation code, since the client cannot predict whether or not the activation will be cancelled.

* Cleaned up some names and functions getting called.

* Renamed a couple of variables and removed the explicit datafields from the component. Removed "activated: false" from yml since they're already deactivated by default.

* Added an IsActivated function, used it in the welder and stun baton systems code.
Refactored welder code to remove the WelderToggle event, now using the ItemToggleActivatedEvent instead for eye protection check.

* Fixed a typo. Added some comments.

* Split the ItemToggle into smaller components.
Changed the items that used the toggle system to work with the smaller components.
Made the mirror shield reflect energy shots with a 95% chance.

* Fixed the namespaces for the server components and whatnot.

* Fixed a doubled deactivation sound from using activated wieldable items (like the double Esword).
Fixed wrong yml with the e-dagger.
Fixed the disarm malus code.

* Added the zippo lighter to the detective's trench coat.

* Removed the default hit sound for the double e-sword since it was unnecessary.

* Changed e-sword damage numbers to be in line with the changes made by Emisse.

* Made no damage sounds be autoNetworked, so it changes can be changed on activation/deactivation of items.
Made Welders and Eswords sound like themselves but quieter if they hit for 0 damage, instead of taps.
You can choose what sound to play when a weapon does 0 damage when activated now.
Fixed a bug with swing sounds.

* Typo.

* Fixed a bug where the welder would blind you if you used it while it was off.

* Created a single abstract method called when an item has completed its toggle.

* Update Content.Server/Eye/Blinding/EyeProtection/EyeProtectionSystem.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Fixed a comment.

* Made most component variables readOnly for ItemToggle. There is no need to be able to change them from within the variable viewer.

* Removed trailing white spaces.

* Made the Use a field instead of a property in the itemToggleActivation/Deactivation attempt events.

* Small fixes.

* Removed ForceToggle, just use the toggle method instead.

* Fixed a bug with item sharpness staying even after getting deactivated, if the item gained sharpness that way (esword).

* Used ProtoId in the welder component.

* Made damage NetSerializable as well.

* Added networking and data fields to a couple of components.

* Made component variables autonetworked. Added some comments.

* Moved the events that modify item components on toggle to events, handled (where possible) in the systems linked to said components.

* Made all the component variables readWrite again.

* Added the component get to the WelderStatus.

* Added a predictable bool to the item toggle component.

* Replaced the Activated/Deactivated events with ToggleDone, with an Activated argument. Used that to simplify some systems.

* Added a reflect update raise event.

* Removed the Zippo changes. To add in a later PR.

* Removed the zippo from meta.json too.

* Small fix.

* Another small fix.

* Fixed the wieldable system thing in ItemToggle.

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2023-12-24 17:11:05 +11:00
brainfood1183 2d04e89007
Weapon Random Fixes (documented and removed hardcoded cluwnecomp) (#22352)
Weapon Random Fixes
2023-12-18 14:42:57 -05:00
MendaxxDev e301378114
Make flare gun explode, damage and stun the player when used with the wrong ammo (#22349)
* Flare gun can now only be loaded with actual flares

* Make flare gun loadable with other shells, but destroy it and damage and stun the user when used

* tweak

* Logic fix + QOL add-ons

* damageOnWrongAmmo in gun component

* cleanup
2023-12-15 02:57:59 -07:00
Errant 664d2b14b9
Don't allow disarm on incapacitated targets (#22298) 2023-12-10 13:54:41 -05:00
metalgearsloth 269c93245d
Unrevert audio (#21330)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2023-11-27 22:12:34 +11:00
Nemanja 94368f1f00
Speed Boots [Tier 3 Civ-Service] (#21438)
* Speed Boots

* validate

* monkey
2023-11-07 18:25:43 -07:00
Nemanja 4729024d3e
Convert ItemSize to prototypes (#21481)
* item sizes are prototypes

* eek
2023-11-06 00:20:50 -07:00
Nemanja 0c329ed661
Storage Standardization [Take 2] (#21270) 2023-10-30 20:55:55 -07:00
metalgearsloth 5b8f3c48c4
Revert "Update submodule to 175.0.0 (#21318)" (#21319) 2023-10-29 15:29:30 +11:00
metalgearsloth 9b1b3e03ed
Content audio (#20862) 2023-10-29 14:58:23 +11:00
Leon Friedrich e685cb626b
Un-revert IPlayerManager refactor (#21244) 2023-10-28 09:59:53 +11:00
metalgearsloth c08349a947
Revert "Storage TEST MERGE" (#21258) 2023-10-26 00:46:22 -07:00
Nemanja 41795720da
[TEST MERGE] Slot-based Storage (#21212) 2023-10-25 18:53:38 -04:00
metalgearsloth a2bbda43cc
Revert "Update submodule to 172.0.0 (#21222)" (#21225) 2023-10-24 21:55:20 +11:00
Leon Friedrich 7ba0ea2926
IPlayerManager refactor (#21215) 2023-10-24 20:19:08 +11:00
DrSmugleaf c72b95db6b
Fix debug assert when shooting guns (#21070) 2023-10-18 15:45:35 +11:00
I.K df81532469
Change wide swing sprites to be that of the weapon used (#21050)
Co-authored-by: notquitehadouken <1isthisameme>
2023-10-18 12:12:00 +11:00
TemporalOroboros 0775ab6a14
Moves SolutionContainerManagerComponent to Shared. (#20944) 2023-10-15 03:45:28 +11:00
Leon Friedrich 364c9b7f0a
DamageableSystem cleanup & performance improvements (#20820) 2023-10-09 03:27:41 +11:00
DrSmugleaf a44fa86b68
Update trivial components to use auto comp states (#20539) 2023-09-28 16:20:29 -07:00
metalgearsloth 5a0fc68be2
Content update for NetEntities (#18935) 2023-09-11 09:42:41 +10:00
deltanedas 91cfabd6f6
light refactoring/rework (#19314)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2023-09-03 22:31:10 -07:00
metalgearsloth 3ab346f471
Remove Ammo component references (#19537) 2023-08-31 14:33:28 -07:00
DrSmugleaf a88e747a0b
Refactor serialization copying to use source generators (#19412) 2023-08-22 18:14:33 -07:00
chromiumboy 26eb71f1eb
C.H.I.M.P handcannon redesign (#19004)
* Added basic alternative fire mode system for the CHIMP

* Redesign of the CHIMP handcannon
- the CHIMP now has an internal rechargable battery (10 shots at 100% charge)
- it has three alternative fire modes, one for each particle type, that its user can easily switch between
- syndicate scientists have access to an experimental version which can also fire omega particles (4 TC)
- each particle type now has a distinct color and damage type: delta (red): heat, epsilon (green): radiation, zeta (yellow): shock, omega (purple): heat + radiation. This affects A.P.E.s as well
- CHIMP particles now do 10 damage (up from 5)
- all CHIMP particle cartridges have been removed from the game (including the syndicate omega particle ammo pack)

* Code revisions

* Code revisions
- Removed changes to particle damage and damage types
- The experimental CHIMP was removed from the syndicate uplink and replaced with an upgrade kit, which when used on a standard CHIMP will convert it to an experimental one

* Code revisions
- Added a 2 second DoAfter for applying the upgrade kit

* Fixed spelling mistake

* Update projectiles.yml

Removed commented code

* Update Content.Server/Weapons/Ranged/Systems/AlternativeFireModesSystem.cs

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* Code revisions
- Implemented changes requested by EmoGarbage
- Removed UpgradeKitComponent in favor of using a construction graph
- Renamed AlternativeFireModesComponent.cs to BatteryWeaponFireModesComponent.cs

Textures
- Reverted omega particle to being a green color
- Epsilon particles are now a cyan color

* Added comments

* Revisions
- Moved BatteryWeaponFireModesComponent from Shared to Server
- Restricted access to this component to BatteryWeaponFireModesSystem
- Changed the CHIMP upgrade kit to a chip
- Updated the localization files to reflect this change

* Delete interaction-upgrade-kit-component.ftl

This file is no longer needed

* Update battery_guns.yml

Added new description for the experimental CHIMP

* Update battery_guns.yml

Updated experimental CHIMP description again...

* Fixed issue with ItemComponent

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2023-08-19 18:54:52 -04:00
TaralGit 8acac895fc
(Re)Adds open bolt animations for gun sprites (#17219)
Co-authored-by: and_a <and_a@DESKTOP-RJENGIR>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2023-08-13 15:58:07 +10:00
metalgearsloth 0f917d22d7
Color flash effect fixes (#18952) 2023-08-10 10:44:52 -07:00
Slava0135 375f487d94
Fix stun baton throwing and visual effect (#18777) 2023-08-08 12:19:31 -08:00
Slava0135 53db6bc265
Examine throwable damage (#18580) 2023-08-07 19:09:35 +10:00
Errant 999fa62538
Fix energy swords healing blunt (#18753)
* esword fix

* comment
2023-08-06 02:19:32 -06:00
metalgearsloth aa8efc9a26
Melee rebalancing (#17520) 2023-08-06 12:55:38 +10:00
metalgearsloth a5ed3af5b1
Gun cleanup (#18682) 2023-08-05 12:49:27 +10:00
Nemanja 6db6b423f4
official security anti-inflatable armament (#18634) 2023-08-03 19:53:06 -06:00
Slava0135 d4c8065e8a
Move and rename damage effect to color flash effect (#18263)
* move damage effect to different package

* rename to ColorFlashEffect

* renaming some other things
2023-08-01 19:02:54 +03:00
avery c15257fa21
Add reflection support for mobs, reflective vest, shuttle walls (#18186) 2023-07-30 21:07:45 -04:00
Arendian 2c5f202dca
Eject casings some distance from the gun (#18081)
Makes bullet casings launch a bit away from you when shooting a gun. Cycling still drops it at your feet.

---------

Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
2023-07-29 14:07:31 -07:00
Arendian 580d481710
Make clumsy entities able to shoot funny weapons (#18156)
* Make clumsy entities able to shoot funny weapons

* remove unneeded line
2023-07-19 15:22:07 -06:00
metalgearsloth 68480af109
Update content vectors to numerics (#17759) 2023-07-08 14:08:32 +10:00
Nim 4ed11ca73b
Energy Shield (#16996)
* energy shield

* description edits

* shields protect

* small correction

* say no to asteroid bees

* fix

* BlockModifier

* fix

* tweak

* tweak

* ops

* fix

* Update RobustToolbox

* Revert "Update RobustToolbox"

This reverts commit 55be82fe537490367e0afaf86365b0e274e6597e.

* formatting
2023-06-22 00:08:58 -04:00
FacePluslll 422a84e029
Adds Double bladed Esword (#17227)
* Changed Energy Sword system to allow Wieldable eswords

Needed to add conditions to allow the wielding system to handle the esword if the component existed in the entity. The normal eswords work just fine still.

* Adds sprites for double bladed esword

* added double bladed esword to yml

* Add double bladed esword to uplink catalog

* fixed sprites on right handed wielding

* decresed speed a little and added a wielding time

* Reduced damage

* Damage change

* Balence change

* edited attack speed and heavy windup

* fixed readability issue and removed unwanted brackets

* reflectProp to .75

Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>

* wieldTime to 0

Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>

* litDisarmMalus to .7

Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>

* changed heat and slash damage to 9 and structural damage to 20

* changed uplink desc

---------

Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
2023-06-18 15:35:23 -04:00
Nemanja 37d3056809
Events all over melee (#16997) 2023-06-07 13:26:45 -07:00
brainfood1183 c99585c94f
Toy Box filled with toys (ready for merge) (#16252) 2023-06-03 13:31:47 +10:00
Chief-Engineer 9b1d587235
add reflect logs (#17006) 2023-06-01 15:57:31 +10:00
HerCoyote23 c694ecccac
Fix northstar radio exploit (#16967) 2023-05-31 11:11:35 +10:00
metalgearsloth cd487b66e4
Content mapmanager query changes (#16894) 2023-05-28 23:22:44 +10:00