Commit Graph

150 Commits

Author SHA1 Message Date
Visne
c6d3e4f3bd Fix warnings and code cleanup/fixes (#13570) 2023-01-19 13:56:45 +11:00
Theomund
240c9689fa Add scream action popup message (#13429) 2023-01-11 20:06:14 +11:00
metalgearsloth
0d7423c01d Cleanup speech and emoting comps (#13194)
Networks speech and removes the shared prefix from emoting.
I have no idea if emoting is even being used or plan to be used in the interim.
2022-12-27 18:03:25 +01:00
Leon Friedrich
0b5a58001c IListener and IRadio purge (#11980) 2022-11-15 15:09:27 +11:00
Willhelm53
1a1e72063a Skeleton Accents (#11805) 2022-10-22 15:40:28 -07:00
Leon Friedrich
7d276d1101 Remove server/client clothing components. (#11981) 2022-10-22 15:30:37 -07:00
Rane
c70e423ff6 Let species prototypes define valid sexes (Sex Refactor) (#11520) 2022-10-15 14:45:47 -07:00
Flipp Syder
5a0a04bde7 Humanoid appearance refactor (#10882)
* initial commit
- species prototype modifications
- markings points as its own file
- shared humanoid component

* adds a tool to convert sprite accessories to markings (in go)

* removes a fmt call

* converts sprite accessory to markings

* adds hair and facial hair to marking categories

* multiple changes
- humanoid visualizer system
- markings modifications for visualizer
- modifications to shared humanoid component
- lays out a base for humanoid system

* hidden layers, ports some properties from appearance component, shrinks DefaultMarkings a little

* squishes the initialize event calls into one function

adds stuff to set species/skin color externally from a server message - currently laid out as if it a dirty call to a networked component, may be subject to change (server-side has not been implemented yet)

* makes the sprite pipeline more obvious

* apply all markings, hidden layer set replacement

* ensures that markings are cleared when the new set is applied

* starts refactoring markingsset (unfinished)

* more additions to the markingset api

* adds constructor logic to markingset

* adds a method to filter out markings in a set based on a given species

* fixes enumerators in markingset

* adds validator into MarkingSet, fixes ForwardMarkingEnumerator

* modifications to the humanoid visual system

* ensuredefault in markingset

* oop

* fixes up data keys, populates OnAppearanceChange in visualizer

* changes to humanoid component, markings

marking equality is now more strict, humanoidcomponent is now implemented for client as a child of sharedhumanoidcomponent

* markings are now applied the visualizer by diffing them

* base sprites are now applied to humanoids from humanoidvisualizer

* passes along base sprite settings to the marking application so that markings know to follow skin color/alpha or not (see: slimes)

* custom base layers on humanoids

* merges all data keys into one data class for humanoid visualizers

* setappearance in sharedhumanoidsystem, removes custombaselayercolors

* humanoidcomponent, system (empty) in server

* adds some basic public API functions to HumanoidSystem

* add marking, remove marking

* changes appearance MarkingsSet to a List<Marking>, adds listener for PlayerSpawnCompleteEvent in HumanoidSystem

* ensuredefaultmarkings, oninit for humanoids

* markingmanager API changes

* removes MarkingsSet

* LoadProfile, adjusts randomization in humanoid appearance to account for species

* base layer settings in humanoidsystem, eye color from profile

* rearranges files to centralize under Humanoid namespace

* more reorganization, deletes some stuff

gotta break stuff to make other things work, right?

goodbye SpriteAccessory...

* fixes a good chunk of server-side issues

still does not compile, yet

* singlemarkingpicker xaml layout

* singlemarkingpicker logic

* magic mirror window (varying pieces of it, mostly client-oriented)

* removes some imports, gives MagicMirror a BUI class (not filled in yet)

* populates magic mirror BUI functionality / window callbacks

* fixes up some errors in humanoidprofileeditor

* changes to SingleMarkingPicker

SingleMarkingPicker now accepts a List<Marking>, species, and total possible markings available in that marking category

* fixes up hair pickers on humanoid profile editor

* fixes the errors in markingpicker

* markingsystem is now gone

* fixes a bunch of build errors

* so that's why i did it like that

* namespace issues, adds robustxamlloader to singlemarkingpicker

* another robustxamlloader

* human, lizard sprites/points

* prototype fixes, deletion of old spriteaccessory

* component registration, fixes dwarf skin toning

no, 'ReptilianToned' does not exist

* removes component registration from abstract humanoid component

* visualizer data now cloneable

* serialize for visualizer key

* zero-count edge case

* missing semi-colon moment

* setspecies in humanoidsystem

* ensures that default markings, if empty, will cause ensuredefault to skip over that given category

* tryadd instead of add

* whoops

* diff and apply should properly apply markings now

* always ensure default, fixes double load for player spawning

* apply skin color now sets the skin color property in humanoidcomponent

* removes sprite from a few species prototypes

* sprite changes for specific base layers based on humanoid sex

* layer ordering fix, and a missing base layer should now disallow markings on that layer

* anymarking base layer, adds the right leg/foot for humans

* loading a profile will now clear all markings on that humanoid

* adds missing layers for humans

* separates species.yml into respective species prototype files

* ensures that if layer visibility was changed, all markings have to be reapplied

* server-side enforcement of hiding hair (and other head-related markings) when equipping things that hide hair

* slime fix, clothingsystem now dictates layer visibility server side

* sussy

* layer settings should now ensure a marking should match the skin tone

* whoops

* skincolor static class and functions in UI

* skin color validation in humanoidcharacterappearance

* markingpicker now shows only the markings for the selected category in used

* getter for slot in singlemarkingpicker now ensures slot is 0 if markings exists

* FilterSpecies no longer attempts to do removal while iterating

* expands for SingleMarkingPicker

* humanoid base dummy has blank layers now (and snout/tail/headside/headtop)

* fixes an issue with visualizer system if the marking count was different but the markings themselves were (somewhat) the same

* whoops

* adds edge case handlers for count differences in humanoid markings

* preview now loads profile instead of directly setting appearance

* moves marking set loading to update controls

* clones a marking set in markingpicker by using the deep clone constructor

* whoops (deep cloning a marking now copies the marking id)

* adds replace function for markingset

* points should now update after the markings are remove/added

* merging base layer sprites into a humanoid should now clear them before merging

* sets dirty range start to count only if the dirty range start was never set above 0

* fixes up some issues with singlemarkingpicker

* color selector sliders in single marking picker should now expand

* hair from hair pickers should now apply in profile loading (client-side)

* category in singlemarkingpicker now sets the private category variable

* slot selector should now populate

* single marking picker buttons now have text, also shows the category name over all user-clickable elements

* removes a comment

* removing hair slots now sets it to bald, defaults to zero used slots if current hair is bald on hair/facial hair

* random skin color, eye color

* populate colors now checks if the marking count is greater than zero in singlemarkingpicker

* hair/facial hair pickers now just get the first possible hair from the respective species list

* different approach to random skin color

* oh, that's why it wasn't working

* randomize everything now just updates every single control

* selecting a new marking in SingleMarkingPicker should attempt to copy over old colors, populate list now uses cache,

* markingmanager now uses OnlyWhitelisted to populate by category and species

* filterspecies now uses onlyWhitelist to filter markings based on whitelist or not

* oops

* ui fix for singlemarkingpicker, ensures that cache is not null if it is null when populatelist is called

* order of operations for the horizontal expand for add/remove

* hair pickers should now update when you add/remove the hair slot

* fixes variable naming error in character appearance

* loc string fix in singlemarkingpicker

* lizards, vox now have onlyWhitelist, vox restriction for hair/facialhairs

* having zero possible hairs should no longer cause an exception in randomization

* setting species should now update hair pickers

* ignore categories for marking picker

* and a clear as well for the category button

* places that functionality in its own function instead

* adds eye base sprite, vox now also have their own custom eye sprites

* loading a profile client-side should do FilterSpecies for markings now

* client-side load profile does filter species after adding in the hairs now

* magic mirror

* callbacks now call the callback instead of adding it on construct

* whoops

* in removemarking too

* adds missing synchronize calls

* comments out an updateinterface call in magic mirror

* magic mirror window title, minimum sizing

* fixes minsize, adds warning for players who try to set their hair for species that have no hair

* removes spaces in xaml

* namespace changes/organization

* whoopsie (merge conflicts)

* re-enables identity from humanoid component

* damagevisuals now uses the enum given to it instead of the layerstate given on that layer tied to the enum

* removes commas from json

* changes to visuals system so the change is consistent

* chest

* reptilian

* visualizer system now handles body sprite setting/coloration, similar to how characterappearance did it

not a big fan of this

* adds a check in applybasesprites

* adding/removing parts should now make them invisible on a humanoid

* body part removal/adding now enumerates over sublayers instead

* synchro now runs in bodycomponent startup

* parts instead of slots

* humanoidcompnent check

* switches from rsi to actualrsi

* removes all the body stuff (too slow)

* cleans up resolves from humanoid visualizer system

* merging sprites now checks if the base sprites have been modified or not (through things like species changes, or custom base sprite changes)

* not forgetting that one again

* merging now returns an actual dirty value

* replaces the sequenceequal with a more accurate solution

* permanent layers, layer visibility on add/remove part in body

* should send all hidden layers over now

* isdirty in visualizer system for base layers

* isdirty checks count as well

* ok, IsDirty should now set the base layers if the merged sprites are different

* equals override in HumanoidSpritePrototypes.cs

temporary until record prototypes :heck:

* makes fields readonly, equates IDs instead

* adds forced markings through marking picker

* forced in humanoidsystem api, ignorespecies in markingpicker

* marking bui

* makes that serializable as well

* ignore species/forced toggles now work

* adds icon to modifier verb, interface and keys to humanoid bases

* needs the actual enum value to open, no?

* makes the key the actual key

* actions now propagate upwards

* ignore species when set now repopulates markingpicker

* modifiable base layers in the markings window

* oops!

* layout changes

* info box should now appear

* adds ignorespecies for marking picker, collapsible for base layer section of appearance modification window

* collapsible layout moment

* if base layers have changed, all markings are now dirty (and if a base layer is missing, the marking is still 'applied' but it's now just invisible

* small change to marking visibility

* small changes to modifier UI

* markings now match skin on zombification

* zombie stuff

* makes the line edit in marking modifier window more obvious

* disables vox on round start

* horizontal expand on the single label in base layer modifiers

* humanoid profiles in prototypes

* randomhumanoidappearance won't work if the humanoid has a profile already stored

* removes unused code

* documentation in humanoidsystem server-side

* documentation in shared/client

* whoops

* converts accessory into marking in locale files (also adds marking loc string into single marking picker)

* be gone, shared humanoid appearance system from the last upstream merge

* species ignore on randomization (defaults to no ignored species)

* more upstream merge parts that bypassed any errors before merge

* addresses review (also just adds typeserializers in some places)

* submodule moment

* upstream merge issues
2022-09-22 17:19:00 -05:00
Leon Friedrich
c7ad6b709e Audio System Rejig (#9635) 2022-07-29 12:13:12 +10:00
Kara
258ec0cac1 Clothing/item ECS & cleanup (#9706) 2022-07-27 03:53:47 -07:00
Jessica M
0d266f3d20 Adds new disease! Tongue Twister. Also new scrambled accent. (#9393) 2022-07-03 22:22:30 -07:00
Kara
c36e53da29 Another mobster accent fix (#9335) 2022-07-01 13:47:58 -07:00
metalgearsloth
3da454140d Add department-specific radio channels (#9061)
* Add department-specific radio channels

This commit adds working department-specific radio channels, while
minimizing damage to the current codebase. It is expected that a future
refactor will clean this up a bit.

ChatSystem now has a RadioPrefix() method that recognizes
department-specific channels (e.g. ":e" and ":m") in addition to the
global channel (";"). It strips the prefix from the message and assigns
messages an integer representing the destination channel, if any.

IListen and IRadio now accept optional 'channel' arguments with this
channel in mind.

The ugly is that the integer channel number is hard-coded and also shows
up in chat.

Comms are not modeled at this time. You cannot break comms (yet).

All headsets have channels soldered into them. You cannot change
encryption keys to hop on new channels. Steal a headset instead.

* Remove debugging print

* Convert to prototypes

* Use prototype names in headset prototype

* Adjust list style

* Document prototype fields

* cringe

* some cleanup

* colours

* Remove alphas at least

* cc

Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
2022-06-23 20:11:03 +10:00
Leon Friedrich
c25f2e6283 Drunk Shader (#8910)
Co-authored-by: Kara D <lunarautomaton6@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2022-06-23 14:33:25 +10:00
Kara
bdf6920f4c Slight mobster accent fixes (#9017) 2022-06-22 16:39:29 -07:00
metalgearsloth
8905996cfc Make raiselocalevent not broadcast by default (#8998) 2022-06-22 09:53:41 +10:00
Kara
cbd5abb698 Mobster accents for rat king/servants (#8927)
* basically perfect

* oops

* huh

* new substitutions from retequizzle, rane, and olddancejacket + crown accent

* fixes
2022-06-17 19:36:19 -07:00
keronshb
f7b1bda3e5 Reorders Sound Systems signatures to match Popup Systems. (#8728) 2022-06-13 09:45:47 +10:00
EmoGarbage404
63fd01f3bb Zombie Rework & Polymorph Expansion (#8413)
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2022-06-12 15:53:13 +10:00
wrexbe
bc68ac96dd Cleanup the namespaces (#8132) 2022-05-13 17:59:03 +10:00
hubismal
3421e4f4de Speech Noises 2: Quality of Life, New Sounds (#8044)
* Vending machine jingle much less intense

* SpeechSoundsPrototype has a built in variation parameter

* Sounds in your face are louder but roll off more aggressively so that distant talking sounds are less distracting

* Redo that

* Speech noise system now supports variation of pitch

* license stuff

* PAIs have speech sounds now. Made by altering the pAI sounds.

* Monkeys have sounds from goon now

* New Speech Sounds

* Oops
2022-05-09 14:55:23 +10:00
metalgearsloth
145c5fdd5b Speech noise fixies (#8023)
Co-authored-by: metalgearsloth <metalgearsloth@gmail.com>
2022-05-08 23:39:51 +10:00
hubismal
304e9b824e Various Entities make sounds when speaking (#7980)
* Speech Sounds from Goonstation

* Added some speech sound prototypes for humans, mice, and vending machines. More to come later?

* Custom synthesized sound for a vending machine ad

* Gave mice and vending machines Speech Components on their base prototypes to make sounds

* Humans now talk using the 'Alto' voice. In the future this can be changed in customization screen

* New Prototype 'SpeechSounds' with three soundspecifiers for saying sound, asking sound, exclaiming sound.

* SharedSpeechComponent modified from being useless to being responsible for making speech noises.

* Initial creation of SpeechNoiseSystem for making Sounds when certain entities speak.

* whitespace fix

* License fix

* Remove leftover using from debugging

* Added a cooldown editable in yaml

* SharedSpeechComponent has the proper cooldown now. oops
2022-05-08 23:23:08 +10:00
Alex Evgrashin
89fda5ec83 More localize (#7869)
* Localize replacement accents

* Localize bar signs

* Holidays

* Localize species
2022-05-03 18:32:06 +10:00
Leon Friedrich
ba75934512 Re-add action prototypes (#7508)
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2022-04-14 06:17:34 +02:00
Leon Friedrich
dee4d724e7 Fix action interaction checks (#7502) 2022-04-11 23:59:10 +10:00
Paul Ritter
2ff40d5a1f Serv3 rework content changes (#7145) 2022-04-03 02:01:22 +02:00
mirrorcult
70f0fffed2 ChatManager murder (#7337) 2022-03-31 16:21:58 +11:00
Alex Evgrashin
7addda4e0e Add lizard accent (#7096) 2022-03-12 22:23:43 -06:00
Leon Friedrich
ff7d4ed9f6 Patched Actions Rework (#6899)
* Rejig Actions

* fix merge errors

* lambda-b-gon

* fix PAI, add innate actions

* Revert "fix PAI, add innate actions"

This reverts commit 4b501ac083e979e31ebd98d7b98077e0dbdd344b.

* Just fix by making nullable.

if only require: true actually did something somehow.

* Make AddActions() ensure an actions component

and misc comments

* misc cleanup

* Limit range even when not checking for obstructions

* remove old guardian code

* rename function and make EntityUid nullable

* fix magboot bug

* fix action search menu

* make targeting toggle all equivalent actions

* fix combat popups (enabling <-> disabling)

* fix networking

* Allow action locking

* prevent telepathy
2022-02-25 23:24:08 -06:00
Leon Friedrich
49ae383f06 Revert "Actions Rework" (#6888) 2022-02-25 16:55:18 +11:00
Leon Friedrich
5ac5dd6a64 Actions Rework (#6791)
* Rejig Actions

* fix merge errors

* lambda-b-gon

* fix PAI, add innate actions

* Revert "fix PAI, add innate actions"

This reverts commit 4b501ac083e979e31ebd98d7b98077e0dbdd344b.

* Just fix by making nullable.

if only require: true actually did something somehow.

* Make AddActions() ensure an actions component

and misc comments

* misc cleanup

* Limit range even when not checking for obstructions

* remove old guardian code

* rename function and make EntityUid nullable

* fix magboot bug

* fix action search menu

* make targeting toggle all equivalent actions

* fix combat popups (enabling <-> disabling)
2022-02-24 22:12:29 -06:00
mirrorcult
ec4d4688c7 Seal/abstract/virtual everything (#6739) 2022-02-16 18:23:23 +11:00
wrexbe
425712adea Removed extra comp name attributes (#6449) 2022-02-08 19:42:49 +11:00
wrexbe
17db0775c8 Auto comp (#6416) 2022-02-02 14:35:40 +11:00
Pancake
172898b26e Basic Russian Accent (#6049)
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2022-01-30 19:06:16 +11:00
Alex Evgrashin
16a532137d Muzzle (#6194)
Co-authored-by: mirrorcult <lunarautomaton6@gmail.com>
2022-01-18 15:18:22 -07:00
Acruid
5b1cd2dd96 ECSatize AlertsSystem (#5559) 2022-01-05 19:19:23 +11:00
Pancake
e2bcf619d1 Mouse Accent Fix (#5876) 2021-12-23 14:30:33 +01:00
Pancake
f334f4a4b9 Accents (#5720)
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: Paul <ritter.paul1@googlemail.com>
2021-12-21 21:31:20 +01:00
pointer-to-null
07c6f39a6f Stuttering time accumulation fix. (#5817) 2021-12-19 16:27:07 -07:00
pointer-to-null
090e74792c Status effects fix. Refresh the status effect cooldown. (#5708) 2021-12-06 23:18:07 -07:00
Moony
469d57f34e owo (#5510)
* owo

* URGENT FIXES

* typo moment
2021-11-26 23:43:33 -07:00
Vera Aguilera Puerto
f025e5f0a8 ChatManager ChatTransform uses EntityUid 2021-11-09 11:30:59 +01:00
Vera Aguilera Puerto
3001ea38cc Add-d-ds s-s-stut-ttering t-to the g-gam-me (#4901) 2021-10-17 01:23:31 +02:00
Vera Aguilera Puerto
4c80fb9586 Refactor AccentManager to be an entity system, makes accents ECS. (#4825) 2021-10-11 11:18:39 -07:00
Vera Aguilera Puerto
0be5ff829b Gets rid of all ComponentManager usages. (#4707) 2021-09-28 13:35:29 +02:00
Eugene
0a93e602ca Add missing space (#4281) 2021-07-17 23:04:04 +02:00
Visne
b7dc3c81ae Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
DrSmugleaf
ff1a2d97ea Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00