2023-03-12 15:56:05 +11:00
using System.Diagnostics.CodeAnalysis ;
2022-11-14 08:33:54 +11:00
using System.Linq ;
2023-07-08 14:08:32 +10:00
using System.Numerics ;
2022-09-29 15:51:59 +10:00
using Content.Shared.ActionBlocker ;
2025-04-19 11:38:22 +10:00
using Content.Shared.Actions.Events ;
using Content.Shared.Administration.Components ;
2022-11-14 08:33:54 +11:00
using Content.Shared.Administration.Logs ;
2022-09-29 15:51:59 +10:00
using Content.Shared.CombatMode ;
2022-11-14 08:33:54 +11:00
using Content.Shared.Damage ;
using Content.Shared.Damage.Systems ;
using Content.Shared.Database ;
using Content.Shared.FixedPoint ;
2022-10-04 12:12:45 +11:00
using Content.Shared.Hands ;
2022-09-29 15:51:59 +10:00
using Content.Shared.Hands.Components ;
2025-06-25 09:13:03 -04:00
using Content.Shared.Hands.EntitySystems ;
2025-04-19 11:38:22 +10:00
using Content.Shared.IdentityManagement ;
2022-11-14 08:33:54 +11:00
using Content.Shared.Interaction ;
2022-10-16 07:20:05 +11:00
using Content.Shared.Inventory ;
2024-07-10 21:48:00 -07:00
using Content.Shared.Inventory.VirtualItem ;
2024-01-03 17:24:02 +11:00
using Content.Shared.Item.ItemToggle.Components ;
2025-04-19 11:38:22 +10:00
using Content.Shared.Mobs.Components ;
using Content.Shared.Mobs.Systems ;
2022-11-14 08:33:54 +11:00
using Content.Shared.Physics ;
2022-09-29 15:51:59 +10:00
using Content.Shared.Popups ;
2025-04-19 11:38:22 +10:00
using Content.Shared.StatusEffect ;
2022-11-14 08:33:54 +11:00
using Content.Shared.Weapons.Melee.Components ;
2022-09-29 15:51:59 +10:00
using Content.Shared.Weapons.Melee.Events ;
2023-05-14 13:15:18 +10:00
using Content.Shared.Weapons.Ranged.Components ;
2023-06-08 02:15:39 +00:00
using Content.Shared.Weapons.Ranged.Events ;
2023-05-14 13:15:18 +10:00
using Content.Shared.Weapons.Ranged.Systems ;
2025-04-19 11:38:22 +10:00
using Robust.Shared.Audio ;
using Robust.Shared.Audio.Systems ;
2022-09-29 15:51:59 +10:00
using Robust.Shared.Map ;
2025-04-19 11:38:22 +10:00
using Robust.Shared.Network ;
2022-11-14 08:33:54 +11:00
using Robust.Shared.Physics ;
using Robust.Shared.Physics.Systems ;
2023-10-28 09:59:53 +11:00
using Robust.Shared.Player ;
2022-11-14 08:33:54 +11:00
using Robust.Shared.Prototypes ;
2025-04-19 11:38:22 +10:00
using Robust.Shared.Random ;
2022-09-29 15:51:59 +10:00
using Robust.Shared.Timing ;
2024-01-03 17:24:02 +11:00
using ItemToggleMeleeWeaponComponent = Content . Shared . Item . ItemToggle . Components . ItemToggleMeleeWeaponComponent ;
2022-09-29 15:51:59 +10:00
namespace Content.Shared.Weapons.Melee ;
public abstract class SharedMeleeWeaponSystem : EntitySystem
{
2025-04-19 11:38:22 +10:00
[Dependency] protected readonly IGameTiming Timing = default ! ;
[Dependency] protected readonly IMapManager MapManager = default ! ;
[Dependency] private readonly INetManager _netMan = default ! ;
[Dependency] private readonly IPrototypeManager _protoManager = default ! ;
[Dependency] private readonly IRobustRandom _random = default ! ;
[Dependency] protected readonly ISharedAdminLogManager AdminLogger = default ! ;
[Dependency] protected readonly ActionBlockerSystem Blocker = default ! ;
[Dependency] protected readonly DamageableSystem Damageable = default ! ;
2025-06-25 09:13:03 -04:00
[Dependency] private readonly SharedHandsSystem _hands = default ! ;
2025-04-19 11:38:22 +10:00
[Dependency] private readonly InventorySystem _inventory = default ! ;
[Dependency] private readonly MeleeSoundSystem _meleeSound = default ! ;
[Dependency] protected readonly MobStateSystem MobState = default ! ;
[Dependency] private readonly SharedAudioSystem _audio = default ! ;
[Dependency] protected readonly SharedCombatModeSystem CombatMode = default ! ;
[Dependency] protected readonly SharedInteractionSystem Interaction = default ! ;
[Dependency] private readonly SharedPhysicsSystem _physics = default ! ;
[Dependency] protected readonly SharedPopupSystem PopupSystem = default ! ;
[Dependency] protected readonly SharedTransformSystem TransformSystem = default ! ;
2025-05-06 09:39:05 -07:00
[Dependency] private readonly SharedStaminaSystem _stamina = default ! ;
Upstream, Yay (#27)
* Make BaseMedicalPDA abstract (#26567)
* Fix GasMixers/Filters not working (#26568)
* Fix GasMixers/Filters not working
* OKAY GAS FILTERS TOO
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
* Industrial Reagent Grinder Hotfix (#26571)
fixed
* Give stores the ability to check for owner only (#26573)
adds a check if the store belongs to the user
* Fix round start crash (causing instant restart) (#26579)
* Fix round start crash
* Make `TryCreateObjective` more error tolerant
* Update engine to v217.1.0 (#26588)
* Fix initial infected icon hiding (#26585)
* Fix Meta evac shuttle name (#26587)
* Make timer ignore client predict setting (#26554)
* Make timer ignore client predict setting
* making tests run
---------
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Make advertise system survive no map inits (#26553)
* Make advertise system survive no map inits
* Add comment to try prevent future bugs
* Update Credits (#26589)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Fix fox spawn on reach (#26584)
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Removes SCAF armor (#26566)
* removes scaf armor
* replace maint loot spawner spot with basic helmet
* Update Patrons.yml (#26578)
* Automatic changelog update
* Make aghost command work on other players using optional argument (#26546)
* Translations
* Make aghost command work on other players using optional argument
* Reviews
* Automatic changelog update
* Add new component to Make sound on interact (#26523)
* Adds new Component: EmitSoundOnInteractUsing
* Missed an import
* File-scoping
* Replace ID check with Prototype check
* Moved component and system to shared. Set prediction to true.
* Removed impoper imports and changed namespace of component to reflect changed folder.
* Following function naming theme
* All this code is basically deltanedas's, but it was a learning experience for me
* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs
* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Increase syndi duffelbag storage (#26565)
* Increase syndi duffelbag storage
* weh
* Automatic changelog update
* Adds construction/decon graphs for plastic flaps (#26341)
* Adds construction/decon graphs for plastic flaps
* Dang arbitrage
* undo conflict
---------
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
* Automatic changelog update
* Makes secglasses roundstart (#26487)
* makes secglasses roundstart
* fix epic fail
* fix tests questionmark?
* Update Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
---------
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* Automatic changelog update
* Toilet Upgrade (needs review) (#22133)
* Toilet Draft
* fixes
* toilets now have secret stash to place items in cistern.
* fixes
* plungers now unblock toilets.
* fix sprite
* new sprites and fix
* fixes
* improve seat sprites.
* fix
* removed visualisersystem changed to genericvisualizers
* flush sound for toilets and copyright for toilet sprites.
* fix atrributions
* fixes
* fix datafield flushtime
* sprite improvements
* fixes
* multiple changes
* fix
* fix
* fixes remove vv
* moved stash related functions to secret stash system from toilet.
* fix
* fix
* changes for recent review.
* fix
* fix
* Automatic changelog update
* Uplink store interface searchable with a searchbar. (#24287)
* Can now search the uplink store interface with a searchbar.
* Search text updates no longer send server messages. Persists listings locally.
* Formatting fixes and tidying.
* Added helper method to get localised name and description (or otherwise, entity name and description) of store listing items.
* Update Content.Client/Store/Ui/StoreMenu.xaml
* Review change; moved localisation helper functions to their own class.
* Prevent thread-unsafe behaviour as-per review.
* Remove dummy boxcontainer
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Improved RCDs (#22799)
* Initial radial menu prototyping for the RCD
* Radial UI buttons can send messages to the server
* Beginning to update RCDSystem
* RCD building system in progress
* Further updates
* Added extra effects, RCDSystem now reads RCD prototype data
* Replacing tiles is instant, multiple constructions are allowed, deconstruction is broken
* Added extra functionality to RadialContainers plus documentation
* Fixed localization of RCD UI strings
* Menu opens near cursor, added basic RCD
* Avoiding merge conflict
* Implemented atomized construction / deconstruction rules
* Increased RCD ammo base charges
* Moved input context definition to content
* Removed obsoleted code
* Updates to system
* Switch machine and computer frames for electrical cabling
* Added construction ghosts
* Fixed issue with keybind detection code
* Fixed RCD construction ghost mispredications
* Code clean up
* Updated deconstruction effects
* RCDs effects don't rotate
* Code clean up
* Balancing for ammo counts
* Code clean up
* Added missing localized strings
* More clean up
* Made directional window handling more robust
* Added documentation to radial menus and made them no longer dependent on Content
* Made radial containers more robust
* Further robustness to the radial menu
* The RCD submenu buttons are only shown when the destination layer has at least one children
* Expanded upon deconstructing plus construction balance
* Fixed line endings
* Updated list of RCD deconstructable entities. Now needs a component to deconstruct instead of a tag
* Bug fixes
* Revert unnecessary change
* Updated RCD strings
* Fixed bug
* More fixes
* Deconstructed tiles/subflooring convert to lattice instead
* Fixed failed tests (Linux doesn't like invalid spritespecifer paths)
* Fixing merge conflict
* Updated airlock assembly
* Fixing merge conflict
* Fixing merge conflict
* More fixing...
* Removed erroneous project file change
* Fixed string handling issue
* Trying to fix merge conflict
* Still fixing merge conflicts
* Balancing
* Hidden RCD construction ghosts when in 'build' mode
* Fixing merge conflict
* Implemented requested changes (Part 1)
* Added more requested changes
* Fix for failed test. Removed sussy null suppression
* Made requested changes - custom construction ghost system was replaced
* Fixing merge conflict
* Fixed merge conflict
* Fixed bug in RCD construction ghost validation
* Fixing merge conflict
* Merge conflict fixed
* Made required update
* Removed lingering RCD deconstruct tag
* Fixing merge conflict
* Merge conflict fixed
* Made requested changes
* Bug fixes and balancing
* Made string names more consistent
* Can no longer stack catwalks
* Automatic changelog update
* Update submodule to 217.2.0 (#26592)
* Southern accent (#26543)
* created the AccentComponent and the AccentSystem
* word replacement schtuhff
* made it a trait fr ongg!!1
* Update Content.Server/Speech/EntitySystems/SouthernAccentSystem.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Prevent storing liquids in equipped buckets (#24412)
* Block access to solutions in equipped spillables.
* Stop Drink verb appearing if the solution can't be accessed.
* Automatic changelog update
* Fix 'Hypopen shouldn't display solution examine text' (#26453)
* stealthy hypo
* ExaminableSolution hand check when in covert implement.
ExaminableSolution now has 'hidden' datafield to enable chemical inspection only in hand.
* cleaning code
* more cleaning
* Hidden datafield renamed to HeldOnly
* review
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Revert Paint (#26593)
* Revert "Fix build (#26258)"
This reverts commit 6de5fbfafbde700d711a566f6a43f05f7a99e455.
* Revert "Spray Paint (Review Ready) (#23003)"
This reverts commit e4d5e7f1aebfc37b1bc3453fdb39578f3897b6a1.
# Conflicts:
# Resources/Prototypes/Entities/Structures/Holographic/projections.yml
* Fix: Prevent single-use hyposprays from getting the toggle draw verb (#26595)
Prevent single-use hyposprays from getting the toggle draw verb
Co-authored-by: Plykiya <plykiya@protonmail.com>
* MeleeHitSoundSystem (#25005)
* Began work to unscrew melee noises
* finished
* cleanup
* cleanup
* Update Content.Server/Weapons/Melee/MeleeWeaponSystem.cs
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
* _Style
* Fix merge
---------
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Remove physics comp from VendingMachineWallmount (#25632)
* Remove physics comp from VendingMachineWallmount
* Fixtures removal
---------
Co-authored-by: Jeff <velcroboy333@hotmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Remake hairflowers (#25475)
* Add more lily usage (orange hairflower and flowercrown)
* comit 2
* ee
* more fixes
* w
* im stupid
* bring poppy in authodrobe
* weh
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Automatic changelog update
* Injector UI shows TransferAmount change, Spilling liquid changes Injector mode (#26596)
* Injector UI shows TransferAmount change, spill changes mode
* Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs
* Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update submodule to 217.2.1 (#26599)
* disallow unanchoring or opening panels on locked emitters/APEs (#26600)
* disallow unanchoring or opening panels on locked emitters/APEs
* no locking open panels
* oops
* needback feedback
* Update Content.Shared/Lock/LockSystem.cs
* Update Content.Shared/Lock/LockSystem.cs
* Update Content.Shared/Lock/LockSystem.cs
* sanity
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Fix grave digging sound indefinitely playing if dug by aghost. (#26420)
Admins bypass doafters. As such, the code that runs on doafter
completion is ran before the sound is actually created. This then leads
to the sound never being stopped, and as such it would infinitely play.
This commit gets around the issue by manually stopping the sound should
the doafter fail to start. If we could be sure that the doafter would
never fail, then we could just move the call to StartDigging above
starting the doafter but this is currently not possible.
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Make the buttons on the map ui not squished (#26604)
Make the map ui work
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Combine flower crown and wreath (#26605)
* Combine flower crown and wreath
* huh
* huuh :trollface:
* Automatic changelog update
* Add AP damage to throwing knives (#26380)
* add
* ap
* no more stam dmg
* Automatic changelog update
* cancelable brig timers (#26557)
brig timers now cancelable. also some screensystem yakshave
* Fix orientation of roller skate sprites (#26627)
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Automatic changelog update
* Fix GastTileOverlay sending redundant data (#26623)
Fix GastTileOverlay not updating properly
* Auto DeAdmin sooner (#26551)
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Add briefcase to curadrobe and lawdrobe, and some briefcases cleanup (#26527)
* Add briefcase to curadrobe and some briefcases cleanup
* also add to lawdrobe
* Automatic changelog update
* Fix some text overflow bugs in HUD (#26615)
* Don't clip text in item status
* Fix overflow in examine tooltip
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Adds two milk cartons to the BoozeOMat (#26635)
* Automatic changelog update
* made the hover text less vague (sorry) (#26630)
* blacklisted throwing knifes from pneumatic cannon (#26628)
* Fix radio jammer not blocking suit sensors. (#26632)
As it turns out, they are not in fact on their own netid. They are
actually just on wireless. The way I had tested my previous pr led to
this mistake being made. I originally had the radio jammer block
wireless as well, but decided to take out under the flase assumption
that it suit sensors were actually on their own netid and did not
require the ability to block all wireless packets at the last moment.
* Fix dirt decals in reach not being cleanable (#26636)
made all dirt decals cleanable
Co-authored-by: hamurlik <renoDeath@protonmail.com>
* Automatic changelog update
* Replace drill_hit.ogg and drill_use.ogg with better sounds (#26622)
* Replace drill_hit.ogg and drill_use.ogg with better sounds
* Fix attribution source for drill_hit.ogg
* Update Resources/Audio/Items/attributions.yml
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Update Resources/Audio/Items/attributions.yml
Co-authored-by: Kara <lunarautomaton6@gmail.com>
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Gave Blast door access permissions (#26606)
Added access reader to all blast doors. Added pre configured blast doors for engineering and science.
* Gives all wheeled objects low friction (#26601)
* gives all wheeled objects friction
* adjustments to sum stuff
* Automatic changelog update
* Combine solution injection systems; Fix embeddable injectors (#26268)
* Combine injection systems
* Update Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Automatic changelog update
* Add ValueList import (#26640)
* Change assault borg modules texture (#26502)
* Update borg_modules.yml
* Fix borg_modules.yml?
* Uh
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Add Cyborg Emote Sounds (#26594)
* Hal 9000's first emote
* Add Chime emote & Change variation to 0.05
* Modify Buzz emote
* Add Buzz-two emote
* modified Horn
* add ping emote
* add slowclap emote
* Convert slowclap.ogg to mono, reflect change in attribution.yml
* fix capitalization for all chatMessages && change all catagory to category
* remove all traces of slowclap.ogg
* forgor one file smh
* collating copywrite
* spelling mistakes will be the death of me
* more spelling mistakes
* change yml string to list
* Automatic changelog update
* Coordinates Disks & Shuttle FTL Travel (#23240)
* Adds the CentComm Disk and configures it to work with direct-use shuttles
* Added functionality for drone shuttles (i.e. cargo shuttle)
* Adds support for pods, and a disk console object for disks to be inserted into. Also sprites.
* Added the disk to HoP's locker
* Removed leftover logs & comments
* Fix for integration test
* Apply suggestions from code review (formatting & proper DataField)
Co-authored-by: 0x6273 <0x40@keemail.me>
* Fix integration test & changes based on code review
* Includes Disk Cases to contain Coordinate Disks, which are now CDs instead of Floppy Disks
* Check pods & non-evac shuttles for CentCom travel, even in FTL
* Import
* Remove CentCom travel restrictions & pod disk consoles
* Major changes that changes the coordinates disk system to work with salvage expeditions
* Missed CC diskcase removal
* Fix build
* Review suggestions and changes
* Major additional changes after merge
* Minor tag miss
* Integration test fix
* review
---------
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Add door electronics access configuration menu (#17778)
* Add door electronics configuration menu
* Use file-scoped namespaces
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Open door electronics configuration menu only with network configurator
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Doors will now try to move their AccessReaderComponent to their door electronics when the map is initialized
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Make the access list in the id card computer a separate control
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix merge conflict
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove DoorElectronics tag
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Integrate doors with #17927
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Move door electornics ui stuff to the right place
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Some review fixes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* More fixes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* review fix
Signed-off-by: c4llv07e <kseandi@gmail.com>
* move all accesses from airlock prototypes to door electronics
Signed-off-by: c4llv07e <kseandi@gmail.com>
* rework door electronics config access list
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove Linq from the door electronics user interface
* [WIP] Add EntityWhitelist to the activatable ui component
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Better interaction system
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Refactor
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix some door electronics not working without AccessReaderComponent
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Move AccessReaderComponent update code to the AccessReaderSystem
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unnecesary newlines in the door access prototypes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unused variables in access level control
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unnecessary method from the door electronics configuration menu
Signed-off-by: c4llv07e <kseandi@gmail.com>
* [WIP] change access type from string to ProtoId<AccessLevelPrototype>
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unused methods
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Newline fix
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Restored to a functional state
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix access configurator not working with door electronics AccessReaderComponent
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Replace all string access fields with ProtoId
Signed-off-by: c4llv07e <kseandi@gmail.com>
* move access level control initialization into Populate method
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Review
---------
Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* scoopable ash and foam, solution transfer prediction (#25832)
* move SolutionTransfer to shared and predict as much as possible
* fully move OpenableSystem to shared now that SolutionTransfer is
* fix imports for everything
* doc for solution transfer system
* trolling
* add scoopable system
* make ash and foam scoopable
* untroll
* untroll real
* make clickable it work
* troll
* the scooping room
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Replace the teleportation logic on the SCRAM implant! (#26429)
* Replace the teleportation logic on the SCRAM implant!
Now instead of just trying to pick a random tile in range 20 times, the
scram teleportation logic now:
- Gets a list of grids in range
- Until a suitable tile is picked it picks a random grid
- From that grid it picks a random tile.
- If the tile is suitable, then it is set as the target and the user
will be teleported there.
- Grids and tiles are randomly picked as outlined above until a valid
tile is found, or all valid grids and tiles are exhausted.
- Should no suitable tile be found then they get teleported to the same
position they are at. Effectively not teleporting them.
* Actually make the defaults sane which I forgor in the last commit
* Extract tile section to its own function. Bias selection for current grid. Use proper coords for box.
* Address reviews as much as possible
* Address reviews
* Refactored AdvertiseComponent (#26598)
* Made it better
* ok
* alright
---------
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Bartender "Essentials" (#25367)
* drinks round 1
saving my progress before my hard drive explodes
* test 2
please work
* name fixes
whoops
* Update drinks.yml
* various fixes
am dumb
* add sol dry to vends
more fixes and changes, yippee!
* more fixes & ingame testing
shrimple tests
* last fixes :trollface:
should be ready for pr now
* Update soda.yml
sate thirst
* Automatic changelog update
* Add ERT Chaplain (#25956)
* ERT Chaplain
* Make BibleUser
* It was not intended
* reword my poor words
* 1984 a comment that I decided was unnecessary.
* Update Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Changes in chemicals page in guidebook (#25831)
* Added pages to chemical categories
The chemical categories have their own page now. Added the "Chemical Tabs" in /ServerInfo/Guidebook. Moved the Chemicals code from shiftsandjobs.yml to its own .yml file which is "chemicals.yml".
* Update guides.ftl
* Update chemicals.yml
Changed the guide entry's ID for the medical tab from Medicine to Medicinal.
Hope this works...
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Biological.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Foods.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Elements.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Narcotics.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Toxins.xml
Co-authored-by: exincore <me@exin.xyz>
* Fixed a few errors and stuff!
A few typos have been fixed thanks to exincore. Added dedicated .xml files to be used for the dedicated category pages (Medicinal and Botanical pages). Made it so it doesn't use any duplicated IDs anymore.
If there's more problems, please do tell so I can fix it!
* Update settings.json
* Fix?
---------
Co-authored-by: exincore <me@exin.xyz>
* Automatic changelog update
* Anomalies behaviours (#24683)
* Added new anomaly particle
* Add basic anomaly behaviour
* +2 parametres
* add functional to new particle
* add components to behaviours
* big content
* add shuffle, moved thing to server
* clean up
* fixes
* random pick redo
* bonjour behavioUr
* fix AJCM
* fix
* add some new behaviours
* power modifier behaviour
* rmeove timer
* new event for update ui fix
* refactor!
* fixes
* enum
* Fix mapinit
* Minor touches
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Fix clipping/overlap in lathe machine UIs (#26646)
* Add scrollbars to lathe material list when necessary
* Fix bug where shrinking window would cause elements to overlap
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Added chat window transparency slider to options (#24990)
* Adds a new slider to the misc tab in options that lets the player set chat window transparency
* Tweaked variable names
* Fixed order to match UI
* Renamed set chat window transparency function
* Changed and refactored to opacity instead of transparency
* Remove unnecessary int to float conversions
Slider used to be 0-100 while the CCVar was 0.0-1.0f. This is confusing and was only used for rounding to 2 decimal points.
* Round the value to two decimal points
* Remove rounding for now
* Rename
* Unhardcode chat color by moving to stylesheet
* Fix indent
* Make opacity slider only change opacity
---------
Co-authored-by: Your Name <you@example.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
* Automatic changelog update
* Infinity books (#25840)
* setup text data
* roundstart reshuffling keywords with gibberish words
* saved data categorized
* add book with hints
* start redrawing books
* +4 book design
* +books +random visual upgrade
* finish first file
* finish lore file
* finish with books.rsi now authorbooks.rsi...
* aurora! and some fix
* nuke author books
* speelbuke update
* finish respriting work
* fix scientist guide visual
* setup datasets
* setup stupid funny random story
* restore author books, upgrade hint generation
* add variety to story generator
* add learning system
* minor textgen edit
* file restruct, hint count variation
* more restruct
* more renaming
add basis learning system logic. Spears locked for special book for test.
* nuke all systems, for splitting PR gods
* typo fix
* update migration with deleted books
* add random story books to maint
* Update construction-system.ftl
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* typo fix
* interchangeably
* final
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* "."
* Update Content.Server/Paper/PaperRandomStorySystem.cs
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Ubazer fix
* inadequate
* localized
* Update meta.json
* fuck merge conflicts
* fix jani book
---------
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Automatic changelog update
* Resprite ambuzol plus pills (#26651)
* Automatic changelog update
* Fixed air injector visuals (#26654)
* Make cyborgs hands explosion proof. (#26515)
* Make the advanced treatment modules beakers explosion-proof.
* undo changes
* Epic rename fail
* Explosion recursion data field
* Logic for data field
* Automatic changelog update
* Automatic changelog update
* Make typing indicator shaded (#26678)
* Automatic changelog update
* Validate wire layout prototypes and remove invalid WiresComponents (#26682)
Validate wire layout prototypes; delete invalid wirescomponents.
* Increase time inbetween anomaly pulses (#26677)
nerf anomaly pulse delays
* Automatic changelog update
* Fix for items dropped being rotated to world north (#26662)
* Fix rotation of dropped items
* combined world position rotation function for dumpable
* scuffed implementation?
* less scuffed?
* even less scuffed... I guess
* capital D
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
* Automatic changelog update
* fix typo
---------
Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
Co-authored-by: Wrexbe (Josh) <81056464+wrexbe@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: wrexbe <wrexbe@protonmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
Co-authored-by: J. Brown <DrMelon@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: drteaspoon420 <87363733+drteaspoon420@users.noreply.github.com>
Co-authored-by: Bixkitts <72874643+Bixkitts@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: avery <51971268+graevy@users.noreply.github.com>
Co-authored-by: eoineoineoin <github@eoinrul.es>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
Co-authored-by: RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com>
Co-authored-by: Zealith-Gamer <61980908+Zealith-Gamer@users.noreply.github.com>
Co-authored-by: hamurlik <75280571+hamurlik@users.noreply.github.com>
Co-authored-by: hamurlik <renoDeath@protonmail.com>
Co-authored-by: no <165581243+pissdemon@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: SoulFN <164462467+SoulFN@users.noreply.github.com>
Co-authored-by: Keer-Sar <144283718+Keer-Sar@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: c4llv07e <38111072+c4llv07e@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Firewatch <54725557+musicmanvr@users.noreply.github.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: f0x-n3rd <150924715+f0x-n3rd@users.noreply.github.com>
Co-authored-by: exincore <me@exin.xyz>
Co-authored-by: Sk1tch <ben.peter.smith@gmail.com>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
Co-authored-by: osjarw <62134478+osjarw@users.noreply.github.com>
2024-04-03 10:33:34 +03:00
2022-11-14 08:33:54 +11:00
private const int AttackMask = ( int ) ( CollisionGroup . MobMask | CollisionGroup . Opaque ) ;
2023-05-08 17:46:26 +10:00
/// <summary>
/// Maximum amount of targets allowed for a wide-attack.
/// </summary>
public const int MaxTargets = 5 ;
2022-09-29 15:51:59 +10:00
/// <summary>
/// If an attack is released within this buffer it's assumed to be full damage.
/// </summary>
public const float GracePeriod = 0.05f ;
public override void Initialize ( )
{
base . Initialize ( ) ;
2022-11-04 12:18:00 +11:00
SubscribeLocalEvent < MeleeWeaponComponent , HandSelectedEvent > ( OnMeleeSelected ) ;
2023-06-08 02:15:39 +00:00
SubscribeLocalEvent < MeleeWeaponComponent , ShotAttemptedEvent > ( OnMeleeShotAttempted ) ;
2023-05-14 13:15:18 +10:00
SubscribeLocalEvent < MeleeWeaponComponent , GunShotEvent > ( OnMeleeShot ) ;
2023-05-28 03:03:25 -04:00
SubscribeLocalEvent < BonusMeleeDamageComponent , GetMeleeDamageEvent > ( OnGetBonusMeleeDamage ) ;
2023-06-07 16:26:45 -04:00
SubscribeLocalEvent < BonusMeleeDamageComponent , GetHeavyDamageModifierEvent > ( OnGetBonusHeavyDamageModifier ) ;
SubscribeLocalEvent < BonusMeleeAttackRateComponent , GetMeleeAttackRateEvent > ( OnGetBonusMeleeAttackRate ) ;
2022-09-29 15:51:59 +10:00
2024-01-03 17:24:02 +11:00
SubscribeLocalEvent < ItemToggleMeleeWeaponComponent , ItemToggledEvent > ( OnItemToggle ) ;
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 08:11:05 +02:00
2023-05-02 05:07:17 +10:00
SubscribeAllEvent < HeavyAttackEvent > ( OnHeavyAttack ) ;
2022-09-29 15:51:59 +10:00
SubscribeAllEvent < LightAttackEvent > ( OnLightAttack ) ;
SubscribeAllEvent < DisarmAttackEvent > ( OnDisarmAttack ) ;
SubscribeAllEvent < StopAttackEvent > ( OnStopAttack ) ;
2023-04-06 11:37:50 +12:00
#if DEBUG
Upstream, Yay (#27)
* Make BaseMedicalPDA abstract (#26567)
* Fix GasMixers/Filters not working (#26568)
* Fix GasMixers/Filters not working
* OKAY GAS FILTERS TOO
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
* Industrial Reagent Grinder Hotfix (#26571)
fixed
* Give stores the ability to check for owner only (#26573)
adds a check if the store belongs to the user
* Fix round start crash (causing instant restart) (#26579)
* Fix round start crash
* Make `TryCreateObjective` more error tolerant
* Update engine to v217.1.0 (#26588)
* Fix initial infected icon hiding (#26585)
* Fix Meta evac shuttle name (#26587)
* Make timer ignore client predict setting (#26554)
* Make timer ignore client predict setting
* making tests run
---------
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Make advertise system survive no map inits (#26553)
* Make advertise system survive no map inits
* Add comment to try prevent future bugs
* Update Credits (#26589)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Fix fox spawn on reach (#26584)
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Removes SCAF armor (#26566)
* removes scaf armor
* replace maint loot spawner spot with basic helmet
* Update Patrons.yml (#26578)
* Automatic changelog update
* Make aghost command work on other players using optional argument (#26546)
* Translations
* Make aghost command work on other players using optional argument
* Reviews
* Automatic changelog update
* Add new component to Make sound on interact (#26523)
* Adds new Component: EmitSoundOnInteractUsing
* Missed an import
* File-scoping
* Replace ID check with Prototype check
* Moved component and system to shared. Set prediction to true.
* Removed impoper imports and changed namespace of component to reflect changed folder.
* Following function naming theme
* All this code is basically deltanedas's, but it was a learning experience for me
* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs
* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Increase syndi duffelbag storage (#26565)
* Increase syndi duffelbag storage
* weh
* Automatic changelog update
* Adds construction/decon graphs for plastic flaps (#26341)
* Adds construction/decon graphs for plastic flaps
* Dang arbitrage
* undo conflict
---------
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
* Automatic changelog update
* Makes secglasses roundstart (#26487)
* makes secglasses roundstart
* fix epic fail
* fix tests questionmark?
* Update Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
---------
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* Automatic changelog update
* Toilet Upgrade (needs review) (#22133)
* Toilet Draft
* fixes
* toilets now have secret stash to place items in cistern.
* fixes
* plungers now unblock toilets.
* fix sprite
* new sprites and fix
* fixes
* improve seat sprites.
* fix
* removed visualisersystem changed to genericvisualizers
* flush sound for toilets and copyright for toilet sprites.
* fix atrributions
* fixes
* fix datafield flushtime
* sprite improvements
* fixes
* multiple changes
* fix
* fix
* fixes remove vv
* moved stash related functions to secret stash system from toilet.
* fix
* fix
* changes for recent review.
* fix
* fix
* Automatic changelog update
* Uplink store interface searchable with a searchbar. (#24287)
* Can now search the uplink store interface with a searchbar.
* Search text updates no longer send server messages. Persists listings locally.
* Formatting fixes and tidying.
* Added helper method to get localised name and description (or otherwise, entity name and description) of store listing items.
* Update Content.Client/Store/Ui/StoreMenu.xaml
* Review change; moved localisation helper functions to their own class.
* Prevent thread-unsafe behaviour as-per review.
* Remove dummy boxcontainer
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Improved RCDs (#22799)
* Initial radial menu prototyping for the RCD
* Radial UI buttons can send messages to the server
* Beginning to update RCDSystem
* RCD building system in progress
* Further updates
* Added extra effects, RCDSystem now reads RCD prototype data
* Replacing tiles is instant, multiple constructions are allowed, deconstruction is broken
* Added extra functionality to RadialContainers plus documentation
* Fixed localization of RCD UI strings
* Menu opens near cursor, added basic RCD
* Avoiding merge conflict
* Implemented atomized construction / deconstruction rules
* Increased RCD ammo base charges
* Moved input context definition to content
* Removed obsoleted code
* Updates to system
* Switch machine and computer frames for electrical cabling
* Added construction ghosts
* Fixed issue with keybind detection code
* Fixed RCD construction ghost mispredications
* Code clean up
* Updated deconstruction effects
* RCDs effects don't rotate
* Code clean up
* Balancing for ammo counts
* Code clean up
* Added missing localized strings
* More clean up
* Made directional window handling more robust
* Added documentation to radial menus and made them no longer dependent on Content
* Made radial containers more robust
* Further robustness to the radial menu
* The RCD submenu buttons are only shown when the destination layer has at least one children
* Expanded upon deconstructing plus construction balance
* Fixed line endings
* Updated list of RCD deconstructable entities. Now needs a component to deconstruct instead of a tag
* Bug fixes
* Revert unnecessary change
* Updated RCD strings
* Fixed bug
* More fixes
* Deconstructed tiles/subflooring convert to lattice instead
* Fixed failed tests (Linux doesn't like invalid spritespecifer paths)
* Fixing merge conflict
* Updated airlock assembly
* Fixing merge conflict
* Fixing merge conflict
* More fixing...
* Removed erroneous project file change
* Fixed string handling issue
* Trying to fix merge conflict
* Still fixing merge conflicts
* Balancing
* Hidden RCD construction ghosts when in 'build' mode
* Fixing merge conflict
* Implemented requested changes (Part 1)
* Added more requested changes
* Fix for failed test. Removed sussy null suppression
* Made requested changes - custom construction ghost system was replaced
* Fixing merge conflict
* Fixed merge conflict
* Fixed bug in RCD construction ghost validation
* Fixing merge conflict
* Merge conflict fixed
* Made required update
* Removed lingering RCD deconstruct tag
* Fixing merge conflict
* Merge conflict fixed
* Made requested changes
* Bug fixes and balancing
* Made string names more consistent
* Can no longer stack catwalks
* Automatic changelog update
* Update submodule to 217.2.0 (#26592)
* Southern accent (#26543)
* created the AccentComponent and the AccentSystem
* word replacement schtuhff
* made it a trait fr ongg!!1
* Update Content.Server/Speech/EntitySystems/SouthernAccentSystem.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Prevent storing liquids in equipped buckets (#24412)
* Block access to solutions in equipped spillables.
* Stop Drink verb appearing if the solution can't be accessed.
* Automatic changelog update
* Fix 'Hypopen shouldn't display solution examine text' (#26453)
* stealthy hypo
* ExaminableSolution hand check when in covert implement.
ExaminableSolution now has 'hidden' datafield to enable chemical inspection only in hand.
* cleaning code
* more cleaning
* Hidden datafield renamed to HeldOnly
* review
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Revert Paint (#26593)
* Revert "Fix build (#26258)"
This reverts commit 6de5fbfafbde700d711a566f6a43f05f7a99e455.
* Revert "Spray Paint (Review Ready) (#23003)"
This reverts commit e4d5e7f1aebfc37b1bc3453fdb39578f3897b6a1.
# Conflicts:
# Resources/Prototypes/Entities/Structures/Holographic/projections.yml
* Fix: Prevent single-use hyposprays from getting the toggle draw verb (#26595)
Prevent single-use hyposprays from getting the toggle draw verb
Co-authored-by: Plykiya <plykiya@protonmail.com>
* MeleeHitSoundSystem (#25005)
* Began work to unscrew melee noises
* finished
* cleanup
* cleanup
* Update Content.Server/Weapons/Melee/MeleeWeaponSystem.cs
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
* _Style
* Fix merge
---------
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Remove physics comp from VendingMachineWallmount (#25632)
* Remove physics comp from VendingMachineWallmount
* Fixtures removal
---------
Co-authored-by: Jeff <velcroboy333@hotmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Remake hairflowers (#25475)
* Add more lily usage (orange hairflower and flowercrown)
* comit 2
* ee
* more fixes
* w
* im stupid
* bring poppy in authodrobe
* weh
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Automatic changelog update
* Injector UI shows TransferAmount change, Spilling liquid changes Injector mode (#26596)
* Injector UI shows TransferAmount change, spill changes mode
* Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs
* Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update submodule to 217.2.1 (#26599)
* disallow unanchoring or opening panels on locked emitters/APEs (#26600)
* disallow unanchoring or opening panels on locked emitters/APEs
* no locking open panels
* oops
* needback feedback
* Update Content.Shared/Lock/LockSystem.cs
* Update Content.Shared/Lock/LockSystem.cs
* Update Content.Shared/Lock/LockSystem.cs
* sanity
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Fix grave digging sound indefinitely playing if dug by aghost. (#26420)
Admins bypass doafters. As such, the code that runs on doafter
completion is ran before the sound is actually created. This then leads
to the sound never being stopped, and as such it would infinitely play.
This commit gets around the issue by manually stopping the sound should
the doafter fail to start. If we could be sure that the doafter would
never fail, then we could just move the call to StartDigging above
starting the doafter but this is currently not possible.
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Make the buttons on the map ui not squished (#26604)
Make the map ui work
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Combine flower crown and wreath (#26605)
* Combine flower crown and wreath
* huh
* huuh :trollface:
* Automatic changelog update
* Add AP damage to throwing knives (#26380)
* add
* ap
* no more stam dmg
* Automatic changelog update
* cancelable brig timers (#26557)
brig timers now cancelable. also some screensystem yakshave
* Fix orientation of roller skate sprites (#26627)
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Automatic changelog update
* Fix GastTileOverlay sending redundant data (#26623)
Fix GastTileOverlay not updating properly
* Auto DeAdmin sooner (#26551)
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Add briefcase to curadrobe and lawdrobe, and some briefcases cleanup (#26527)
* Add briefcase to curadrobe and some briefcases cleanup
* also add to lawdrobe
* Automatic changelog update
* Fix some text overflow bugs in HUD (#26615)
* Don't clip text in item status
* Fix overflow in examine tooltip
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Adds two milk cartons to the BoozeOMat (#26635)
* Automatic changelog update
* made the hover text less vague (sorry) (#26630)
* blacklisted throwing knifes from pneumatic cannon (#26628)
* Fix radio jammer not blocking suit sensors. (#26632)
As it turns out, they are not in fact on their own netid. They are
actually just on wireless. The way I had tested my previous pr led to
this mistake being made. I originally had the radio jammer block
wireless as well, but decided to take out under the flase assumption
that it suit sensors were actually on their own netid and did not
require the ability to block all wireless packets at the last moment.
* Fix dirt decals in reach not being cleanable (#26636)
made all dirt decals cleanable
Co-authored-by: hamurlik <renoDeath@protonmail.com>
* Automatic changelog update
* Replace drill_hit.ogg and drill_use.ogg with better sounds (#26622)
* Replace drill_hit.ogg and drill_use.ogg with better sounds
* Fix attribution source for drill_hit.ogg
* Update Resources/Audio/Items/attributions.yml
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Update Resources/Audio/Items/attributions.yml
Co-authored-by: Kara <lunarautomaton6@gmail.com>
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Gave Blast door access permissions (#26606)
Added access reader to all blast doors. Added pre configured blast doors for engineering and science.
* Gives all wheeled objects low friction (#26601)
* gives all wheeled objects friction
* adjustments to sum stuff
* Automatic changelog update
* Combine solution injection systems; Fix embeddable injectors (#26268)
* Combine injection systems
* Update Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Automatic changelog update
* Add ValueList import (#26640)
* Change assault borg modules texture (#26502)
* Update borg_modules.yml
* Fix borg_modules.yml?
* Uh
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Add Cyborg Emote Sounds (#26594)
* Hal 9000's first emote
* Add Chime emote & Change variation to 0.05
* Modify Buzz emote
* Add Buzz-two emote
* modified Horn
* add ping emote
* add slowclap emote
* Convert slowclap.ogg to mono, reflect change in attribution.yml
* fix capitalization for all chatMessages && change all catagory to category
* remove all traces of slowclap.ogg
* forgor one file smh
* collating copywrite
* spelling mistakes will be the death of me
* more spelling mistakes
* change yml string to list
* Automatic changelog update
* Coordinates Disks & Shuttle FTL Travel (#23240)
* Adds the CentComm Disk and configures it to work with direct-use shuttles
* Added functionality for drone shuttles (i.e. cargo shuttle)
* Adds support for pods, and a disk console object for disks to be inserted into. Also sprites.
* Added the disk to HoP's locker
* Removed leftover logs & comments
* Fix for integration test
* Apply suggestions from code review (formatting & proper DataField)
Co-authored-by: 0x6273 <0x40@keemail.me>
* Fix integration test & changes based on code review
* Includes Disk Cases to contain Coordinate Disks, which are now CDs instead of Floppy Disks
* Check pods & non-evac shuttles for CentCom travel, even in FTL
* Import
* Remove CentCom travel restrictions & pod disk consoles
* Major changes that changes the coordinates disk system to work with salvage expeditions
* Missed CC diskcase removal
* Fix build
* Review suggestions and changes
* Major additional changes after merge
* Minor tag miss
* Integration test fix
* review
---------
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Add door electronics access configuration menu (#17778)
* Add door electronics configuration menu
* Use file-scoped namespaces
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Open door electronics configuration menu only with network configurator
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Doors will now try to move their AccessReaderComponent to their door electronics when the map is initialized
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Make the access list in the id card computer a separate control
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix merge conflict
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove DoorElectronics tag
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Integrate doors with #17927
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Move door electornics ui stuff to the right place
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Some review fixes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* More fixes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* review fix
Signed-off-by: c4llv07e <kseandi@gmail.com>
* move all accesses from airlock prototypes to door electronics
Signed-off-by: c4llv07e <kseandi@gmail.com>
* rework door electronics config access list
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove Linq from the door electronics user interface
* [WIP] Add EntityWhitelist to the activatable ui component
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Better interaction system
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Refactor
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix some door electronics not working without AccessReaderComponent
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Move AccessReaderComponent update code to the AccessReaderSystem
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unnecesary newlines in the door access prototypes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unused variables in access level control
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unnecessary method from the door electronics configuration menu
Signed-off-by: c4llv07e <kseandi@gmail.com>
* [WIP] change access type from string to ProtoId<AccessLevelPrototype>
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unused methods
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Newline fix
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Restored to a functional state
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix access configurator not working with door electronics AccessReaderComponent
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Replace all string access fields with ProtoId
Signed-off-by: c4llv07e <kseandi@gmail.com>
* move access level control initialization into Populate method
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Review
---------
Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* scoopable ash and foam, solution transfer prediction (#25832)
* move SolutionTransfer to shared and predict as much as possible
* fully move OpenableSystem to shared now that SolutionTransfer is
* fix imports for everything
* doc for solution transfer system
* trolling
* add scoopable system
* make ash and foam scoopable
* untroll
* untroll real
* make clickable it work
* troll
* the scooping room
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Replace the teleportation logic on the SCRAM implant! (#26429)
* Replace the teleportation logic on the SCRAM implant!
Now instead of just trying to pick a random tile in range 20 times, the
scram teleportation logic now:
- Gets a list of grids in range
- Until a suitable tile is picked it picks a random grid
- From that grid it picks a random tile.
- If the tile is suitable, then it is set as the target and the user
will be teleported there.
- Grids and tiles are randomly picked as outlined above until a valid
tile is found, or all valid grids and tiles are exhausted.
- Should no suitable tile be found then they get teleported to the same
position they are at. Effectively not teleporting them.
* Actually make the defaults sane which I forgor in the last commit
* Extract tile section to its own function. Bias selection for current grid. Use proper coords for box.
* Address reviews as much as possible
* Address reviews
* Refactored AdvertiseComponent (#26598)
* Made it better
* ok
* alright
---------
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Bartender "Essentials" (#25367)
* drinks round 1
saving my progress before my hard drive explodes
* test 2
please work
* name fixes
whoops
* Update drinks.yml
* various fixes
am dumb
* add sol dry to vends
more fixes and changes, yippee!
* more fixes & ingame testing
shrimple tests
* last fixes :trollface:
should be ready for pr now
* Update soda.yml
sate thirst
* Automatic changelog update
* Add ERT Chaplain (#25956)
* ERT Chaplain
* Make BibleUser
* It was not intended
* reword my poor words
* 1984 a comment that I decided was unnecessary.
* Update Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Changes in chemicals page in guidebook (#25831)
* Added pages to chemical categories
The chemical categories have their own page now. Added the "Chemical Tabs" in /ServerInfo/Guidebook. Moved the Chemicals code from shiftsandjobs.yml to its own .yml file which is "chemicals.yml".
* Update guides.ftl
* Update chemicals.yml
Changed the guide entry's ID for the medical tab from Medicine to Medicinal.
Hope this works...
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Biological.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Foods.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Elements.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Narcotics.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Toxins.xml
Co-authored-by: exincore <me@exin.xyz>
* Fixed a few errors and stuff!
A few typos have been fixed thanks to exincore. Added dedicated .xml files to be used for the dedicated category pages (Medicinal and Botanical pages). Made it so it doesn't use any duplicated IDs anymore.
If there's more problems, please do tell so I can fix it!
* Update settings.json
* Fix?
---------
Co-authored-by: exincore <me@exin.xyz>
* Automatic changelog update
* Anomalies behaviours (#24683)
* Added new anomaly particle
* Add basic anomaly behaviour
* +2 parametres
* add functional to new particle
* add components to behaviours
* big content
* add shuffle, moved thing to server
* clean up
* fixes
* random pick redo
* bonjour behavioUr
* fix AJCM
* fix
* add some new behaviours
* power modifier behaviour
* rmeove timer
* new event for update ui fix
* refactor!
* fixes
* enum
* Fix mapinit
* Minor touches
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Fix clipping/overlap in lathe machine UIs (#26646)
* Add scrollbars to lathe material list when necessary
* Fix bug where shrinking window would cause elements to overlap
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Added chat window transparency slider to options (#24990)
* Adds a new slider to the misc tab in options that lets the player set chat window transparency
* Tweaked variable names
* Fixed order to match UI
* Renamed set chat window transparency function
* Changed and refactored to opacity instead of transparency
* Remove unnecessary int to float conversions
Slider used to be 0-100 while the CCVar was 0.0-1.0f. This is confusing and was only used for rounding to 2 decimal points.
* Round the value to two decimal points
* Remove rounding for now
* Rename
* Unhardcode chat color by moving to stylesheet
* Fix indent
* Make opacity slider only change opacity
---------
Co-authored-by: Your Name <you@example.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
* Automatic changelog update
* Infinity books (#25840)
* setup text data
* roundstart reshuffling keywords with gibberish words
* saved data categorized
* add book with hints
* start redrawing books
* +4 book design
* +books +random visual upgrade
* finish first file
* finish lore file
* finish with books.rsi now authorbooks.rsi...
* aurora! and some fix
* nuke author books
* speelbuke update
* finish respriting work
* fix scientist guide visual
* setup datasets
* setup stupid funny random story
* restore author books, upgrade hint generation
* add variety to story generator
* add learning system
* minor textgen edit
* file restruct, hint count variation
* more restruct
* more renaming
add basis learning system logic. Spears locked for special book for test.
* nuke all systems, for splitting PR gods
* typo fix
* update migration with deleted books
* add random story books to maint
* Update construction-system.ftl
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* typo fix
* interchangeably
* final
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* "."
* Update Content.Server/Paper/PaperRandomStorySystem.cs
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Ubazer fix
* inadequate
* localized
* Update meta.json
* fuck merge conflicts
* fix jani book
---------
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Automatic changelog update
* Resprite ambuzol plus pills (#26651)
* Automatic changelog update
* Fixed air injector visuals (#26654)
* Make cyborgs hands explosion proof. (#26515)
* Make the advanced treatment modules beakers explosion-proof.
* undo changes
* Epic rename fail
* Explosion recursion data field
* Logic for data field
* Automatic changelog update
* Automatic changelog update
* Make typing indicator shaded (#26678)
* Automatic changelog update
* Validate wire layout prototypes and remove invalid WiresComponents (#26682)
Validate wire layout prototypes; delete invalid wirescomponents.
* Increase time inbetween anomaly pulses (#26677)
nerf anomaly pulse delays
* Automatic changelog update
* Fix for items dropped being rotated to world north (#26662)
* Fix rotation of dropped items
* combined world position rotation function for dumpable
* scuffed implementation?
* less scuffed?
* even less scuffed... I guess
* capital D
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
* Automatic changelog update
* fix typo
---------
Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
Co-authored-by: Wrexbe (Josh) <81056464+wrexbe@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: wrexbe <wrexbe@protonmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
Co-authored-by: J. Brown <DrMelon@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: drteaspoon420 <87363733+drteaspoon420@users.noreply.github.com>
Co-authored-by: Bixkitts <72874643+Bixkitts@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: avery <51971268+graevy@users.noreply.github.com>
Co-authored-by: eoineoineoin <github@eoinrul.es>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
Co-authored-by: RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com>
Co-authored-by: Zealith-Gamer <61980908+Zealith-Gamer@users.noreply.github.com>
Co-authored-by: hamurlik <75280571+hamurlik@users.noreply.github.com>
Co-authored-by: hamurlik <renoDeath@protonmail.com>
Co-authored-by: no <165581243+pissdemon@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: SoulFN <164462467+SoulFN@users.noreply.github.com>
Co-authored-by: Keer-Sar <144283718+Keer-Sar@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: c4llv07e <38111072+c4llv07e@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Firewatch <54725557+musicmanvr@users.noreply.github.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: f0x-n3rd <150924715+f0x-n3rd@users.noreply.github.com>
Co-authored-by: exincore <me@exin.xyz>
Co-authored-by: Sk1tch <ben.peter.smith@gmail.com>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
Co-authored-by: osjarw <62134478+osjarw@users.noreply.github.com>
2024-04-03 10:33:34 +03:00
SubscribeLocalEvent < MeleeWeaponComponent ,
MapInitEvent > ( OnMapInit ) ;
2023-04-06 11:37:50 +12:00
}
private void OnMapInit ( EntityUid uid , MeleeWeaponComponent component , MapInitEvent args )
{
2023-05-01 14:49:25 +10:00
if ( component . NextAttack > Timing . CurTime )
2023-06-27 23:56:52 +10:00
Log . Warning ( $"Initializing a map that contains an entity that is on cooldown. Entity: {ToPrettyString(uid)}" ) ;
2023-04-06 11:37:50 +12:00
#endif
2022-09-29 15:51:59 +10:00
}
2023-06-08 02:15:39 +00:00
private void OnMeleeShotAttempted ( EntityUid uid , MeleeWeaponComponent comp , ref ShotAttemptedEvent args )
{
if ( comp . NextAttack > Timing . CurTime )
args . Cancel ( ) ;
}
2023-05-14 13:15:18 +10:00
private void OnMeleeShot ( EntityUid uid , MeleeWeaponComponent component , ref GunShotEvent args )
{
if ( ! TryComp < GunComponent > ( uid , out var gun ) )
return ;
if ( gun . NextFire > component . NextAttack )
{
component . NextAttack = gun . NextFire ;
2025-03-30 16:02:45 +11:00
DirtyField ( uid , component , nameof ( MeleeWeaponComponent . NextAttack ) ) ;
2023-05-14 13:15:18 +10:00
}
}
2022-11-04 12:18:00 +11:00
private void OnMeleeSelected ( EntityUid uid , MeleeWeaponComponent component , HandSelectedEvent args )
{
2023-06-07 16:26:45 -04:00
var attackRate = GetAttackRate ( uid , args . User , component ) ;
if ( attackRate . Equals ( 0f ) )
2022-11-04 12:18:00 +11:00
return ;
2023-01-27 03:04:26 +02:00
if ( ! component . ResetOnHandSelected )
return ;
2023-04-06 11:37:50 +12:00
if ( Paused ( uid ) )
return ;
2022-11-04 12:18:00 +11:00
// If someone swaps to this weapon then reset its cd.
var curTime = Timing . CurTime ;
2023-06-07 16:26:45 -04:00
var minimum = curTime + TimeSpan . FromSeconds ( 1 / attackRate ) ;
2022-11-04 12:18:00 +11:00
if ( minimum < component . NextAttack )
return ;
component . NextAttack = minimum ;
2025-03-30 16:02:45 +11:00
DirtyField ( uid , component , nameof ( MeleeWeaponComponent . NextAttack ) ) ;
2022-11-04 12:18:00 +11:00
}
2023-05-28 03:03:25 -04:00
private void OnGetBonusMeleeDamage ( EntityUid uid , BonusMeleeDamageComponent component , ref GetMeleeDamageEvent args )
{
2023-06-07 16:26:45 -04:00
if ( component . BonusDamage ! = null )
args . Damage + = component . BonusDamage ;
if ( component . DamageModifierSet ! = null )
args . Modifiers . Add ( component . DamageModifierSet ) ;
}
private void OnGetBonusHeavyDamageModifier ( EntityUid uid , BonusMeleeDamageComponent component , ref GetHeavyDamageModifierEvent args )
{
args . DamageModifier + = component . HeavyDamageFlatModifier ;
args . Multipliers * = component . HeavyDamageMultiplier ;
}
private void OnGetBonusMeleeAttackRate ( EntityUid uid , BonusMeleeAttackRateComponent component , ref GetMeleeAttackRateEvent args )
{
args . Rate + = component . FlatModifier ;
args . Multipliers * = component . Multiplier ;
}
2022-09-29 15:51:59 +10:00
private void OnStopAttack ( StopAttackEvent msg , EntitySessionEventArgs args )
{
var user = args . SenderSession . AttachedEntity ;
if ( user = = null )
return ;
2023-03-12 15:56:05 +11:00
if ( ! TryGetWeapon ( user . Value , out var weaponUid , out var weapon ) | |
2023-09-11 09:42:41 +10:00
weaponUid ! = GetEntity ( msg . Weapon ) )
2023-03-12 15:56:05 +11:00
{
2022-09-29 15:51:59 +10:00
return ;
2023-03-12 15:56:05 +11:00
}
2022-09-29 15:51:59 +10:00
if ( ! weapon . Attacking )
return ;
weapon . Attacking = false ;
2025-03-30 16:02:45 +11:00
DirtyField ( weaponUid , weapon , nameof ( MeleeWeaponComponent . Attacking ) ) ;
2022-09-29 15:51:59 +10:00
}
private void OnLightAttack ( LightAttackEvent msg , EntitySessionEventArgs args )
{
2024-05-25 15:13:24 +12:00
if ( args . SenderSession . AttachedEntity is not { } user )
2022-09-29 15:51:59 +10:00
return ;
2024-05-25 15:13:24 +12:00
if ( ! TryGetWeapon ( user , out var weaponUid , out var weapon ) | |
2023-09-11 09:42:41 +10:00
weaponUid ! = GetEntity ( msg . Weapon ) )
2023-03-12 15:56:05 +11:00
{
2022-09-29 15:51:59 +10:00
return ;
2023-03-12 15:56:05 +11:00
}
2022-09-29 15:51:59 +10:00
2024-05-25 15:13:24 +12:00
AttemptAttack ( user , weaponUid , weapon , msg , args . SenderSession ) ;
2022-09-29 15:51:59 +10:00
}
private void OnHeavyAttack ( HeavyAttackEvent msg , EntitySessionEventArgs args )
{
2024-05-25 15:13:24 +12:00
if ( args . SenderSession . AttachedEntity is not { } user )
2022-09-29 15:51:59 +10:00
return ;
2024-05-25 15:13:24 +12:00
if ( ! TryGetWeapon ( user , out var weaponUid , out var weapon ) | |
2023-09-11 09:42:41 +10:00
weaponUid ! = GetEntity ( msg . Weapon ) )
2023-03-12 15:56:05 +11:00
{
2022-09-29 15:51:59 +10:00
return ;
2023-03-12 15:56:05 +11:00
}
2022-09-29 15:51:59 +10:00
2024-05-25 15:13:24 +12:00
AttemptAttack ( user , weaponUid , weapon , msg , args . SenderSession ) ;
2022-09-29 15:51:59 +10:00
}
private void OnDisarmAttack ( DisarmAttackEvent msg , EntitySessionEventArgs args )
{
2024-05-25 15:13:24 +12:00
if ( args . SenderSession . AttachedEntity is not { } user )
2022-09-29 15:51:59 +10:00
return ;
2024-05-25 15:13:24 +12:00
if ( TryGetWeapon ( user , out var weaponUid , out var weapon ) )
AttemptAttack ( user , weaponUid , weapon , msg , args . SenderSession ) ;
2022-09-29 15:51:59 +10:00
}
2023-06-07 16:26:45 -04:00
/// <summary>
/// Gets the total damage a weapon does, including modifiers like wielding and enablind/disabling
/// </summary>
public DamageSpecifier GetDamage ( EntityUid uid , EntityUid user , MeleeWeaponComponent ? component = null )
2023-05-28 03:03:25 -04:00
{
if ( ! Resolve ( uid , ref component , false ) )
return new DamageSpecifier ( ) ;
2025-02-18 08:28:42 +01:00
var ev = new GetMeleeDamageEvent ( uid , new ( component . Damage * Damageable . UniversalMeleeDamageModifier ) , new ( ) , user , component . ResistanceBypass ) ;
2023-06-07 16:26:45 -04:00
RaiseLocalEvent ( uid , ref ev ) ;
return DamageSpecifier . ApplyModifierSets ( ev . Damage , ev . Modifiers ) ;
}
public float GetAttackRate ( EntityUid uid , EntityUid user , MeleeWeaponComponent ? component = null )
{
if ( ! Resolve ( uid , ref component ) )
return 0 ;
var ev = new GetMeleeAttackRateEvent ( uid , component . AttackRate , 1 , user ) ;
RaiseLocalEvent ( uid , ref ev ) ;
return ev . Rate * ev . Multipliers ;
}
public FixedPoint2 GetHeavyDamageModifier ( EntityUid uid , EntityUid user , MeleeWeaponComponent ? component = null )
{
if ( ! Resolve ( uid , ref component ) )
return FixedPoint2 . Zero ;
2023-09-06 18:30:23 +10:00
var ev = new GetHeavyDamageModifierEvent ( uid , component . ClickDamageModifier , 1 , user ) ;
2023-06-07 16:26:45 -04:00
RaiseLocalEvent ( uid , ref ev ) ;
return ev . DamageModifier * ev . Multipliers ;
}
2024-08-10 20:05:54 -07:00
public bool GetResistanceBypass ( EntityUid uid , EntityUid user , MeleeWeaponComponent ? component = null )
{
if ( ! Resolve ( uid , ref component ) )
return false ;
2025-02-18 08:28:42 +01:00
var ev = new GetMeleeDamageEvent ( uid , new ( component . Damage * Damageable . UniversalMeleeDamageModifier ) , new ( ) , user , component . ResistanceBypass ) ;
2024-08-10 20:05:54 -07:00
RaiseLocalEvent ( uid , ref ev ) ;
return ev . ResistanceBypass ;
}
2023-03-12 15:56:05 +11:00
public bool TryGetWeapon ( EntityUid entity , out EntityUid weaponUid , [ NotNullWhen ( true ) ] out MeleeWeaponComponent ? melee )
2022-09-29 15:51:59 +10:00
{
2023-03-12 15:56:05 +11:00
weaponUid = default ;
melee = null ;
2022-09-29 15:51:59 +10:00
2022-12-10 12:05:39 -05:00
var ev = new GetMeleeWeaponEvent ( ) ;
RaiseLocalEvent ( entity , ev ) ;
if ( ev . Handled )
{
2023-03-12 15:56:05 +11:00
if ( TryComp ( ev . Weapon , out melee ) )
{
weaponUid = ev . Weapon . Value ;
return true ;
}
return false ;
2022-12-10 12:05:39 -05:00
}
2022-09-29 15:51:59 +10:00
// Use inhands entity if we got one.
2025-06-25 09:13:03 -04:00
if ( _hands . TryGetActiveItem ( entity , out var held ) )
2022-09-29 15:51:59 +10:00
{
2024-04-17 03:10:03 -07:00
// Make sure the entity is a weapon AND it doesn't need
// to be equipped to be used (E.g boxing gloves).
2025-06-26 19:50:49 -04:00
if ( TryComp ( held , out melee ) & &
2024-04-17 03:10:03 -07:00
! melee . MustBeEquippedToUse )
2022-09-29 15:51:59 +10:00
{
2025-06-25 09:13:03 -04:00
weaponUid = held . Value ;
2023-03-12 15:56:05 +11:00
return true ;
2022-09-29 15:51:59 +10:00
}
2024-07-10 21:48:00 -07:00
if ( ! HasComp < VirtualItemComponent > ( held ) )
return false ;
2022-09-29 15:51:59 +10:00
}
2022-10-16 07:20:05 +11:00
// Use hands clothing if applicable.
2023-03-12 15:56:05 +11:00
if ( _inventory . TryGetSlotEntity ( entity , "gloves" , out var gloves ) & &
2022-10-16 07:20:05 +11:00
TryComp < MeleeWeaponComponent > ( gloves , out var glovesMelee ) )
{
2023-03-12 15:56:05 +11:00
weaponUid = gloves . Value ;
melee = glovesMelee ;
return true ;
2022-10-16 07:20:05 +11:00
}
// Use our own melee
2022-09-29 15:51:59 +10:00
if ( TryComp ( entity , out melee ) )
{
2023-03-12 15:56:05 +11:00
weaponUid = entity ;
return true ;
2022-09-29 15:51:59 +10:00
}
2023-03-12 15:56:05 +11:00
return false ;
2022-09-29 15:51:59 +10:00
}
2022-12-12 00:37:09 +11:00
2023-02-13 07:55:39 -05:00
public void AttemptLightAttackMiss ( EntityUid user , EntityUid weaponUid , MeleeWeaponComponent weapon , EntityCoordinates coordinates )
2022-12-12 00:37:09 +11:00
{
2023-09-11 09:42:41 +10:00
AttemptAttack ( user , weaponUid , weapon , new LightAttackEvent ( null , GetNetEntity ( weaponUid ) , GetNetCoordinates ( coordinates ) ) , null ) ;
2022-12-12 00:37:09 +11:00
}
2022-09-29 15:51:59 +10:00
2023-07-06 14:42:17 +10:00
public bool AttemptLightAttack ( EntityUid user , EntityUid weaponUid , MeleeWeaponComponent weapon , EntityUid target )
2022-09-29 15:51:59 +10:00
{
2024-05-21 17:40:35 +12:00
if ( ! TryComp ( target , out TransformComponent ? targetXform ) )
2023-07-06 14:42:17 +10:00
return false ;
2022-09-29 15:51:59 +10:00
2023-09-11 09:42:41 +10:00
return AttemptAttack ( user , weaponUid , weapon , new LightAttackEvent ( GetNetEntity ( target ) , GetNetEntity ( weaponUid ) , GetNetCoordinates ( targetXform . Coordinates ) ) , null ) ;
2022-09-29 15:51:59 +10:00
}
2023-07-06 14:42:17 +10:00
public bool AttemptDisarmAttack ( EntityUid user , EntityUid weaponUid , MeleeWeaponComponent weapon , EntityUid target )
2022-09-29 15:51:59 +10:00
{
2024-05-21 17:40:35 +12:00
if ( ! TryComp ( target , out TransformComponent ? targetXform ) )
2023-07-06 14:42:17 +10:00
return false ;
2022-09-29 15:51:59 +10:00
2023-09-11 09:42:41 +10:00
return AttemptAttack ( user , weaponUid , weapon , new DisarmAttackEvent ( GetNetEntity ( target ) , GetNetCoordinates ( targetXform . Coordinates ) ) , null ) ;
2022-09-29 15:51:59 +10:00
}
/// <summary>
/// Called when a windup is finished and an attack is tried.
/// </summary>
2023-07-06 14:42:17 +10:00
/// <returns>True if attack successful</returns>
private bool AttemptAttack ( EntityUid user , EntityUid weaponUid , MeleeWeaponComponent weapon , AttackEvent attack , ICommonSession ? session )
2022-09-29 15:51:59 +10:00
{
var curTime = Timing . CurTime ;
if ( weapon . NextAttack > curTime )
2023-07-06 14:42:17 +10:00
return false ;
2022-09-29 15:51:59 +10:00
2022-10-04 12:50:09 +11:00
if ( ! CombatMode . IsInCombatMode ( user ) )
2023-07-06 14:42:17 +10:00
return false ;
2022-10-04 12:50:09 +11:00
2024-05-25 15:13:24 +12:00
EntityUid ? target = null ;
2022-12-17 14:47:15 +11:00
switch ( attack )
{
case LightAttackEvent light :
2024-05-25 15:13:24 +12:00
if ( light . Target ! = null & & ! TryGetEntity ( light . Target , out target ) )
{
// Target was lightly attacked & deleted.
return false ;
}
2023-09-11 09:42:41 +10:00
2024-05-25 15:13:24 +12:00
if ( ! Blocker . CanAttack ( user , target , ( weaponUid , weapon ) ) )
2023-07-06 14:42:17 +10:00
return false ;
2023-07-07 18:45:37 +10:00
// Can't self-attack if you're the weapon
2024-05-25 15:13:24 +12:00
if ( weaponUid = = target )
2023-07-07 18:45:37 +10:00
return false ;
2022-12-17 14:47:15 +11:00
break ;
case DisarmAttackEvent disarm :
2024-05-25 15:13:24 +12:00
if ( disarm . Target ! = null & & ! TryGetEntity ( disarm . Target , out target ) )
{
// Target was lightly attacked & deleted.
return false ;
}
2023-09-11 09:42:41 +10:00
2024-05-25 15:13:24 +12:00
if ( ! Blocker . CanAttack ( user , target , ( weaponUid , weapon ) , true ) )
2023-07-06 14:42:17 +10:00
return false ;
2022-12-17 14:47:15 +11:00
break ;
default :
2023-12-27 02:55:48 -07:00
if ( ! Blocker . CanAttack ( user , weapon : ( weaponUid , weapon ) ) )
2023-07-06 14:42:17 +10:00
return false ;
2022-12-17 14:47:15 +11:00
break ;
}
2022-09-29 15:51:59 +10:00
// Windup time checked elsewhere.
2023-06-07 16:26:45 -04:00
var fireRate = TimeSpan . FromSeconds ( 1f / GetAttackRate ( weaponUid , user , weapon ) ) ;
2023-05-14 13:15:18 +10:00
var swings = 0 ;
2022-09-29 15:51:59 +10:00
2023-05-14 13:15:18 +10:00
// TODO: If we get autoattacks then probably need a shotcounter like guns so we can do timing properly.
2022-09-29 15:51:59 +10:00
if ( weapon . NextAttack < curTime )
weapon . NextAttack = curTime ;
2023-05-14 13:15:18 +10:00
while ( weapon . NextAttack < = curTime )
{
weapon . NextAttack + = fireRate ;
swings + + ;
}
2022-09-29 15:51:59 +10:00
2025-03-30 16:02:45 +11:00
DirtyField ( weaponUid , weapon , nameof ( MeleeWeaponComponent . NextAttack ) ) ;
2022-09-29 15:51:59 +10:00
2023-05-14 13:15:18 +10:00
// Do this AFTER attack so it doesn't spam every tick
var ev = new AttemptMeleeEvent ( ) ;
RaiseLocalEvent ( weaponUid , ref ev ) ;
2024-11-18 14:40:52 +03:00
//CrystallEdge melee improvment
2024-04-05 20:19:33 +03:00
if ( weapon . CPSwingBeverage )
weapon . SwingLeft = ! weapon . SwingLeft ;
2024-11-18 14:40:52 +03:00
//CrystallEdge melee improvment end
2024-04-05 20:19:33 +03:00
2023-05-14 13:15:18 +10:00
if ( ev . Cancelled )
2022-09-29 15:51:59 +10:00
{
2023-05-14 13:15:18 +10:00
if ( ev . Message ! = null )
{
PopupSystem . PopupClient ( ev . Message , weaponUid , user ) ;
}
2022-10-15 15:14:07 +11:00
2023-07-06 14:42:17 +10:00
return false ;
2023-05-14 13:15:18 +10:00
}
// Attack confirmed
for ( var i = 0 ; i < swings ; i + + )
{
string animation ;
switch ( attack )
{
case LightAttackEvent light :
DoLightAttack ( user , light , weaponUid , weapon , session ) ;
2023-09-28 16:20:29 -07:00
animation = weapon . Animation ;
2023-05-14 13:15:18 +10:00
break ;
case DisarmAttackEvent disarm :
if ( ! DoDisarm ( user , disarm , weaponUid , weapon , session ) )
2023-07-06 14:42:17 +10:00
return false ;
2023-05-14 13:15:18 +10:00
2023-09-28 16:20:29 -07:00
animation = weapon . Animation ;
2023-05-14 13:15:18 +10:00
break ;
case HeavyAttackEvent heavy :
2023-08-06 12:55:38 +10:00
if ( ! DoHeavyAttack ( user , heavy , weaponUid , weapon , session ) )
return false ;
2023-05-14 13:15:18 +10:00
animation = weapon . WideAnimation ;
break ;
default :
throw new NotImplementedException ( ) ;
}
2024-10-14 00:40:59 -05:00
DoLungeAnimation ( user , weaponUid , weapon . Angle , TransformSystem . ToMapCoordinates ( GetCoordinates ( attack . Coordinates ) ) , weapon . Range , animation ) ;
2022-09-29 15:51:59 +10:00
}
2023-10-11 03:55:53 +01:00
var attackEv = new MeleeAttackEvent ( weaponUid ) ;
RaiseLocalEvent ( user , ref attackEv ) ;
2022-09-29 15:51:59 +10:00
weapon . Attacking = true ;
2025-03-30 16:02:45 +11:00
DirtyField ( weaponUid , weapon , nameof ( MeleeWeaponComponent . Attacking ) ) ;
2023-07-06 14:42:17 +10:00
return true ;
2022-09-29 15:51:59 +10:00
}
2022-11-14 08:33:54 +11:00
protected abstract bool InRange ( EntityUid user , EntityUid target , float range , ICommonSession ? session ) ;
2023-02-13 07:55:39 -05:00
protected virtual void DoLightAttack ( EntityUid user , LightAttackEvent ev , EntityUid meleeUid , MeleeWeaponComponent component , ICommonSession ? session )
2022-09-29 15:51:59 +10:00
{
2023-08-06 16:01:44 +00:00
// If I do not come back later to fix Light Attacks being Heavy Attacks you can throw me in the spider pit -Errant
var damage = GetDamage ( meleeUid , user , component ) * GetHeavyDamageModifier ( meleeUid , user , component ) ;
2023-09-11 09:42:41 +10:00
var target = GetEntity ( ev . Target ) ;
2024-08-10 20:05:54 -07:00
var resistanceBypass = GetResistanceBypass ( meleeUid , user , component ) ;
2023-02-13 07:55:39 -05:00
// For consistency with wide attacks stuff needs damageable.
2023-09-11 09:42:41 +10:00
if ( Deleted ( target ) | |
! HasComp < DamageableComponent > ( target ) | |
2024-05-21 17:40:35 +12:00
! TryComp ( target , out TransformComponent ? targetXform ) | |
2023-02-13 07:55:39 -05:00
// Not in LOS.
2023-09-11 09:42:41 +10:00
! InRange ( user , target . Value , component . Range , session ) )
2022-11-14 08:33:54 +11:00
{
2023-02-13 07:55:39 -05:00
// Leave IsHit set to true, because the only time it's set to false
// is when a melee weapon is examined. Misses are inferred from an
// empty HitEntities.
// TODO: This needs fixing
2023-08-04 21:17:13 -05:00
if ( meleeUid = = user )
{
2024-10-14 00:40:59 -05:00
AdminLogger . Add ( LogType . MeleeHit ,
LogImpact . Low ,
2023-08-04 21:17:13 -05:00
$"{ToPrettyString(user):actor} melee attacked (light) using their hands and missed" ) ;
}
else
{
2024-10-14 00:40:59 -05:00
AdminLogger . Add ( LogType . MeleeHit ,
LogImpact . Low ,
2023-08-04 21:17:13 -05:00
$"{ToPrettyString(user):actor} melee attacked (light) using {ToPrettyString(meleeUid):tool} and missed" ) ;
}
Rethinking equipment (#1711)
* delete all modular content
* clean up
* Update guard.yml
* spear first pass
* Add imperial two-handed sword and update spear
Introduces the imperial two-handed sword with new sprites, prototype, and animations. Refines spear configuration: adjusts damage, animation, and offsets, and updates its sprites and prototype to use a new resource path. Improves melee weapon animation logic for both thrust and slash attacks.
* neck displacement
* Update neck.png
* Update migration.yml
* dagger
* Add sword prototype and refactor melee weapon swing logic
Introduces a new sword entity and associated textures. Refactors melee weapon swing logic by renaming SwingLeft to CPSwingLeft and updating related code. Adjusts animation offsets and rotation values for daggers, spears, and two-handed swords. Moves and updates dagger texture assets to a new directory structure.
* hatchet
* sickle
* Add skimitar sword entity and sprites
Introduced a new 'skimitar' sword entity with description and associated sprite assets, including icon, in-hand, and equipped states. Also updated the imperial sword's name and description for clarity.
* Add rapier weapon and adjust melee weapon balance
Introduced the imperial rapier weapon with associated prototype and textures. Increased the default single-target melee damage modifier to 1.3 and removed per-weapon clickDamageModifier overrides from dagger, spear, sword, and two-handed sword. Also increased sword base damage to 10 for better balance.
* Add iron tool/weapon variants and update wall thresholds
Introduces iron variants for pickaxe, shovel, dagger, rapier, spear, sword, and two-handed sword, including new sprites and YAML prototypes. Adjusts wall and ore vein damage thresholds for destruction and sound triggers. Updates migration.yml to map modular iron weapons to new iron variants and spawns stone blocks on stonebrick wall breakage. Also refactors dagger textures to use an 'iron' directory.
* Refactor ice dagger and adjust blacksmith skills
Replaced CP14IceDagger with CP14WeaponDaggerIce, updating its parent, stats, and components for consistency. Adjusted base dagger damage types. Blacksmith job and related melting skills are now commented out or disabled, reflecting a change in skill progression and job setup.
* Update ice_dagger.yml
* Deprecate sword mastery skills and update melee swing logic
Commented out SwordMastery, RapierMastery, and SkimitarMastery skills and removed their assignment from guard and artisan job prototypes. Renamed CPSwingLeft to SwingLeft in melee weapon code for clarity and updated related logic.
* Remove requiredSkills from anvil and furnace recipes
Eliminated the 'requiredSkills' field from all recipes in Anvil/misc.yml and furnace.yml. This simplifies recipe definitions and removes skill prerequisites for crafting these items.
* Update guard_commander.yml
* Comment out freeLearnedSkills for T1 and T2 skeletons
Disabled the freeLearnedSkills entries, including SwordMastery and SkimitarMastery, in both T1 and T2 DemiplaneAntag skeleton YAML prototypes. This change may be for balancing or testing purposes.
* Update migration.yml
* Update migration.yml
* guidebook
* r
* spear passive + hammer passive
* tool hammer + skimitar refactor
* balance tweak
* kick nerf
* TOWER DEFENCE UPDATE
* default shield refactor
* buckler (only sprites)
* Update migration.yml
* buckler parry
* some fixes
* Update T2.yml
* Update T2.yml
* Update instruments.yml
* Update migration.yml
* M O P
* war axe
* Update migration.yml
* Keen Eye skill
* arrows + bow + loadouts
* Update tools.yml
* trading
* fix
* Update misc.yml
* Update migration.yml
2025-09-06 00:59:58 +03:00
var missEvent = new MeleeHitEvent ( new List < EntityUid > ( ) , user , meleeUid , damage , null , heavy : false ) ;
2023-02-13 07:55:39 -05:00
RaiseLocalEvent ( meleeUid , missEvent ) ;
Upstream, Yay (#27)
* Make BaseMedicalPDA abstract (#26567)
* Fix GasMixers/Filters not working (#26568)
* Fix GasMixers/Filters not working
* OKAY GAS FILTERS TOO
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
* Industrial Reagent Grinder Hotfix (#26571)
fixed
* Give stores the ability to check for owner only (#26573)
adds a check if the store belongs to the user
* Fix round start crash (causing instant restart) (#26579)
* Fix round start crash
* Make `TryCreateObjective` more error tolerant
* Update engine to v217.1.0 (#26588)
* Fix initial infected icon hiding (#26585)
* Fix Meta evac shuttle name (#26587)
* Make timer ignore client predict setting (#26554)
* Make timer ignore client predict setting
* making tests run
---------
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Make advertise system survive no map inits (#26553)
* Make advertise system survive no map inits
* Add comment to try prevent future bugs
* Update Credits (#26589)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Fix fox spawn on reach (#26584)
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Removes SCAF armor (#26566)
* removes scaf armor
* replace maint loot spawner spot with basic helmet
* Update Patrons.yml (#26578)
* Automatic changelog update
* Make aghost command work on other players using optional argument (#26546)
* Translations
* Make aghost command work on other players using optional argument
* Reviews
* Automatic changelog update
* Add new component to Make sound on interact (#26523)
* Adds new Component: EmitSoundOnInteractUsing
* Missed an import
* File-scoping
* Replace ID check with Prototype check
* Moved component and system to shared. Set prediction to true.
* Removed impoper imports and changed namespace of component to reflect changed folder.
* Following function naming theme
* All this code is basically deltanedas's, but it was a learning experience for me
* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs
* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Increase syndi duffelbag storage (#26565)
* Increase syndi duffelbag storage
* weh
* Automatic changelog update
* Adds construction/decon graphs for plastic flaps (#26341)
* Adds construction/decon graphs for plastic flaps
* Dang arbitrage
* undo conflict
---------
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
* Automatic changelog update
* Makes secglasses roundstart (#26487)
* makes secglasses roundstart
* fix epic fail
* fix tests questionmark?
* Update Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
---------
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* Automatic changelog update
* Toilet Upgrade (needs review) (#22133)
* Toilet Draft
* fixes
* toilets now have secret stash to place items in cistern.
* fixes
* plungers now unblock toilets.
* fix sprite
* new sprites and fix
* fixes
* improve seat sprites.
* fix
* removed visualisersystem changed to genericvisualizers
* flush sound for toilets and copyright for toilet sprites.
* fix atrributions
* fixes
* fix datafield flushtime
* sprite improvements
* fixes
* multiple changes
* fix
* fix
* fixes remove vv
* moved stash related functions to secret stash system from toilet.
* fix
* fix
* changes for recent review.
* fix
* fix
* Automatic changelog update
* Uplink store interface searchable with a searchbar. (#24287)
* Can now search the uplink store interface with a searchbar.
* Search text updates no longer send server messages. Persists listings locally.
* Formatting fixes and tidying.
* Added helper method to get localised name and description (or otherwise, entity name and description) of store listing items.
* Update Content.Client/Store/Ui/StoreMenu.xaml
* Review change; moved localisation helper functions to their own class.
* Prevent thread-unsafe behaviour as-per review.
* Remove dummy boxcontainer
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Improved RCDs (#22799)
* Initial radial menu prototyping for the RCD
* Radial UI buttons can send messages to the server
* Beginning to update RCDSystem
* RCD building system in progress
* Further updates
* Added extra effects, RCDSystem now reads RCD prototype data
* Replacing tiles is instant, multiple constructions are allowed, deconstruction is broken
* Added extra functionality to RadialContainers plus documentation
* Fixed localization of RCD UI strings
* Menu opens near cursor, added basic RCD
* Avoiding merge conflict
* Implemented atomized construction / deconstruction rules
* Increased RCD ammo base charges
* Moved input context definition to content
* Removed obsoleted code
* Updates to system
* Switch machine and computer frames for electrical cabling
* Added construction ghosts
* Fixed issue with keybind detection code
* Fixed RCD construction ghost mispredications
* Code clean up
* Updated deconstruction effects
* RCDs effects don't rotate
* Code clean up
* Balancing for ammo counts
* Code clean up
* Added missing localized strings
* More clean up
* Made directional window handling more robust
* Added documentation to radial menus and made them no longer dependent on Content
* Made radial containers more robust
* Further robustness to the radial menu
* The RCD submenu buttons are only shown when the destination layer has at least one children
* Expanded upon deconstructing plus construction balance
* Fixed line endings
* Updated list of RCD deconstructable entities. Now needs a component to deconstruct instead of a tag
* Bug fixes
* Revert unnecessary change
* Updated RCD strings
* Fixed bug
* More fixes
* Deconstructed tiles/subflooring convert to lattice instead
* Fixed failed tests (Linux doesn't like invalid spritespecifer paths)
* Fixing merge conflict
* Updated airlock assembly
* Fixing merge conflict
* Fixing merge conflict
* More fixing...
* Removed erroneous project file change
* Fixed string handling issue
* Trying to fix merge conflict
* Still fixing merge conflicts
* Balancing
* Hidden RCD construction ghosts when in 'build' mode
* Fixing merge conflict
* Implemented requested changes (Part 1)
* Added more requested changes
* Fix for failed test. Removed sussy null suppression
* Made requested changes - custom construction ghost system was replaced
* Fixing merge conflict
* Fixed merge conflict
* Fixed bug in RCD construction ghost validation
* Fixing merge conflict
* Merge conflict fixed
* Made required update
* Removed lingering RCD deconstruct tag
* Fixing merge conflict
* Merge conflict fixed
* Made requested changes
* Bug fixes and balancing
* Made string names more consistent
* Can no longer stack catwalks
* Automatic changelog update
* Update submodule to 217.2.0 (#26592)
* Southern accent (#26543)
* created the AccentComponent and the AccentSystem
* word replacement schtuhff
* made it a trait fr ongg!!1
* Update Content.Server/Speech/EntitySystems/SouthernAccentSystem.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Prevent storing liquids in equipped buckets (#24412)
* Block access to solutions in equipped spillables.
* Stop Drink verb appearing if the solution can't be accessed.
* Automatic changelog update
* Fix 'Hypopen shouldn't display solution examine text' (#26453)
* stealthy hypo
* ExaminableSolution hand check when in covert implement.
ExaminableSolution now has 'hidden' datafield to enable chemical inspection only in hand.
* cleaning code
* more cleaning
* Hidden datafield renamed to HeldOnly
* review
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Revert Paint (#26593)
* Revert "Fix build (#26258)"
This reverts commit 6de5fbfafbde700d711a566f6a43f05f7a99e455.
* Revert "Spray Paint (Review Ready) (#23003)"
This reverts commit e4d5e7f1aebfc37b1bc3453fdb39578f3897b6a1.
# Conflicts:
# Resources/Prototypes/Entities/Structures/Holographic/projections.yml
* Fix: Prevent single-use hyposprays from getting the toggle draw verb (#26595)
Prevent single-use hyposprays from getting the toggle draw verb
Co-authored-by: Plykiya <plykiya@protonmail.com>
* MeleeHitSoundSystem (#25005)
* Began work to unscrew melee noises
* finished
* cleanup
* cleanup
* Update Content.Server/Weapons/Melee/MeleeWeaponSystem.cs
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
* _Style
* Fix merge
---------
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Remove physics comp from VendingMachineWallmount (#25632)
* Remove physics comp from VendingMachineWallmount
* Fixtures removal
---------
Co-authored-by: Jeff <velcroboy333@hotmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Remake hairflowers (#25475)
* Add more lily usage (orange hairflower and flowercrown)
* comit 2
* ee
* more fixes
* w
* im stupid
* bring poppy in authodrobe
* weh
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Automatic changelog update
* Injector UI shows TransferAmount change, Spilling liquid changes Injector mode (#26596)
* Injector UI shows TransferAmount change, spill changes mode
* Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs
* Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update submodule to 217.2.1 (#26599)
* disallow unanchoring or opening panels on locked emitters/APEs (#26600)
* disallow unanchoring or opening panels on locked emitters/APEs
* no locking open panels
* oops
* needback feedback
* Update Content.Shared/Lock/LockSystem.cs
* Update Content.Shared/Lock/LockSystem.cs
* Update Content.Shared/Lock/LockSystem.cs
* sanity
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Fix grave digging sound indefinitely playing if dug by aghost. (#26420)
Admins bypass doafters. As such, the code that runs on doafter
completion is ran before the sound is actually created. This then leads
to the sound never being stopped, and as such it would infinitely play.
This commit gets around the issue by manually stopping the sound should
the doafter fail to start. If we could be sure that the doafter would
never fail, then we could just move the call to StartDigging above
starting the doafter but this is currently not possible.
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Make the buttons on the map ui not squished (#26604)
Make the map ui work
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Combine flower crown and wreath (#26605)
* Combine flower crown and wreath
* huh
* huuh :trollface:
* Automatic changelog update
* Add AP damage to throwing knives (#26380)
* add
* ap
* no more stam dmg
* Automatic changelog update
* cancelable brig timers (#26557)
brig timers now cancelable. also some screensystem yakshave
* Fix orientation of roller skate sprites (#26627)
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Automatic changelog update
* Fix GastTileOverlay sending redundant data (#26623)
Fix GastTileOverlay not updating properly
* Auto DeAdmin sooner (#26551)
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Add briefcase to curadrobe and lawdrobe, and some briefcases cleanup (#26527)
* Add briefcase to curadrobe and some briefcases cleanup
* also add to lawdrobe
* Automatic changelog update
* Fix some text overflow bugs in HUD (#26615)
* Don't clip text in item status
* Fix overflow in examine tooltip
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Adds two milk cartons to the BoozeOMat (#26635)
* Automatic changelog update
* made the hover text less vague (sorry) (#26630)
* blacklisted throwing knifes from pneumatic cannon (#26628)
* Fix radio jammer not blocking suit sensors. (#26632)
As it turns out, they are not in fact on their own netid. They are
actually just on wireless. The way I had tested my previous pr led to
this mistake being made. I originally had the radio jammer block
wireless as well, but decided to take out under the flase assumption
that it suit sensors were actually on their own netid and did not
require the ability to block all wireless packets at the last moment.
* Fix dirt decals in reach not being cleanable (#26636)
made all dirt decals cleanable
Co-authored-by: hamurlik <renoDeath@protonmail.com>
* Automatic changelog update
* Replace drill_hit.ogg and drill_use.ogg with better sounds (#26622)
* Replace drill_hit.ogg and drill_use.ogg with better sounds
* Fix attribution source for drill_hit.ogg
* Update Resources/Audio/Items/attributions.yml
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Update Resources/Audio/Items/attributions.yml
Co-authored-by: Kara <lunarautomaton6@gmail.com>
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Gave Blast door access permissions (#26606)
Added access reader to all blast doors. Added pre configured blast doors for engineering and science.
* Gives all wheeled objects low friction (#26601)
* gives all wheeled objects friction
* adjustments to sum stuff
* Automatic changelog update
* Combine solution injection systems; Fix embeddable injectors (#26268)
* Combine injection systems
* Update Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Automatic changelog update
* Add ValueList import (#26640)
* Change assault borg modules texture (#26502)
* Update borg_modules.yml
* Fix borg_modules.yml?
* Uh
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Add Cyborg Emote Sounds (#26594)
* Hal 9000's first emote
* Add Chime emote & Change variation to 0.05
* Modify Buzz emote
* Add Buzz-two emote
* modified Horn
* add ping emote
* add slowclap emote
* Convert slowclap.ogg to mono, reflect change in attribution.yml
* fix capitalization for all chatMessages && change all catagory to category
* remove all traces of slowclap.ogg
* forgor one file smh
* collating copywrite
* spelling mistakes will be the death of me
* more spelling mistakes
* change yml string to list
* Automatic changelog update
* Coordinates Disks & Shuttle FTL Travel (#23240)
* Adds the CentComm Disk and configures it to work with direct-use shuttles
* Added functionality for drone shuttles (i.e. cargo shuttle)
* Adds support for pods, and a disk console object for disks to be inserted into. Also sprites.
* Added the disk to HoP's locker
* Removed leftover logs & comments
* Fix for integration test
* Apply suggestions from code review (formatting & proper DataField)
Co-authored-by: 0x6273 <0x40@keemail.me>
* Fix integration test & changes based on code review
* Includes Disk Cases to contain Coordinate Disks, which are now CDs instead of Floppy Disks
* Check pods & non-evac shuttles for CentCom travel, even in FTL
* Import
* Remove CentCom travel restrictions & pod disk consoles
* Major changes that changes the coordinates disk system to work with salvage expeditions
* Missed CC diskcase removal
* Fix build
* Review suggestions and changes
* Major additional changes after merge
* Minor tag miss
* Integration test fix
* review
---------
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Add door electronics access configuration menu (#17778)
* Add door electronics configuration menu
* Use file-scoped namespaces
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Open door electronics configuration menu only with network configurator
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Doors will now try to move their AccessReaderComponent to their door electronics when the map is initialized
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Make the access list in the id card computer a separate control
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix merge conflict
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove DoorElectronics tag
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Integrate doors with #17927
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Move door electornics ui stuff to the right place
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Some review fixes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* More fixes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* review fix
Signed-off-by: c4llv07e <kseandi@gmail.com>
* move all accesses from airlock prototypes to door electronics
Signed-off-by: c4llv07e <kseandi@gmail.com>
* rework door electronics config access list
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove Linq from the door electronics user interface
* [WIP] Add EntityWhitelist to the activatable ui component
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Better interaction system
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Refactor
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix some door electronics not working without AccessReaderComponent
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Move AccessReaderComponent update code to the AccessReaderSystem
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unnecesary newlines in the door access prototypes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unused variables in access level control
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unnecessary method from the door electronics configuration menu
Signed-off-by: c4llv07e <kseandi@gmail.com>
* [WIP] change access type from string to ProtoId<AccessLevelPrototype>
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unused methods
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Newline fix
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Restored to a functional state
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix access configurator not working with door electronics AccessReaderComponent
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Replace all string access fields with ProtoId
Signed-off-by: c4llv07e <kseandi@gmail.com>
* move access level control initialization into Populate method
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Review
---------
Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* scoopable ash and foam, solution transfer prediction (#25832)
* move SolutionTransfer to shared and predict as much as possible
* fully move OpenableSystem to shared now that SolutionTransfer is
* fix imports for everything
* doc for solution transfer system
* trolling
* add scoopable system
* make ash and foam scoopable
* untroll
* untroll real
* make clickable it work
* troll
* the scooping room
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Replace the teleportation logic on the SCRAM implant! (#26429)
* Replace the teleportation logic on the SCRAM implant!
Now instead of just trying to pick a random tile in range 20 times, the
scram teleportation logic now:
- Gets a list of grids in range
- Until a suitable tile is picked it picks a random grid
- From that grid it picks a random tile.
- If the tile is suitable, then it is set as the target and the user
will be teleported there.
- Grids and tiles are randomly picked as outlined above until a valid
tile is found, or all valid grids and tiles are exhausted.
- Should no suitable tile be found then they get teleported to the same
position they are at. Effectively not teleporting them.
* Actually make the defaults sane which I forgor in the last commit
* Extract tile section to its own function. Bias selection for current grid. Use proper coords for box.
* Address reviews as much as possible
* Address reviews
* Refactored AdvertiseComponent (#26598)
* Made it better
* ok
* alright
---------
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Bartender "Essentials" (#25367)
* drinks round 1
saving my progress before my hard drive explodes
* test 2
please work
* name fixes
whoops
* Update drinks.yml
* various fixes
am dumb
* add sol dry to vends
more fixes and changes, yippee!
* more fixes & ingame testing
shrimple tests
* last fixes :trollface:
should be ready for pr now
* Update soda.yml
sate thirst
* Automatic changelog update
* Add ERT Chaplain (#25956)
* ERT Chaplain
* Make BibleUser
* It was not intended
* reword my poor words
* 1984 a comment that I decided was unnecessary.
* Update Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Changes in chemicals page in guidebook (#25831)
* Added pages to chemical categories
The chemical categories have their own page now. Added the "Chemical Tabs" in /ServerInfo/Guidebook. Moved the Chemicals code from shiftsandjobs.yml to its own .yml file which is "chemicals.yml".
* Update guides.ftl
* Update chemicals.yml
Changed the guide entry's ID for the medical tab from Medicine to Medicinal.
Hope this works...
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Biological.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Foods.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Elements.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Narcotics.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Toxins.xml
Co-authored-by: exincore <me@exin.xyz>
* Fixed a few errors and stuff!
A few typos have been fixed thanks to exincore. Added dedicated .xml files to be used for the dedicated category pages (Medicinal and Botanical pages). Made it so it doesn't use any duplicated IDs anymore.
If there's more problems, please do tell so I can fix it!
* Update settings.json
* Fix?
---------
Co-authored-by: exincore <me@exin.xyz>
* Automatic changelog update
* Anomalies behaviours (#24683)
* Added new anomaly particle
* Add basic anomaly behaviour
* +2 parametres
* add functional to new particle
* add components to behaviours
* big content
* add shuffle, moved thing to server
* clean up
* fixes
* random pick redo
* bonjour behavioUr
* fix AJCM
* fix
* add some new behaviours
* power modifier behaviour
* rmeove timer
* new event for update ui fix
* refactor!
* fixes
* enum
* Fix mapinit
* Minor touches
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Fix clipping/overlap in lathe machine UIs (#26646)
* Add scrollbars to lathe material list when necessary
* Fix bug where shrinking window would cause elements to overlap
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Added chat window transparency slider to options (#24990)
* Adds a new slider to the misc tab in options that lets the player set chat window transparency
* Tweaked variable names
* Fixed order to match UI
* Renamed set chat window transparency function
* Changed and refactored to opacity instead of transparency
* Remove unnecessary int to float conversions
Slider used to be 0-100 while the CCVar was 0.0-1.0f. This is confusing and was only used for rounding to 2 decimal points.
* Round the value to two decimal points
* Remove rounding for now
* Rename
* Unhardcode chat color by moving to stylesheet
* Fix indent
* Make opacity slider only change opacity
---------
Co-authored-by: Your Name <you@example.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
* Automatic changelog update
* Infinity books (#25840)
* setup text data
* roundstart reshuffling keywords with gibberish words
* saved data categorized
* add book with hints
* start redrawing books
* +4 book design
* +books +random visual upgrade
* finish first file
* finish lore file
* finish with books.rsi now authorbooks.rsi...
* aurora! and some fix
* nuke author books
* speelbuke update
* finish respriting work
* fix scientist guide visual
* setup datasets
* setup stupid funny random story
* restore author books, upgrade hint generation
* add variety to story generator
* add learning system
* minor textgen edit
* file restruct, hint count variation
* more restruct
* more renaming
add basis learning system logic. Spears locked for special book for test.
* nuke all systems, for splitting PR gods
* typo fix
* update migration with deleted books
* add random story books to maint
* Update construction-system.ftl
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* typo fix
* interchangeably
* final
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* "."
* Update Content.Server/Paper/PaperRandomStorySystem.cs
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Ubazer fix
* inadequate
* localized
* Update meta.json
* fuck merge conflicts
* fix jani book
---------
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Automatic changelog update
* Resprite ambuzol plus pills (#26651)
* Automatic changelog update
* Fixed air injector visuals (#26654)
* Make cyborgs hands explosion proof. (#26515)
* Make the advanced treatment modules beakers explosion-proof.
* undo changes
* Epic rename fail
* Explosion recursion data field
* Logic for data field
* Automatic changelog update
* Automatic changelog update
* Make typing indicator shaded (#26678)
* Automatic changelog update
* Validate wire layout prototypes and remove invalid WiresComponents (#26682)
Validate wire layout prototypes; delete invalid wirescomponents.
* Increase time inbetween anomaly pulses (#26677)
nerf anomaly pulse delays
* Automatic changelog update
* Fix for items dropped being rotated to world north (#26662)
* Fix rotation of dropped items
* combined world position rotation function for dumpable
* scuffed implementation?
* less scuffed?
* even less scuffed... I guess
* capital D
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
* Automatic changelog update
* fix typo
---------
Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
Co-authored-by: Wrexbe (Josh) <81056464+wrexbe@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: wrexbe <wrexbe@protonmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
Co-authored-by: J. Brown <DrMelon@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: drteaspoon420 <87363733+drteaspoon420@users.noreply.github.com>
Co-authored-by: Bixkitts <72874643+Bixkitts@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: avery <51971268+graevy@users.noreply.github.com>
Co-authored-by: eoineoineoin <github@eoinrul.es>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
Co-authored-by: RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com>
Co-authored-by: Zealith-Gamer <61980908+Zealith-Gamer@users.noreply.github.com>
Co-authored-by: hamurlik <75280571+hamurlik@users.noreply.github.com>
Co-authored-by: hamurlik <renoDeath@protonmail.com>
Co-authored-by: no <165581243+pissdemon@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: SoulFN <164462467+SoulFN@users.noreply.github.com>
Co-authored-by: Keer-Sar <144283718+Keer-Sar@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: c4llv07e <38111072+c4llv07e@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Firewatch <54725557+musicmanvr@users.noreply.github.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: f0x-n3rd <150924715+f0x-n3rd@users.noreply.github.com>
Co-authored-by: exincore <me@exin.xyz>
Co-authored-by: Sk1tch <ben.peter.smith@gmail.com>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
Co-authored-by: osjarw <62134478+osjarw@users.noreply.github.com>
2024-04-03 10:33:34 +03:00
_meleeSound . PlaySwingSound ( user , meleeUid , component ) ;
2022-11-14 08:33:54 +11:00
return ;
}
// Sawmill.Debug($"Melee damage is {damage.Total} out of {component.Damage.Total}");
// Raise event before doing damage so we can cancel damage if the event is handled
Rethinking equipment (#1711)
* delete all modular content
* clean up
* Update guard.yml
* spear first pass
* Add imperial two-handed sword and update spear
Introduces the imperial two-handed sword with new sprites, prototype, and animations. Refines spear configuration: adjusts damage, animation, and offsets, and updates its sprites and prototype to use a new resource path. Improves melee weapon animation logic for both thrust and slash attacks.
* neck displacement
* Update neck.png
* Update migration.yml
* dagger
* Add sword prototype and refactor melee weapon swing logic
Introduces a new sword entity and associated textures. Refactors melee weapon swing logic by renaming SwingLeft to CPSwingLeft and updating related code. Adjusts animation offsets and rotation values for daggers, spears, and two-handed swords. Moves and updates dagger texture assets to a new directory structure.
* hatchet
* sickle
* Add skimitar sword entity and sprites
Introduced a new 'skimitar' sword entity with description and associated sprite assets, including icon, in-hand, and equipped states. Also updated the imperial sword's name and description for clarity.
* Add rapier weapon and adjust melee weapon balance
Introduced the imperial rapier weapon with associated prototype and textures. Increased the default single-target melee damage modifier to 1.3 and removed per-weapon clickDamageModifier overrides from dagger, spear, sword, and two-handed sword. Also increased sword base damage to 10 for better balance.
* Add iron tool/weapon variants and update wall thresholds
Introduces iron variants for pickaxe, shovel, dagger, rapier, spear, sword, and two-handed sword, including new sprites and YAML prototypes. Adjusts wall and ore vein damage thresholds for destruction and sound triggers. Updates migration.yml to map modular iron weapons to new iron variants and spawns stone blocks on stonebrick wall breakage. Also refactors dagger textures to use an 'iron' directory.
* Refactor ice dagger and adjust blacksmith skills
Replaced CP14IceDagger with CP14WeaponDaggerIce, updating its parent, stats, and components for consistency. Adjusted base dagger damage types. Blacksmith job and related melting skills are now commented out or disabled, reflecting a change in skill progression and job setup.
* Update ice_dagger.yml
* Deprecate sword mastery skills and update melee swing logic
Commented out SwordMastery, RapierMastery, and SkimitarMastery skills and removed their assignment from guard and artisan job prototypes. Renamed CPSwingLeft to SwingLeft in melee weapon code for clarity and updated related logic.
* Remove requiredSkills from anvil and furnace recipes
Eliminated the 'requiredSkills' field from all recipes in Anvil/misc.yml and furnace.yml. This simplifies recipe definitions and removes skill prerequisites for crafting these items.
* Update guard_commander.yml
* Comment out freeLearnedSkills for T1 and T2 skeletons
Disabled the freeLearnedSkills entries, including SwordMastery and SkimitarMastery, in both T1 and T2 DemiplaneAntag skeleton YAML prototypes. This change may be for balancing or testing purposes.
* Update migration.yml
* Update migration.yml
* guidebook
* r
* spear passive + hammer passive
* tool hammer + skimitar refactor
* balance tweak
* kick nerf
* TOWER DEFENCE UPDATE
* default shield refactor
* buckler (only sprites)
* Update migration.yml
* buckler parry
* some fixes
* Update T2.yml
* Update T2.yml
* Update instruments.yml
* Update migration.yml
* M O P
* war axe
* Update migration.yml
* Keen Eye skill
* arrows + bow + loadouts
* Update tools.yml
* trading
* fix
* Update misc.yml
* Update migration.yml
2025-09-06 00:59:58 +03:00
var hitEvent = new MeleeHitEvent ( new List < EntityUid > { target . Value } , user , meleeUid , damage , null , heavy : false ) ;
2023-02-13 07:55:39 -05:00
RaiseLocalEvent ( meleeUid , hitEvent ) ;
2022-11-14 08:33:54 +11:00
if ( hitEvent . Handled )
return ;
var targets = new List < EntityUid > ( 1 )
{
2023-09-11 09:42:41 +10:00
target . Value
2022-11-14 08:33:54 +11:00
} ;
2023-09-11 09:42:41 +10:00
var weapon = GetEntity ( ev . Weapon ) ;
2024-07-30 04:35:30 -04:00
// We skip weapon -> target interaction, as forensics system applies DNA on hit
2023-09-11 09:42:41 +10:00
Interaction . DoContactInteraction ( user , weapon ) ;
2022-11-14 08:33:54 +11:00
// If the user is using a long-range weapon, this probably shouldn't be happening? But I'll interpret melee as a
// somewhat messy scuffle. See also, heavy attacks.
2023-09-11 09:42:41 +10:00
Interaction . DoContactInteraction ( user , target ) ;
2022-11-14 08:33:54 +11:00
// For stuff that cares about it being attacked.
2023-05-14 13:15:18 +10:00
var attackedEvent = new AttackedEvent ( meleeUid , user , targetXform . Coordinates ) ;
2023-09-11 09:42:41 +10:00
RaiseLocalEvent ( target . Value , attackedEvent ) ;
2022-11-14 08:33:54 +11:00
2023-05-14 13:15:18 +10:00
var modifiedDamage = DamageSpecifier . ApplyModifierSets ( damage + hitEvent . BonusDamage + attackedEvent . BonusDamage , hitEvent . ModifiersList ) ;
2024-08-10 20:05:54 -07:00
var damageResult = Damageable . TryChangeDamage ( target , modifiedDamage , origin : user , ignoreResistances : resistanceBypass ) ;
2022-11-14 08:33:54 +11:00
2024-05-31 14:28:11 +12:00
if ( damageResult is { Empty : false } )
2022-11-14 08:33:54 +11:00
{
// If the target has stamina and is taking blunt damage, they should also take stamina damage based on their blunt to stamina factor
if ( damageResult . DamageDict . TryGetValue ( "Blunt" , out var bluntDamage ) )
{
2023-09-11 09:42:41 +10:00
_stamina . TakeStaminaDamage ( target . Value , ( bluntDamage * component . BluntStaminaDamageFactor ) . Float ( ) , visual : false , source : user , with : meleeUid = = user ? null : meleeUid ) ;
2022-11-14 08:33:54 +11:00
}
2023-02-13 07:55:39 -05:00
if ( meleeUid = = user )
2022-11-14 08:33:54 +11:00
{
2024-10-14 00:40:59 -05:00
AdminLogger . Add ( LogType . MeleeHit ,
LogImpact . Medium ,
2024-01-22 02:59:14 +01:00
$"{ToPrettyString(user):actor} melee attacked (light) {ToPrettyString(target.Value):subject} using their hands and dealt {damageResult.GetTotal():damage} damage" ) ;
2022-11-14 08:33:54 +11:00
}
else
{
2024-10-14 00:40:59 -05:00
AdminLogger . Add ( LogType . MeleeHit ,
LogImpact . Medium ,
2024-01-22 02:59:14 +01:00
$"{ToPrettyString(user):actor} melee attacked (light) {ToPrettyString(target.Value):subject} using {ToPrettyString(meleeUid):tool} and dealt {damageResult.GetTotal():damage} damage" ) ;
2022-11-14 08:33:54 +11:00
}
}
2022-09-29 15:51:59 +10:00
Upstream, Yay (#27)
* Make BaseMedicalPDA abstract (#26567)
* Fix GasMixers/Filters not working (#26568)
* Fix GasMixers/Filters not working
* OKAY GAS FILTERS TOO
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
* Industrial Reagent Grinder Hotfix (#26571)
fixed
* Give stores the ability to check for owner only (#26573)
adds a check if the store belongs to the user
* Fix round start crash (causing instant restart) (#26579)
* Fix round start crash
* Make `TryCreateObjective` more error tolerant
* Update engine to v217.1.0 (#26588)
* Fix initial infected icon hiding (#26585)
* Fix Meta evac shuttle name (#26587)
* Make timer ignore client predict setting (#26554)
* Make timer ignore client predict setting
* making tests run
---------
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Make advertise system survive no map inits (#26553)
* Make advertise system survive no map inits
* Add comment to try prevent future bugs
* Update Credits (#26589)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Fix fox spawn on reach (#26584)
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Removes SCAF armor (#26566)
* removes scaf armor
* replace maint loot spawner spot with basic helmet
* Update Patrons.yml (#26578)
* Automatic changelog update
* Make aghost command work on other players using optional argument (#26546)
* Translations
* Make aghost command work on other players using optional argument
* Reviews
* Automatic changelog update
* Add new component to Make sound on interact (#26523)
* Adds new Component: EmitSoundOnInteractUsing
* Missed an import
* File-scoping
* Replace ID check with Prototype check
* Moved component and system to shared. Set prediction to true.
* Removed impoper imports and changed namespace of component to reflect changed folder.
* Following function naming theme
* All this code is basically deltanedas's, but it was a learning experience for me
* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs
* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Increase syndi duffelbag storage (#26565)
* Increase syndi duffelbag storage
* weh
* Automatic changelog update
* Adds construction/decon graphs for plastic flaps (#26341)
* Adds construction/decon graphs for plastic flaps
* Dang arbitrage
* undo conflict
---------
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
* Automatic changelog update
* Makes secglasses roundstart (#26487)
* makes secglasses roundstart
* fix epic fail
* fix tests questionmark?
* Update Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
---------
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* Automatic changelog update
* Toilet Upgrade (needs review) (#22133)
* Toilet Draft
* fixes
* toilets now have secret stash to place items in cistern.
* fixes
* plungers now unblock toilets.
* fix sprite
* new sprites and fix
* fixes
* improve seat sprites.
* fix
* removed visualisersystem changed to genericvisualizers
* flush sound for toilets and copyright for toilet sprites.
* fix atrributions
* fixes
* fix datafield flushtime
* sprite improvements
* fixes
* multiple changes
* fix
* fix
* fixes remove vv
* moved stash related functions to secret stash system from toilet.
* fix
* fix
* changes for recent review.
* fix
* fix
* Automatic changelog update
* Uplink store interface searchable with a searchbar. (#24287)
* Can now search the uplink store interface with a searchbar.
* Search text updates no longer send server messages. Persists listings locally.
* Formatting fixes and tidying.
* Added helper method to get localised name and description (or otherwise, entity name and description) of store listing items.
* Update Content.Client/Store/Ui/StoreMenu.xaml
* Review change; moved localisation helper functions to their own class.
* Prevent thread-unsafe behaviour as-per review.
* Remove dummy boxcontainer
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Improved RCDs (#22799)
* Initial radial menu prototyping for the RCD
* Radial UI buttons can send messages to the server
* Beginning to update RCDSystem
* RCD building system in progress
* Further updates
* Added extra effects, RCDSystem now reads RCD prototype data
* Replacing tiles is instant, multiple constructions are allowed, deconstruction is broken
* Added extra functionality to RadialContainers plus documentation
* Fixed localization of RCD UI strings
* Menu opens near cursor, added basic RCD
* Avoiding merge conflict
* Implemented atomized construction / deconstruction rules
* Increased RCD ammo base charges
* Moved input context definition to content
* Removed obsoleted code
* Updates to system
* Switch machine and computer frames for electrical cabling
* Added construction ghosts
* Fixed issue with keybind detection code
* Fixed RCD construction ghost mispredications
* Code clean up
* Updated deconstruction effects
* RCDs effects don't rotate
* Code clean up
* Balancing for ammo counts
* Code clean up
* Added missing localized strings
* More clean up
* Made directional window handling more robust
* Added documentation to radial menus and made them no longer dependent on Content
* Made radial containers more robust
* Further robustness to the radial menu
* The RCD submenu buttons are only shown when the destination layer has at least one children
* Expanded upon deconstructing plus construction balance
* Fixed line endings
* Updated list of RCD deconstructable entities. Now needs a component to deconstruct instead of a tag
* Bug fixes
* Revert unnecessary change
* Updated RCD strings
* Fixed bug
* More fixes
* Deconstructed tiles/subflooring convert to lattice instead
* Fixed failed tests (Linux doesn't like invalid spritespecifer paths)
* Fixing merge conflict
* Updated airlock assembly
* Fixing merge conflict
* Fixing merge conflict
* More fixing...
* Removed erroneous project file change
* Fixed string handling issue
* Trying to fix merge conflict
* Still fixing merge conflicts
* Balancing
* Hidden RCD construction ghosts when in 'build' mode
* Fixing merge conflict
* Implemented requested changes (Part 1)
* Added more requested changes
* Fix for failed test. Removed sussy null suppression
* Made requested changes - custom construction ghost system was replaced
* Fixing merge conflict
* Fixed merge conflict
* Fixed bug in RCD construction ghost validation
* Fixing merge conflict
* Merge conflict fixed
* Made required update
* Removed lingering RCD deconstruct tag
* Fixing merge conflict
* Merge conflict fixed
* Made requested changes
* Bug fixes and balancing
* Made string names more consistent
* Can no longer stack catwalks
* Automatic changelog update
* Update submodule to 217.2.0 (#26592)
* Southern accent (#26543)
* created the AccentComponent and the AccentSystem
* word replacement schtuhff
* made it a trait fr ongg!!1
* Update Content.Server/Speech/EntitySystems/SouthernAccentSystem.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Prevent storing liquids in equipped buckets (#24412)
* Block access to solutions in equipped spillables.
* Stop Drink verb appearing if the solution can't be accessed.
* Automatic changelog update
* Fix 'Hypopen shouldn't display solution examine text' (#26453)
* stealthy hypo
* ExaminableSolution hand check when in covert implement.
ExaminableSolution now has 'hidden' datafield to enable chemical inspection only in hand.
* cleaning code
* more cleaning
* Hidden datafield renamed to HeldOnly
* review
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Revert Paint (#26593)
* Revert "Fix build (#26258)"
This reverts commit 6de5fbfafbde700d711a566f6a43f05f7a99e455.
* Revert "Spray Paint (Review Ready) (#23003)"
This reverts commit e4d5e7f1aebfc37b1bc3453fdb39578f3897b6a1.
# Conflicts:
# Resources/Prototypes/Entities/Structures/Holographic/projections.yml
* Fix: Prevent single-use hyposprays from getting the toggle draw verb (#26595)
Prevent single-use hyposprays from getting the toggle draw verb
Co-authored-by: Plykiya <plykiya@protonmail.com>
* MeleeHitSoundSystem (#25005)
* Began work to unscrew melee noises
* finished
* cleanup
* cleanup
* Update Content.Server/Weapons/Melee/MeleeWeaponSystem.cs
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
* _Style
* Fix merge
---------
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Remove physics comp from VendingMachineWallmount (#25632)
* Remove physics comp from VendingMachineWallmount
* Fixtures removal
---------
Co-authored-by: Jeff <velcroboy333@hotmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Remake hairflowers (#25475)
* Add more lily usage (orange hairflower and flowercrown)
* comit 2
* ee
* more fixes
* w
* im stupid
* bring poppy in authodrobe
* weh
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Automatic changelog update
* Injector UI shows TransferAmount change, Spilling liquid changes Injector mode (#26596)
* Injector UI shows TransferAmount change, spill changes mode
* Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs
* Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update submodule to 217.2.1 (#26599)
* disallow unanchoring or opening panels on locked emitters/APEs (#26600)
* disallow unanchoring or opening panels on locked emitters/APEs
* no locking open panels
* oops
* needback feedback
* Update Content.Shared/Lock/LockSystem.cs
* Update Content.Shared/Lock/LockSystem.cs
* Update Content.Shared/Lock/LockSystem.cs
* sanity
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Fix grave digging sound indefinitely playing if dug by aghost. (#26420)
Admins bypass doafters. As such, the code that runs on doafter
completion is ran before the sound is actually created. This then leads
to the sound never being stopped, and as such it would infinitely play.
This commit gets around the issue by manually stopping the sound should
the doafter fail to start. If we could be sure that the doafter would
never fail, then we could just move the call to StartDigging above
starting the doafter but this is currently not possible.
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Make the buttons on the map ui not squished (#26604)
Make the map ui work
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Combine flower crown and wreath (#26605)
* Combine flower crown and wreath
* huh
* huuh :trollface:
* Automatic changelog update
* Add AP damage to throwing knives (#26380)
* add
* ap
* no more stam dmg
* Automatic changelog update
* cancelable brig timers (#26557)
brig timers now cancelable. also some screensystem yakshave
* Fix orientation of roller skate sprites (#26627)
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Automatic changelog update
* Fix GastTileOverlay sending redundant data (#26623)
Fix GastTileOverlay not updating properly
* Auto DeAdmin sooner (#26551)
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Add briefcase to curadrobe and lawdrobe, and some briefcases cleanup (#26527)
* Add briefcase to curadrobe and some briefcases cleanup
* also add to lawdrobe
* Automatic changelog update
* Fix some text overflow bugs in HUD (#26615)
* Don't clip text in item status
* Fix overflow in examine tooltip
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Adds two milk cartons to the BoozeOMat (#26635)
* Automatic changelog update
* made the hover text less vague (sorry) (#26630)
* blacklisted throwing knifes from pneumatic cannon (#26628)
* Fix radio jammer not blocking suit sensors. (#26632)
As it turns out, they are not in fact on their own netid. They are
actually just on wireless. The way I had tested my previous pr led to
this mistake being made. I originally had the radio jammer block
wireless as well, but decided to take out under the flase assumption
that it suit sensors were actually on their own netid and did not
require the ability to block all wireless packets at the last moment.
* Fix dirt decals in reach not being cleanable (#26636)
made all dirt decals cleanable
Co-authored-by: hamurlik <renoDeath@protonmail.com>
* Automatic changelog update
* Replace drill_hit.ogg and drill_use.ogg with better sounds (#26622)
* Replace drill_hit.ogg and drill_use.ogg with better sounds
* Fix attribution source for drill_hit.ogg
* Update Resources/Audio/Items/attributions.yml
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Update Resources/Audio/Items/attributions.yml
Co-authored-by: Kara <lunarautomaton6@gmail.com>
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Gave Blast door access permissions (#26606)
Added access reader to all blast doors. Added pre configured blast doors for engineering and science.
* Gives all wheeled objects low friction (#26601)
* gives all wheeled objects friction
* adjustments to sum stuff
* Automatic changelog update
* Combine solution injection systems; Fix embeddable injectors (#26268)
* Combine injection systems
* Update Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Automatic changelog update
* Add ValueList import (#26640)
* Change assault borg modules texture (#26502)
* Update borg_modules.yml
* Fix borg_modules.yml?
* Uh
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Add Cyborg Emote Sounds (#26594)
* Hal 9000's first emote
* Add Chime emote & Change variation to 0.05
* Modify Buzz emote
* Add Buzz-two emote
* modified Horn
* add ping emote
* add slowclap emote
* Convert slowclap.ogg to mono, reflect change in attribution.yml
* fix capitalization for all chatMessages && change all catagory to category
* remove all traces of slowclap.ogg
* forgor one file smh
* collating copywrite
* spelling mistakes will be the death of me
* more spelling mistakes
* change yml string to list
* Automatic changelog update
* Coordinates Disks & Shuttle FTL Travel (#23240)
* Adds the CentComm Disk and configures it to work with direct-use shuttles
* Added functionality for drone shuttles (i.e. cargo shuttle)
* Adds support for pods, and a disk console object for disks to be inserted into. Also sprites.
* Added the disk to HoP's locker
* Removed leftover logs & comments
* Fix for integration test
* Apply suggestions from code review (formatting & proper DataField)
Co-authored-by: 0x6273 <0x40@keemail.me>
* Fix integration test & changes based on code review
* Includes Disk Cases to contain Coordinate Disks, which are now CDs instead of Floppy Disks
* Check pods & non-evac shuttles for CentCom travel, even in FTL
* Import
* Remove CentCom travel restrictions & pod disk consoles
* Major changes that changes the coordinates disk system to work with salvage expeditions
* Missed CC diskcase removal
* Fix build
* Review suggestions and changes
* Major additional changes after merge
* Minor tag miss
* Integration test fix
* review
---------
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Add door electronics access configuration menu (#17778)
* Add door electronics configuration menu
* Use file-scoped namespaces
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Open door electronics configuration menu only with network configurator
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Doors will now try to move their AccessReaderComponent to their door electronics when the map is initialized
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Make the access list in the id card computer a separate control
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix merge conflict
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove DoorElectronics tag
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Integrate doors with #17927
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Move door electornics ui stuff to the right place
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Some review fixes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* More fixes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* review fix
Signed-off-by: c4llv07e <kseandi@gmail.com>
* move all accesses from airlock prototypes to door electronics
Signed-off-by: c4llv07e <kseandi@gmail.com>
* rework door electronics config access list
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove Linq from the door electronics user interface
* [WIP] Add EntityWhitelist to the activatable ui component
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Better interaction system
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Refactor
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix some door electronics not working without AccessReaderComponent
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Move AccessReaderComponent update code to the AccessReaderSystem
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unnecesary newlines in the door access prototypes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unused variables in access level control
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unnecessary method from the door electronics configuration menu
Signed-off-by: c4llv07e <kseandi@gmail.com>
* [WIP] change access type from string to ProtoId<AccessLevelPrototype>
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unused methods
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Newline fix
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Restored to a functional state
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix access configurator not working with door electronics AccessReaderComponent
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Replace all string access fields with ProtoId
Signed-off-by: c4llv07e <kseandi@gmail.com>
* move access level control initialization into Populate method
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Review
---------
Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* scoopable ash and foam, solution transfer prediction (#25832)
* move SolutionTransfer to shared and predict as much as possible
* fully move OpenableSystem to shared now that SolutionTransfer is
* fix imports for everything
* doc for solution transfer system
* trolling
* add scoopable system
* make ash and foam scoopable
* untroll
* untroll real
* make clickable it work
* troll
* the scooping room
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Replace the teleportation logic on the SCRAM implant! (#26429)
* Replace the teleportation logic on the SCRAM implant!
Now instead of just trying to pick a random tile in range 20 times, the
scram teleportation logic now:
- Gets a list of grids in range
- Until a suitable tile is picked it picks a random grid
- From that grid it picks a random tile.
- If the tile is suitable, then it is set as the target and the user
will be teleported there.
- Grids and tiles are randomly picked as outlined above until a valid
tile is found, or all valid grids and tiles are exhausted.
- Should no suitable tile be found then they get teleported to the same
position they are at. Effectively not teleporting them.
* Actually make the defaults sane which I forgor in the last commit
* Extract tile section to its own function. Bias selection for current grid. Use proper coords for box.
* Address reviews as much as possible
* Address reviews
* Refactored AdvertiseComponent (#26598)
* Made it better
* ok
* alright
---------
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Bartender "Essentials" (#25367)
* drinks round 1
saving my progress before my hard drive explodes
* test 2
please work
* name fixes
whoops
* Update drinks.yml
* various fixes
am dumb
* add sol dry to vends
more fixes and changes, yippee!
* more fixes & ingame testing
shrimple tests
* last fixes :trollface:
should be ready for pr now
* Update soda.yml
sate thirst
* Automatic changelog update
* Add ERT Chaplain (#25956)
* ERT Chaplain
* Make BibleUser
* It was not intended
* reword my poor words
* 1984 a comment that I decided was unnecessary.
* Update Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Changes in chemicals page in guidebook (#25831)
* Added pages to chemical categories
The chemical categories have their own page now. Added the "Chemical Tabs" in /ServerInfo/Guidebook. Moved the Chemicals code from shiftsandjobs.yml to its own .yml file which is "chemicals.yml".
* Update guides.ftl
* Update chemicals.yml
Changed the guide entry's ID for the medical tab from Medicine to Medicinal.
Hope this works...
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Biological.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Foods.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Elements.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Narcotics.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Toxins.xml
Co-authored-by: exincore <me@exin.xyz>
* Fixed a few errors and stuff!
A few typos have been fixed thanks to exincore. Added dedicated .xml files to be used for the dedicated category pages (Medicinal and Botanical pages). Made it so it doesn't use any duplicated IDs anymore.
If there's more problems, please do tell so I can fix it!
* Update settings.json
* Fix?
---------
Co-authored-by: exincore <me@exin.xyz>
* Automatic changelog update
* Anomalies behaviours (#24683)
* Added new anomaly particle
* Add basic anomaly behaviour
* +2 parametres
* add functional to new particle
* add components to behaviours
* big content
* add shuffle, moved thing to server
* clean up
* fixes
* random pick redo
* bonjour behavioUr
* fix AJCM
* fix
* add some new behaviours
* power modifier behaviour
* rmeove timer
* new event for update ui fix
* refactor!
* fixes
* enum
* Fix mapinit
* Minor touches
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Fix clipping/overlap in lathe machine UIs (#26646)
* Add scrollbars to lathe material list when necessary
* Fix bug where shrinking window would cause elements to overlap
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Added chat window transparency slider to options (#24990)
* Adds a new slider to the misc tab in options that lets the player set chat window transparency
* Tweaked variable names
* Fixed order to match UI
* Renamed set chat window transparency function
* Changed and refactored to opacity instead of transparency
* Remove unnecessary int to float conversions
Slider used to be 0-100 while the CCVar was 0.0-1.0f. This is confusing and was only used for rounding to 2 decimal points.
* Round the value to two decimal points
* Remove rounding for now
* Rename
* Unhardcode chat color by moving to stylesheet
* Fix indent
* Make opacity slider only change opacity
---------
Co-authored-by: Your Name <you@example.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
* Automatic changelog update
* Infinity books (#25840)
* setup text data
* roundstart reshuffling keywords with gibberish words
* saved data categorized
* add book with hints
* start redrawing books
* +4 book design
* +books +random visual upgrade
* finish first file
* finish lore file
* finish with books.rsi now authorbooks.rsi...
* aurora! and some fix
* nuke author books
* speelbuke update
* finish respriting work
* fix scientist guide visual
* setup datasets
* setup stupid funny random story
* restore author books, upgrade hint generation
* add variety to story generator
* add learning system
* minor textgen edit
* file restruct, hint count variation
* more restruct
* more renaming
add basis learning system logic. Spears locked for special book for test.
* nuke all systems, for splitting PR gods
* typo fix
* update migration with deleted books
* add random story books to maint
* Update construction-system.ftl
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* typo fix
* interchangeably
* final
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* "."
* Update Content.Server/Paper/PaperRandomStorySystem.cs
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Ubazer fix
* inadequate
* localized
* Update meta.json
* fuck merge conflicts
* fix jani book
---------
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Automatic changelog update
* Resprite ambuzol plus pills (#26651)
* Automatic changelog update
* Fixed air injector visuals (#26654)
* Make cyborgs hands explosion proof. (#26515)
* Make the advanced treatment modules beakers explosion-proof.
* undo changes
* Epic rename fail
* Explosion recursion data field
* Logic for data field
* Automatic changelog update
* Automatic changelog update
* Make typing indicator shaded (#26678)
* Automatic changelog update
* Validate wire layout prototypes and remove invalid WiresComponents (#26682)
Validate wire layout prototypes; delete invalid wirescomponents.
* Increase time inbetween anomaly pulses (#26677)
nerf anomaly pulse delays
* Automatic changelog update
* Fix for items dropped being rotated to world north (#26662)
* Fix rotation of dropped items
* combined world position rotation function for dumpable
* scuffed implementation?
* less scuffed?
* even less scuffed... I guess
* capital D
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
* Automatic changelog update
* fix typo
---------
Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
Co-authored-by: Wrexbe (Josh) <81056464+wrexbe@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: wrexbe <wrexbe@protonmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
Co-authored-by: J. Brown <DrMelon@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: drteaspoon420 <87363733+drteaspoon420@users.noreply.github.com>
Co-authored-by: Bixkitts <72874643+Bixkitts@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: avery <51971268+graevy@users.noreply.github.com>
Co-authored-by: eoineoineoin <github@eoinrul.es>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
Co-authored-by: RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com>
Co-authored-by: Zealith-Gamer <61980908+Zealith-Gamer@users.noreply.github.com>
Co-authored-by: hamurlik <75280571+hamurlik@users.noreply.github.com>
Co-authored-by: hamurlik <renoDeath@protonmail.com>
Co-authored-by: no <165581243+pissdemon@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: SoulFN <164462467+SoulFN@users.noreply.github.com>
Co-authored-by: Keer-Sar <144283718+Keer-Sar@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: c4llv07e <38111072+c4llv07e@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Firewatch <54725557+musicmanvr@users.noreply.github.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: f0x-n3rd <150924715+f0x-n3rd@users.noreply.github.com>
Co-authored-by: exincore <me@exin.xyz>
Co-authored-by: Sk1tch <ben.peter.smith@gmail.com>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
Co-authored-by: osjarw <62134478+osjarw@users.noreply.github.com>
2024-04-03 10:33:34 +03:00
_meleeSound . PlayHitSound ( target . Value , user , GetHighestDamageSound ( modifiedDamage , _protoManager ) , hitEvent . HitSoundOverride , component ) ;
2024-02-03 02:00:14 +01:00
2024-01-22 02:59:14 +01:00
if ( damageResult ? . GetTotal ( ) > FixedPoint2 . Zero )
2022-11-14 08:33:54 +11:00
{
DoDamageEffect ( targets , user , targetXform ) ;
}
2022-09-29 15:51:59 +10:00
}
2022-11-14 08:33:54 +11:00
protected abstract void DoDamageEffect ( List < EntityUid > targets , EntityUid ? user , TransformComponent targetXform ) ;
2023-08-06 12:55:38 +10:00
private bool DoHeavyAttack ( EntityUid user , HeavyAttackEvent ev , EntityUid meleeUid , MeleeWeaponComponent component , ICommonSession ? session )
2022-09-29 15:51:59 +10:00
{
2022-11-14 08:33:54 +11:00
// TODO: This is copy-paste as fuck with DoPreciseAttack
2024-05-21 17:40:35 +12:00
if ( ! TryComp ( user , out TransformComponent ? userXform ) )
2023-08-06 12:55:38 +10:00
return false ;
2022-11-14 08:33:54 +11:00
2024-10-14 00:40:59 -05:00
var targetMap = TransformSystem . ToMapCoordinates ( GetCoordinates ( ev . Coordinates ) ) ;
2022-11-14 08:33:54 +11:00
if ( targetMap . MapId ! = userXform . MapID )
2023-08-06 12:55:38 +10:00
return false ;
2023-05-08 17:46:26 +10:00
var userPos = TransformSystem . GetWorldPosition ( userXform ) ;
2022-11-14 08:33:54 +11:00
var direction = targetMap . Position - userPos ;
2023-07-08 14:08:32 +10:00
var distance = Math . Min ( component . Range , direction . Length ( ) ) ;
2022-11-14 08:33:54 +11:00
2023-08-06 16:01:44 +00:00
var damage = GetDamage ( meleeUid , user , component ) ;
2025-07-10 03:48:45 -04:00
var resistanceBypass = GetResistanceBypass ( meleeUid , user , component ) ;
2023-09-11 09:42:41 +10:00
var entities = GetEntityList ( ev . Entities ) ;
2022-11-14 08:33:54 +11:00
if ( entities . Count = = 0 )
{
2023-08-04 21:17:13 -05:00
if ( meleeUid = = user )
{
2024-10-14 00:40:59 -05:00
AdminLogger . Add ( LogType . MeleeHit ,
LogImpact . Low ,
2023-08-04 21:17:13 -05:00
$"{ToPrettyString(user):actor} melee attacked (heavy) using their hands and missed" ) ;
}
else
{
2024-10-14 00:40:59 -05:00
AdminLogger . Add ( LogType . MeleeHit ,
LogImpact . Low ,
2023-08-04 21:17:13 -05:00
$"{ToPrettyString(user):actor} melee attacked (heavy) using {ToPrettyString(meleeUid):tool} and missed" ) ;
}
Rethinking equipment (#1711)
* delete all modular content
* clean up
* Update guard.yml
* spear first pass
* Add imperial two-handed sword and update spear
Introduces the imperial two-handed sword with new sprites, prototype, and animations. Refines spear configuration: adjusts damage, animation, and offsets, and updates its sprites and prototype to use a new resource path. Improves melee weapon animation logic for both thrust and slash attacks.
* neck displacement
* Update neck.png
* Update migration.yml
* dagger
* Add sword prototype and refactor melee weapon swing logic
Introduces a new sword entity and associated textures. Refactors melee weapon swing logic by renaming SwingLeft to CPSwingLeft and updating related code. Adjusts animation offsets and rotation values for daggers, spears, and two-handed swords. Moves and updates dagger texture assets to a new directory structure.
* hatchet
* sickle
* Add skimitar sword entity and sprites
Introduced a new 'skimitar' sword entity with description and associated sprite assets, including icon, in-hand, and equipped states. Also updated the imperial sword's name and description for clarity.
* Add rapier weapon and adjust melee weapon balance
Introduced the imperial rapier weapon with associated prototype and textures. Increased the default single-target melee damage modifier to 1.3 and removed per-weapon clickDamageModifier overrides from dagger, spear, sword, and two-handed sword. Also increased sword base damage to 10 for better balance.
* Add iron tool/weapon variants and update wall thresholds
Introduces iron variants for pickaxe, shovel, dagger, rapier, spear, sword, and two-handed sword, including new sprites and YAML prototypes. Adjusts wall and ore vein damage thresholds for destruction and sound triggers. Updates migration.yml to map modular iron weapons to new iron variants and spawns stone blocks on stonebrick wall breakage. Also refactors dagger textures to use an 'iron' directory.
* Refactor ice dagger and adjust blacksmith skills
Replaced CP14IceDagger with CP14WeaponDaggerIce, updating its parent, stats, and components for consistency. Adjusted base dagger damage types. Blacksmith job and related melting skills are now commented out or disabled, reflecting a change in skill progression and job setup.
* Update ice_dagger.yml
* Deprecate sword mastery skills and update melee swing logic
Commented out SwordMastery, RapierMastery, and SkimitarMastery skills and removed their assignment from guard and artisan job prototypes. Renamed CPSwingLeft to SwingLeft in melee weapon code for clarity and updated related logic.
* Remove requiredSkills from anvil and furnace recipes
Eliminated the 'requiredSkills' field from all recipes in Anvil/misc.yml and furnace.yml. This simplifies recipe definitions and removes skill prerequisites for crafting these items.
* Update guard_commander.yml
* Comment out freeLearnedSkills for T1 and T2 skeletons
Disabled the freeLearnedSkills entries, including SwordMastery and SkimitarMastery, in both T1 and T2 DemiplaneAntag skeleton YAML prototypes. This change may be for balancing or testing purposes.
* Update migration.yml
* Update migration.yml
* guidebook
* r
* spear passive + hammer passive
* tool hammer + skimitar refactor
* balance tweak
* kick nerf
* TOWER DEFENCE UPDATE
* default shield refactor
* buckler (only sprites)
* Update migration.yml
* buckler parry
* some fixes
* Update T2.yml
* Update T2.yml
* Update instruments.yml
* Update migration.yml
* M O P
* war axe
* Update migration.yml
* Keen Eye skill
* arrows + bow + loadouts
* Update tools.yml
* trading
* fix
* Update misc.yml
* Update migration.yml
2025-09-06 00:59:58 +03:00
var missEvent = new MeleeHitEvent ( new List < EntityUid > ( ) , user , meleeUid , damage , direction , heavy : true ) ;
2023-02-13 07:55:39 -05:00
RaiseLocalEvent ( meleeUid , missEvent ) ;
Upstream, Yay (#27)
* Make BaseMedicalPDA abstract (#26567)
* Fix GasMixers/Filters not working (#26568)
* Fix GasMixers/Filters not working
* OKAY GAS FILTERS TOO
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
* Industrial Reagent Grinder Hotfix (#26571)
fixed
* Give stores the ability to check for owner only (#26573)
adds a check if the store belongs to the user
* Fix round start crash (causing instant restart) (#26579)
* Fix round start crash
* Make `TryCreateObjective` more error tolerant
* Update engine to v217.1.0 (#26588)
* Fix initial infected icon hiding (#26585)
* Fix Meta evac shuttle name (#26587)
* Make timer ignore client predict setting (#26554)
* Make timer ignore client predict setting
* making tests run
---------
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Make advertise system survive no map inits (#26553)
* Make advertise system survive no map inits
* Add comment to try prevent future bugs
* Update Credits (#26589)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Fix fox spawn on reach (#26584)
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Removes SCAF armor (#26566)
* removes scaf armor
* replace maint loot spawner spot with basic helmet
* Update Patrons.yml (#26578)
* Automatic changelog update
* Make aghost command work on other players using optional argument (#26546)
* Translations
* Make aghost command work on other players using optional argument
* Reviews
* Automatic changelog update
* Add new component to Make sound on interact (#26523)
* Adds new Component: EmitSoundOnInteractUsing
* Missed an import
* File-scoping
* Replace ID check with Prototype check
* Moved component and system to shared. Set prediction to true.
* Removed impoper imports and changed namespace of component to reflect changed folder.
* Following function naming theme
* All this code is basically deltanedas's, but it was a learning experience for me
* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs
* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Increase syndi duffelbag storage (#26565)
* Increase syndi duffelbag storage
* weh
* Automatic changelog update
* Adds construction/decon graphs for plastic flaps (#26341)
* Adds construction/decon graphs for plastic flaps
* Dang arbitrage
* undo conflict
---------
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
* Automatic changelog update
* Makes secglasses roundstart (#26487)
* makes secglasses roundstart
* fix epic fail
* fix tests questionmark?
* Update Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
---------
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* Automatic changelog update
* Toilet Upgrade (needs review) (#22133)
* Toilet Draft
* fixes
* toilets now have secret stash to place items in cistern.
* fixes
* plungers now unblock toilets.
* fix sprite
* new sprites and fix
* fixes
* improve seat sprites.
* fix
* removed visualisersystem changed to genericvisualizers
* flush sound for toilets and copyright for toilet sprites.
* fix atrributions
* fixes
* fix datafield flushtime
* sprite improvements
* fixes
* multiple changes
* fix
* fix
* fixes remove vv
* moved stash related functions to secret stash system from toilet.
* fix
* fix
* changes for recent review.
* fix
* fix
* Automatic changelog update
* Uplink store interface searchable with a searchbar. (#24287)
* Can now search the uplink store interface with a searchbar.
* Search text updates no longer send server messages. Persists listings locally.
* Formatting fixes and tidying.
* Added helper method to get localised name and description (or otherwise, entity name and description) of store listing items.
* Update Content.Client/Store/Ui/StoreMenu.xaml
* Review change; moved localisation helper functions to their own class.
* Prevent thread-unsafe behaviour as-per review.
* Remove dummy boxcontainer
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Improved RCDs (#22799)
* Initial radial menu prototyping for the RCD
* Radial UI buttons can send messages to the server
* Beginning to update RCDSystem
* RCD building system in progress
* Further updates
* Added extra effects, RCDSystem now reads RCD prototype data
* Replacing tiles is instant, multiple constructions are allowed, deconstruction is broken
* Added extra functionality to RadialContainers plus documentation
* Fixed localization of RCD UI strings
* Menu opens near cursor, added basic RCD
* Avoiding merge conflict
* Implemented atomized construction / deconstruction rules
* Increased RCD ammo base charges
* Moved input context definition to content
* Removed obsoleted code
* Updates to system
* Switch machine and computer frames for electrical cabling
* Added construction ghosts
* Fixed issue with keybind detection code
* Fixed RCD construction ghost mispredications
* Code clean up
* Updated deconstruction effects
* RCDs effects don't rotate
* Code clean up
* Balancing for ammo counts
* Code clean up
* Added missing localized strings
* More clean up
* Made directional window handling more robust
* Added documentation to radial menus and made them no longer dependent on Content
* Made radial containers more robust
* Further robustness to the radial menu
* The RCD submenu buttons are only shown when the destination layer has at least one children
* Expanded upon deconstructing plus construction balance
* Fixed line endings
* Updated list of RCD deconstructable entities. Now needs a component to deconstruct instead of a tag
* Bug fixes
* Revert unnecessary change
* Updated RCD strings
* Fixed bug
* More fixes
* Deconstructed tiles/subflooring convert to lattice instead
* Fixed failed tests (Linux doesn't like invalid spritespecifer paths)
* Fixing merge conflict
* Updated airlock assembly
* Fixing merge conflict
* Fixing merge conflict
* More fixing...
* Removed erroneous project file change
* Fixed string handling issue
* Trying to fix merge conflict
* Still fixing merge conflicts
* Balancing
* Hidden RCD construction ghosts when in 'build' mode
* Fixing merge conflict
* Implemented requested changes (Part 1)
* Added more requested changes
* Fix for failed test. Removed sussy null suppression
* Made requested changes - custom construction ghost system was replaced
* Fixing merge conflict
* Fixed merge conflict
* Fixed bug in RCD construction ghost validation
* Fixing merge conflict
* Merge conflict fixed
* Made required update
* Removed lingering RCD deconstruct tag
* Fixing merge conflict
* Merge conflict fixed
* Made requested changes
* Bug fixes and balancing
* Made string names more consistent
* Can no longer stack catwalks
* Automatic changelog update
* Update submodule to 217.2.0 (#26592)
* Southern accent (#26543)
* created the AccentComponent and the AccentSystem
* word replacement schtuhff
* made it a trait fr ongg!!1
* Update Content.Server/Speech/EntitySystems/SouthernAccentSystem.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Prevent storing liquids in equipped buckets (#24412)
* Block access to solutions in equipped spillables.
* Stop Drink verb appearing if the solution can't be accessed.
* Automatic changelog update
* Fix 'Hypopen shouldn't display solution examine text' (#26453)
* stealthy hypo
* ExaminableSolution hand check when in covert implement.
ExaminableSolution now has 'hidden' datafield to enable chemical inspection only in hand.
* cleaning code
* more cleaning
* Hidden datafield renamed to HeldOnly
* review
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Revert Paint (#26593)
* Revert "Fix build (#26258)"
This reverts commit 6de5fbfafbde700d711a566f6a43f05f7a99e455.
* Revert "Spray Paint (Review Ready) (#23003)"
This reverts commit e4d5e7f1aebfc37b1bc3453fdb39578f3897b6a1.
# Conflicts:
# Resources/Prototypes/Entities/Structures/Holographic/projections.yml
* Fix: Prevent single-use hyposprays from getting the toggle draw verb (#26595)
Prevent single-use hyposprays from getting the toggle draw verb
Co-authored-by: Plykiya <plykiya@protonmail.com>
* MeleeHitSoundSystem (#25005)
* Began work to unscrew melee noises
* finished
* cleanup
* cleanup
* Update Content.Server/Weapons/Melee/MeleeWeaponSystem.cs
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
* _Style
* Fix merge
---------
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Remove physics comp from VendingMachineWallmount (#25632)
* Remove physics comp from VendingMachineWallmount
* Fixtures removal
---------
Co-authored-by: Jeff <velcroboy333@hotmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Remake hairflowers (#25475)
* Add more lily usage (orange hairflower and flowercrown)
* comit 2
* ee
* more fixes
* w
* im stupid
* bring poppy in authodrobe
* weh
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Automatic changelog update
* Injector UI shows TransferAmount change, Spilling liquid changes Injector mode (#26596)
* Injector UI shows TransferAmount change, spill changes mode
* Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs
* Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update submodule to 217.2.1 (#26599)
* disallow unanchoring or opening panels on locked emitters/APEs (#26600)
* disallow unanchoring or opening panels on locked emitters/APEs
* no locking open panels
* oops
* needback feedback
* Update Content.Shared/Lock/LockSystem.cs
* Update Content.Shared/Lock/LockSystem.cs
* Update Content.Shared/Lock/LockSystem.cs
* sanity
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Fix grave digging sound indefinitely playing if dug by aghost. (#26420)
Admins bypass doafters. As such, the code that runs on doafter
completion is ran before the sound is actually created. This then leads
to the sound never being stopped, and as such it would infinitely play.
This commit gets around the issue by manually stopping the sound should
the doafter fail to start. If we could be sure that the doafter would
never fail, then we could just move the call to StartDigging above
starting the doafter but this is currently not possible.
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Make the buttons on the map ui not squished (#26604)
Make the map ui work
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Combine flower crown and wreath (#26605)
* Combine flower crown and wreath
* huh
* huuh :trollface:
* Automatic changelog update
* Add AP damage to throwing knives (#26380)
* add
* ap
* no more stam dmg
* Automatic changelog update
* cancelable brig timers (#26557)
brig timers now cancelable. also some screensystem yakshave
* Fix orientation of roller skate sprites (#26627)
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Automatic changelog update
* Fix GastTileOverlay sending redundant data (#26623)
Fix GastTileOverlay not updating properly
* Auto DeAdmin sooner (#26551)
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Add briefcase to curadrobe and lawdrobe, and some briefcases cleanup (#26527)
* Add briefcase to curadrobe and some briefcases cleanup
* also add to lawdrobe
* Automatic changelog update
* Fix some text overflow bugs in HUD (#26615)
* Don't clip text in item status
* Fix overflow in examine tooltip
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Adds two milk cartons to the BoozeOMat (#26635)
* Automatic changelog update
* made the hover text less vague (sorry) (#26630)
* blacklisted throwing knifes from pneumatic cannon (#26628)
* Fix radio jammer not blocking suit sensors. (#26632)
As it turns out, they are not in fact on their own netid. They are
actually just on wireless. The way I had tested my previous pr led to
this mistake being made. I originally had the radio jammer block
wireless as well, but decided to take out under the flase assumption
that it suit sensors were actually on their own netid and did not
require the ability to block all wireless packets at the last moment.
* Fix dirt decals in reach not being cleanable (#26636)
made all dirt decals cleanable
Co-authored-by: hamurlik <renoDeath@protonmail.com>
* Automatic changelog update
* Replace drill_hit.ogg and drill_use.ogg with better sounds (#26622)
* Replace drill_hit.ogg and drill_use.ogg with better sounds
* Fix attribution source for drill_hit.ogg
* Update Resources/Audio/Items/attributions.yml
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Update Resources/Audio/Items/attributions.yml
Co-authored-by: Kara <lunarautomaton6@gmail.com>
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Gave Blast door access permissions (#26606)
Added access reader to all blast doors. Added pre configured blast doors for engineering and science.
* Gives all wheeled objects low friction (#26601)
* gives all wheeled objects friction
* adjustments to sum stuff
* Automatic changelog update
* Combine solution injection systems; Fix embeddable injectors (#26268)
* Combine injection systems
* Update Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Automatic changelog update
* Add ValueList import (#26640)
* Change assault borg modules texture (#26502)
* Update borg_modules.yml
* Fix borg_modules.yml?
* Uh
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Add Cyborg Emote Sounds (#26594)
* Hal 9000's first emote
* Add Chime emote & Change variation to 0.05
* Modify Buzz emote
* Add Buzz-two emote
* modified Horn
* add ping emote
* add slowclap emote
* Convert slowclap.ogg to mono, reflect change in attribution.yml
* fix capitalization for all chatMessages && change all catagory to category
* remove all traces of slowclap.ogg
* forgor one file smh
* collating copywrite
* spelling mistakes will be the death of me
* more spelling mistakes
* change yml string to list
* Automatic changelog update
* Coordinates Disks & Shuttle FTL Travel (#23240)
* Adds the CentComm Disk and configures it to work with direct-use shuttles
* Added functionality for drone shuttles (i.e. cargo shuttle)
* Adds support for pods, and a disk console object for disks to be inserted into. Also sprites.
* Added the disk to HoP's locker
* Removed leftover logs & comments
* Fix for integration test
* Apply suggestions from code review (formatting & proper DataField)
Co-authored-by: 0x6273 <0x40@keemail.me>
* Fix integration test & changes based on code review
* Includes Disk Cases to contain Coordinate Disks, which are now CDs instead of Floppy Disks
* Check pods & non-evac shuttles for CentCom travel, even in FTL
* Import
* Remove CentCom travel restrictions & pod disk consoles
* Major changes that changes the coordinates disk system to work with salvage expeditions
* Missed CC diskcase removal
* Fix build
* Review suggestions and changes
* Major additional changes after merge
* Minor tag miss
* Integration test fix
* review
---------
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Add door electronics access configuration menu (#17778)
* Add door electronics configuration menu
* Use file-scoped namespaces
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Open door electronics configuration menu only with network configurator
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Doors will now try to move their AccessReaderComponent to their door electronics when the map is initialized
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Make the access list in the id card computer a separate control
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix merge conflict
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove DoorElectronics tag
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Integrate doors with #17927
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Move door electornics ui stuff to the right place
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Some review fixes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* More fixes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* review fix
Signed-off-by: c4llv07e <kseandi@gmail.com>
* move all accesses from airlock prototypes to door electronics
Signed-off-by: c4llv07e <kseandi@gmail.com>
* rework door electronics config access list
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove Linq from the door electronics user interface
* [WIP] Add EntityWhitelist to the activatable ui component
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Better interaction system
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Refactor
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix some door electronics not working without AccessReaderComponent
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Move AccessReaderComponent update code to the AccessReaderSystem
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unnecesary newlines in the door access prototypes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unused variables in access level control
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unnecessary method from the door electronics configuration menu
Signed-off-by: c4llv07e <kseandi@gmail.com>
* [WIP] change access type from string to ProtoId<AccessLevelPrototype>
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unused methods
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Newline fix
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Restored to a functional state
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix access configurator not working with door electronics AccessReaderComponent
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Replace all string access fields with ProtoId
Signed-off-by: c4llv07e <kseandi@gmail.com>
* move access level control initialization into Populate method
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Review
---------
Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* scoopable ash and foam, solution transfer prediction (#25832)
* move SolutionTransfer to shared and predict as much as possible
* fully move OpenableSystem to shared now that SolutionTransfer is
* fix imports for everything
* doc for solution transfer system
* trolling
* add scoopable system
* make ash and foam scoopable
* untroll
* untroll real
* make clickable it work
* troll
* the scooping room
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Replace the teleportation logic on the SCRAM implant! (#26429)
* Replace the teleportation logic on the SCRAM implant!
Now instead of just trying to pick a random tile in range 20 times, the
scram teleportation logic now:
- Gets a list of grids in range
- Until a suitable tile is picked it picks a random grid
- From that grid it picks a random tile.
- If the tile is suitable, then it is set as the target and the user
will be teleported there.
- Grids and tiles are randomly picked as outlined above until a valid
tile is found, or all valid grids and tiles are exhausted.
- Should no suitable tile be found then they get teleported to the same
position they are at. Effectively not teleporting them.
* Actually make the defaults sane which I forgor in the last commit
* Extract tile section to its own function. Bias selection for current grid. Use proper coords for box.
* Address reviews as much as possible
* Address reviews
* Refactored AdvertiseComponent (#26598)
* Made it better
* ok
* alright
---------
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Bartender "Essentials" (#25367)
* drinks round 1
saving my progress before my hard drive explodes
* test 2
please work
* name fixes
whoops
* Update drinks.yml
* various fixes
am dumb
* add sol dry to vends
more fixes and changes, yippee!
* more fixes & ingame testing
shrimple tests
* last fixes :trollface:
should be ready for pr now
* Update soda.yml
sate thirst
* Automatic changelog update
* Add ERT Chaplain (#25956)
* ERT Chaplain
* Make BibleUser
* It was not intended
* reword my poor words
* 1984 a comment that I decided was unnecessary.
* Update Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Changes in chemicals page in guidebook (#25831)
* Added pages to chemical categories
The chemical categories have their own page now. Added the "Chemical Tabs" in /ServerInfo/Guidebook. Moved the Chemicals code from shiftsandjobs.yml to its own .yml file which is "chemicals.yml".
* Update guides.ftl
* Update chemicals.yml
Changed the guide entry's ID for the medical tab from Medicine to Medicinal.
Hope this works...
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Biological.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Foods.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Elements.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Narcotics.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Toxins.xml
Co-authored-by: exincore <me@exin.xyz>
* Fixed a few errors and stuff!
A few typos have been fixed thanks to exincore. Added dedicated .xml files to be used for the dedicated category pages (Medicinal and Botanical pages). Made it so it doesn't use any duplicated IDs anymore.
If there's more problems, please do tell so I can fix it!
* Update settings.json
* Fix?
---------
Co-authored-by: exincore <me@exin.xyz>
* Automatic changelog update
* Anomalies behaviours (#24683)
* Added new anomaly particle
* Add basic anomaly behaviour
* +2 parametres
* add functional to new particle
* add components to behaviours
* big content
* add shuffle, moved thing to server
* clean up
* fixes
* random pick redo
* bonjour behavioUr
* fix AJCM
* fix
* add some new behaviours
* power modifier behaviour
* rmeove timer
* new event for update ui fix
* refactor!
* fixes
* enum
* Fix mapinit
* Minor touches
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Fix clipping/overlap in lathe machine UIs (#26646)
* Add scrollbars to lathe material list when necessary
* Fix bug where shrinking window would cause elements to overlap
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Added chat window transparency slider to options (#24990)
* Adds a new slider to the misc tab in options that lets the player set chat window transparency
* Tweaked variable names
* Fixed order to match UI
* Renamed set chat window transparency function
* Changed and refactored to opacity instead of transparency
* Remove unnecessary int to float conversions
Slider used to be 0-100 while the CCVar was 0.0-1.0f. This is confusing and was only used for rounding to 2 decimal points.
* Round the value to two decimal points
* Remove rounding for now
* Rename
* Unhardcode chat color by moving to stylesheet
* Fix indent
* Make opacity slider only change opacity
---------
Co-authored-by: Your Name <you@example.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
* Automatic changelog update
* Infinity books (#25840)
* setup text data
* roundstart reshuffling keywords with gibberish words
* saved data categorized
* add book with hints
* start redrawing books
* +4 book design
* +books +random visual upgrade
* finish first file
* finish lore file
* finish with books.rsi now authorbooks.rsi...
* aurora! and some fix
* nuke author books
* speelbuke update
* finish respriting work
* fix scientist guide visual
* setup datasets
* setup stupid funny random story
* restore author books, upgrade hint generation
* add variety to story generator
* add learning system
* minor textgen edit
* file restruct, hint count variation
* more restruct
* more renaming
add basis learning system logic. Spears locked for special book for test.
* nuke all systems, for splitting PR gods
* typo fix
* update migration with deleted books
* add random story books to maint
* Update construction-system.ftl
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* typo fix
* interchangeably
* final
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* "."
* Update Content.Server/Paper/PaperRandomStorySystem.cs
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Ubazer fix
* inadequate
* localized
* Update meta.json
* fuck merge conflicts
* fix jani book
---------
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Automatic changelog update
* Resprite ambuzol plus pills (#26651)
* Automatic changelog update
* Fixed air injector visuals (#26654)
* Make cyborgs hands explosion proof. (#26515)
* Make the advanced treatment modules beakers explosion-proof.
* undo changes
* Epic rename fail
* Explosion recursion data field
* Logic for data field
* Automatic changelog update
* Automatic changelog update
* Make typing indicator shaded (#26678)
* Automatic changelog update
* Validate wire layout prototypes and remove invalid WiresComponents (#26682)
Validate wire layout prototypes; delete invalid wirescomponents.
* Increase time inbetween anomaly pulses (#26677)
nerf anomaly pulse delays
* Automatic changelog update
* Fix for items dropped being rotated to world north (#26662)
* Fix rotation of dropped items
* combined world position rotation function for dumpable
* scuffed implementation?
* less scuffed?
* even less scuffed... I guess
* capital D
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
* Automatic changelog update
* fix typo
---------
Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
Co-authored-by: Wrexbe (Josh) <81056464+wrexbe@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: wrexbe <wrexbe@protonmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
Co-authored-by: J. Brown <DrMelon@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: drteaspoon420 <87363733+drteaspoon420@users.noreply.github.com>
Co-authored-by: Bixkitts <72874643+Bixkitts@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: avery <51971268+graevy@users.noreply.github.com>
Co-authored-by: eoineoineoin <github@eoinrul.es>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
Co-authored-by: RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com>
Co-authored-by: Zealith-Gamer <61980908+Zealith-Gamer@users.noreply.github.com>
Co-authored-by: hamurlik <75280571+hamurlik@users.noreply.github.com>
Co-authored-by: hamurlik <renoDeath@protonmail.com>
Co-authored-by: no <165581243+pissdemon@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: SoulFN <164462467+SoulFN@users.noreply.github.com>
Co-authored-by: Keer-Sar <144283718+Keer-Sar@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: c4llv07e <38111072+c4llv07e@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Firewatch <54725557+musicmanvr@users.noreply.github.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: f0x-n3rd <150924715+f0x-n3rd@users.noreply.github.com>
Co-authored-by: exincore <me@exin.xyz>
Co-authored-by: Sk1tch <ben.peter.smith@gmail.com>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
Co-authored-by: osjarw <62134478+osjarw@users.noreply.github.com>
2024-04-03 10:33:34 +03:00
// immediate audio feedback
_meleeSound . PlaySwingSound ( user , meleeUid , component ) ;
2023-08-06 12:55:38 +10:00
return true ;
2022-11-14 08:33:54 +11:00
}
2023-05-08 17:46:26 +10:00
// Naughty input
if ( entities . Count > MaxTargets )
{
entities . RemoveRange ( MaxTargets , entities . Count - MaxTargets ) ;
}
2023-05-02 05:07:17 +10:00
// Validate client
for ( var i = entities . Count - 1 ; i > = 0 ; i - - )
{
2024-10-14 00:40:59 -05:00
if ( ArcRaySuccessful ( entities [ i ] ,
userPos ,
direction . ToWorldAngle ( ) ,
component . Angle ,
distance ,
userXform . MapID ,
user ,
session ) )
2023-05-02 05:07:17 +10:00
{
continue ;
}
// Bad input
entities . RemoveAt ( i ) ;
}
2022-11-14 08:33:54 +11:00
var targets = new List < EntityUid > ( ) ;
var damageQuery = GetEntityQuery < DamageableComponent > ( ) ;
foreach ( var entity in entities )
{
if ( entity = = user | |
! damageQuery . HasComponent ( entity ) )
continue ;
targets . Add ( entity ) ;
}
// Sawmill.Debug($"Melee damage is {damage.Total} out of {component.Damage.Total}");
// Raise event before doing damage so we can cancel damage if the event is handled
Rethinking equipment (#1711)
* delete all modular content
* clean up
* Update guard.yml
* spear first pass
* Add imperial two-handed sword and update spear
Introduces the imperial two-handed sword with new sprites, prototype, and animations. Refines spear configuration: adjusts damage, animation, and offsets, and updates its sprites and prototype to use a new resource path. Improves melee weapon animation logic for both thrust and slash attacks.
* neck displacement
* Update neck.png
* Update migration.yml
* dagger
* Add sword prototype and refactor melee weapon swing logic
Introduces a new sword entity and associated textures. Refactors melee weapon swing logic by renaming SwingLeft to CPSwingLeft and updating related code. Adjusts animation offsets and rotation values for daggers, spears, and two-handed swords. Moves and updates dagger texture assets to a new directory structure.
* hatchet
* sickle
* Add skimitar sword entity and sprites
Introduced a new 'skimitar' sword entity with description and associated sprite assets, including icon, in-hand, and equipped states. Also updated the imperial sword's name and description for clarity.
* Add rapier weapon and adjust melee weapon balance
Introduced the imperial rapier weapon with associated prototype and textures. Increased the default single-target melee damage modifier to 1.3 and removed per-weapon clickDamageModifier overrides from dagger, spear, sword, and two-handed sword. Also increased sword base damage to 10 for better balance.
* Add iron tool/weapon variants and update wall thresholds
Introduces iron variants for pickaxe, shovel, dagger, rapier, spear, sword, and two-handed sword, including new sprites and YAML prototypes. Adjusts wall and ore vein damage thresholds for destruction and sound triggers. Updates migration.yml to map modular iron weapons to new iron variants and spawns stone blocks on stonebrick wall breakage. Also refactors dagger textures to use an 'iron' directory.
* Refactor ice dagger and adjust blacksmith skills
Replaced CP14IceDagger with CP14WeaponDaggerIce, updating its parent, stats, and components for consistency. Adjusted base dagger damage types. Blacksmith job and related melting skills are now commented out or disabled, reflecting a change in skill progression and job setup.
* Update ice_dagger.yml
* Deprecate sword mastery skills and update melee swing logic
Commented out SwordMastery, RapierMastery, and SkimitarMastery skills and removed their assignment from guard and artisan job prototypes. Renamed CPSwingLeft to SwingLeft in melee weapon code for clarity and updated related logic.
* Remove requiredSkills from anvil and furnace recipes
Eliminated the 'requiredSkills' field from all recipes in Anvil/misc.yml and furnace.yml. This simplifies recipe definitions and removes skill prerequisites for crafting these items.
* Update guard_commander.yml
* Comment out freeLearnedSkills for T1 and T2 skeletons
Disabled the freeLearnedSkills entries, including SwordMastery and SkimitarMastery, in both T1 and T2 DemiplaneAntag skeleton YAML prototypes. This change may be for balancing or testing purposes.
* Update migration.yml
* Update migration.yml
* guidebook
* r
* spear passive + hammer passive
* tool hammer + skimitar refactor
* balance tweak
* kick nerf
* TOWER DEFENCE UPDATE
* default shield refactor
* buckler (only sprites)
* Update migration.yml
* buckler parry
* some fixes
* Update T2.yml
* Update T2.yml
* Update instruments.yml
* Update migration.yml
* M O P
* war axe
* Update migration.yml
* Keen Eye skill
* arrows + bow + loadouts
* Update tools.yml
* trading
* fix
* Update misc.yml
* Update migration.yml
2025-09-06 00:59:58 +03:00
var hitEvent = new MeleeHitEvent ( targets , user , meleeUid , damage , direction , heavy : true ) ;
2023-02-13 07:55:39 -05:00
RaiseLocalEvent ( meleeUid , hitEvent ) ;
2022-11-14 08:33:54 +11:00
if ( hitEvent . Handled )
2023-08-06 12:55:38 +10:00
return true ;
2022-11-14 08:33:54 +11:00
2023-09-11 09:42:41 +10:00
var weapon = GetEntity ( ev . Weapon ) ;
Interaction . DoContactInteraction ( user , weapon ) ;
2022-11-14 08:33:54 +11:00
// For stuff that cares about it being attacked.
foreach ( var target in targets )
{
2024-07-30 04:35:30 -04:00
// We skip weapon -> target interaction, as forensics system applies DNA on hit
2022-11-14 08:33:54 +11:00
// If the user is using a long-range weapon, this probably shouldn't be happening? But I'll interpret melee as a
// somewhat messy scuffle. See also, light attacks.
Interaction . DoContactInteraction ( user , target ) ;
}
var appliedDamage = new DamageSpecifier ( ) ;
2024-08-04 20:14:01 -07:00
for ( var i = targets . Count - 1 ; i > = 0 ; i - - )
2022-11-14 08:33:54 +11:00
{
2024-08-04 20:14:01 -07:00
var entity = targets [ i ] ;
2023-12-27 02:55:48 -07:00
// We raise an attack attempt here as well,
// primarily because this was an untargeted wideswing: if a subscriber to that event cared about
// the potential target (such as for pacifism), they need to be made aware of the target here.
// In that case, just continue.
if ( ! Blocker . CanAttack ( user , entity , ( weapon , component ) ) )
2024-08-04 20:14:01 -07:00
{
targets . RemoveAt ( i ) ;
2023-12-27 02:55:48 -07:00
continue ;
2024-08-04 20:14:01 -07:00
}
2023-12-27 02:55:48 -07:00
2023-09-11 09:42:41 +10:00
var attackedEvent = new AttackedEvent ( meleeUid , user , GetCoordinates ( ev . Coordinates ) ) ;
2023-05-14 13:15:18 +10:00
RaiseLocalEvent ( entity , attackedEvent ) ;
var modifiedDamage = DamageSpecifier . ApplyModifierSets ( damage + hitEvent . BonusDamage + attackedEvent . BonusDamage , hitEvent . ModifiersList ) ;
2022-11-14 08:33:54 +11:00
2025-07-10 03:48:45 -04:00
var damageResult = Damageable . TryChangeDamage ( entity , modifiedDamage , origin : user , ignoreResistances : resistanceBypass ) ;
2022-11-14 08:33:54 +11:00
2023-12-27 02:55:48 -07:00
if ( damageResult ! = null & & damageResult . GetTotal ( ) > FixedPoint2 . Zero )
2022-11-14 08:33:54 +11:00
{
2024-10-20 00:41:44 -03:00
// If the target has stamina and is taking blunt damage, they should also take stamina damage based on their blunt to stamina factor
if ( damageResult . DamageDict . TryGetValue ( "Blunt" , out var bluntDamage ) )
{
_stamina . TakeStaminaDamage ( entity , ( bluntDamage * component . BluntStaminaDamageFactor ) . Float ( ) , visual : false , source : user , with : meleeUid = = user ? null : meleeUid ) ;
}
2022-11-14 08:33:54 +11:00
appliedDamage + = damageResult ;
2023-02-13 07:55:39 -05:00
if ( meleeUid = = user )
2022-11-14 08:33:54 +11:00
{
2024-10-14 00:40:59 -05:00
AdminLogger . Add ( LogType . MeleeHit ,
LogImpact . Medium ,
2023-12-27 02:55:48 -07:00
$"{ToPrettyString(user):actor} melee attacked (heavy) {ToPrettyString(entity):subject} using their hands and dealt {damageResult.GetTotal():damage} damage" ) ;
2022-11-14 08:33:54 +11:00
}
else
{
2024-10-14 00:40:59 -05:00
AdminLogger . Add ( LogType . MeleeHit ,
LogImpact . Medium ,
2024-01-22 02:59:14 +01:00
$"{ToPrettyString(user):actor} melee attacked (heavy) {ToPrettyString(entity):subject} using {ToPrettyString(meleeUid):tool} and dealt {damageResult.GetTotal():damage} damage" ) ;
2022-11-14 08:33:54 +11:00
}
}
}
if ( entities . Count ! = 0 )
{
2024-02-03 02:00:14 +01:00
var target = entities . First ( ) ;
Upstream, Yay (#27)
* Make BaseMedicalPDA abstract (#26567)
* Fix GasMixers/Filters not working (#26568)
* Fix GasMixers/Filters not working
* OKAY GAS FILTERS TOO
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
* Industrial Reagent Grinder Hotfix (#26571)
fixed
* Give stores the ability to check for owner only (#26573)
adds a check if the store belongs to the user
* Fix round start crash (causing instant restart) (#26579)
* Fix round start crash
* Make `TryCreateObjective` more error tolerant
* Update engine to v217.1.0 (#26588)
* Fix initial infected icon hiding (#26585)
* Fix Meta evac shuttle name (#26587)
* Make timer ignore client predict setting (#26554)
* Make timer ignore client predict setting
* making tests run
---------
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Make advertise system survive no map inits (#26553)
* Make advertise system survive no map inits
* Add comment to try prevent future bugs
* Update Credits (#26589)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Fix fox spawn on reach (#26584)
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Removes SCAF armor (#26566)
* removes scaf armor
* replace maint loot spawner spot with basic helmet
* Update Patrons.yml (#26578)
* Automatic changelog update
* Make aghost command work on other players using optional argument (#26546)
* Translations
* Make aghost command work on other players using optional argument
* Reviews
* Automatic changelog update
* Add new component to Make sound on interact (#26523)
* Adds new Component: EmitSoundOnInteractUsing
* Missed an import
* File-scoping
* Replace ID check with Prototype check
* Moved component and system to shared. Set prediction to true.
* Removed impoper imports and changed namespace of component to reflect changed folder.
* Following function naming theme
* All this code is basically deltanedas's, but it was a learning experience for me
* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs
* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Increase syndi duffelbag storage (#26565)
* Increase syndi duffelbag storage
* weh
* Automatic changelog update
* Adds construction/decon graphs for plastic flaps (#26341)
* Adds construction/decon graphs for plastic flaps
* Dang arbitrage
* undo conflict
---------
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
* Automatic changelog update
* Makes secglasses roundstart (#26487)
* makes secglasses roundstart
* fix epic fail
* fix tests questionmark?
* Update Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
---------
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* Automatic changelog update
* Toilet Upgrade (needs review) (#22133)
* Toilet Draft
* fixes
* toilets now have secret stash to place items in cistern.
* fixes
* plungers now unblock toilets.
* fix sprite
* new sprites and fix
* fixes
* improve seat sprites.
* fix
* removed visualisersystem changed to genericvisualizers
* flush sound for toilets and copyright for toilet sprites.
* fix atrributions
* fixes
* fix datafield flushtime
* sprite improvements
* fixes
* multiple changes
* fix
* fix
* fixes remove vv
* moved stash related functions to secret stash system from toilet.
* fix
* fix
* changes for recent review.
* fix
* fix
* Automatic changelog update
* Uplink store interface searchable with a searchbar. (#24287)
* Can now search the uplink store interface with a searchbar.
* Search text updates no longer send server messages. Persists listings locally.
* Formatting fixes and tidying.
* Added helper method to get localised name and description (or otherwise, entity name and description) of store listing items.
* Update Content.Client/Store/Ui/StoreMenu.xaml
* Review change; moved localisation helper functions to their own class.
* Prevent thread-unsafe behaviour as-per review.
* Remove dummy boxcontainer
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Improved RCDs (#22799)
* Initial radial menu prototyping for the RCD
* Radial UI buttons can send messages to the server
* Beginning to update RCDSystem
* RCD building system in progress
* Further updates
* Added extra effects, RCDSystem now reads RCD prototype data
* Replacing tiles is instant, multiple constructions are allowed, deconstruction is broken
* Added extra functionality to RadialContainers plus documentation
* Fixed localization of RCD UI strings
* Menu opens near cursor, added basic RCD
* Avoiding merge conflict
* Implemented atomized construction / deconstruction rules
* Increased RCD ammo base charges
* Moved input context definition to content
* Removed obsoleted code
* Updates to system
* Switch machine and computer frames for electrical cabling
* Added construction ghosts
* Fixed issue with keybind detection code
* Fixed RCD construction ghost mispredications
* Code clean up
* Updated deconstruction effects
* RCDs effects don't rotate
* Code clean up
* Balancing for ammo counts
* Code clean up
* Added missing localized strings
* More clean up
* Made directional window handling more robust
* Added documentation to radial menus and made them no longer dependent on Content
* Made radial containers more robust
* Further robustness to the radial menu
* The RCD submenu buttons are only shown when the destination layer has at least one children
* Expanded upon deconstructing plus construction balance
* Fixed line endings
* Updated list of RCD deconstructable entities. Now needs a component to deconstruct instead of a tag
* Bug fixes
* Revert unnecessary change
* Updated RCD strings
* Fixed bug
* More fixes
* Deconstructed tiles/subflooring convert to lattice instead
* Fixed failed tests (Linux doesn't like invalid spritespecifer paths)
* Fixing merge conflict
* Updated airlock assembly
* Fixing merge conflict
* Fixing merge conflict
* More fixing...
* Removed erroneous project file change
* Fixed string handling issue
* Trying to fix merge conflict
* Still fixing merge conflicts
* Balancing
* Hidden RCD construction ghosts when in 'build' mode
* Fixing merge conflict
* Implemented requested changes (Part 1)
* Added more requested changes
* Fix for failed test. Removed sussy null suppression
* Made requested changes - custom construction ghost system was replaced
* Fixing merge conflict
* Fixed merge conflict
* Fixed bug in RCD construction ghost validation
* Fixing merge conflict
* Merge conflict fixed
* Made required update
* Removed lingering RCD deconstruct tag
* Fixing merge conflict
* Merge conflict fixed
* Made requested changes
* Bug fixes and balancing
* Made string names more consistent
* Can no longer stack catwalks
* Automatic changelog update
* Update submodule to 217.2.0 (#26592)
* Southern accent (#26543)
* created the AccentComponent and the AccentSystem
* word replacement schtuhff
* made it a trait fr ongg!!1
* Update Content.Server/Speech/EntitySystems/SouthernAccentSystem.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Prevent storing liquids in equipped buckets (#24412)
* Block access to solutions in equipped spillables.
* Stop Drink verb appearing if the solution can't be accessed.
* Automatic changelog update
* Fix 'Hypopen shouldn't display solution examine text' (#26453)
* stealthy hypo
* ExaminableSolution hand check when in covert implement.
ExaminableSolution now has 'hidden' datafield to enable chemical inspection only in hand.
* cleaning code
* more cleaning
* Hidden datafield renamed to HeldOnly
* review
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Revert Paint (#26593)
* Revert "Fix build (#26258)"
This reverts commit 6de5fbfafbde700d711a566f6a43f05f7a99e455.
* Revert "Spray Paint (Review Ready) (#23003)"
This reverts commit e4d5e7f1aebfc37b1bc3453fdb39578f3897b6a1.
# Conflicts:
# Resources/Prototypes/Entities/Structures/Holographic/projections.yml
* Fix: Prevent single-use hyposprays from getting the toggle draw verb (#26595)
Prevent single-use hyposprays from getting the toggle draw verb
Co-authored-by: Plykiya <plykiya@protonmail.com>
* MeleeHitSoundSystem (#25005)
* Began work to unscrew melee noises
* finished
* cleanup
* cleanup
* Update Content.Server/Weapons/Melee/MeleeWeaponSystem.cs
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
* _Style
* Fix merge
---------
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Remove physics comp from VendingMachineWallmount (#25632)
* Remove physics comp from VendingMachineWallmount
* Fixtures removal
---------
Co-authored-by: Jeff <velcroboy333@hotmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Remake hairflowers (#25475)
* Add more lily usage (orange hairflower and flowercrown)
* comit 2
* ee
* more fixes
* w
* im stupid
* bring poppy in authodrobe
* weh
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Automatic changelog update
* Injector UI shows TransferAmount change, Spilling liquid changes Injector mode (#26596)
* Injector UI shows TransferAmount change, spill changes mode
* Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs
* Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update submodule to 217.2.1 (#26599)
* disallow unanchoring or opening panels on locked emitters/APEs (#26600)
* disallow unanchoring or opening panels on locked emitters/APEs
* no locking open panels
* oops
* needback feedback
* Update Content.Shared/Lock/LockSystem.cs
* Update Content.Shared/Lock/LockSystem.cs
* Update Content.Shared/Lock/LockSystem.cs
* sanity
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Fix grave digging sound indefinitely playing if dug by aghost. (#26420)
Admins bypass doafters. As such, the code that runs on doafter
completion is ran before the sound is actually created. This then leads
to the sound never being stopped, and as such it would infinitely play.
This commit gets around the issue by manually stopping the sound should
the doafter fail to start. If we could be sure that the doafter would
never fail, then we could just move the call to StartDigging above
starting the doafter but this is currently not possible.
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Make the buttons on the map ui not squished (#26604)
Make the map ui work
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Combine flower crown and wreath (#26605)
* Combine flower crown and wreath
* huh
* huuh :trollface:
* Automatic changelog update
* Add AP damage to throwing knives (#26380)
* add
* ap
* no more stam dmg
* Automatic changelog update
* cancelable brig timers (#26557)
brig timers now cancelable. also some screensystem yakshave
* Fix orientation of roller skate sprites (#26627)
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Automatic changelog update
* Fix GastTileOverlay sending redundant data (#26623)
Fix GastTileOverlay not updating properly
* Auto DeAdmin sooner (#26551)
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Add briefcase to curadrobe and lawdrobe, and some briefcases cleanup (#26527)
* Add briefcase to curadrobe and some briefcases cleanup
* also add to lawdrobe
* Automatic changelog update
* Fix some text overflow bugs in HUD (#26615)
* Don't clip text in item status
* Fix overflow in examine tooltip
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Adds two milk cartons to the BoozeOMat (#26635)
* Automatic changelog update
* made the hover text less vague (sorry) (#26630)
* blacklisted throwing knifes from pneumatic cannon (#26628)
* Fix radio jammer not blocking suit sensors. (#26632)
As it turns out, they are not in fact on their own netid. They are
actually just on wireless. The way I had tested my previous pr led to
this mistake being made. I originally had the radio jammer block
wireless as well, but decided to take out under the flase assumption
that it suit sensors were actually on their own netid and did not
require the ability to block all wireless packets at the last moment.
* Fix dirt decals in reach not being cleanable (#26636)
made all dirt decals cleanable
Co-authored-by: hamurlik <renoDeath@protonmail.com>
* Automatic changelog update
* Replace drill_hit.ogg and drill_use.ogg with better sounds (#26622)
* Replace drill_hit.ogg and drill_use.ogg with better sounds
* Fix attribution source for drill_hit.ogg
* Update Resources/Audio/Items/attributions.yml
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Update Resources/Audio/Items/attributions.yml
Co-authored-by: Kara <lunarautomaton6@gmail.com>
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Gave Blast door access permissions (#26606)
Added access reader to all blast doors. Added pre configured blast doors for engineering and science.
* Gives all wheeled objects low friction (#26601)
* gives all wheeled objects friction
* adjustments to sum stuff
* Automatic changelog update
* Combine solution injection systems; Fix embeddable injectors (#26268)
* Combine injection systems
* Update Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Automatic changelog update
* Add ValueList import (#26640)
* Change assault borg modules texture (#26502)
* Update borg_modules.yml
* Fix borg_modules.yml?
* Uh
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Add Cyborg Emote Sounds (#26594)
* Hal 9000's first emote
* Add Chime emote & Change variation to 0.05
* Modify Buzz emote
* Add Buzz-two emote
* modified Horn
* add ping emote
* add slowclap emote
* Convert slowclap.ogg to mono, reflect change in attribution.yml
* fix capitalization for all chatMessages && change all catagory to category
* remove all traces of slowclap.ogg
* forgor one file smh
* collating copywrite
* spelling mistakes will be the death of me
* more spelling mistakes
* change yml string to list
* Automatic changelog update
* Coordinates Disks & Shuttle FTL Travel (#23240)
* Adds the CentComm Disk and configures it to work with direct-use shuttles
* Added functionality for drone shuttles (i.e. cargo shuttle)
* Adds support for pods, and a disk console object for disks to be inserted into. Also sprites.
* Added the disk to HoP's locker
* Removed leftover logs & comments
* Fix for integration test
* Apply suggestions from code review (formatting & proper DataField)
Co-authored-by: 0x6273 <0x40@keemail.me>
* Fix integration test & changes based on code review
* Includes Disk Cases to contain Coordinate Disks, which are now CDs instead of Floppy Disks
* Check pods & non-evac shuttles for CentCom travel, even in FTL
* Import
* Remove CentCom travel restrictions & pod disk consoles
* Major changes that changes the coordinates disk system to work with salvage expeditions
* Missed CC diskcase removal
* Fix build
* Review suggestions and changes
* Major additional changes after merge
* Minor tag miss
* Integration test fix
* review
---------
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Add door electronics access configuration menu (#17778)
* Add door electronics configuration menu
* Use file-scoped namespaces
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Open door electronics configuration menu only with network configurator
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Doors will now try to move their AccessReaderComponent to their door electronics when the map is initialized
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Make the access list in the id card computer a separate control
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix merge conflict
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove DoorElectronics tag
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Integrate doors with #17927
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Move door electornics ui stuff to the right place
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Some review fixes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* More fixes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* review fix
Signed-off-by: c4llv07e <kseandi@gmail.com>
* move all accesses from airlock prototypes to door electronics
Signed-off-by: c4llv07e <kseandi@gmail.com>
* rework door electronics config access list
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove Linq from the door electronics user interface
* [WIP] Add EntityWhitelist to the activatable ui component
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Better interaction system
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Refactor
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix some door electronics not working without AccessReaderComponent
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Move AccessReaderComponent update code to the AccessReaderSystem
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unnecesary newlines in the door access prototypes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unused variables in access level control
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unnecessary method from the door electronics configuration menu
Signed-off-by: c4llv07e <kseandi@gmail.com>
* [WIP] change access type from string to ProtoId<AccessLevelPrototype>
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unused methods
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Newline fix
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Restored to a functional state
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix access configurator not working with door electronics AccessReaderComponent
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Replace all string access fields with ProtoId
Signed-off-by: c4llv07e <kseandi@gmail.com>
* move access level control initialization into Populate method
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Review
---------
Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* scoopable ash and foam, solution transfer prediction (#25832)
* move SolutionTransfer to shared and predict as much as possible
* fully move OpenableSystem to shared now that SolutionTransfer is
* fix imports for everything
* doc for solution transfer system
* trolling
* add scoopable system
* make ash and foam scoopable
* untroll
* untroll real
* make clickable it work
* troll
* the scooping room
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Replace the teleportation logic on the SCRAM implant! (#26429)
* Replace the teleportation logic on the SCRAM implant!
Now instead of just trying to pick a random tile in range 20 times, the
scram teleportation logic now:
- Gets a list of grids in range
- Until a suitable tile is picked it picks a random grid
- From that grid it picks a random tile.
- If the tile is suitable, then it is set as the target and the user
will be teleported there.
- Grids and tiles are randomly picked as outlined above until a valid
tile is found, or all valid grids and tiles are exhausted.
- Should no suitable tile be found then they get teleported to the same
position they are at. Effectively not teleporting them.
* Actually make the defaults sane which I forgor in the last commit
* Extract tile section to its own function. Bias selection for current grid. Use proper coords for box.
* Address reviews as much as possible
* Address reviews
* Refactored AdvertiseComponent (#26598)
* Made it better
* ok
* alright
---------
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Bartender "Essentials" (#25367)
* drinks round 1
saving my progress before my hard drive explodes
* test 2
please work
* name fixes
whoops
* Update drinks.yml
* various fixes
am dumb
* add sol dry to vends
more fixes and changes, yippee!
* more fixes & ingame testing
shrimple tests
* last fixes :trollface:
should be ready for pr now
* Update soda.yml
sate thirst
* Automatic changelog update
* Add ERT Chaplain (#25956)
* ERT Chaplain
* Make BibleUser
* It was not intended
* reword my poor words
* 1984 a comment that I decided was unnecessary.
* Update Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Changes in chemicals page in guidebook (#25831)
* Added pages to chemical categories
The chemical categories have their own page now. Added the "Chemical Tabs" in /ServerInfo/Guidebook. Moved the Chemicals code from shiftsandjobs.yml to its own .yml file which is "chemicals.yml".
* Update guides.ftl
* Update chemicals.yml
Changed the guide entry's ID for the medical tab from Medicine to Medicinal.
Hope this works...
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Biological.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Foods.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Elements.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Narcotics.xml
Co-authored-by: exincore <me@exin.xyz>
* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Toxins.xml
Co-authored-by: exincore <me@exin.xyz>
* Fixed a few errors and stuff!
A few typos have been fixed thanks to exincore. Added dedicated .xml files to be used for the dedicated category pages (Medicinal and Botanical pages). Made it so it doesn't use any duplicated IDs anymore.
If there's more problems, please do tell so I can fix it!
* Update settings.json
* Fix?
---------
Co-authored-by: exincore <me@exin.xyz>
* Automatic changelog update
* Anomalies behaviours (#24683)
* Added new anomaly particle
* Add basic anomaly behaviour
* +2 parametres
* add functional to new particle
* add components to behaviours
* big content
* add shuffle, moved thing to server
* clean up
* fixes
* random pick redo
* bonjour behavioUr
* fix AJCM
* fix
* add some new behaviours
* power modifier behaviour
* rmeove timer
* new event for update ui fix
* refactor!
* fixes
* enum
* Fix mapinit
* Minor touches
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Automatic changelog update
* Fix clipping/overlap in lathe machine UIs (#26646)
* Add scrollbars to lathe material list when necessary
* Fix bug where shrinking window would cause elements to overlap
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Added chat window transparency slider to options (#24990)
* Adds a new slider to the misc tab in options that lets the player set chat window transparency
* Tweaked variable names
* Fixed order to match UI
* Renamed set chat window transparency function
* Changed and refactored to opacity instead of transparency
* Remove unnecessary int to float conversions
Slider used to be 0-100 while the CCVar was 0.0-1.0f. This is confusing and was only used for rounding to 2 decimal points.
* Round the value to two decimal points
* Remove rounding for now
* Rename
* Unhardcode chat color by moving to stylesheet
* Fix indent
* Make opacity slider only change opacity
---------
Co-authored-by: Your Name <you@example.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
* Automatic changelog update
* Infinity books (#25840)
* setup text data
* roundstart reshuffling keywords with gibberish words
* saved data categorized
* add book with hints
* start redrawing books
* +4 book design
* +books +random visual upgrade
* finish first file
* finish lore file
* finish with books.rsi now authorbooks.rsi...
* aurora! and some fix
* nuke author books
* speelbuke update
* finish respriting work
* fix scientist guide visual
* setup datasets
* setup stupid funny random story
* restore author books, upgrade hint generation
* add variety to story generator
* add learning system
* minor textgen edit
* file restruct, hint count variation
* more restruct
* more renaming
add basis learning system logic. Spears locked for special book for test.
* nuke all systems, for splitting PR gods
* typo fix
* update migration with deleted books
* add random story books to maint
* Update construction-system.ftl
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* typo fix
* interchangeably
* final
* Update Resources/Prototypes/Datasets/Names/books.yml
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* "."
* Update Content.Server/Paper/PaperRandomStorySystem.cs
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Ubazer fix
* inadequate
* localized
* Update meta.json
* fuck merge conflicts
* fix jani book
---------
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
* Automatic changelog update
* Resprite ambuzol plus pills (#26651)
* Automatic changelog update
* Fixed air injector visuals (#26654)
* Make cyborgs hands explosion proof. (#26515)
* Make the advanced treatment modules beakers explosion-proof.
* undo changes
* Epic rename fail
* Explosion recursion data field
* Logic for data field
* Automatic changelog update
* Automatic changelog update
* Make typing indicator shaded (#26678)
* Automatic changelog update
* Validate wire layout prototypes and remove invalid WiresComponents (#26682)
Validate wire layout prototypes; delete invalid wirescomponents.
* Increase time inbetween anomaly pulses (#26677)
nerf anomaly pulse delays
* Automatic changelog update
* Fix for items dropped being rotated to world north (#26662)
* Fix rotation of dropped items
* combined world position rotation function for dumpable
* scuffed implementation?
* less scuffed?
* even less scuffed... I guess
* capital D
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
* Automatic changelog update
* fix typo
---------
Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
Co-authored-by: Wrexbe (Josh) <81056464+wrexbe@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: wrexbe <wrexbe@protonmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
Co-authored-by: J. Brown <DrMelon@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: drteaspoon420 <87363733+drteaspoon420@users.noreply.github.com>
Co-authored-by: Bixkitts <72874643+Bixkitts@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: avery <51971268+graevy@users.noreply.github.com>
Co-authored-by: eoineoineoin <github@eoinrul.es>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
Co-authored-by: RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com>
Co-authored-by: Zealith-Gamer <61980908+Zealith-Gamer@users.noreply.github.com>
Co-authored-by: hamurlik <75280571+hamurlik@users.noreply.github.com>
Co-authored-by: hamurlik <renoDeath@protonmail.com>
Co-authored-by: no <165581243+pissdemon@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: SoulFN <164462467+SoulFN@users.noreply.github.com>
Co-authored-by: Keer-Sar <144283718+Keer-Sar@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: c4llv07e <38111072+c4llv07e@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Firewatch <54725557+musicmanvr@users.noreply.github.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: f0x-n3rd <150924715+f0x-n3rd@users.noreply.github.com>
Co-authored-by: exincore <me@exin.xyz>
Co-authored-by: Sk1tch <ben.peter.smith@gmail.com>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
Co-authored-by: osjarw <62134478+osjarw@users.noreply.github.com>
2024-04-03 10:33:34 +03:00
_meleeSound . PlayHitSound ( target , user , GetHighestDamageSound ( appliedDamage , _protoManager ) , hitEvent . HitSoundOverride , component ) ;
2022-11-14 08:33:54 +11:00
}
2023-12-27 02:55:48 -07:00
if ( appliedDamage . GetTotal ( ) > FixedPoint2 . Zero )
2022-11-14 08:33:54 +11:00
{
2022-11-15 11:56:10 +11:00
DoDamageEffect ( targets , user , Transform ( targets [ 0 ] ) ) ;
2022-11-14 08:33:54 +11:00
}
2023-08-06 12:55:38 +10:00
return true ;
2022-11-14 08:33:54 +11:00
}
2023-05-02 05:07:17 +10:00
protected HashSet < EntityUid > ArcRayCast ( Vector2 position , Angle angle , Angle arcWidth , float range , MapId mapId , EntityUid ignore )
2022-11-14 08:33:54 +11:00
{
// TODO: This is pretty sucky.
var widthRad = arcWidth ;
var increments = 1 + 35 * ( int ) Math . Ceiling ( widthRad / ( 2 * Math . PI ) ) ;
var increment = widthRad / increments ;
var baseAngle = angle - widthRad / 2 ;
var resSet = new HashSet < EntityUid > ( ) ;
for ( var i = 0 ; i < increments ; i + + )
{
var castAngle = new Angle ( baseAngle + increment * i ) ;
var res = _physics . IntersectRay ( mapId ,
2024-10-14 00:40:59 -05:00
new CollisionRay ( position ,
castAngle . ToWorldVec ( ) ,
AttackMask ) ,
range ,
ignore ,
false )
. ToList ( ) ;
2022-11-14 08:33:54 +11:00
if ( res . Count ! = 0 )
{
Upstream sync (#846)
* Additional Ionstorm Law Updates (#34197)
* Added a couple entires, removed the references to IRL countries, and fixed a grammar mistake on "Telecomunications Equipment"
* Fixed another awkward grammar situation
* Commented out a bunch of law elements I felt weren't good for discussion, added some new ones to help fill in the missing areas
* Reverted pylons, and added more entries to help fill out the lists more
* reverted all deletions
* implemented feedback, also realized the IonStormActions section was rather short, so I added a bunch there
* realized I didn't remove the extra resources line, also added more things, and fixed one grammatical error
* Removed Portugal again, added more Musts since that list was the new shortest one.
* Automatic changelog update
* Add option to disable bwoink sound. (#33782)
* Add option to disable bwoink sound.
* Now it's working only with active admin status.
* No bwoink, only "notification sound"
* Moar changes
* Another one
* Automatic changelog update
* Pride Scarves (#34448)
* More scarfs (#216)
* Sprites + Colored Scarf Implimentation
Doesn't include into quickthreads or other clothing vendors
* File Paths are important
* Metas, items exist, winterdrobe
I'm iffy on them being in the winterdrobe but the other option is quickthreads so idk
* File Path Fix
* Typo fix
* Resolved merge conflict
* Moved scarves around
* Moved scarf textures out of the _CD directory
* Removed final CD folder
* Removed extra scarfs
* Removed extra scarfs, again
* Replaced ClothingNeckBase with ClothingScarfBase
---------
Co-authored-by: PursuitInAshes <91865152+PursuitInAshes@users.noreply.github.com>
Co-authored-by: TakoDragon <69509841+BackeTako@users.noreply.github.com>
* Automatic changelog update
* Replace the djstation intercoms with freelance intercoms (#34478)
* Add Freelance intercom prototype, and replace the djstation ruin with them instead of three master keys
* removed a new line
* Update nix flake for .NET 9 (#34480)
* Automatic changelog update
* Holopad networking rework (#34112)
* Initial commit
* Finalizing main changes
* Addressed reviews
* Fixed a few issues
* Switched to using global overrides
* Removed unnecessary references
* Make GasMixture enumerable
I noticed that enumerating gases is frequently done in an annoying way with Enum.GetValues. So I made it better. Now GasMixture is IEnumerable<(Gas gas, float moles)> and it just works.
* Improve canister admin logs.
1. Now clearly says "opened"/"closed" when changing the release valve.
2. Clearly says whether the valve was opened while a canister was inserted or not.
3. When a tank is ejected, logs if the valve is open and the ejection started spilling into the environment.
Fixes #34488
* Optimize & clean up RadiationSystem (#34459)
* Optimize & clean up RadiationSystem
* comments
* Update Content.Server/Radiation/Systems/RadiationSystem.GridCast.cs
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
---------
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* Update engine to v240.0.1 (#34497)
* Various Locale Typo Fixes (and spaces) (#34483)
Random spelling error and FTL linting (+PowersinkSystem because there was an misspelt locale for that)
* Space lizard plushie can now be worn on your head (#33809)
* space weh can now be work on top of head
* space weh can now be worn on top of head
* trim out unnecessary comps
* Automatic changelog update
* Adds bullet collision to wall mounted cameras (#34500)
* Automatic changelog update
* Change MaskComponent to accommodate sprites namings (#33451)
Co-authored-by: Winkarst <74284083+Winkarst-cpu@users.noreply.github.co>
* Automatic changelog update
* Add a 10u vial of plasma to the chemical locker (#33871)
Add 10u plasma to the chemistry locker so the chemists stop stealing tables.
* Automatic changelog update
* Rarer Highcaps (#34469)
* Removed highcap from seclite
* Changed cyborg starting battery to highcap, reduced seclite wattage to make it last as long as it used to.
* Gave cyborgs back their medcap
* Rounded seclite wattage down to 0.5
* Automatic changelog update
* New dry fire sound (#34447)
* new empty.ogg
* source to tg commit
* Automatic changelog update
* CentComm Map Updates (#34475)
* Bandage fix denied animations playing on devices without them
* CentComm blast door prototype
* CentComm button
* CentComm window shutters
* CC Updates
* Save as grid
* Remove an extra detective figurine
I like them better in the interrogation room
* Remove paramed locker, let pumps shut off
* Fix wrong HOP locker prototype
* Automatic changelog update
* Cog power setup fix (#34188)
* many changes
* contentingregrationtests
* serialized invalid removed
* blank
* "Changes and fixes as suggested"
* blank
* blank
* added desk bells
* engi rework rework rework
* added gate to content integration
* tweaks
* aaa
* bbb
* added holopads
* ccc
* Update default.yml
* hotfix
* aaa
* bbb
* many many tweaks and fixes
* aaa
* decals and maints
* aaa
* bbb
* ccc
* cog power setup was bad
* made it artsy
---------
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
* Add Airlocks with Bar and Kitchen access (#33821)
* Add kitchen access to Bar-Cafeteria airlocks on Cog
* Fix merge conflict
* Remove mapping changes
* Add Glass and Maints versions
* Fixed minor spelling mistake in Noir Trenchcoat description. (#34519)
Update coats.yml
* Update Credits (#34507)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Make storage implant drop items on gibbing (#33493)
* Make storage implant drop items on gib/removal
* Better way
* Fix error
* Forgotten trash
* Cleanup
* Unused var
* Update Content.Server/Implants/ImplantedSystem.cs
Co-authored-by: 0x6273 <0x40@keemail.me>
---------
Co-authored-by: Winkarst <74284083+Winkarst-cpu@users.noreply.github.co>
Co-authored-by: 0x6273 <0x40@keemail.me>
* Automatic changelog update
* Fix `emergency_elkridge` being saved as a map (#34496)
Save `emergency_elkridge` as a grid
* Update engine to v240.1.0 (#34524)
* Fixes some mobs not being able to honk/weh (#33777)
* fixes some mobs not being able to honk/weh
* addresss review
* Automatic changelog update
* Welding gas mask toggleable with action (#32691)
welding mask removable
* Automatic changelog update
* Update engine to v240.1.1 (#34527)
* Automatic changelog update
* Plasma Dirt Fix (#34534)
did the dirt thing
* Plasma station population tweak (#34549)
* Plasma Station initial commit
* Map fixes 1
Expanded science's SMES array
Added advanced SMES
Redone stamped documents with custom stamps
Expanded atmospherics with more storage tanks
Added status displays
Add missing beacons to solars
Replaced the passive gates in science with valves
Removed protolathe in engineering
Added guitar to CE office
Replaced throngler plushie with weh cloak
Add a lattice tile outside the atmos burn chamber and storange tanks
Added atmos network monitor in bridge
* Add cargo and emergency shuttle
* Updated maps
* Add plasma to map testing list
* Map fixes 2
Reworked pipenets to not go under walls
Redid salvage and disposals
Reworked the bar to include a new bar extension facing the pool
Replaced arrivals cryo with an arcade
Replaced the toilets in the service plaza with cryo
Removed the cryo in dorms
Added more details to hallways
Redid tools room to include a front desk for the janitor closet
Reconnected sci to power roundstart
Removed some unideal spawns
Expanded the TEG airlock to be 2x3 instead of 1x3
Reduced the size of the SMES bank from 10 to 6
Disabled the plasma miners (downstreams or admins can re-enable them)
Replaced illegal maint items
* Fixes a 6 pack destroying the universe
Ok maybe cracking a cold one with the boys wasn't a great idea.
* Map fixes 3
* Quick research assistant fix
* Map fixes 4
* Map fixes 5
* webedit go brrrt
* Map fixes 6
* Map fixes 7
* Map fixes 8
* Fixes non-existent object
It's amazing this game runs at all
* Map fixes 9
* update pools
* Map fixes 10
* forgot to clear my multitool
I love mapping I love mapping I love mapping I love mapping I love mapping
* Tweaked player counts
* Update population caps
Removed population cap of 60 players to make plasma into a highpop map - it's that easy!
---------
Co-authored-by: jbox1 <40789662+jbox144@users.noreply.github.com>
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
* Automatic changelog update
* Job contraband rework (#33385)
* contraband system rework to allow restriction by job, not just department
* Fixing detective trenchcoat inheritance
* removing unnecessary using declarations
* trying to fix testing error by re-adding diagnostics using declaration
* removing unecessary dependency, making allowedJobs nullable
* Adding all of slarti's requested changes except for the hacky job icon method fix
* removing accidental whitespace
* choosing to use the non-localized version because we're comparing the string against the AllowedJobs field, and the contraband classes that fill that field are written in english
* removing unneeded using dec, fixing nesting logic problem
* didn't remove the old nesting, doing that now
* using localized job title and localizing the allowed jobs string, removing usages of JobTitle field. Also networked the _jobTitle field instead.
* rewrite some stuff
* fixes
* fix energy pen
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Electrified doors/windoors now spark, new tips to deal with doors without access or when electrified (#34502)
* new tips to open doors (throwing PDA/ID, dragging body)
* electrified door sprite for players
* tooltip to reset AI electrified doors
* windoor electrified sprite
* highsec electrified visual
* increase tip dataset to 138
* corrected square bracket convention in this commit
* removed door corpse tip from prior commit
* Automatic changelog update
* Blueprint double emergency tank (#34232)
* blueprint
* NitrogenTank
* description
* Automatic changelog update
* Add system to kick people if they connect to multiple servers at once. (#34563)
* Automatic changelog update
* bagel update (#34572)
* bagel update
* Decal fault tolerance
* Also fix writes
* fix mv cable, decal issues, yar
* fix a floor tile and some other shit
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* remove tropico from devmap (#34585)
* Update wizden config to disallow multiple connections to multiple wizden servers (#34584)
* Give the chef access to cloth boxes (#34403)
* Give the chef access to fiber bags
* Update Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* lecter visual update (#34589)
* Automatic changelog update
* Box Station - Update (#34605)
* Various changes
* Implemented a bunch of changes Emisse wanted, finished up all my atmos changes I wanted to make as well
* Added reporter to prototype, and fixed dirt
* Resolved outstanding issues
* Fixed a floating camera
* pluralize the job name in the contra description (#34559)
* pluralize the job name in the contra description
* pluralization specific to contraband descriptions
* Automatic changelog update
* Feature/make radial menu great again (#32653)
* it works! kinda
* so it works now
* minor cleanup
* central button now is useful too
* more cleanup
* minor cleanup
* more cleanup
* refactor: migrated code from toolbox (as it was rejected as too specific)
* feat: moved border drawing for radial menu into RadialMenuTextureButton. Radial menu position setting into was moved to OverrideArrange to not being called on every frame
* refactor: major reworks!
* renamed DrawBagleSector to DrawAnnulusSector
* Remove strange indexing
* Regularize math
* refactor: re-orienting segment elements to be Y-mirrored
* refactor: extracted radial menu radius multiplier property, changed color pallet for radial menu button
* refactor: removed icon backgrounds on textures used in current radial menu buttons with sectors, RadialContainer Radius renamed and now actually changed control radius.
* refactor: in RadialMenuTextureButtonWithSector all sector colors are converted to and from sRGB in property getter-setters
* refactor: renamed srgb to include Srgb suffix so devs gonna see that its srgb clearly
* fix: enabled any functional keys pressed when pushing radial menu buttons
* fix: radial menu sector now scales with UIScale
* fix: accept only one event when clicking on radial menu ContextualButton
* fix: now radial menu buttons accepts only click/alt-click, now clicks outside menu closes menu always
---------
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Automatic changelog update
* Return Drozd full-auto and semi-auto firing modes (#34604)
return drozd full auto and firerate, arrange available modes in alphabetical order
* Automatic changelog update
* added missing allowed department to the restricted severity (#34558)
* added missing allow job to the base restricted severity
* no need to make a list
* no more linq in ContrabandTest
* less nesting in ContrabandTest
* Automatic changelog update
* C4 Helmet (#34076)
* worn bomb
* Update meta.json
* Update meta.json
* Automatic changelog update
* Make radioactive material radioactive (#34436)
* Make radioactive material radioactive
* Increase the slopes of item uranium
No free power for engineering
* Glowing uranium
* Revert "Increase the slopes of item uranium"
This reverts commit 2acbda26
* Nerf Wall Rocks
* Automatic changelog update
* Small fixes for Meta station (#34613)
* Fixed a few minor things, removed salvage's shuttle parts (sorry), added more equipment to armory.
* Added back salvage shuttle equipment, now in a crate
* Fix
* replace all instances of "department-{id}" with department.name (#34607)
replace all instances of "department-{id}" with department.name"
* Renaming sexy mime and clown mask (#34258)
* Renamed sexy clown and mime mask and removed lusty xenomorph poster.
* removing odd file changes. not sure why these were edited at all.
* gaaaahhh
* removed some of the old templates
* Renaming sexy mime and clown instances.
* removed unwanted gitignore edit
* Renaming sexy clown and sexy mime mask and
Removing lusty exomorph poster.
* Remove lusty xenomorph poster.
* reverted changes to maps files, actually. Other contrib is learning, appologies for excessive commits
* requested changes
* lusty migration removal
* dirty hanging whitespace
* correct date format comment
---------
Co-authored-by: NathanielJ14 <nathanielalbert1202@gmail.com>
* Automatic changelog update
* Moved Cyborg Recharging Circuit Board from Lathe to Circuit Imprinter (#34612)
Moved Cyborg Recharging Cirbuit Board from Lathe to Circuit Imprinter
* Automatic changelog update
* Replace starter borg brain with Positronic (#34614)
THE FLESH IS WEAK
* Automatic changelog update
* Elkridge Depot fixes and changes (#34539)
* fixed grav gen room, gave atmos room to branch off, replaced AME controller crate with AME controller
* added rust to maints, expanded atmos, expanded bar, expanded cap bedroom, fixed some tiles under doors, removed some gamer loot
* removed interrogator lamp and some more gamer loot
* fixed some more tiles under doors, replaced intercomall with intercomcommand in bridge and vault
* added clothing drobes to arrivals, added bin to HoP, more stuff i forgot
* i forgot to move the file from /bin to /resources...
* delete radstorm locale (#34630)
* display the current version in the changelog window (#34556)
* just works first try
* introduce more magic numbers into the codebase
* idiot doesnt know the difference between AND/OR
* Update Credits (#34644)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* New solar sprites, new solar panel upgrades, and some solar panel fixes. (#29224)
* New solar sprites, new solar panel upgrades, and some solar panel fixes.
This adds and changes a few things for solar panels!
* New sprites for all solar panels and all related states.
* Move from xform.WorldRotation to _xformSystem.SetWorldRotation within
the solar code.
* Few random fixes that Rider suggested as warnings.
* Solar Tracker Electronics was using what looks like to be the airlock
controller electronics, so that's now updated to something a bit more
realistic. It also uses the engineering circuit sprite instead of the
generic
* New Solar Panels! Adds Plasma and Uranium Glass solar panels. These
can be constructed by adding the respective glass to the panel. Plasma
is a slight increase of power and health, and uranium is double the
power and health of glass. Thus giving engineers something to update
if they want to use solar panels and possibly giving small outposts
a way to make a bit more power without a large and complex power
setup.
* Add in solar sprites that were not in the meta file.
* Updated sprites based on feedback.
* Fix the rotation of the solar panel sprites.
* Automatic changelog update
* Added Unused HoS's Flask to HoS locker (#34658)
added hos flask to locker spawn
* Automatic changelog update
* Fland Fix (#34670)
Update fland.yml
* Reroute Meta station power, engineering cosmetic changes, minor fixes (#34669)
* reroute meta power plus cosmetic fixes
* fix a lot of other things
* make changes from conflict
* Amber Station Changes (#34656)
* various changes
* Increased player limit
* slight modification
* Followed proper yaml formatting, increased lawyers
* Box Station Changes (#34655)
* Various changes
* Implemented a bunch of changes Emisse wanted, finished up all my atmos changes I wanted to make as well
* Added reporter to prototype, and fixed dirt
* Resolved outstanding issues
* Fixed a floating camera
* Added cameras to TEG, and some minor changes
* Fix mv cable crate typo (#34673)
fix mv cable crate typo
* Plasma station patch 1 (#34602)
* Plasma Station initial commit
* Map fixes 1
Expanded science's SMES array
Added advanced SMES
Redone stamped documents with custom stamps
Expanded atmospherics with more storage tanks
Added status displays
Add missing beacons to solars
Replaced the passive gates in science with valves
Removed protolathe in engineering
Added guitar to CE office
Replaced throngler plushie with weh cloak
Add a lattice tile outside the atmos burn chamber and storange tanks
Added atmos network monitor in bridge
* Add cargo and emergency shuttle
* Updated maps
* Add plasma to map testing list
* Map fixes 2
Reworked pipenets to not go under walls
Redid salvage and disposals
Reworked the bar to include a new bar extension facing the pool
Replaced arrivals cryo with an arcade
Replaced the toilets in the service plaza with cryo
Removed the cryo in dorms
Added more details to hallways
Redid tools room to include a front desk for the janitor closet
Reconnected sci to power roundstart
Removed some unideal spawns
Expanded the TEG airlock to be 2x3 instead of 1x3
Reduced the size of the SMES bank from 10 to 6
Disabled the plasma miners (downstreams or admins can re-enable them)
Replaced illegal maint items
* Fixes a 6 pack destroying the universe
Ok maybe cracking a cold one with the boys wasn't a great idea.
* Map fixes 3
* Quick research assistant fix
* Map fixes 4
* Map fixes 5
* webedit go brrrt
* Map fixes 6
* Map fixes 7
* Map fixes 8
* Fixes non-existent object
It's amazing this game runs at all
* Map fixes 9
* update pools
* Map fixes 10
* forgot to clear my multitool
I love mapping I love mapping I love mapping I love mapping I love mapping
* Tweaked player counts
* Update population caps
Removed population cap of 60 players to make plasma into a highpop map - it's that easy!
* Map fixes 11
* Map fixes 12
* Map fixes 13
* Map fixes 14
Now it's personal
* Map fixes 15
---------
Co-authored-by: jbox1 <40789662+jbox144@users.noreply.github.com>
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
* Automatic changelog update
* add a chem dispenser to the nukie planet (#34674)
* add a chem dispenser to the nukie planet
* begone test fail
* Adds better description to pneumatic valve and build menu description (#32655)
* adds description to pneumatic valve and build menu description
* Change one atmosphere to kPa
* Automatic changelog update
* fixrotations - Modified Targetted Entities (#34638)
* Fix match box (#34632)
FixMatchBox
Now you can't put anything but matches in a box of matches.
Co-authored-by: Helm4142 <Helm4142@users.noreply.github.com>
* Automatic changelog update
* Hi-viz vest now actually hi-viz (#34087)
* 27-12-2024-light-hi-viz
* 28-12-2024-meta-fix
* Storage UI V2 (#33045)
* Automatic changelog update
* Added Pain Numbness Trait (#34538)
* added pain-numbness component and system
* added numb as a trait that pulls the pain numbness component
* removed new event as mob threshold event as already being fired
* checked for MobThresholdsComponent first before running VerifyThresholds
* refacted force say to using LocalizedDatasetPrototype and added numb messages
* added severity check alert
* added comment for BeforeForceSayEvent
* removed space formatting
* changed Cancelled to CancelUpdate, fixed spacing and added two more damage-force-say-numb
* changed prefix damage-force-say-numb to 5 (whoops)
* Automatic changelog update
* Update submodule to 241.0.0 (#34678)
* Add puddle drawdepth (#32369)
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Revert "Fix match box" (#34681)
Revert "Fix match box (#34632)"
This reverts commit 88456a4a8c95af3574f2e873dcfe73e32840da44.
* update .editorconfig (#34677)
* Make crew monitor update blips at consistent rates (#32555)
* Added the ability for pAIs and station maps to be stored in engineering belts (#33048)
Co-authored-by: august-sun <45527070+august.sun@users.noreply.github.com>
* Automatic changelog update
* Engineering guidebook megaupdate v2 (#33062)
Significantly updates the Engineering guidebook (more explicitly the Atmos section) to have a lot more relevant and useful information.
Right now engineering has been getting update after update with no real change to the relevant guidebook entry. This has lead to a lot of out of date information and bad practices being prevalent in the guidebook, something that pains me to read.
* Automatic changelog update
* Omega: fix cryo pipe (#34663)
fixed the freezer pipe in cryo room
* Add more escape pods on Packed (#34628)
* add escape pods north and south of station
* move south escape pod a bit to the east
* Storage sidebar fix (#34680)
* Add conditional camera offset based on cursor - Hristov Rework, Part 1 (#31626)
* Automatic changelog update
* Amber Station Stuff (#34686)
* Removed salv upper docking airlock, gave south west solars some uranium glass.
* Routed HV wire through maints more, gave disposal blast doors a lever, added beacons and signs to escape pods
* Fake mindshield componentry and Implanter (#34079)
* Fake Mindshield (With some bad sprites)
- Add FakeMindshield System and Component
- Add FakeMindsheildImplantSystem and Component
- modify ShowMindShieldIconsSystem to check for FakeMindshields
- add all supporting yaml for the Implants, action and uplink
- add loc file stuff
- add unfinished sprites
* Cleanup, add to thief toolbox, remove metagame
- Move Implant sameness check to AFTER the implant DoAfter
to prevent instant identification of Deception Implants
- cleanup the systems and components
- add the fake mindshield to the Thief toolbox
* part 1 of fixing the folder problem
* Make the fakemindshield sprite folder lowercase
* CR - Move ImplantCheck into shared, cleanup
- Moved ImplantCheck and eventsubscription into Shared
- Remove Client/Server extensions of FakeMindshieldImplantSystem and
FakeMindShieldSystem and make shared Sealed
- make OnToggleMindshield Private, use the event!
* CR - Cleanup extra lines, fix some Prototype
- cleaned up extra liens in ImplanterSystem and
SharedFakeMindshieldSystem from when i was developing
- Uplink catalog no longer lists the implant in 2 spots,
only implants now, also uses the On state action icon
- added a comment about why it's reraising the action event
rather than directly interacting with the FakeMindshield Component
* Fake Mindshield CR:
- Added a comment about IsEnabled
- moved OnFakeMindShieldToggle to Entity<> from Uid, Comp
- fixed some formatting in uplink_catalog
* CR - Add a bit more comment
* Automatic changelog update
* reworking the chunked telecomms salv ruin (#34529)
* aaa
* bbb
* ccc
* ddd
* switched to grid
* pain
---------
Co-authored-by: TytosB <duanlaintytos@yahoo.com>
* loop update (#34688)
loop loot gone
* bagel update (#34690)
* bagel update
* fixe
* move tesla gen
* Fix airsensors not having a nitrogen threshold (#34689)
* Buff frezon to acceptable values, pending a frezon rework (#34049)
buff frezon
* Automatic changelog update
* Stun baton precise attack thrust animation (#34693)
use weaponarcthrust instead of wide swing on single attack
* Automatic changelog update
* Add disposal units to marathon chapelroid (#34709)
add disposal units to marathon chapelroid
* Oasis: add some emergency O2/N2 lockers (#34715)
Added O2, N2, and Fire lockers to Oasis station as per discussions in the issue thread
Co-authored-by: Orange-Winds <sebastian.pelka@hotmail.com>
* Removes radioactive suppermatter from Plasma Station (#34726)
Removes radioactive suppermatter
Literally 1984 can't have shit on SS14 e.t.c. e.t.c.
Co-authored-by: jbox1 <40789662+jbox144@users.noreply.github.com>
* New salvage ruin: the ruined prison ship (#34651)
* aaa
* little tweaks
* changed to grid and added to protos
* ccc
* we dont talk about it
* ddd
---------
Co-authored-by: TytosB <dunalintytos@yahoo.com>
* Buff savlage vault-medium-1's loot (#34732)
* aaa
* little tweaks
* changed to grid and added to protos
* ccc
* we dont talk about it
* ddd
* aaa
---------
Co-authored-by: TytosB <dunalintytos@yahoo.com>
* drozd visual update (#34574)
* drozd visual update
* fix wielded sprotes
* update sprotes
* Automatic changelog update
* Nuke Timer MinimumTime (#34734)
* Implemented the thing
* Made requested changes
* Automatic changelog update
* Fix thrust animation rotation (#34713)
* Fix thrust animation rotation
* directly update sprite instead
* Automatic changelog update
* Fix vulture spawning additional salvage debris (#34593)
fix vulture spawning additional salvage debris
* Nukie briefing fix (#34737)
payloadpayloadpayloadpayloadpayloadpayload
* Sentient medibot now can inject (#32110)
medibot player injection
Co-authored-by: YourUsername <you@example.com>
* Criminal Records Computer Better UX + Filtering (#32352)
* First pass at new Criminal Records Computer
need buttons to highlight.
* Filter status tabs/buttons now activate correctly via UpdateState
* Removed unneeded Directives
* Fix typo + undo VSCode changes
* Implement Emo Feedback
Loc NA and use inject deps
Cannot use inject deps on sprite system.
* try to undo vscode launch.json change
* Added requests + Filter dropdown list + jobs
Fixed maintainer fix requests,
Added Job to announcement channel output
Removed toggle buttons in-place of a dropdown list
* Fixed missed merge conflict
+ fixed an bug with filterstatus not showing on re-open ui
* Update criminal-records.ftl
Fixed lint error. whoops.
* Update Content.Server/CriminalRecords/Systems/CriminalRecordsConsoleSystem.cs
typo
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* impliment chromiumboy feedback
hopefully this will do it....
---------
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Added some more borg names (#32502)
added a handful of new names
* Automatic changelog update
* Update ScalingViewport for Engine PR (#28786)
* Update submodule to 242.0.0 (#34739)
* fix stop bleeding popup (#34729)
* fix stop bleeding popup
* add identity
* Fix RoleTimeRequirement localization (#34735)
* fix job restriction localization
* Update Content.Shared/Roles/JobRequirement/RoleTimeRequirement.cs
* Update Content.Shared/Roles/JobRequirement/RoleTimeRequirement.cs
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* reworking chem and adding psychology to loop (#34749)
* aaa
* little tweaks
* changed to grid and added to protos
* ccc
* we dont talk about it
* ddd
* aaa
* psychology real
---------
Co-authored-by: TytosB <dunalintytos@yahoo.com>
* Fix shuttle console angular velocity (#34748)
* Syndicate and CentComm Radio Implanters (#33533)
* Add Syndicate Radio Implant
* Fix description grammar
* remove unused var
* Update - Small fixes
* Un mess with imports
* Remove unused tag
* Correction
* Clear lists instead of remove
* Update 0 check
* Add Centcomm implant
* Correct centcom channel
* Correct params
* No more crying
* Update Content.Shared/Implants/Components/RadioImplantComponent.cs
* Update Content.Server/Implants/RadioImplantSystem.cs
* Update Content.Server/Implants/RadioImplantSystem.cs
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* New Highpop map: Convex recreational complex (#33346)
* start ig
* command work +AI
* finished bridge, added signs to departments
* engi partly done
* finish engi + atmos except for cams
* added med yippie
* carGODO
* nerd department finished
* se(x)c finish
* courtroom + service power
* man im tweaking out
* service propa done
* hallways
* added cams everywhere and named all the doors :pain:
* arrivals maints + exterior catwalk
* more maints
* voxob
* draft done
* holopadpilled + gaspipesensor based
* added convex name everywhere it needed to be
* nvm i guess we dont do oxford comma
* redid ALL THE HGOLOPADS FAAAAAAAAAAAAAAAAAAAAA
* Fix conflicts?
* ok let me try something
* this works right?
* atmos updated + jani lights
* uniform hallway tiles +roundstart TEG
* fixed some hidden atmos stuff
* Update map_attributions.txt
* :finnadie: no map review ...
* the fog is coming
* maints theater redone
* light dirt and the murder of most trims
* :broken_heart:
* decal based and tileoverlay pilled
* updated arrivals/library
* bungus
* yvgh
* 6 hours later...
* finished for real?
* Automatic changelog update
* Update cigarette.yml (#34756)
simple change to one of Dan's Smokes that fixes a typo.
* Seperate EMAG into EMAG and Authentication Disruptor (#34337)
* Automatic changelog update
* Astro Asteroid Sand (#34463)
* Added astro asteroid sand
* fixed the stack name
* adjusted tile sprites for asteroid and ice
* Adjusted meta.json
* Realized the other tile sprites all have solid lines on their perimeters
* Update Resources/Prototypes/Stacks/floor_tile_stacks.yml
that works
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* Update tiles.yml
* Update Resources/Locale/en-US/tiles/tiles.ftl
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* adjusted the snow sprite
* Update meta.json
---------
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* Automatic changelog update
* The Goliath Hardsuit (#34721)
* Entities for hardsuit and helmet, graph and crafting recipe; modifies goliath hide drop rate
* Added hardsuit sprites, corrected some crafting YAML
* fixed crafting recipe, adjusted resource requirements
* Added durathread material req
---------
Co-authored-by: august-sun <45527070+august.sun@users.noreply.github.com>
* Automatic changelog update
* make RefreshOverlay default to the player session (#32354)
* Loop station minor tweaks (#34758)
* small fixes
* eee
* Juice that makes you go boom (#34730)
* Juice that makes you go boom
* moved explosive juice to fun yml - fixed ExplosionReactionEffect.cs not having TileBreakScale parameter - made Drazil plushie major contraband (they are evil!!!!!)
* removed JASON!!!! JASOOON!!! JASON!!!
* don't do commits at 1am
* Update fun.yml
fix ident
* no more bullying the server (only 1 explosion)
* Automatic changelog update
* Adjust inventory size of ginormous scrap (#33454)
Adjusts the size of ginormous scrap to fit in bags of holding
* Automatic changelog update
* After getting banned, you now have to re-read the rules! (#33270)
* first commit
* opps
* Reset cooldown instead
* Added ccvar
* Not replicated!
* More robust Particle Accelerator menu (retry) (#34037)
Particle Acceleratir fixed
Co-authored-by: VideoKompany <135313844+VlaDOS1408@users.noreply.github.com>
* Serializable emag flags (#34766)
* serializable idk
* guh
* Fix Double Muzzle Flash (#33981)
* Pass user to effects to properly fix double muzzle flash.
* Use gun when user is null.
* Update MuzzleFlashEvent.cs
* Update MuzzleFlashEvent.cs
* Update GunSystem.cs
* Update SharedGunSystem.cs
* Update MuzzleFlashEvent.cs
* Update SharedGunSystem.cs
* Update SharedGunSystem.cs
* Update Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
---------
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* Automatic changelog update
* fix BankClientComponent never updating (#33123)
* fix
* oh right
* Add history tab to bounty console (#33932)
* Add struct for holding historical data on cargo bounties
* Add localisation strings for bounty history
* Add new XAML entry for display bounty history
* Expand cargo bounty menu to include tabs
* Ensure station databases hold historical bounty data
* Add to the bounty history when removing one from active
* Feed bounty history into cargo's bounty system
* Move tab title setting to constructor
* Remove redundant access specifications
* Remove un-needed override
* Fixup BountyHistoryEntry backing code
* Fix formatting in CargoBountyMenu
* Reformat BountyHistoryData
* Rework TryRemoveBounty to use new Entity type
* Add Enum for showing bounty results
* Rework look and feel of History tab
* Add visible text when no bounties have been completed yet
* Remove control
* Swap default to null
* Reverse ordering of bounties so last entry comes first
* Remove redundant Visible
* Move enum docs into the enum
* Automatic changelog update
* Minor shotgun changes and comments for future changes (#33512)
* kammerer ammo, firerate and comment
* bulldog description
* enforcer description and comment
* DB and sawn-off firerate parity, sawn-off comment
* description changes
* reduce kammerer firerate again
* Automatic changelog update
* Fixed: Ore now correctly drops the right amount of ore (#34557)
Fixed bug
* Automatic changelog update
* Implement mrp rule changes pursuant to community votes (#34772)
* #34771 Fix door system assuming all door layer states are in single RSIs (#34775)
* #34771 Fix door system assuming all door layer states are in single RSIs
* Delta confirmed monarch of sloggery
* Do a dirty, rotten web edit
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* HOTFIX update staging submodule to 242.0.1 (#34833)
* HOTFIX revert lecter visual update #34589 (#34826)
* Allowed windows to be properly clicked on (#34751)
* Fix hitting through directional windows (and more!) (#34793)
* Revert "Add taped logo back for 10th anniversary" (#34831)
* Hristov & .60 changes - Hristov Rework, Part 2 (#31662)
* Initial commit
* Updated values to reflect new resistances
* Review fixes
* Review fixes
* LINQ BEGONETH
* revert engine
* Revert "Storage sidebar fix (#34680)"
This reverts commit 3e091c4dfaf2c23dd469c3d2b8e0e66b292a596f.
* Revert "Storage UI V2 (#33045)"
This reverts commit fd25dac720b6e7e98336e63a1cc4fa7fb831aa53.
* Revert "Update ScalingViewport for Engine PR (#28786)"
This reverts commit 3ad83378bbc2118b3c2235d368050a7751bf2046.
* Update physical.yml
* Update CP14SharpeningSystem.cs
---------
Co-authored-by: Southbridge <7013162+southbridge-fur@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: c4llv07e <igor@c4llv07e.xyz>
Co-authored-by: PursuitInAshes <91865152+PursuitInAshes@users.noreply.github.com>
Co-authored-by: TakoDragon <69509841+BackeTako@users.noreply.github.com>
Co-authored-by: Minemoder5000 <minemoder50000@gmail.com>
Co-authored-by: Tobias Berger <toby@tobot.dev>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
Co-authored-by: Partmedia <kevinz5000@gmail.com>
Co-authored-by: Mono <182929384+Monotheonist@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: Spessmann <156740760+Spessmann@users.noreply.github.com>
Co-authored-by: Myra <vasilis@pikachu.systems>
Co-authored-by: Winkarst <74284083+Winkarst-cpu@users.noreply.github.com>
Co-authored-by: Winkarst <74284083+Winkarst-cpu@users.noreply.github.co>
Co-authored-by: Nox <nebulousnox38@gmail.com>
Co-authored-by: K-Dynamic <20566341+K-Dynamic@users.noreply.github.com>
Co-authored-by: War Pigeon <54217755+minus1over12@users.noreply.github.com>
Co-authored-by: TytosB <54259736+TytosB@users.noreply.github.com>
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
Co-authored-by: Alfred Baumann <93665570+CheesePlated@users.noreply.github.com>
Co-authored-by: Tezzaide <ewankayne@hotmail.co.uk>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: compilatron <40789662+Compilatron144@users.noreply.github.com>
Co-authored-by: jbox1 <40789662+jbox144@users.noreply.github.com>
Co-authored-by: John <35928781+sporkyz@users.noreply.github.com>
Co-authored-by: Nim <128169402+Nimfar11@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
Co-authored-by: pathetic meowmeow <uhhadd@gmail.com>
Co-authored-by: Ignaz "Ian" Kraft <ignaz.k@live.de>
Co-authored-by: Fildrance <fildrance@gmail.com>
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
Co-authored-by: JustinWinningham <justinmwinningham@gmail.com>
Co-authored-by: NathanielJ14 <nathanielalbert1202@gmail.com>
Co-authored-by: Velken <8467292+Velken@users.noreply.github.com>
Co-authored-by: Deerstop <edainturner@gmail.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Milon <milonpl.git@proton.me>
Co-authored-by: CaasGit <87243814+CaasGit@users.noreply.github.com>
Co-authored-by: Coolsurf6 <coolsurf24@yahoo.com.au>
Co-authored-by: SlimSlam <73899110+SlimmSlamm@users.noreply.github.com>
Co-authored-by: Dinner <180707738+DinnerCalzone@users.noreply.github.com>
Co-authored-by: Helm4142 <158806576+Helm4142@users.noreply.github.com>
Co-authored-by: Helm4142 <Helm4142@users.noreply.github.com>
Co-authored-by: kosticia <kosticia46@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: August Sun <45527070+august-sun@users.noreply.github.com>
Co-authored-by: august-sun <45527070+august.sun@users.noreply.github.com>
Co-authored-by: NakataRin <45946146+NakataRin@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: Zachary Higgs <compgeek223@gmail.com>
Co-authored-by: TytosB <duanlaintytos@yahoo.com>
Co-authored-by: Orange-Winds <orange.wind@outlook.com>
Co-authored-by: Orange-Winds <sebastian.pelka@hotmail.com>
Co-authored-by: TytosB <dunalintytos@yahoo.com>
Co-authored-by: themias <89101928+themias@users.noreply.github.com>
Co-authored-by: godisdeadLOL <169250097+godisdeadLOL@users.noreply.github.com>
Co-authored-by: YourUsername <you@example.com>
Co-authored-by: James Simonson <jamessimo89@gmail.com>
Co-authored-by: darkdan <145926356+Starbuckss14@users.noreply.github.com>
Co-authored-by: Preston Smith <92108534+thetolbean@users.noreply.github.com>
Co-authored-by: DR-DOCTOR-EVIL-EVIL <hudsonirwin11@icloud.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: SpaceRox1244 <138547931+SpaceRox1244@users.noreply.github.com>
Co-authored-by: beck-thompson <107373427+beck-thompson@users.noreply.github.com>
Co-authored-by: VideoKompany <135313844+VlaDOS1408@users.noreply.github.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: BarryNorfolk <barrynorfolkman@protonmail.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>
Co-authored-by: pubbi <63283968+impubbi@users.noreply.github.com>
2025-02-06 13:57:14 +03:00
// If there's exact distance overlap, we simply have to deal with all overlapping objects to avoid selecting randomly.
var resChecked = res . Where ( x = > x . Distance . Equals ( res [ 0 ] . Distance ) ) ;
foreach ( var r in resChecked )
{
if ( Interaction . InRangeUnobstructed ( ignore , r . HitEntity , range + 0.1f , overlapCheck : false ) )
resSet . Add ( r . HitEntity ) ;
}
2022-11-14 08:33:54 +11:00
}
}
return resSet ;
}
2024-10-14 00:40:59 -05:00
protected virtual bool ArcRaySuccessful ( EntityUid targetUid ,
Vector2 position ,
Angle angle ,
Angle arcWidth ,
float range ,
MapId mapId ,
EntityUid ignore ,
ICommonSession ? session )
2023-05-02 05:07:17 +10:00
{
// Only matters for server.
return true ;
}
2022-11-14 08:33:54 +11:00
public static string? GetHighestDamageSound ( DamageSpecifier modifiedDamage , IPrototypeManager protoManager )
{
var groups = modifiedDamage . GetDamagePerGroup ( protoManager ) ;
// Use group if it's exclusive, otherwise fall back to type.
if ( groups . Count = = 1 )
{
return groups . Keys . First ( ) ;
}
var highestDamage = FixedPoint2 . Zero ;
string? highestDamageType = null ;
foreach ( var ( type , damage ) in modifiedDamage . DamageDict )
{
if ( damage < = highestDamage )
continue ;
highestDamageType = type ;
}
return highestDamageType ;
2022-09-29 15:51:59 +10:00
}
2025-04-19 11:38:22 +10:00
private float CalculateDisarmChance ( EntityUid disarmer , EntityUid disarmed , EntityUid ? inTargetHand , CombatModeComponent disarmerComp )
{
if ( HasComp < DisarmProneComponent > ( disarmer ) )
return 1.0f ;
if ( HasComp < DisarmProneComponent > ( disarmed ) )
return 0.0f ;
var chance = disarmerComp . BaseDisarmFailChance ;
if ( inTargetHand ! = null & & TryComp < DisarmMalusComponent > ( inTargetHand , out var malus ) )
{
chance + = malus . Malus ;
}
return Math . Clamp ( chance , 0f , 1f ) ;
}
private bool DoDisarm ( EntityUid user , DisarmAttackEvent ev , EntityUid meleeUid , MeleeWeaponComponent component , ICommonSession ? session )
2022-09-29 15:51:59 +10:00
{
2023-09-11 09:42:41 +10:00
var target = GetEntity ( ev . Target ) ;
if ( Deleted ( target ) | |
user = = target )
{
2022-09-29 15:51:59 +10:00
return false ;
2023-09-11 09:42:41 +10:00
}
2022-09-29 15:51:59 +10:00
2025-04-19 11:38:22 +10:00
if ( MobState . IsIncapacitated ( target . Value ) )
{
return false ;
}
if ( ! TryComp < CombatModeComponent > ( user , out var combatMode ) | |
combatMode . CanDisarm ! = true )
{
return false ;
}
// Need hands or to be able to be shoved over.
if ( ! TryComp < HandsComponent > ( target , out var targetHandsComponent ) )
{
if ( ! TryComp < StatusEffectsComponent > ( target , out var status ) | |
! status . AllowedEffects . Contains ( "KnockedDown" ) )
{
// Notify disarmable
if ( HasComp < MobStateComponent > ( target . Value ) )
PopupSystem . PopupClient ( Loc . GetString ( "disarm-action-disarmable" , ( "targetName" , target . Value ) ) , target . Value ) ;
return false ;
}
}
if ( ! InRange ( user , target . Value , component . Range , session ) )
{
return false ;
}
EntityUid ? inTargetHand = null ;
2025-06-25 09:13:03 -04:00
if ( _hands . TryGetActiveItem ( target . Value , out var activeHeldEntity ) )
2025-04-19 11:38:22 +10:00
{
2025-06-25 09:13:03 -04:00
inTargetHand = activeHeldEntity . Value ;
2025-04-19 11:38:22 +10:00
}
var attemptEvent = new DisarmAttemptEvent ( target . Value , user , inTargetHand ) ;
if ( inTargetHand ! = null )
{
RaiseLocalEvent ( inTargetHand . Value , ref attemptEvent ) ;
}
RaiseLocalEvent ( target . Value , ref attemptEvent ) ;
if ( attemptEvent . Cancelled )
return false ;
var chance = CalculateDisarmChance ( user , target . Value , inTargetHand , combatMode ) ;
// At this point we diverge
if ( _netMan . IsClient )
{
// Play a sound to give instant feedback; same with playing the animations
_meleeSound . PlaySwingSound ( user , meleeUid , component ) ;
return true ;
}
if ( _random . Prob ( chance ) )
{
return false ;
}
var eventArgs = new DisarmedEvent ( target . Value , user , 1 - chance ) ;
RaiseLocalEvent ( target . Value , ref eventArgs ) ;
// Nothing handled it so abort.
if ( ! eventArgs . Handled )
{
return false ;
}
Interaction . DoContactInteraction ( user , target ) ;
AdminLogger . Add ( LogType . DisarmedAction , $"{ToPrettyString(user):user} used disarm on {ToPrettyString(target):target}" ) ;
AdminLogger . Add ( LogType . DisarmedAction , $"{ToPrettyString(user):user} used disarm on {ToPrettyString(target):target}" ) ;
_audio . PlayPvs ( combatMode . DisarmSuccessSound , target . Value , AudioParams . Default . WithVariation ( 0.025f ) . WithVolume ( 5f ) ) ;
var targetEnt = Identity . Entity ( target . Value , EntityManager ) ;
var userEnt = Identity . Entity ( user , EntityManager ) ;
var msgOther = Loc . GetString (
eventArgs . PopupPrefix + "popup-message-other-clients" ,
( "performerName" , userEnt ) ,
( "targetName" , targetEnt ) ) ;
var msgUser = Loc . GetString ( eventArgs . PopupPrefix + "popup-message-cursor" , ( "targetName" , targetEnt ) ) ;
var filterOther = Filter . PvsExcept ( user , entityManager : EntityManager ) ;
PopupSystem . PopupEntity ( msgOther , user , filterOther , true ) ;
PopupSystem . PopupEntity ( msgUser , target . Value , user ) ;
if ( eventArgs . IsStunned )
{
PopupSystem . PopupEntity ( Loc . GetString ( "stunned-component-disarm-success-others" , ( "source" , userEnt ) , ( "target" , targetEnt ) ) , targetEnt , Filter . PvsExcept ( user ) , true , PopupType . LargeCaution ) ;
PopupSystem . PopupCursor ( Loc . GetString ( "stunned-component-disarm-success" , ( "target" , targetEnt ) ) , user , PopupType . Large ) ;
AdminLogger . Add ( LogType . DisarmedKnockdown , LogImpact . Medium , $"{ToPrettyString(user):user} knocked down {ToPrettyString(target):target}" ) ;
}
2022-09-29 15:51:59 +10:00
return true ;
}
2023-10-17 20:12:00 -05:00
private void DoLungeAnimation ( EntityUid user , EntityUid weapon , Angle angle , MapCoordinates coordinates , float length , string? animation )
2022-09-29 15:51:59 +10:00
{
// TODO: Assert that offset eyes are still okay.
2024-05-21 17:40:35 +12:00
if ( ! TryComp ( user , out TransformComponent ? userXform ) )
2022-09-29 15:51:59 +10:00
return ;
2023-05-08 17:46:26 +10:00
var invMatrix = TransformSystem . GetInvWorldMatrix ( userXform ) ;
2024-06-02 05:07:41 +01:00
var localPos = Vector2 . Transform ( coordinates . Position , invMatrix ) ;
2022-09-29 15:51:59 +10:00
2023-07-08 14:08:32 +10:00
if ( localPos . LengthSquared ( ) < = 0f )
2022-09-29 15:51:59 +10:00
return ;
localPos = userXform . LocalRotation . RotateVec ( localPos ) ;
2022-11-09 07:28:49 +11:00
// We'll play the effect just short visually so it doesn't look like we should be hitting but actually aren't.
2023-03-12 15:56:05 +11:00
const float bufferLength = 0.2f ;
var visualLength = length - bufferLength ;
2022-11-09 07:28:49 +11:00
2023-07-08 14:08:32 +10:00
if ( localPos . Length ( ) > visualLength )
localPos = localPos . Normalized ( ) * visualLength ;
2022-11-09 07:28:49 +11:00
2023-10-17 20:12:00 -05:00
DoLunge ( user , weapon , angle , localPos , animation ) ;
2022-09-29 15:51:59 +10:00
}
2023-10-17 20:12:00 -05:00
public abstract void DoLunge ( EntityUid user , EntityUid weapon , Angle angle , Vector2 localPos , string? animation , bool predicted = true ) ;
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 08:11:05 +02:00
/// <summary>
/// Used to update the MeleeWeapon component on item toggle.
/// </summary>
2024-01-03 17:24:02 +11:00
private void OnItemToggle ( EntityUid uid , ItemToggleMeleeWeaponComponent itemToggleMelee , ItemToggledEvent args )
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 08:11:05 +02:00
{
if ( ! TryComp ( uid , out MeleeWeaponComponent ? meleeWeapon ) )
return ;
if ( args . Activated )
{
if ( itemToggleMelee . ActivatedDamage ! = null )
{
//Setting deactivated damage to the weapon's regular value before changing it.
itemToggleMelee . DeactivatedDamage ? ? = meleeWeapon . Damage ;
meleeWeapon . Damage = itemToggleMelee . ActivatedDamage ;
2025-03-30 16:02:45 +11:00
DirtyField ( uid , meleeWeapon , nameof ( MeleeWeaponComponent . Damage ) ) ;
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 08:11:05 +02:00
}
2025-03-30 16:02:45 +11:00
if ( meleeWeapon . HitSound ? . Equals ( itemToggleMelee . ActivatedSoundOnHit ) ! = true )
{
meleeWeapon . HitSound = itemToggleMelee . ActivatedSoundOnHit ;
DirtyField ( uid , meleeWeapon , nameof ( MeleeWeaponComponent . HitSound ) ) ;
}
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 08:11:05 +02:00
if ( itemToggleMelee . ActivatedSoundOnHitNoDamage ! = null )
{
//Setting the deactivated sound on no damage hit to the weapon's regular value before changing it.
itemToggleMelee . DeactivatedSoundOnHitNoDamage ? ? = meleeWeapon . NoDamageSound ;
meleeWeapon . NoDamageSound = itemToggleMelee . ActivatedSoundOnHitNoDamage ;
2025-03-30 16:02:45 +11:00
DirtyField ( uid , meleeWeapon , nameof ( MeleeWeaponComponent . NoDamageSound ) ) ;
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 08:11:05 +02:00
}
if ( itemToggleMelee . ActivatedSoundOnSwing ! = null )
{
//Setting the deactivated sound on no damage hit to the weapon's regular value before changing it.
itemToggleMelee . DeactivatedSoundOnSwing ? ? = meleeWeapon . SwingSound ;
meleeWeapon . SwingSound = itemToggleMelee . ActivatedSoundOnSwing ;
2025-03-30 16:02:45 +11:00
DirtyField ( uid , meleeWeapon , nameof ( MeleeWeaponComponent . SwingSound ) ) ;
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 08:11:05 +02:00
}
if ( itemToggleMelee . DeactivatedSecret )
2025-03-30 16:02:45 +11:00
{
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 08:11:05 +02:00
meleeWeapon . Hidden = false ;
2025-03-30 16:02:45 +11:00
}
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 08:11:05 +02:00
}
else
{
if ( itemToggleMelee . DeactivatedDamage ! = null )
2025-03-30 16:02:45 +11:00
{
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 08:11:05 +02:00
meleeWeapon . Damage = itemToggleMelee . DeactivatedDamage ;
2025-03-30 16:02:45 +11:00
DirtyField ( uid , meleeWeapon , nameof ( MeleeWeaponComponent . Damage ) ) ;
}
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 08:11:05 +02:00
meleeWeapon . HitSound = itemToggleMelee . DeactivatedSoundOnHit ;
2025-03-30 16:02:45 +11:00
DirtyField ( uid , meleeWeapon , nameof ( MeleeWeaponComponent . HitSound ) ) ;
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 08:11:05 +02:00
if ( itemToggleMelee . DeactivatedSoundOnHitNoDamage ! = null )
2025-03-30 16:02:45 +11:00
{
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 08:11:05 +02:00
meleeWeapon . NoDamageSound = itemToggleMelee . DeactivatedSoundOnHitNoDamage ;
2025-03-30 16:02:45 +11:00
DirtyField ( uid , meleeWeapon , nameof ( MeleeWeaponComponent . NoDamageSound ) ) ;
}
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 08:11:05 +02:00
if ( itemToggleMelee . DeactivatedSoundOnSwing ! = null )
2025-03-30 16:02:45 +11:00
{
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 08:11:05 +02:00
meleeWeapon . SwingSound = itemToggleMelee . DeactivatedSoundOnSwing ;
2025-03-30 16:02:45 +11:00
DirtyField ( uid , meleeWeapon , nameof ( MeleeWeaponComponent . SwingSound ) ) ;
}
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 08:11:05 +02:00
if ( itemToggleMelee . DeactivatedSecret )
2025-03-30 16:02:45 +11:00
{
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 08:11:05 +02:00
meleeWeapon . Hidden = true ;
2025-03-30 16:02:45 +11:00
}
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 08:11:05 +02:00
}
}
2022-09-29 15:51:59 +10:00
}