Skip to content

Commit

Permalink
Upstream #1 (#78)
Browse files Browse the repository at this point in the history
* Applying Fix from #32764 to staging

* Fix random test fail in DeleteAllThenGhost (#32753)

It's simple. We kill the heisentest

* Fix random test fail in DeleteAllThenGhost (#32753)

It's simple. We kill the heisentest

* Fix some rounds failing to end due to mind roles (#32792) (#32793)

* Fix some rounds failing to end due to mind roles

Fixes #32791

This is caused by ShowRoundEndScoreboard running into a bug trying to display antags: some player is showing up as antag with MindIsAntagonist(), but has no antag roles listed in MindGetAllRoleInfo().

This was caused by one of the roles of the player having the Antag boolean set, but having no AntagPrototype set.

The responsible mind role appeared to be MindRoleSubvertedSilicon which is missing a set for the SubvertedSilicon antag prototype.

I also added resilience to the round-end code to make it so that an exception showing the scoreboard (and sending the Discord message) would not cause the round end logic to completely abort from an exception.

I am planning to add an integration test to cover this bug (no prototype in mind roles), but I'll leave that for not-the-immediate-hotfix.

* At least one maintainer approved this tiny PR without reading it, not naming names.

* HOTFIX: Fix tech anomaly nexttimer (#32805) (#32807)

Fix tech anomaly nexttimer (#32805)

Co-authored-by: metalgearsloth <[email protected]>

* HOTFIX spider clan charges can be armed again (#32866)

* fix ninja bomb component check

* remove TryGetRole

* HOTFIX Plushies no longer delete items when recycled (#32882)

Fix: Plushies no longer delete items when recycled (#32838)

fix

Co-authored-by: beck-thompson <[email protected]>

* HOTFIX (stable) submodule update  (#32900)

Update submodule

This fixes an important memory leak.

* Hotfix server config changes for playercap and Levi bunker (#32925)

Co-authored-by: slarticodefast <[email protected]>

* Applying Fix from #32764 to staging

* Fix Bug With Uppercase Radio Keys (#32997)

* Fix loneop spawnrate by reverting it to not use the shuttle event system. (#32942)

Fix loneop spawnrate by reverting it to not use the custom shuttle event system.

* Fix playtime formatting (#32974)

* Fixes tailthump breaking positional audio by making it mono (#33092)

* Hotfix add debug info to traitor activation (#33119)

* Add debug messages to traitor activation

* more debug

* we hate powergaming

* HOTFIX latejoin traitor activations (#33180)

* Reverted #31978

* oops reverted too much

* dark green jumpsuit recolor, casual green jumpsuits added (#31710)

* green

* fix material arbitrage

* lighter

* Automatic changelog update

* Label workflow - stable (#33220)

* Label workflow - staging (#33221)

* Add a Walking alert (#32954)

* Initial commit

* Review feedback changes

* ProtoId

* TempCommit

* First attempt to have client alerts

* Review changes

* The Jumpsuit Re-Detailening (#33096)

* jumpsuit detailening

* jumpskirt stuff

* meta.json

* update meta.json

* meta.json fix fix

* meta.json fix fix fix

* Intellicards now have a doAfter. (#33198)

* init

* cleanup

* Oops! Forgot something

* addressing changes

* guh

* guh 2.0

* some cleanup

* all bless the intellicard

* Yippee

* small locale thing

* changes + small bugfix

---------

Co-authored-by: slarticodefast <[email protected]>

* Automatic changelog update

* Update Credits (#33237)

Co-authored-by: PJBot <[email protected]>

* Removed bola stam damage (#32989)

* tweak: weather command tooltip (#33130)

clear weather tip

* Automatic changelog update

* Goliath rebalance (#31492)

Update asteroid.yml

* Omega Station: Fix Air Alarm in CMO office (#33216)

move air alarm and link devices

* [Maps] Astra Update (space-syndicate#2760)

* Automatic changelog update

* Фикс законов боргов. (space-syndicate#2754)

* Automatic changelog update

* Resprite some captain clothing (space-syndicate#2740)

* Automatic changelog update

* Fix vape use without check if doafter cancelled (#33245)

vape small fix

* HOTFIX: Fix Security Shell Gun being uncraftable. (#33247)

* Sec Shell Gun Craftability Hotfix

* Capital Fix

* New lobby art (space-syndicate#2762)

* Automatic changelog update

* Make the Flare Gun & Security Shell Gun be unbolted by default. (#33248)

* Automatic changelog update

* Remove roundStart: false for Anivia voice prototype (space-syndicate#2764)

* Zombies able to see infection.

* BUGFIX: Fix APEs being able to be turned on without power (#32493)

Add a check to see the APC is powered before turning the emitter on.

* Automatic changelog update

* Separate CCVars into separate files

* improve BiomeDunGen (#33113)

* improve BiomeDunGen

* forgot lol

* Update DungeonJob.PostGenBiome.cs

* Update DungeonJob.PostGenBiome.cs

* Make Droppers Respect Closed/Sealed Containers (#33011)

* Make droppers respect closed/sealed

* Combine nested

* Optimize conditions a bit

* Automatic changelog update

* Allow editing angle of the fired projectile (#33254)

Add Angle datafield to `ProjectileComponent`. It allows to change the angle of the fired projectile

* Fix unban/editing role bans placed in groups. (#30659)

* On editing a roleban, get all the bans with the same time.

* forgoten newline

* Update to check for player ID too.

* Automatic changelog update

* [Maps] Paper Tweak  (space-syndicate#2761)

* Automatic changelog update

* Adds new sprites for shotgun shell boxes (#33176)

* Adds new sprites for shotgun shell boxes

* Adds second set of mag visuals for slug and uranium casings

* Fixes yaml that I messed up

* Changes credit to new username before merging happens

* un-reverted fixes

* oops

* Added the ability to microwave inert flesh anomaly cores to turn into an anomalous meat mass (#33223)

* First round of anomaly core functionalities added

* Added sliceTime to anom meat mass and cooked version

* Adds SmokeOnUse component, system and shared system, adds new functions to inert electrical anom core

* Added more functions

* Final touches to branch

* Cleaning up some of the metadata for sprites and component definitions

* PR_Changes_v2_rev.0_Final_FINALFORREALTHISTIME.yml

* Lol jk these goddamn tests why me

* Quick updates based on feedback

* more changes to improve

* additional fixes and edits

* Changed tech core functionality

* added magboot functionality to grav core

* fixed issue with bluespace core sizing

* Reverting changes per request

* extra file to be deleted

* File cleanup

* Update chemicals.ftl

* Update cores.yml

* Update cores.yml

* Update meta.json

* Update chemicals.yml

* Update Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml

Co-authored-by: chromiumboy <[email protected]>

* Update meal_recipes.yml

* Update cores.yml

---------

Co-authored-by: august-sun <[email protected]>
Co-authored-by: chromiumboy <[email protected]>

* Automatic changelog update

* Cog fixes (#33285)

fixed the map (for real this time)

* [Maps] Corvax CentCom fix (space-syndicate#2767)

* Window sprite tweaks (#33282)

* add

* yes

* Automatic changelog update

* Automatic changelog update

* [Maps] Astra goals (space-syndicate#2768)

* Automatic changelog update

* tag:with toolshed command (#31751)

* Automatic changelog update

* Ethereal Jaunt Spell for Wizard & Jaunt ECS (#33201)

* Act

* Adds Jaunt ECS and related prototypes

* Adds jaunt sounds

* Adds enter and exit sound support to polymorphs

* Updates jaunt description

* Adds jaunt action sprite and changes jaunt polymorph to use it

* Adds Jaunt and upgrade to the wizard grimoire

* Makes base mob jaunt parent off of incorporeal and basemob, adds blue ghost sprite for ethereal jaunt

* Update Resources/Locale/en-US/store/spellbook-catalog.ftl

Co-authored-by: slarticodefast <[email protected]>

* Update Resources/Prototypes/Entities/Mobs/Player/jaunt_mobs.yml

Co-authored-by: slarticodefast <[email protected]>

* Update Resources/Prototypes/Entities/Mobs/Player/jaunt_mobs.yml

Co-authored-by: slarticodefast <[email protected]>

* Update Resources/Prototypes/Entities/Mobs/Player/jaunt_mobs.yml

Co-authored-by: slarticodefast <[email protected]>

* Update Content.Shared/Polymorph/PolymorphPrototype.cs

Co-authored-by: slarticodefast <[email protected]>

* Update Content.Shared/Polymorph/PolymorphPrototype.cs

Co-authored-by: slarticodefast <[email protected]>

* removes meta changes

* removes other meta changes

* adds context menu and a description to basemobjaunt

* comments for jaunt component and adds on component shutdown method

* Update Content.Shared/Jaunt/JauntComponent.cs

* Update Content.Shared/Jaunt/JauntComponent.cs

* Update Content.Shared/Jaunt/JauntComponent.cs

* Update Resources/Prototypes/Catalog/spellbook_catalog.yml

---------

Co-authored-by: lzk <[email protected]>
Co-authored-by: slarticodefast <[email protected]>

* Automatic changelog update

* Update Label workflows to use new labels (#33310)

* Update labeler.yml

* Update labeler-needsreview.yml

* Update labeler-staging.yml

* Update labeler-stable.yml

* Update labeler-untriaged.yml

* Create labeler-size.yml

* Update labeler-size.yml

* Update labeler-size.yml

* Update conflict-labeler.yml

* Rename conflict-labeler.yml to labeler-conflict.yml

* Fix mime broken vow alert (#33303)

Swap VowAlert and VowBrokenAlert on lines 149 and 150 so that the proper alerts are cleared and shown

* Automatic changelog update

* Borg type switching. (#32586)

* Borg type switching.

This allows borgs (new spawn or constructed) to select their chassis type on creation, like in SS13. This removes the need for the many different chassis types, and means round-start borgs can actually play the game immediately instead of waiting for science to unlock everything.

New borgs have an additional action that allows them to select their type. This opens a nice window with basic information about the borgs and a select button. Once a type has been selected it is permanent for that borg chassis.

These borg types also immediately start the borg with specific modules, so they do not need to be printed. Additional modules can still be inserted for upgrades, though this is now less critical. The built-in modules cannot be removed, but are shown in the UI.

The modules that each borg type starts with:

* Generic: tools
* Engineering: advanced tools, construction, RCD, cable
* Salvage: Grappling gun, appraisal, mining
* Janitor: cleaning, light replacer
* Medical: treatment
* Service: music, service, clowning

Specialized borgs have 3 additional module slots available on top of the ones listed above, generic borgs have 5.

Borg types are specified in a new BorgTypePrototype. These prototypes specify all information about the borg type. It is assigned to the borg entity through a mix of client side, server, and shared code. Some of the involved components were made networked, others are just ensured they're set on both sides of the wire.

The most gnarly change is the inventory template prototype, which needs to change purely to modify the borg hat offset. I managed to bodge this in with an API that *probably* won't explode for specifically for this use case, but it's still not the most clean of API designs.

Parts for specific borg chassis have been removed (so much deleted YAML) and specialized borg modules that are in the base set of a type have been removed from the exosuit fab as there's no point to printing those.

The ability to "downgrade" a borg so it can select a new chassis, like in SS13, is something that would be nice, but was not high enough priority for me to block the feature on. I did keep it in mind with some of the code, so it may be possible in the future.

There is no fancy animation when selecting borg types like in SS13, because I didn't think it was high priority, and it would add a lot of complex code.

* Fix sandbox failure due to collection expression.

* Module tweak

Fix salvage borg modules still having research/lathe recipes

Engie borg has regular tool module, not advanced.

* Fix inventory system breakage

* Fix migrations

Some things were missing

* Guidebook rewordings & review

* MinWidth on confirm selection button

* Automatic changelog update

* Marathon Station: Added air alarms to CMO, Surgery, Security Checkpoint (#33213)

* add air alarms to sec checkpoint, cmo and western surgery

* decals and cleanup

* Meta Station: Add a fully functional TEG room (#32941)

* initial commit

* delete WIP-marker.md

* add TEG room, move gas chambers up

* remove outside burn chamber button, add naming to APC, SMES, Substation

* add HV below TEG Substation

* removed invalids

* Rule amendment -  Remove role abandonment aHelp requirement. (#33287)

* Role abandonment aHelp requirement.

* disable roundstart chat message

---------

Co-authored-by: slarticodefast <[email protected]>

* [Maps] Maus minor tweak (space-syndicate#2774)

* Automatic changelog update

* Note expiry time is now relative instead of using timestamps (#33262)

* Add the stuff

* Loc fix

* fixes

* Change

* Automatic changelog update

* Update Core (#33325)

add

* Prevent Digiboard recycling (#33315)

* add `HighRiskItem` tag

* Correct tags

Co-authored-by: slarticodefast <[email protected]>

---------

Co-authored-by: slarticodefast <[email protected]>

* Automatic changelog update

* Atro tiles weather disable (space-syndicate#2777)

* Weather tweak (space-syndicate#2778)

* Command external airlocks (#33333)

add

* New ruin variant (#33332)

add

* Edited Snow White reaction to output proper amount of drink. (#33331)

Co-authored-by: RedBookcase <[email protected]>

* Automatic changelog update

* Add succumb action 10 sec delay (#32985)

* Add succumb action 10 sec delay

* add somthing

* add delay to last words as well

---------

Co-authored-by: slarticodefast <[email protected]>

* Automatic changelog update

* Adds gorilla gauntlet storage sprite and updates hit sound (#33167)

* Adds storage sprite for gorilla gauntlet

* Specifies a heavier hitsound for gorilla gauntlet

* Modifies gauntlet icon and storage sprite

* Updates credit to my new username

* Clumsy system refactor (#31147)

* First commit

* Fixes

* Added the noise

* Renames

* Timespan

* Fixed space

* entity -> ent

* This shouldn't work

* opps....

* Datafield name change

* Better comments

* small comment

* Personal skill issue

* Event renames and stuff

* Couple fixes

* Defib ref fixes (Silly me)

* Added clumsy back!

* no hard code clumsy!

* Identity fix

* Event name change

* Comment change

* Function name change

* opp

* Update names

* Damage stuff!

* Fixes!

* Fixes

* opps

* This was hidden away!!

* negative diff feeds me

* Automatic changelog update

* Improve crayon UI to not be stuck in 1996 (#33101)

* Improve crayon UI to not be stuck in 1996

* Make a horrifying crayon spaghetti

* Crayon

* Undeprecate the crayon, describe the crayon

* Automatic changelog update

* BRB sign in the Bureaucracy Crate (#33341)

Added the brb sign to the Bureaucracy Crate

* Automatic changelog update

* Fix utensils not being thrown away (#33326)

* Automatic changelog update

* Fix server crash when the seed extractor is used on the dev map (#33312)

handle event when using seed extractor

Co-authored-by: slarticodefast <[email protected]>

* Solar assembly crate buff (#33019)

* more flatpacks + glass

* solar crate price increase

* price increase

* 1250 spesos

* Update Resources/Prototypes/Catalog/Fills/Crates/engines.yml

---------

Co-authored-by: slarticodefast <[email protected]>

* Automatic changelog update

* Add admin remarks button to lobby (#31761)

* Automatic changelog update

* [Art] Conveyor resprite (space-syndicate#2565)

Arrow added

* Cog christmas update (#33344)

christmas updoot

* Box Holiday Update (#33340)

Added holiday decorations with presents and various fixes

* Marathon holiday update (#33335)

* Added holiday decorations, and modified emergency lights to have a better layout.

* Added a couple more emergency lights after finding a couple spots that were wway too dark during testing, also gave the warden a crew monitor

* bagel christmas update (#33347)

* Throwing Knife description tweak (#33349)

changed description

* Update Credits (#33360)

Co-authored-by: PJBot <[email protected]>

* Adds paper label visuals to closets and lockers (#33318)

* Modifies label sprites and adds label visuals to closets

* Removes redundant GenericVisualizer component

* Automatic changelog update

* Omega Update (Christmas Edition) (#33357)

* Christmasift Omega station.

* Add cryosleeper to bridge.

* Packed Update (Christmas Edition) (#33356)

Christmasified Packed station.

* Wizard Summon Guns/Magic (#32692)

* mostly done but there's a bug with spawning

* RandomGlobalSpawnSpellEvent now actually works

* Summon Guns/Magic is working

* Added sound, cap gun, and auto pick up

* Added all requested changes/fixes from reviews

* Halving cooldowns

* Chemical synthesis kit tweak (#33345)

* butcherable surgery caps

* readded cardboard box

* butcherable now?

* butcherable now?

* one day ill figure this out

* changed label of hyperzine syringe

* removed the thing in hats.yml that wasn't supposed to be here

* Update Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml

---------

Co-authored-by: slarticodefast <[email protected]>

* Dim light bulbs (#33383)

add

* Automatic changelog update

* Shift air alarm sprites to better reflect their direction (#33379)

* Shift Air Alarm sprites to better reflect their direction

* Fix two frames of west-facing sprite being one pixel off

* Indicate that sprites are no longer exactly tgstation's

* replace zzz (space-syndicate#2758)

* Арт "Культ Нар'Си" (space-syndicate#2603)

* Avrite update (space-syndicate#2782)

* Automatic changelog update

* add new goal and tweak others (space-syndicate#2673)

Co-authored-by: NotSoDamn <[email protected]>

* reduce mime and clown playtime requirement (space-syndicate#2668)

* Automatic changelog update

* remove HiddenDesc from Implanters (space-syndicate#2530)

* fix antags hidden desc (space-syndicate#2702)

Co-authored-by: Kill_Me_I_Noobs <[email protected]>

* Automatic changelog update

* Replace direct uses of GameTicker dictionary with `TryGetValue` (#33222)

Fix station events schedulers, antag selection and possibly other systems acting weird in a rare scenario

* Service Worker Job Icon Change (#33361)

* Changes the Server Worker job icon to a bowtie.

* Removes grey from icon to better fit existing art.

* Updated ID card sprite.

* Edit respective meta.json files.

* Cog update (#33410)

removed fun

* fix viewing nav slowing shuttle down (#32381)

fix

* Automatic changelog update

* Welded secret doors no longer say they are welded shut. (#33365)

Init

* Automatic changelog update

* Update locale

* Remove locale borg parts

* [Maps] Glacier update (space-syndicate#2788)

* [Maps] ERT&Salvage shuttle update (space-syndicate#2789)

* Automatic changelog update

* Rebalancing zombie mode chances (space-syndicate#2791)

* Automatic changelog update

* Syndicate footsoldiers now have death acidifier as an autoimplant (space-syndicate#2792)

* Automatic changelog update

* nerf maxcap radius (space-syndicate#2794)

* Automatic changelog update

* Corvax New Year stuff (space-syndicate#2793)

* Automatic changelog update

* [Maps] Avrite update (space-syndicate#2796)

* Automatic changelog update

* Translate Upstream space-syndicate#2785 (space-syndicate#2797)

Co-authored-by: lapatison <[email protected]>
Co-authored-by: lzk <[email protected]>
Co-authored-by: cfif126 <[email protected]>

* Добавление скрытого описания модулей киборгов (space-syndicate#2544)

Co-authored-by: Kill_Me_I_Noobs <[email protected]>

* Automatic changelog update

* set see own notes to true (space-syndicate#2786)

* Automatic changelog update

* [Maps] Astra Winter Update (space-syndicate#2798)

* Automatic changelog update

* Displacement maps for Vulpas and Reptiles (space-syndicate#2447)

* fix reptilians

* Remove brigmed from paper

* Also remove brigmedic from avrite

* fix prices for tests

---------

Co-authored-by: Jezithyr <[email protected]>
Co-authored-by: Errant <[email protected]>
Co-authored-by: Pieter-Jan Briers <[email protected]>
Co-authored-by: metalgearsloth <[email protected]>
Co-authored-by: beck-thompson <[email protected]>
Co-authored-by: nikthechampiongr <[email protected]>
Co-authored-by: slarticodefast <[email protected]>
Co-authored-by: Vasilis The Pikachu <[email protected]>
Co-authored-by: Thomas <[email protected]>
Co-authored-by: BramvanZijp <[email protected]>
Co-authored-by: Stalen <[email protected]>
Co-authored-by: deathride58 <[email protected]>
Co-authored-by: cohanna <[email protected]>
Co-authored-by: Boaz1111 <[email protected]>
Co-authored-by: PJBot <[email protected]>
Co-authored-by: SlamBamActionman <[email protected]>
Co-authored-by: Flareguy <[email protected]>
Co-authored-by: ScarKy0 <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Armok <[email protected]>
Co-authored-by: IProduceWidgets <[email protected]>
Co-authored-by: Shaddap1 <[email protected]>
Co-authored-by: scrivoy <[email protected]>
Co-authored-by: lastPechkin <[email protected]>
Co-authored-by: IanComradeBot <[email protected]>
Co-authored-by: Kill_Me_I_Noobs <[email protected]>
Co-authored-by: Zekins <[email protected]>
Co-authored-by: leonidussaks <[email protected]>
Co-authored-by: NotSoDamn <[email protected]>
Co-authored-by: BramvanZijp <[email protected]>
Co-authored-by: Halches <[email protected]>
Co-authored-by: Andrew Montagne <[email protected]>
Co-authored-by: Simon <[email protected]>
Co-authored-by: Ed <[email protected]>
Co-authored-by: Preston Smith <[email protected]>
Co-authored-by: MilenVolf <[email protected]>
Co-authored-by: Repo <[email protected]>
Co-authored-by: TiFeRi <[email protected]>
Co-authored-by: SpaceRox1244 <[email protected]>
Co-authored-by: August Sun <[email protected]>
Co-authored-by: august-sun <[email protected]>
Co-authored-by: chromiumboy <[email protected]>
Co-authored-by: Spessmann <[email protected]>
Co-authored-by: Ubaser <[email protected]>
Co-authored-by: dffdff2423 <[email protected]>
Co-authored-by: keronshb <[email protected]>
Co-authored-by: lzk <[email protected]>
Co-authored-by: CheddaCheez <[email protected]>
Co-authored-by: Meguneri <[email protected]>
Co-authored-by: Saphire <[email protected]>
Co-authored-by: Ko4ergaPunk <[email protected]>
Co-authored-by: RedBookcase <[email protected]>
Co-authored-by: RedBookcase <[email protected]>
Co-authored-by: Southbridge <[email protected]>
Co-authored-by: MossyGreySlope <[email protected]>
Co-authored-by: K-Dynamic <[email protected]>
Co-authored-by: Emisse <[email protected]>
Co-authored-by: ThatGuyUSA <[email protected]>
Co-authored-by: Spanky <[email protected]>
Co-authored-by: ActiveMammmoth <[email protected]>
Co-authored-by: SpaceManiac <[email protected]>
Co-authored-by: CaptainMaru <[email protected]>
Co-authored-by: faint <[email protected]>
Co-authored-by: Ilya246 <[email protected]>
Co-authored-by: Morb0 <[email protected]>
Co-authored-by: NazrinNya <[email protected]>
Co-authored-by: lapatison <[email protected]>
Co-authored-by: lapatison <[email protected]>
Co-authored-by: cfif126 <[email protected]>
Co-authored-by: Nim <[email protected]>
Co-authored-by: Litogin <[email protected]>
  • Loading branch information
Show file tree
Hide file tree
Showing 860 changed files with 257,354 additions and 217,277 deletions.
2 changes: 1 addition & 1 deletion .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
- changed-files:
- any-glob-to-any-file: '**/*.ftl'

"No C#":
"Changes: No C#":
- changed-files:
# Equiv to any-glob-to-all as long as this has one matcher. If ALL changed files are not C# files, then apply label.
- all-globs-to-all-files: "!**/*.cs"
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ jobs:
- name: Check for Merge Conflicts
uses: eps1lon/[email protected]
with:
dirtyLabel: "Merge Conflict"
dirtyLabel: "S: Merge Conflict"
repoToken: "${{ secrets.GITHUB_TOKEN }}"
commentOnDirty: "This pull request has conflicts, please resolve those before we can evaluate the pull request."
4 changes: 2 additions & 2 deletions .github/workflows/labeler-needsreview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
steps:
- uses: actions-ecosystem/action-add-labels@v1
with:
labels: "Status: Needs Review"
labels: "S: Needs Review"
- uses: actions-ecosystem/action-remove-labels@v1
with:
labels: "Status: Awaiting Changes"
labels: "S: Awaiting Changes"
20 changes: 20 additions & 0 deletions .github/workflows/labeler-size.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: "Labels: Size"
on: pull_request_target
jobs:
size-label:
runs-on: ubuntu-latest
steps:
- name: size-label
uses: "pascalgn/[email protected]"
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
with:
# Custom size configuration
sizes: >
{
"0": "XS",
"10": "S",
"30": "M",
"100": "L",
"1000": "XL"
}
16 changes: 16 additions & 0 deletions .github/workflows/labeler-stable.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: "Labels: Branch stable"

on:
pull_request_target:
types:
- opened
branches:
- 'stable'

jobs:
add_label:
runs-on: ubuntu-latest
steps:
- uses: actions-ecosystem/action-add-labels@v1
with:
labels: "Branch: Stable"
16 changes: 16 additions & 0 deletions .github/workflows/labeler-staging.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: "Labels: Branch staging"

on:
pull_request_target:
types:
- opened
branches:
- 'staging'

jobs:
add_label:
runs-on: ubuntu-latest
steps:
- uses: actions-ecosystem/action-add-labels@v1
with:
labels: "Branch: Staging"
4 changes: 3 additions & 1 deletion .github/workflows/labeler-untriaged.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
on:
issues:
types: [opened]
pull_request_target:
types: [opened]

jobs:
add_label:
Expand All @@ -11,4 +13,4 @@ jobs:
- uses: actions-ecosystem/action-add-labels@v1
if: join(github.event.issue.labels) == ''
with:
labels: "Status: Untriaged"
labels: "S: Untriaged"
1 change: 1 addition & 0 deletions Content.Client/Administration/UI/Notes/NoteEdit.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<Label Name="ExpiryLabel" Text="{Loc admin-note-editor-expiry-label}" Visible="False" />
<HistoryLineEdit Name="ExpiryLineEdit" PlaceHolder="{Loc admin-note-editor-expiry-placeholder}"
Visible="False" HorizontalExpand="True" />
<OptionButton Name="ExpiryLengthDropdown" Visible="False" />
</BoxContainer>
<BoxContainer Orientation="Horizontal" HorizontalExpand="True">
<OptionButton Name="TypeOption" HorizontalAlignment="Center" />
Expand Down
53 changes: 50 additions & 3 deletions Content.Client/Administration/UI/Notes/NoteEdit.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,17 @@ public sealed partial class NoteEdit : FancyWindow
[Dependency] private readonly IGameTiming _gameTiming = default!;
[Dependency] private readonly IClientConsoleHost _console = default!;

private enum Multipliers
{
Minutes,
Hours,
Days,
Weeks,
Months,
Years,
Centuries
}

public event Action<int, NoteType, string, NoteSeverity?, bool, DateTime?>? SubmitPressed;

public NoteEdit(SharedAdminNote? note, string playerName, bool canCreate, bool canEdit)
Expand All @@ -31,6 +42,20 @@ public NoteEdit(SharedAdminNote? note, string playerName, bool canCreate, bool c

ResetSubmitButton();

// It's weird to use minutes as the IDs, but it works and makes sense kind of :)
ExpiryLengthDropdown.AddItem(Loc.GetString("admin-note-button-minutes"), (int) Multipliers.Minutes);
ExpiryLengthDropdown.AddItem(Loc.GetString("admin-note-button-hours"), (int) Multipliers.Hours);
ExpiryLengthDropdown.AddItem(Loc.GetString("admin-note-button-days"), (int) Multipliers.Days);
ExpiryLengthDropdown.AddItem(Loc.GetString("admin-note-button-weeks"), (int) Multipliers.Weeks);
ExpiryLengthDropdown.AddItem(Loc.GetString("admin-note-button-months"), (int) Multipliers.Months);
ExpiryLengthDropdown.AddItem(Loc.GetString("admin-note-button-years"), (int) Multipliers.Years);
ExpiryLengthDropdown.AddItem(Loc.GetString("admin-note-button-centuries"), (int) Multipliers.Centuries);
ExpiryLengthDropdown.OnItemSelected += OnLengthChanged;

ExpiryLengthDropdown.SelectId((int) Multipliers.Weeks);

ExpiryLineEdit.OnTextChanged += OnTextChanged;

TypeOption.AddItem(Loc.GetString("admin-note-editor-type-note"), (int) NoteType.Note);
TypeOption.AddItem(Loc.GetString("admin-note-editor-type-message"), (int) NoteType.Message);
TypeOption.AddItem(Loc.GetString("admin-note-editor-type-watchlist"), (int) NoteType.Watchlist);
Expand Down Expand Up @@ -172,8 +197,9 @@ private void UpdatePermanentCheckboxFields()
{
ExpiryLabel.Visible = !PermanentCheckBox.Pressed;
ExpiryLineEdit.Visible = !PermanentCheckBox.Pressed;
ExpiryLengthDropdown.Visible = !PermanentCheckBox.Pressed;

ExpiryLineEdit.Text = !PermanentCheckBox.Pressed ? DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") : string.Empty;
ExpiryLineEdit.Text = !PermanentCheckBox.Pressed ? 1.ToString() : string.Empty;
}

private void OnSecretPressed(BaseButton.ButtonEventArgs _)
Expand All @@ -187,6 +213,16 @@ private void OnSeverityChanged(OptionButton.ItemSelectedEventArgs args)
SeverityOption.SelectId(args.Id);
}

private void OnLengthChanged(OptionButton.ItemSelectedEventArgs args)
{
ExpiryLengthDropdown.SelectId(args.Id);
}

private void OnTextChanged(HistoryLineEdit.LineEditEventArgs args)
{
ParseExpiryTime();
}

private void OnSubmitButtonPressed(BaseButton.ButtonEventArgs args)
{
if (!ParseExpiryTime())
Expand Down Expand Up @@ -263,13 +299,24 @@ private bool ParseExpiryTime()
return true;
}

if (string.IsNullOrWhiteSpace(ExpiryLineEdit.Text) || !DateTime.TryParse(ExpiryLineEdit.Text, out var result) || DateTime.UtcNow > result)
if (string.IsNullOrWhiteSpace(ExpiryLineEdit.Text) || !uint.TryParse(ExpiryLineEdit.Text, out var inputInt))
{
ExpiryLineEdit.ModulateSelfOverride = Color.Red;
return false;
}

ExpiryTime = result.ToUniversalTime();
var mult = ExpiryLengthDropdown.SelectedId switch
{
(int) Multipliers.Minutes => TimeSpan.FromMinutes(1).TotalMinutes,
(int) Multipliers.Hours => TimeSpan.FromHours(1).TotalMinutes,
(int) Multipliers.Days => TimeSpan.FromDays(1).TotalMinutes,
(int) Multipliers.Weeks => TimeSpan.FromDays(7).TotalMinutes,
(int) Multipliers.Months => TimeSpan.FromDays(30).TotalMinutes,
(int) Multipliers.Years => TimeSpan.FromDays(365).TotalMinutes,
(int) Multipliers.Centuries => TimeSpan.FromDays(36525).TotalMinutes,
_ => throw new ArgumentOutOfRangeException(nameof(ExpiryLengthDropdown.SelectedId), "Multiplier out of range :(")
};
ExpiryTime = DateTime.UtcNow.AddMinutes(inputInt * mult);
ExpiryLineEdit.ModulateSelfOverride = null;
return true;
}
Expand Down
15 changes: 10 additions & 5 deletions Content.Client/Alerts/ClientAlertsSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Content.Shared.Alert;
using JetBrains.Annotations;
using Robust.Client.Player;
using Robust.Shared.GameStates;
using Robust.Shared.Player;
using Robust.Shared.Prototypes;

Expand All @@ -24,8 +25,7 @@ public override void Initialize()

SubscribeLocalEvent<AlertsComponent, LocalPlayerAttachedEvent>(OnPlayerAttached);
SubscribeLocalEvent<AlertsComponent, LocalPlayerDetachedEvent>(OnPlayerDetached);

SubscribeLocalEvent<AlertsComponent, AfterAutoHandleStateEvent>(ClientAlertsHandleState);
SubscribeLocalEvent<AlertsComponent, ComponentHandleState>(OnHandleState);
}
protected override void LoadPrototypes()
{
Expand All @@ -47,17 +47,22 @@ public IReadOnlyDictionary<AlertKey, AlertState>? ActiveAlerts
}
}

protected override void AfterShowAlert(Entity<AlertsComponent> alerts)
private void OnHandleState(Entity<AlertsComponent> alerts, ref ComponentHandleState args)
{
if (args.Current is not AlertComponentState cast)
return;

alerts.Comp.Alerts = cast.Alerts;

UpdateHud(alerts);
}

protected override void AfterClearAlert(Entity<AlertsComponent> alerts)
protected override void AfterShowAlert(Entity<AlertsComponent> alerts)
{
UpdateHud(alerts);
}

private void ClientAlertsHandleState(Entity<AlertsComponent> alerts, ref AfterAutoHandleStateEvent args)
protected override void AfterClearAlert(Entity<AlertsComponent> alerts)
{
UpdateHud(alerts);
}
Expand Down
24 changes: 19 additions & 5 deletions Content.Client/Clothing/ClientClothingSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ public override void Initialize()
base.Initialize();

SubscribeLocalEvent<ClothingComponent, GetEquipmentVisualsEvent>(OnGetVisuals);
SubscribeLocalEvent<ClothingComponent, InventoryTemplateUpdated>(OnInventoryTemplateUpdated);

SubscribeLocalEvent<InventoryComponent, VisualsChangedEvent>(OnVisualsChanged);
SubscribeLocalEvent<SpriteComponent, DidUnequipEvent>(OnDidUnequip);
Expand All @@ -70,11 +71,7 @@ private void OnAppearanceUpdate(EntityUid uid, InventoryComponent component, ref
if (args.Sprite == null)
return;

var enumerator = _inventorySystem.GetSlotEnumerator((uid, component));
while (enumerator.NextItem(out var item, out var slot))
{
RenderEquipment(uid, item, slot.Name, component);
}
UpdateAllSlots(uid, component);

// No clothing equipped -> make sure the layer is hidden, though this should already be handled by on-unequip.
if (args.Sprite.LayerMapTryGet(HumanoidVisualLayers.StencilMask, out var layer))
Expand All @@ -84,6 +81,23 @@ private void OnAppearanceUpdate(EntityUid uid, InventoryComponent component, ref
}
}

private void OnInventoryTemplateUpdated(Entity<ClothingComponent> ent, ref InventoryTemplateUpdated args)
{
UpdateAllSlots(ent.Owner, clothing: ent.Comp);
}

private void UpdateAllSlots(
EntityUid uid,
InventoryComponent? inventoryComponent = null,
ClothingComponent? clothing = null)
{
var enumerator = _inventorySystem.GetSlotEnumerator((uid, inventoryComponent));
while (enumerator.NextItem(out var item, out var slot))
{
RenderEquipment(uid, item, slot.Name, inventoryComponent, clothingComponent: clothing);
}
}

private void OnGetVisuals(EntityUid uid, ClothingComponent item, GetEquipmentVisualsEvent args)
{
if (!TryComp(args.Equipee, out InventoryComponent? inventory))
Expand Down
12 changes: 11 additions & 1 deletion Content.Client/Crayon/UI/CrayonBoundUserInterface.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ protected override void Open()
private void PopulateCrayons()
{
var crayonDecals = _protoManager.EnumeratePrototypes<DecalPrototype>().Where(x => x.Tags.Contains("crayon"));
_menu?.Populate(crayonDecals);
_menu?.Populate(crayonDecals.ToList());
}

public override void OnProtoReload(PrototypesReloadedEventArgs args)
Expand All @@ -44,6 +44,16 @@ public override void OnProtoReload(PrototypesReloadedEventArgs args)
PopulateCrayons();
}

protected override void ReceiveMessage(BoundUserInterfaceMessage message)
{
base.ReceiveMessage(message);

if (_menu is null || message is not CrayonUsedMessage crayonMessage)
return;

_menu.AdvanceState(crayonMessage.DrawnDecal);
}

protected override void UpdateState(BoundUserInterfaceState state)
{
base.UpdateState(state);
Expand Down
11 changes: 5 additions & 6 deletions Content.Client/Crayon/UI/CrayonWindow.xaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
<DefaultWindow xmlns="https://spacestation14.io"
Title="{Loc 'crayon-window-title'}"
MinSize="250 300"
SetSize="250 300">
MinSize="450 500"
SetSize="450 500">
<BoxContainer Orientation="Vertical">
<ColorSelectorSliders Name="ColorSelector" Visible="False" />
<LineEdit Name="Search" />
<LineEdit Name="Search" Margin="0 0 0 8" PlaceHolder="{Loc 'crayon-window-placeholder'}" />
<ScrollContainer VerticalExpand="True">
<GridContainer Name="Grid" Columns="6">
<!-- Crayon decals get added here by code -->
</GridContainer>
<BoxContainer Name="Grids" Orientation="Vertical">
</BoxContainer>
</ScrollContainer>
</BoxContainer>
</DefaultWindow>
Loading

0 comments on commit eeb5f18

Please sign in to comment.