diff --git a/Content.Server/DeltaV/StationEvents/Events/FugitiveRule.cs b/Content.Server/DeltaV/StationEvents/Events/FugitiveRule.cs index 5aed54bc976..f39d3eb07d0 100644 --- a/Content.Server/DeltaV/StationEvents/Events/FugitiveRule.cs +++ b/Content.Server/DeltaV/StationEvents/Events/FugitiveRule.cs @@ -11,6 +11,7 @@ using Content.Shared.Paper; using Content.Shared.Popups; using Content.Shared.Random.Helpers; +using Content.Shared.Silicons.StationAi; using Content.Shared.Storage.EntitySystems; using Robust.Shared.Physics.Components; using Robust.Shared.Utility; @@ -46,7 +47,7 @@ protected override void ActiveTick(EntityUid uid, FugitiveRuleComponent comp, Ga var consoles = new List(); while (query.MoveNext(out var console, out var xform, out _)) { - if (StationSystem.GetOwningStation(console, xform) != comp.Station || HasComp(console)) + if (StationSystem.GetOwningStation(console, xform) != comp.Station || HasComp(console) || HasComp(console)) continue; consoles.Add(xform); diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 31ac128754d..b8c61d42577 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,56 +1,4 @@ Entries: -- author: Adrian16199 - changes: - - message: Added a speech bubble to felinids. Mraow! - type: Add - id: 237 - time: '2024-02-12T20:51:35.0000000+00:00' -- author: DebugOk - changes: - - message: Felinids now fit in bags again! - type: Add - id: 238 - time: '2024-02-12T20:52:49.0000000+00:00' -- author: Guess-My-Name - changes: - - message: Some budget cuts were made in HR department, expect more bureaucratic - errors in near future. - type: Add - id: 239 - time: '2024-02-12T21:01:44.0000000+00:00' -- author: Adrian16199 - changes: - - message: Felinid's thieving gloves have been removed for Soft paws mechanic. - type: Tweak - id: 240 - time: '2024-02-12T21:10:44.0000000+00:00' -- author: Adrian16199 - changes: - - message: Felinids now scream in agony from water. - type: Add - id: 241 - time: '2024-02-12T21:11:44.0000000+00:00' -- author: VMSolidus - changes: - - message: 'Harpies have received a full visual rework. Featuring clothing sprites, - new markings, a complete overhaul of their layering, as well as visual systems. ' - type: Add - - message: Harpies now have bird related speech verbs - type: Add - - message: 'Two new traits have been added related to birds. Harpies now start by - default with the new Ultraviolet Vision trait, letting them see a whole new - spectrum of colors. This trait can be taken by other curious people. Harpies - that wish to see in RGB colors can instead take the new Normal Vision trait. ' - type: Add - id: 242 - time: '2024-02-12T22:25:02.0000000+00:00' -- author: DebugOk - changes: - - message: Glimmer probers now react violently to being hit by gorilla gauntlets - if glimmer is above 500 - type: Tweak - id: 243 - time: '2024-02-13T00:59:01.0000000+00:00' - author: VMSolidus changes: - message: Removed the ability of Harpies to destroy people's ears. @@ -3803,3 +3751,57 @@ id: 736 time: '2024-12-03T06:36:02.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2352 +- author: BlitzTheSquishy + changes: + - message: You now have to hold a rifle with TWO hands to operate it. + type: Tweak + id: 737 + time: '2024-12-04T12:51:08.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2353 +- author: deltanedas + changes: + - message: Fixed the AI getting a copy of fugitive reports on its face. + type: Fix + id: 738 + time: '2024-12-04T23:20:55.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2363 +- author: deltanedas + changes: + - message: Fixed traitors never getting the notary stamp steal objective. + type: Fix + id: 739 + time: '2024-12-05T04:17:26.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2358 +- author: JustAnOrange + changes: + - message: Fixed Logi and Epi departmental sign sprites. + type: Fix + id: 740 + time: '2024-12-05T10:29:37.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2366 +- author: Emily9031 + changes: + - message: Cyborgs are now able to slowly fly through space. + type: Add + id: 741 + time: '2024-12-06T01:22:26.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2339 +- author: Avalon-Proto + changes: + - message: Syndicate Observation Kits have been adjusted, granting it a Camera bug + and a better cell for the monitor! + type: Tweak + id: 742 + time: '2024-12-06T18:15:22.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2288 +- author: Radezolid + changes: + - message: Added foam sabres! They may appear in maintenance lockers and mimes can + select to spawn with it in the loadout selection. + type: Add + - message: Added a sharp version of the foam sabre toy, purchasable from the syndicate + uplink at 6 TC with a possible discount to 4 TC. + type: Add + id: 743 + time: '2024-12-06T19:33:56.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2310 diff --git a/Resources/Locale/en-US/deltav/store/uplink-catalog.ftl b/Resources/Locale/en-US/deltav/store/uplink-catalog.ftl index 4b860e6efdd..4cf03df5f92 100644 --- a/Resources/Locale/en-US/deltav/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/deltav/store/uplink-catalog.ftl @@ -20,3 +20,6 @@ uplink-doorjack-desc = A specialized cryptographic sequencer, designed solely to uplink-home-run-bat-name = Home Run Bat uplink-home-run-bat-desc = Rigged bat pre-coated in blood for Syndicate tee-ball practice. Launch your foes! + +uplink-foam-sabre-name = Sharp Foam Sabre +uplink-foam-sabre-desc = A blade disguised as a toy foam sabre. Perfect for assassins that pretend playing around. diff --git a/Resources/Maps/Shuttles/DeltaV/barge.yml b/Resources/Maps/Shuttles/DeltaV/barge.yml index b448fe28396..e64f9315ee1 100644 --- a/Resources/Maps/Shuttles/DeltaV/barge.yml +++ b/Resources/Maps/Shuttles/DeltaV/barge.yml @@ -457,7 +457,6 @@ entities: - type: GasTileOverlay - type: SpreaderGrid - type: GravityShake - nextShake: 0 shakeTimes: 10 - proto: AirCanister entities: @@ -598,44 +597,26 @@ entities: - type: Transform pos: 5.5,-0.5 parent: 1 - - type: DeviceLinkSink - links: - - 437 - uid: 23 components: - type: Transform pos: 5.5,3.5 parent: 1 - - type: DeviceLinkSink - links: - - 437 - uid: 24 components: - type: Transform pos: -4.5,3.5 parent: 1 - - type: DeviceLinkSink - links: - - 434 - - 435 - uid: 25 components: - type: Transform pos: -4.5,2.5 parent: 1 - - type: DeviceLinkSink - links: - - 434 - - 435 - uid: 26 components: - type: Transform pos: -4.5,1.5 parent: 1 - - type: DeviceLinkSink - links: - - 434 - - 435 - proto: BoozeDispenser entities: - uid: 249 @@ -1693,139 +1674,90 @@ entities: rot: 1.5707963267948966 rad pos: -5.5,1.5 parent: 1 - - type: DeviceLinkSink - links: - - 507 - - 508 - uid: 232 components: - type: Transform rot: 1.5707963267948966 rad pos: -4.5,1.5 parent: 1 - - type: DeviceLinkSink - links: - - 507 - - 508 - uid: 233 components: - type: Transform rot: 1.5707963267948966 rad pos: -3.5,1.5 parent: 1 - - type: DeviceLinkSink - links: - - 507 - - 508 - uid: 234 components: - type: Transform rot: 1.5707963267948966 rad pos: -2.5,1.5 parent: 1 - - type: DeviceLinkSink - links: - - 507 - - 508 - uid: 235 components: - type: Transform rot: 3.141592653589793 rad pos: 1.5,-3.5 parent: 1 - - type: DeviceLinkSink - links: - - 510 - uid: 236 components: - type: Transform rot: 3.141592653589793 rad pos: 1.5,-2.5 parent: 1 - - type: DeviceLinkSink - links: - - 510 - uid: 237 components: - type: Transform rot: 3.141592653589793 rad pos: 1.5,-1.5 parent: 1 - - type: DeviceLinkSink - links: - - 510 - uid: 238 components: - type: Transform rot: -1.5707963267948966 rad pos: 4.5,-0.5 parent: 1 - - type: DeviceLinkSink - links: - - 509 - uid: 239 components: - type: Transform rot: -1.5707963267948966 rad pos: 5.5,-0.5 parent: 1 - - type: DeviceLinkSink - links: - - 509 - uid: 240 components: - type: Transform rot: -1.5707963267948966 rad pos: 4.5,3.5 parent: 1 - - type: DeviceLinkSink - links: - - 509 - uid: 241 components: - type: Transform rot: -1.5707963267948966 rad pos: 5.5,3.5 parent: 1 - - type: DeviceLinkSink - links: - - 509 - uid: 242 components: - type: Transform rot: -1.5707963267948966 rad pos: 3.5,3.5 parent: 1 - - type: DeviceLinkSink - links: - - 509 - uid: 243 components: - type: Transform rot: -1.5707963267948966 rad pos: 3.5,-0.5 parent: 1 - - type: DeviceLinkSink - links: - - 509 - uid: 244 components: - type: Transform rot: 3.141592653589793 rad pos: 1.5,-4.5 parent: 1 - - type: DeviceLinkSink - links: - - 510 - uid: 245 components: - type: Transform rot: 3.141592653589793 rad pos: 1.5,-5.5 parent: 1 - - type: DeviceLinkSink - links: - - 510 - proto: DrinkGinBottleFull entities: - uid: 246 @@ -3291,43 +3223,26 @@ entities: - type: Transform pos: 0.5,1.5 parent: 1 - - type: DeviceLinkSink - links: - - 439 - uid: 399 components: - type: Transform pos: 0.5,2.5 parent: 1 - - type: DeviceLinkSink - links: - - 439 - uid: 400 components: - type: Transform pos: 0.5,3.5 parent: 1 - - type: DeviceLinkSink - links: - - 439 - uid: 401 components: - type: Transform pos: 1.5,-2.5 parent: 1 - - type: DeviceLinkSink - links: - - 436 - - 438 - uid: 402 components: - type: Transform pos: 2.5,-2.5 parent: 1 - - type: DeviceLinkSink - links: - - 436 - - 438 - proto: ShuttleWindow entities: - uid: 403 @@ -4364,6 +4279,15 @@ entities: - type: Transform pos: 1.5,-13.5 parent: 1 +- proto: WarpPoint + entities: + - uid: 643 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - type: WarpPoint + location: The Barge - proto: WaterCooler entities: - uid: 576 diff --git a/Resources/Maps/Shuttles/DeltaV/helix.yml b/Resources/Maps/Shuttles/DeltaV/helix.yml index c381211d118..b1b85491bdf 100644 --- a/Resources/Maps/Shuttles/DeltaV/helix.yml +++ b/Resources/Maps/Shuttles/DeltaV/helix.yml @@ -3084,6 +3084,15 @@ entities: - type: Transform pos: 9.5,8.5 parent: 1 +- proto: WarpPoint + entities: + - uid: 483 + components: + - type: Transform + pos: 3.5,5.5 + parent: 1 + - type: WarpPoint + location: NTMC Helix - proto: WeaponCapacitorRecharger entities: - uid: 438 diff --git a/Resources/Maps/Shuttles/DeltaV/ntcv-nomad.yml b/Resources/Maps/Shuttles/DeltaV/ntcv-nomad.yml index 5e5f72ef9d0..4e193ab0071 100644 --- a/Resources/Maps/Shuttles/DeltaV/ntcv-nomad.yml +++ b/Resources/Maps/Shuttles/DeltaV/ntcv-nomad.yml @@ -1139,4 +1139,13 @@ entities: - type: Transform pos: -3.5,-1.5 parent: 1 +- proto: WarpPoint + entities: + - uid: 160 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - type: WarpPoint + location: NTCV Nomad ... diff --git a/Resources/Maps/Shuttles/DeltaV/ntsp-bulwark.yml b/Resources/Maps/Shuttles/DeltaV/ntsp-bulwark.yml index 486a744b925..4c6a02a6e8a 100644 --- a/Resources/Maps/Shuttles/DeltaV/ntsp-bulwark.yml +++ b/Resources/Maps/Shuttles/DeltaV/ntsp-bulwark.yml @@ -20,7 +20,6 @@ entities: components: - type: MetaData - type: Transform - parent: invalid - type: MapGrid chunks: 0,0: @@ -1803,6 +1802,8 @@ entities: - type: Transform pos: 0.5,-0.5 parent: 1 + - type: WarpPoint + location: NTSP Bulwark - proto: WeaponCapacitorRecharger entities: - uid: 260 diff --git a/Resources/Maps/Shuttles/DeltaV/ntsv-tote.yml b/Resources/Maps/Shuttles/DeltaV/ntsv-tote.yml index 03faaaed55b..78c692ba339 100644 --- a/Resources/Maps/Shuttles/DeltaV/ntsv-tote.yml +++ b/Resources/Maps/Shuttles/DeltaV/ntsv-tote.yml @@ -141,7 +141,6 @@ entities: - type: GasTileOverlay - type: SpreaderGrid - type: GravityShake - nextShake: 0 shakeTimes: 10 - proto: AirCanister entities: @@ -209,33 +208,21 @@ entities: - type: Transform pos: 2.5,-3.5 parent: 1 - - type: DeviceLinkSink - links: - - 123 - uid: 12 components: - type: Transform pos: 2.5,-7.5 parent: 1 - - type: DeviceLinkSink - links: - - 123 - uid: 13 components: - type: Transform pos: -3.5,-6.5 parent: 1 - - type: DeviceLinkSink - links: - - 124 - uid: 14 components: - type: Transform pos: -3.5,-5.5 parent: 1 - - type: DeviceLinkSink - links: - - 124 - proto: CableApcExtension entities: - uid: 15 @@ -517,36 +504,24 @@ entities: rot: -1.5707963267948966 rad pos: 2.5,-3.5 parent: 1 - - type: DeviceLinkSink - links: - - 136 - uid: 67 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,-3.5 parent: 1 - - type: DeviceLinkSink - links: - - 136 - uid: 68 components: - type: Transform rot: 1.5707963267948966 rad pos: 1.5,-7.5 parent: 1 - - type: DeviceLinkSink - links: - - 136 - uid: 69 components: - type: Transform rot: 1.5707963267948966 rad pos: 2.5,-7.5 parent: 1 - - type: DeviceLinkSink - links: - - 136 - proto: DrinkColaBottleFull entities: - uid: 70 @@ -1244,4 +1219,13 @@ entities: rot: 3.141592653589793 rad pos: 2.5,-10.5 parent: 1 +- proto: WarpPoint + entities: + - uid: 172 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - type: WarpPoint + location: NTSV Tote ... diff --git a/Resources/Maps/Shuttles/DeltaV/ntv-pulse.yml b/Resources/Maps/Shuttles/DeltaV/ntv-pulse.yml index 1a01fbf634f..1528079c141 100644 --- a/Resources/Maps/Shuttles/DeltaV/ntv-pulse.yml +++ b/Resources/Maps/Shuttles/DeltaV/ntv-pulse.yml @@ -198,7 +198,6 @@ entities: - type: RadiationGridResistance - type: SpreaderGrid - type: GravityShake - nextShake: 0 shakeTimes: 10 - proto: AirAlarm entities: @@ -321,8 +320,6 @@ entities: parent: 1 - type: DeviceLinkSink invokeCounter: 1 - links: - - 538 - type: DeviceLinkSource linkedPorts: 537: @@ -334,8 +331,6 @@ entities: parent: 1 - type: DeviceLinkSink invokeCounter: 1 - links: - - 537 - type: DeviceLinkSource linkedPorts: 538: @@ -347,8 +342,6 @@ entities: parent: 1 - type: DeviceLinkSink invokeCounter: 1 - links: - - 538 - type: DeviceLinkSource linkedPorts: 537: @@ -360,8 +353,6 @@ entities: parent: 1 - type: DeviceLinkSink invokeCounter: 1 - links: - - 537 - type: DeviceLinkSource linkedPorts: 538: @@ -509,9 +500,6 @@ entities: - type: Transform pos: -7.5,6.5 parent: 1 - - type: DeviceLinkSink - links: - - 398 - proto: BoxFolderGrey entities: - uid: 40 @@ -1449,18 +1437,12 @@ entities: rot: -1.5707963267948966 rad pos: -6.5,6.5 parent: 1 - - type: DeviceLinkSink - links: - - 440 - uid: 212 components: - type: Transform rot: -1.5707963267948966 rad pos: -7.5,6.5 parent: 1 - - type: DeviceLinkSink - links: - - 440 - proto: Dresser entities: - uid: 213 @@ -2457,7 +2439,7 @@ entities: - type: Transform pos: -4.5,10.5 parent: 1 -- proto: LogicGate +- proto: LogicGateOr entities: - uid: 537 components: @@ -2468,9 +2450,6 @@ entities: parent: 1 - type: DeviceLinkSink invokeCounter: 2 - links: - - 13 - - 15 - type: DeviceLinkSource linkedPorts: 14: @@ -2489,9 +2468,6 @@ entities: parent: 1 - type: DeviceLinkSink invokeCounter: 2 - links: - - 14 - - 16 - type: DeviceLinkSource linkedPorts: 13: @@ -2968,7 +2944,7 @@ entities: - type: Transform pos: 3.5,-7.5 parent: 1 -- proto: soda_dispenser +- proto: SodaDispenser entities: - uid: 418 components: @@ -3679,6 +3655,15 @@ entities: - type: Transform pos: 2.5,2.5 parent: 1 +- proto: WarpPoint + entities: + - uid: 547 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - type: WarpPoint + location: NTV Pulse - proto: Windoor entities: - uid: 532 diff --git a/Resources/Maps/Shuttles/DeltaV/ntxr-saucer.yml b/Resources/Maps/Shuttles/DeltaV/ntxr-saucer.yml index a3c0227b598..efd3f56991f 100644 --- a/Resources/Maps/Shuttles/DeltaV/ntxr-saucer.yml +++ b/Resources/Maps/Shuttles/DeltaV/ntxr-saucer.yml @@ -24,7 +24,6 @@ entities: components: - type: MetaData - type: Transform - parent: invalid - type: MapGrid chunks: 0,0: @@ -316,9 +315,6 @@ entities: - type: Transform pos: 9.5,0.5 parent: 1 - - type: DeviceLinkSink - links: - - 321 - proto: BoxFolderBlack entities: - uid: 20 @@ -1958,9 +1954,6 @@ entities: - type: Transform pos: 8.5,0.5 parent: 1 - - type: DeviceLinkSink - links: - - 123 - proto: NitrogenCanister entities: - uid: 269 @@ -2837,6 +2830,8 @@ entities: - type: Transform pos: 0.5,-3.5 parent: 1 + - type: WarpPoint + location: NTXR Saucer - proto: WindoorSecurePlasma entities: - uid: 413 @@ -2847,8 +2842,6 @@ entities: parent: 1 - type: DeviceLinkSink invokeCounter: 1 - links: - - 414 - type: DeviceLinkSource linkedPorts: 414: @@ -2861,8 +2854,6 @@ entities: parent: 1 - type: DeviceLinkSink invokeCounter: 1 - links: - - 413 - type: DeviceLinkSource linkedPorts: 413: diff --git a/Resources/Maps/Shuttles/DeltaV/prospector.yml b/Resources/Maps/Shuttles/DeltaV/prospector.yml index ae5d9d27468..6723687adb4 100644 --- a/Resources/Maps/Shuttles/DeltaV/prospector.yml +++ b/Resources/Maps/Shuttles/DeltaV/prospector.yml @@ -274,28 +274,16 @@ entities: - type: Transform pos: 0.5,-0.5 parent: 1 - - type: DeviceLinkSink - links: - - 160 - - 161 - uid: 15 components: - type: Transform pos: 0.5,-1.5 parent: 1 - - type: DeviceLinkSink - links: - - 160 - - 161 - uid: 16 components: - type: Transform pos: 0.5,-2.5 parent: 1 - - type: DeviceLinkSink - links: - - 160 - - 161 - uid: 17 components: - type: Transform @@ -578,63 +566,42 @@ entities: rot: 1.5707963267948966 rad pos: -0.5,-2.5 parent: 1 - - type: DeviceLinkSink - links: - - 174 - uid: 67 components: - type: Transform rot: 1.5707963267948966 rad pos: 0.5,-2.5 parent: 1 - - type: DeviceLinkSink - links: - - 174 - uid: 68 components: - type: Transform rot: 1.5707963267948966 rad pos: 1.5,-2.5 parent: 1 - - type: DeviceLinkSink - links: - - 174 - uid: 69 components: - type: Transform rot: 1.5707963267948966 rad pos: -4.5,-2.5 parent: 1 - - type: DeviceLinkSink - links: - - 173 - uid: 70 components: - type: Transform rot: 1.5707963267948966 rad pos: -5.5,-2.5 parent: 1 - - type: DeviceLinkSink - links: - - 173 - uid: 71 components: - type: Transform rot: 1.5707963267948966 rad pos: -6.5,-2.5 parent: 1 - - type: DeviceLinkSink - links: - - 173 - uid: 72 components: - type: Transform rot: 1.5707963267948966 rad pos: -3.5,-2.5 parent: 1 - - type: DeviceLinkSink - links: - - 173 - proto: DrinkFlaskOld entities: - uid: 73 @@ -1232,7 +1199,7 @@ entities: - Pressed: Toggle 16: - Pressed: Toggle -- proto: SignMinerDock +- proto: SignShipDock entities: - uid: 162 components: @@ -1472,6 +1439,15 @@ entities: rot: -1.5707963267948966 rad pos: -1.5,-3.5 parent: 1 +- proto: WarpPoint + entities: + - uid: 201 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - type: WarpPoint + location: NT-7 Prospector - proto: WaterCooler entities: - uid: 198 diff --git a/Resources/Maps/Shuttles/DeltaV/pts.yml b/Resources/Maps/Shuttles/DeltaV/pts.yml index cb6f90e2872..ae1deb5976c 100644 --- a/Resources/Maps/Shuttles/DeltaV/pts.yml +++ b/Resources/Maps/Shuttles/DeltaV/pts.yml @@ -1156,6 +1156,15 @@ entities: rot: 3.141592653589793 rad pos: 1.5,-7.5 parent: 1 +- proto: WarpPoint + entities: + - uid: 162 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - type: WarpPoint + location: Private Transport Shuttle - proto: Window entities: - uid: 160 diff --git a/Resources/Maps/tortuga.yml b/Resources/Maps/tortuga.yml index 7da9f5c667d..1d6a77d3512 100644 --- a/Resources/Maps/tortuga.yml +++ b/Resources/Maps/tortuga.yml @@ -158239,11 +158239,6 @@ entities: parent: 33 - proto: PlayerStationAi entities: - - uid: 31784 - components: - - type: Transform - pos: -49.5,-70.5 - parent: 33 - uid: 31785 components: - type: Transform @@ -162356,6 +162351,12 @@ entities: rot: 3.141592653589793 rad pos: 31.5,-8.5 parent: 33 + - uid: 31784 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -57.5,-43.5 + parent: 33 - uid: 32304 components: - type: Transform @@ -163780,6 +163781,12 @@ entities: rot: 3.141592653589793 rad pos: -83.5,12.5 parent: 33 + - uid: 32430 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -60.5,-39.5 + parent: 33 - proto: PoweredSmallLightMaintenanceRed entities: - uid: 1132 diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml b/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml index 179af783162..62464b9ca70 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml @@ -42,11 +42,11 @@ contents: - id: SyndiCrewMonitorEmpty amount: 1 - - id: PowerCellHigh + - id: PowerCellMicroreactor # DeltaV - No more charging amount: 1 - id: ClothingEyesGlassesHiddenSecurity amount: 1 - - id: SurveillanceCameraMonitorCircuitboard + - id: CameraBug # DeltaV - Way better than that board amount: 1 diff --git a/Resources/Prototypes/DeltaV/Catalog/Fills/Items/Belts/belts.yml b/Resources/Prototypes/DeltaV/Catalog/Fills/Items/Belts/belts.yml index b563757acb5..cbdee1d05fa 100644 --- a/Resources/Prototypes/DeltaV/Catalog/Fills/Items/Belts/belts.yml +++ b/Resources/Prototypes/DeltaV/Catalog/Fills/Items/Belts/belts.yml @@ -22,3 +22,23 @@ - id: Bloodpack - id: SyringeEphedrine - id: EmergencyMedipen + +- type: entity + id: ClothingBeltFoamSheathFilled + parent: ClothingBeltFoamSheath + suffix: Filled + components: + - type: ContainerFill + containers: + item: + - FoamSabre + +- type: entity + id: ClothingBeltRealFoamSheathFilled + parent: ClothingBeltFoamSheath + suffix: Filled, Real + components: + - type: ContainerFill + containers: + item: + - RealFoamSabre diff --git a/Resources/Prototypes/DeltaV/Catalog/uplink_catalog.yml b/Resources/Prototypes/DeltaV/Catalog/uplink_catalog.yml index 2e428c8f8d9..f03c88af6b5 100644 --- a/Resources/Prototypes/DeltaV/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/DeltaV/Catalog/uplink_catalog.yml @@ -41,9 +41,9 @@ productEntity: Observationskit discountCategory: usualDiscounts discountDownTo: - Telecrystal: 2 + Telecrystal: 3 cost: - Telecrystal: 4 + Telecrystal: 6 # DeltaV - Price Goes up, but the goods are better! categories: - UplinkDeception @@ -102,3 +102,18 @@ Telecrystal: 16 categories: - UplinkWeaponry + +- type: listing + id: UplinkRealFoamSabre + name: uplink-foam-sabre-name + description: uplink-foam-sabre-desc + productEntity: ClothingBeltRealFoamSheathFilled + icon: + entity: RealFoamSabre + discountCategory: usualDiscounts + discountDownTo: + Telecrystal: 4 + cost: + Telecrystal: 6 + categories: + - UplinkWeaponry diff --git a/Resources/Prototypes/DeltaV/Entities/Clothing/Belt/belts.yml b/Resources/Prototypes/DeltaV/Entities/Clothing/Belt/belts.yml index cef0cf394c1..a609238d9be 100644 --- a/Resources/Prototypes/DeltaV/Entities/Clothing/Belt/belts.yml +++ b/Resources/Prototypes/DeltaV/Entities/Clothing/Belt/belts.yml @@ -73,3 +73,14 @@ ents: [] medkit: !type:ContainerSlot {} - type: Appearance + +- type: entity + parent: ClothingBeltSheath + id: ClothingBeltFoamSheath + name: foam sheath + description: A foam sheath to cosplay as the captain! It seems to be able to fit a real sabre in it. + components: + - type: Sprite + sprite: DeltaV/Clothing/Belt/foamsheath.rsi + - type: Clothing + sprite: DeltaV/Clothing/Belt/foamsheath.rsi diff --git a/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/Random/security.yml b/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/Random/security.yml index 2fda11f0e54..c0ea5c8e621 100644 --- a/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/Random/security.yml +++ b/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/Random/security.yml @@ -4,6 +4,11 @@ suffix: superweapon parent: MarkerBase components: + - type: Sprite + layers: + - state: red + - sprite: DeltaV/Objects/Weapons/Guns/Battery/beam_cannon.rsi + state: base - type: EntityTableSpawner table: !type:NestedSelector tableId: RandomSuperweaponTable @@ -18,4 +23,4 @@ - id: WeaponLauncherRocket - id: CartridgeRocket prob: 0.2 - - id: WeaponBeamDevastator \ No newline at end of file + - id: WeaponBeamDevastator diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Fun/toys.yml index 2a22e6fd938..39593702130 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Fun/toys.yml @@ -45,3 +45,33 @@ - type: Sprite sprite: DeltaV/Objects/Fun/Toys/zerotoy.rsi state: icon + +- type: entity + parent: BaseItem + id: FoamSabre + name: foam sabre + description: Cosplay as a captain and command your group of friends! + components: + - type: Sprite + sprite: DeltaV/Objects/Fun/Toys/foam_sabre.rsi + state: icon + - type: MeleeWeapon + wideAnimationRotation: -135 + attackRate: 1.5 + range: 2.0 + damage: + types: + Blunt: 0 + - type: Reflect # Imitation of captain's sword, 1% chance of reflecting a projectile for the fun chance of it happening. + reflectProb: .01 + spread: 90 + - type: Item + size: Normal + sprite: DeltaV/Objects/Fun/Toys/foam_sabre.rsi + - type: Tag + tags: + - CaptainSabre # To be able to store it a captain's sheath if you get your hands on one. + - type: StaminaDamageOnHit + damage: 5 + - type: Execution + doAfterDuration: 3.0 diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml index 2fa02ebc002..9bb228637a3 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml @@ -1732,3 +1732,12 @@ amount: 1 - id: PaperMailHydroCoTrial amount: 1 + +- type: entity + parent: BaseMailLarge + id: MailFoamSabre + suffix: Foam sabre + components: + - type: Mail + contents: + - id: ClothingBeltFoamSheathFilled diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Melee/foam_blade.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Melee/foam_blade.yml new file mode 100644 index 00000000000..ac47fed7992 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Melee/foam_blade.yml @@ -0,0 +1,15 @@ +- type: entity + parent: FoamSabre + id: RealFoamSabre + name: foam sabre + suffix: Real + components: + - type: MeleeWeapon + attackRate: 1.5 + damage: + types: + Slash: 14 + soundHit: + path: /Audio/Weapons/bladeslice.ogg + - type: StaminaDamageOnHit + damage: 0 diff --git a/Resources/Prototypes/DeltaV/Loadouts/Jobs/Civilian/mime.yml b/Resources/Prototypes/DeltaV/Loadouts/Jobs/Civilian/mime.yml new file mode 100644 index 00000000000..43740a3097a --- /dev/null +++ b/Resources/Prototypes/DeltaV/Loadouts/Jobs/Civilian/mime.yml @@ -0,0 +1,5 @@ +# Belt +- type: loadout + id: FoamSabre + equipment: + belt: ClothingBeltFoamSheathFilled diff --git a/Resources/Prototypes/DeltaV/Mail/mailDeliveries.yml b/Resources/Prototypes/DeltaV/Mail/mailDeliveries.yml index c951d09986e..d7cd57d75bf 100644 --- a/Resources/Prototypes/DeltaV/Mail/mailDeliveries.yml +++ b/Resources/Prototypes/DeltaV/Mail/mailDeliveries.yml @@ -51,7 +51,7 @@ MailNFSodaSpaceUp: 0.2 #End Soda MailNFSmoke: 0.4 - MailSpaceVillainDIY: 0.5 + MailSpaceVillainDIY: 0.4 # Lowered to accommodate the foam sabre MailSignallerKit: 0.5 MailSunglasses: 1 MailNFSoaps: 0.5 @@ -63,6 +63,7 @@ MailNFUnusualFood: 1.09 # DeltaV: increased to offset throngler toy MailNFUnusualProduce: 1 MailNFVagueThreat: 0.5 + MailFoamSabre: 0.1 # Mainly for Glacier MailWinterCoat: 1.5 diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml index 2ef16c6ec18..93194945ee3 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml @@ -165,6 +165,7 @@ - id: CigarGold - id: ClothingUniformJumpsuitFamilyGuy - id: WristwatchGold + - id: ClothingBeltFoamSheathFilled # DeltaV - Add small chance of it spawning in maints locker. #- id: RubberStampGreytide # Delta-V: prevent greytide stamp from spawning - type: entity diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index 3c7dd74e22a..e5f7ec82756 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -248,6 +248,7 @@ visMask: - PsionicInvisibility - Normal + - type: JetpackUser # DeltaV: Lets cyborgs fly in space - type: entity abstract: true diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml index 4ea0061c961..fa9777e48b7 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml @@ -46,6 +46,7 @@ components: - type: Sprite sprite: Objects/Weapons/Guns/Snipers/bolt_gun_wood.rsi + - type: GunRequiresWield # DeltaV - Firing a bolt action is.. incredibly unweildy with one hand. - type: entity name: Hristov @@ -63,6 +64,7 @@ - CartridgeAntiMateriel capacity: 5 proto: CartridgeAntiMateriel + - type: GunRequiresWield # DeltaV - Firing an antimateriel rifle is.. incredibly unweildy with one hand. - type: entity name: musket @@ -101,6 +103,7 @@ animation: WeaponArcThrust soundHit: path: /Audio/Weapons/bladeslice.ogg + - type: GunRequiresWield # DeltaV - Firing a muzzle loader is.. incredibly unweildy with one hand. - type: entity name: flintlock pistol diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/signs.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/signs.yml index 2eda24a90be..21533c5f3eb 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/signs.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/signs.yml @@ -403,7 +403,8 @@ description: A sign indicating the logistics area. # DeltaV - Logistics Department replacing Cargo components: - type: Sprite - state: cargo + sprite: DeltaV/Structures/Wallmounts/signs.rsi # DeltaV - Logistics Department replacing Cargo + state: logistics # DeltaV - Logistics Department replacing Cargo - type: entity parent: BaseSign @@ -740,7 +741,8 @@ description: A sign indicating the epistemics area. # DeltaV - Epistemics Department replacing Science components: - type: Sprite - state: sci + sprite: DeltaV/Structures/Wallmounts/signs.rsi # DeltaV - Epistemics Department replacing Science + state: epistemics # DeltaV - Epistemics Department replacing Science - type: entity parent: BaseSign diff --git a/Resources/Prototypes/Loadouts/loadout_groups.yml b/Resources/Prototypes/Loadouts/loadout_groups.yml index 0a167aca0c7..d801a9fce93 100644 --- a/Resources/Prototypes/Loadouts/loadout_groups.yml +++ b/Resources/Prototypes/Loadouts/loadout_groups.yml @@ -634,6 +634,7 @@ loadouts: - MimeSuspendersRed - MimeSuspendersBlack + - FoamSabre # DeltaV - Add foam sabre to the mime's loadout. - type: loadoutGroup id: SurvivalMime diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hoods.yml b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hoods.yml new file mode 100644 index 00000000000..405ed6e4a94 --- /dev/null +++ b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hoods.yml @@ -0,0 +1,13 @@ +#Be sure to link back to the appropriate winter coats here (mostly in the nyanotrasen folder.) If this is a non-winter coat hood, then do whatever. + +- type: entity + parent: ClothingHeadHatHoodWinterBase + id: ClothingHeadHatHoodWinterMailCarrier + categories: [ HideSpawnMenu ] + name: mail carrier's winter coat hood + description: A hood for keeping the humble mailman's head warm while making all those deliveries. + components: + - type: Sprite + sprite: DeltaV/Clothing/Head/Hoods/Coat/hoodmail.rsi + - type: Clothing + sprite: DeltaV/Clothing/Head/Hoods/Coat/hoodmail.rsi diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Clothing/OuterClothing/wintercoats.yml b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/OuterClothing/wintercoats.yml index 8b8e83507a2..0284c26a99e 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Clothing/OuterClothing/wintercoats.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/OuterClothing/wintercoats.yml @@ -39,6 +39,18 @@ name: mail carrier's winter coat description: It'll keep away the cold but not the dogs. components: + - type: ToggleableClothing #DeltaV - fixing the fact that it has no hood + clothingPrototype: ClothingHeadHatHoodWinterMailCarrier + - type: ContainerContainer + containers: + storagebase: !type:Container + showEnts: False + occludes: True + ents: [] + toggleable-clothing: !type:ContainerSlot + showEnts: False + occludes: True + ent: null - type: Sprite sprite: Nyanotrasen/Clothing/OuterClothing/WinterCoats/mail_winter_coat.rsi - type: Clothing diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Guns/Snipers/snipers.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Guns/Snipers/snipers.yml index 7a8dd8f2267..16b0270200f 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Guns/Snipers/snipers.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Guns/Snipers/snipers.yml @@ -22,6 +22,7 @@ whitelist: tags: - CartridgeLightRifle + - type: GunRequiresWield - type: entity name: ceremonial rifle @@ -47,3 +48,4 @@ whitelist: tags: - CartridgeLightRifle + - type: GunRequiresWield diff --git a/Resources/Prototypes/Objectives/objectiveGroups.yml b/Resources/Prototypes/Objectives/objectiveGroups.yml index bfc7122c6d6..19e8b908762 100644 --- a/Resources/Prototypes/Objectives/objectiveGroups.yml +++ b/Resources/Prototypes/Objectives/objectiveGroups.yml @@ -22,7 +22,7 @@ CaptainJetpackStealObjective: 0.5 HandTeleporterStealObjective: 0.5 #EnergyShotgunStealObjective: 0.5 # DeltaV - replaced by X-01 objective - SecretDocumentsStealObjective: 0.5 + ClerkNotaryStealObjective: 0.5 # DeltaV LOLuckyBillStealObjective: 0.5 # DeltaV - LO steal objective, see Resources/Prototypes/DeltaV/Objectives/traitor.yml HoPBookIanDossierStealObjective: 1 # DeltaV - HoP steal objective, see Resources/Prototypes/DeltaV/Objectives/traitor.yml HoSGunStealObjective: 0.5 # DeltaV diff --git a/Resources/Textures/DeltaV/Clothing/Belt/foamsheath.rsi/equipped-BELT.png b/Resources/Textures/DeltaV/Clothing/Belt/foamsheath.rsi/equipped-BELT.png new file mode 100644 index 00000000000..d404e4143e0 Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Belt/foamsheath.rsi/equipped-BELT.png differ diff --git a/Resources/Textures/DeltaV/Clothing/Belt/foamsheath.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/Belt/foamsheath.rsi/meta.json new file mode 100644 index 00000000000..6383a3c4561 --- /dev/null +++ b/Resources/Textures/DeltaV/Clothing/Belt/foamsheath.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/555fa0ed9f380509156d94131bd8a3f1c1fee1cf , edited by Skarletto (github), modified by Radezolid for foam sheath", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "equipped-BELT", + "directions": 4 + }, + { + "name": "sheath-sabre-equipped-BELT", + "directions": 4 + }, + { + "name": "sheath-sabre" + }, + { + "name": "sheath" + } + ] +} diff --git a/Resources/Textures/DeltaV/Clothing/Belt/foamsheath.rsi/sheath-sabre-equipped-BELT.png b/Resources/Textures/DeltaV/Clothing/Belt/foamsheath.rsi/sheath-sabre-equipped-BELT.png new file mode 100644 index 00000000000..94674c9adb2 Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Belt/foamsheath.rsi/sheath-sabre-equipped-BELT.png differ diff --git a/Resources/Textures/DeltaV/Clothing/Belt/foamsheath.rsi/sheath-sabre.png b/Resources/Textures/DeltaV/Clothing/Belt/foamsheath.rsi/sheath-sabre.png new file mode 100644 index 00000000000..22f78689188 Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Belt/foamsheath.rsi/sheath-sabre.png differ diff --git a/Resources/Textures/DeltaV/Clothing/Belt/foamsheath.rsi/sheath.png b/Resources/Textures/DeltaV/Clothing/Belt/foamsheath.rsi/sheath.png new file mode 100644 index 00000000000..3e85e396f94 Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Belt/foamsheath.rsi/sheath.png differ diff --git a/Resources/Textures/DeltaV/Clothing/Head/Hoods/Coat/hoodmail.rsi/equipped-HELMET.png b/Resources/Textures/DeltaV/Clothing/Head/Hoods/Coat/hoodmail.rsi/equipped-HELMET.png new file mode 100644 index 00000000000..6062386142f Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Hoods/Coat/hoodmail.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/DeltaV/Clothing/Head/Hoods/Coat/hoodmail.rsi/icon.png b/Resources/Textures/DeltaV/Clothing/Head/Hoods/Coat/hoodmail.rsi/icon.png new file mode 100644 index 00000000000..eb562123205 Binary files /dev/null and b/Resources/Textures/DeltaV/Clothing/Head/Hoods/Coat/hoodmail.rsi/icon.png differ diff --git a/Resources/Textures/DeltaV/Clothing/Head/Hoods/Coat/hoodmail.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/Head/Hoods/Coat/hoodmail.rsi/meta.json new file mode 100644 index 00000000000..86fc1cfea61 --- /dev/null +++ b/Resources/Textures/DeltaV/Clothing/Head/Hoods/Coat/hoodmail.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "By Monotheonist for SS14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/DeltaV/Objects/Fun/Toys/foam_sabre.rsi/icon.png b/Resources/Textures/DeltaV/Objects/Fun/Toys/foam_sabre.rsi/icon.png new file mode 100644 index 00000000000..b96fff801ac Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Fun/Toys/foam_sabre.rsi/icon.png differ diff --git a/Resources/Textures/DeltaV/Objects/Fun/Toys/foam_sabre.rsi/inhand-left.png b/Resources/Textures/DeltaV/Objects/Fun/Toys/foam_sabre.rsi/inhand-left.png new file mode 100644 index 00000000000..8c609f03958 Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Fun/Toys/foam_sabre.rsi/inhand-left.png differ diff --git a/Resources/Textures/DeltaV/Objects/Fun/Toys/foam_sabre.rsi/inhand-right.png b/Resources/Textures/DeltaV/Objects/Fun/Toys/foam_sabre.rsi/inhand-right.png new file mode 100644 index 00000000000..44f5e32a291 Binary files /dev/null and b/Resources/Textures/DeltaV/Objects/Fun/Toys/foam_sabre.rsi/inhand-right.png differ diff --git a/Resources/Textures/DeltaV/Objects/Fun/Toys/foam_sabre.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Fun/Toys/foam_sabre.rsi/meta.json new file mode 100644 index 00000000000..e9322bc4d34 --- /dev/null +++ b/Resources/Textures/DeltaV/Objects/Fun/Toys/foam_sabre.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/555fa0ed9f380509156d94131bd8a3f1c1fee1cf, modified by Radezolid for foam sabre", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/DeltaV/Structures/Wallmounts/signs.rsi/epistemics.png b/Resources/Textures/DeltaV/Structures/Wallmounts/signs.rsi/epistemics.png new file mode 100644 index 00000000000..7851be8b482 Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Wallmounts/signs.rsi/epistemics.png differ diff --git a/Resources/Textures/DeltaV/Structures/Wallmounts/signs.rsi/logistics.png b/Resources/Textures/DeltaV/Structures/Wallmounts/signs.rsi/logistics.png new file mode 100644 index 00000000000..256afbacaa8 Binary files /dev/null and b/Resources/Textures/DeltaV/Structures/Wallmounts/signs.rsi/logistics.png differ diff --git a/Resources/Textures/DeltaV/Structures/Wallmounts/signs.rsi/meta.json b/Resources/Textures/DeltaV/Structures/Wallmounts/signs.rsi/meta.json index 08393f464a3..f0a3e110740 100644 --- a/Resources/Textures/DeltaV/Structures/Wallmounts/signs.rsi/meta.json +++ b/Resources/Textures/DeltaV/Structures/Wallmounts/signs.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "directional sprites taken from https://github.com/space-wizards/space-station-14/commit/c1556214de46d66fe4057500e269b17438dc96ca | direction_mail modified by Hyenh, direction_logi modified by Floofers | direction_court, direction_justice by leonardo_dabepis (Discord) | chapel modified from upstream sprite by Lyndomen (github)", + "copyright": "directional sprites taken from https://github.com/space-wizards/space-station-14/commit/c1556214de46d66fe4057500e269b17438dc96ca | direction_mail modified by Hyenh, direction_logi modified by Floofers | direction_court, direction_justice by leonardo_dabepis (Discord) | chapel modified from upstream sprite by Lyndomen (github) | Logistics and Epistemics modified by JustAnOrange", "size": { "x": 32, "y": 32 @@ -29,6 +29,12 @@ }, { "name": "chapel" + }, + { + "name": "epistemics" + }, + { + "name": "logistics" } ] } diff --git a/Tools/Nyanotrasen/TidyToolHowTo.txt b/Tools/DeltaV/TidyToolHowTo.txt similarity index 50% rename from Tools/Nyanotrasen/TidyToolHowTo.txt rename to Tools/DeltaV/TidyToolHowTo.txt index 2c0c98755ce..5162a91d47a 100644 --- a/Tools/Nyanotrasen/TidyToolHowTo.txt +++ b/Tools/DeltaV/TidyToolHowTo.txt @@ -1,17 +1,17 @@ The Python add-on Ruamel is needed for this. -Run 'pip install ruamel' or 'pip install ruamel.yml' in Windows Command Prompt +Run 'pip install ruamel.yaml' in Windows Command Prompt If you need to update pip use cmnd 'py -m ensurepip --upgrade' To run the tidy tool: Open Windows command prompt -Navigate to the Delta V repository folder using 'cd' cmnd -Run 'python Tools/Nyanotrasen/tidy_map.py --infile Resources/Maps/MAPNAME.yml' -Note: if you want to clean a map that's still wip you can use 'python Tools/Nyanotrasen/tidy_map.py --infile bin/Content.Server/data/MAPNAME.yml' +Navigate to the DeltaV repository folder using 'cd' command +Run 'python Tools/DeltaV/tidy_map.py --infile Resources/Maps/MAPNAME.yml' +Note: if you want to clean a map that's still wip you can use 'python Tools/DeltaV/tidy_map.py --infile bin/Content.Server/data/MAPNAME.yml' After you have a 'MAPNAME_tidy.yml' you can delete the old(dirty) one and remove the '_tidy' from the filename. - -Credit for tidy tool: Magil \ No newline at end of file +Original tool created by: Magil +Modified by: MilonPL diff --git a/Tools/DeltaV/tidy_map.py b/Tools/DeltaV/tidy_map.py new file mode 100644 index 00000000000..8326bb3e42d --- /dev/null +++ b/Tools/DeltaV/tidy_map.py @@ -0,0 +1,195 @@ +#!/usr/bin/env python3 +""" +Space Station 14 Map Tidying Tool +Original work Copyright (c) 2023 Magil +Modified work Copyright (c) 2024 DeltaV-Station + +This script is licensed under MIT +Modifications include code modernization, restructuring, and YAML handling updates +""" + +import argparse +import locale +from datetime import datetime +from pathlib import Path +from typing import Dict, List, Any +from ruamel.yaml import YAML + + +# Configuration for components that should be handled during tidying +class TidyConfig: + # Components that should be removed entirely + REMOVE_COMPONENTS: List[str] = [ + "AmbientSound", + "EmitSoundOnCollide", + "Fixtures", + "GravityShake", + "HandheldLight", # Floodlights are serializing these? + "PlaySoundBehaviour", + ] + + # Components that will have specific fields removed and may be removed entirely if empty + REMOVE_COMPONENT_DATA: Dict[str, List[str]] = { + "Airtight": ["airBlocked"], + "DeepFryer": ["nextFryTime"], + "Door": ["state", "secondsUntilStateChange"], + "MaterialReclaimer": ["nextSound"], + "Occluder": ["enabled"], + "Physics": ["canCollide"], + } + + # Fields to remove from components while keeping the component itself + ERASE_COMPONENT_DATA: Dict[str, List[str]] = { + "GridPathfinding": ["nextUpdate"], + } + + +class MapTidier: + def __init__(self): + self.yaml = YAML() + self.yaml.preserve_quotes = True + self.yaml.width = 4096 # Prevent line wrapping + # Set indentation to match the weird format + self.yaml.indent(mapping=2, sequence=2, offset=0) + + @staticmethod + def tidy_entity(entity: Dict[str, Any]) -> None: + """ + Clean up unnecessary data from a single entity. + """ + if "components" not in entity: + return + + components = entity["components"] + if not isinstance(components, list): + return + + # Iterate backwards to safely remove items + for i in range(len(components) - 1, -1, -1): + if i >= len(components): # Safety check in case of removals + continue + + component = components[i] + if not isinstance(component, dict) or "type" not in component: + continue + + ctype = component["type"] + + # Handle complete component removal + if ctype in TidyConfig.REMOVE_COMPONENTS: + del components[i] + continue + + # Handle component data removal with possible complete removal + if ctype in TidyConfig.REMOVE_COMPONENT_DATA: + datafields = TidyConfig.REMOVE_COMPONENT_DATA[ctype] + for field in datafields: + component.pop(field, None) + + # Remove component if only type remains + if len(component) == 1: # Only 'type' field remains + del components[i] + continue + + # Handle selective data removal + if ctype in TidyConfig.ERASE_COMPONENT_DATA: + datafields = TidyConfig.ERASE_COMPONENT_DATA[ctype] + for field in datafields: + component.pop(field, None) + + def tidy_map(self, map_data: Dict[str, Any]) -> None: + """ + Process and clean the entire map data structure. + """ + if "entities" not in map_data: + return + + for prototype in map_data["entities"]: + if "entities" not in prototype: + continue + + for entity in prototype["entities"]: + self.tidy_entity(entity) + + +class MapProcessor: + def __init__(self, infile: str, outfile: str | None = None): + self.infile = Path(infile) + self.outfile = Path(outfile) if outfile else self.infile.with_stem(f"{self.infile.stem}_tidy") + self.tidier = MapTidier() + + def process(self) -> None: + """ + Load, process, and save the map file. + """ + # Load + print(f"Loading {self.infile} ...") + load_time = datetime.now() + map_data = self._load_map() + print(f"Loaded in {datetime.now() - load_time}\n") + + # Clean + print("Cleaning map ...") + clean_time = datetime.now() + self.tidier.tidy_map(map_data) + print(f"Cleaned in {datetime.now() - clean_time}\n") + + # Save + print(f"Saving cleaned map to {self.outfile} ...") + save_time = datetime.now() + self._save_map(map_data) + print(f"Saved in {datetime.now() - save_time}\n") + + # Report size difference + self._report_size_difference() + + def _load_map(self) -> Dict[str, Any]: + """Load and parse the YAML map file.""" + with open(self.infile, 'r') as f: + return self.tidier.yaml.load(f) + + def _save_map(self, map_data: Dict[str, Any]) -> None: + """Save the processed map data to file.""" + with open(self.outfile, 'w', newline='\n') as f: + self.tidier.yaml.dump(map_data, f) + f.write("...\n") # Add YAML document end marker + + def _report_size_difference(self) -> None: + """Calculate and report the size difference between input and output files.""" + start_size = self.infile.stat().st_size + end_size = self.outfile.stat().st_size + saved_bytes = start_size - end_size + print(f"Saved {saved_bytes:n} bytes ({saved_bytes / start_size:.1%} reduction)") + + +def main(): + locale.setlocale(locale.LC_ALL, '') + + parser = argparse.ArgumentParser( + description='Tidy Space Station 14 map files by removing unnecessary data fields' + ) + parser.add_argument( + '--infile', + type=str, + required=True, + help='input map file to process' + ) + parser.add_argument( + '--outfile', + type=str, + help='output file for the cleaned map (defaults to input_tidy)' + ) + + args = parser.parse_args() + + try: + processor = MapProcessor(args.infile, args.outfile) + processor.process() + print("Done!") + except Exception as e: + print(f"Error processing map: {e}") + raise + + +if __name__ == "__main__": + main() diff --git a/Tools/Nyanotrasen/tidy_map.py b/Tools/Nyanotrasen/tidy_map.py deleted file mode 100644 index 69e9ef18d46..00000000000 --- a/Tools/Nyanotrasen/tidy_map.py +++ /dev/null @@ -1,163 +0,0 @@ -#!/usr/bin/python -# Tidy a map of any unnecessary datafields. - -import argparse -import locale -from datetime import datetime -from pathlib import Path -from ruamel import yaml -from sys import argv - - -def capitalized_bool_dumper(representer, data): - tag = "tag:yaml.org,2002:bool" - value = "True" if data else "False" - - return representer.represent_scalar(tag, value) - - -# These components should be okay to remove entirely. -REMOVE_COMPONENTS = [ - "AmbientSound", - "EmitSoundOnCollide", - "Fixtures", - "GravityShake", - "HandheldLight", # Floodlights are serializing these? - "PlaySoundBehaviour", -] - -# The component will have these fields removed, and if there is no other data -# left, the component itself will be removed. -REMOVE_COMPONENT_DATA = { - "Airtight": ["airBlocked"], - "DeepFryer": ["nextFryTime"], - "Defibrillator": ["nextZapTime"], - "Door": ["state", "SecondsUntilStateChange"], - "Gun": ["nextFire"], - "MaterialReclaimer": ["nextSound"], - "MeleeWeapon": ["nextAttack"], - "Occluder": ["enabled"], - "Physics": ["canCollide"], - "PowerCellDraw": ["nextUpdate"], - "SolutionPurge": ["nextPurgeTime"], - "SolutionRegeneration": ["nextChargeTime"], - "SuitSensor": ["nextUpdate"], - "Thruster": ["nextFire"], - "VendingMachine": ["nextEmpEject"], -} - -# Remove only these fields from the components. -# The component will be kept no matter what. -ERASE_COMPONENT_DATA = { - "GridPathfinding": ["nextUpdate"], - "SpreaderGrid": ["nextUpdate"], -} - - -def tidy_entity(entity): - components = entity["components"] - - for i in range(len(components) - 1, 0, -1): - component = components[i] - ctype = component["type"] - - # Remove unnecessary components. - if ctype in REMOVE_COMPONENTS: - del components[i] - - # Remove unnecessary datafields and empty components. - elif ctype in REMOVE_COMPONENT_DATA: - datafields_to_remove = REMOVE_COMPONENT_DATA[ctype] - - for datafield in datafields_to_remove: - try: - del component[datafield] - except KeyError: - pass - - # The only field left has to be the type, so remove the component entirely. - if len(component.keys()) == 1: - del components[i] - - # Remove unnecessary datafields only. - elif ctype in ERASE_COMPONENT_DATA: - datafields_to_remove = ERASE_COMPONENT_DATA[ctype] - - for datafield in datafields_to_remove: - try: - del component[datafield] - except KeyError: - pass - -def tidy_map(map_data): - # Iterate through all of the map's prototypes. - for map_prototype in map_data["entities"]: - - # Iterate through all of the instances of said prototype. - for map_entity in map_prototype["entities"]: - tidy_entity(map_entity) - - -def main(): - locale.setlocale(locale.LC_ALL, '') - - parser = argparse.ArgumentParser(description='Tidy a map of any unnecessary datafields') - - parser.add_argument('--infile', type=str, - required=True, - help='which map file to load') - - parser.add_argument('--outfile', type=str, - help='where to save the cleaned map to') - - args = parser.parse_args() - - # SS14 saves some booleans as "True" and others as "true", so. - # If it's ever necessary that we use some specific format, re-enable this. - # yaml.RoundTripRepresenter.add_representer(bool, capitalized_bool_dumper) - - # Load the map. - infname = args.infile - print(f"Loading {infname} ...") - load_time = datetime.now() - infile = open(infname, 'r') - map_data = yaml.load(infile, Loader=yaml.RoundTripLoader) - infile.close() - print(f"Loaded in {datetime.now() - load_time}\n") - - # Clean it. - print(f"Cleaning map ...") - clean_time = datetime.now() - tidy_map(map_data) - print(f"Cleaned in {datetime.now() - clean_time}\n") - - # Save it. - outfname = args.outfile - - if outfname == None: - # No output filename was specified, so add a suffix to the input filename. - outfname = Path(args.infile) - outfname = outfname.with_stem(outfname.stem + "_tidy") - - # Force *nix line-endings. - # It's one less byte per line and maps are heavy on lines. - newline = '\n' - - print(f"Saving cleaned map to {outfname} ...") - save_time = datetime.now() - outfile = open(outfname, 'w', newline=newline) - yaml.boolean_representation = ['False', 'True'] - serialized = yaml.dump(map_data, Dumper=yaml.RoundTripDumper) + "...\n" - outfile.write(serialized) - outfile.close() - print(f"Saved in {datetime.now() - save_time}\n") - - print("Done!") - - start_size = Path(infname).stat().st_size - end_size = Path(outfname).stat().st_size - print(f"Saved {start_size - end_size:n} bytes.") - -if __name__ == "__main__": - main() -