diff --git a/_maps/map_files/Snake/snake_lower.dmm b/_maps/map_files/Snake/snake_lower.dmm
index b0dcc7ac19a..e31e5eb53b5 100644
--- a/_maps/map_files/Snake/snake_lower.dmm
+++ b/_maps/map_files/Snake/snake_lower.dmm
@@ -566,7 +566,7 @@
"ce" = (
/obj/machinery/ammo_sorter{
dir = 8;
- id = "atlas1";
+ id = "snake";
name = "AP shells"
},
/obj/item/ship_weapon/ammunition/naval_artillery/ap,
@@ -1812,7 +1812,8 @@
/area/space/nearstation)
"gK" = (
/obj/machinery/computer/ammo_sorter{
- dir = 1
+ dir = 1;
+ id = "snake"
},
/obj/item/multitool,
/turf/open/floor/engine,
@@ -5406,7 +5407,7 @@
"ui" = (
/obj/machinery/ammo_sorter{
dir = 8;
- id = "atlas1";
+ id = "snake";
name = "Standard Shells #2"
},
/obj/item/ship_weapon/ammunition/naval_artillery,
@@ -6210,7 +6211,7 @@
"wC" = (
/obj/machinery/ammo_sorter{
dir = 8;
- id = "atlas1";
+ id = "snake";
name = "Gunpowder #2"
},
/obj/item/powder_bag,
@@ -11118,7 +11119,7 @@
"MW" = (
/obj/machinery/ammo_sorter{
dir = 8;
- id = "atlas1";
+ id = "snake";
name = "Standard Shells #1"
},
/obj/item/ship_weapon/ammunition/naval_artillery,
@@ -13099,7 +13100,7 @@
"TP" = (
/obj/machinery/ammo_sorter{
dir = 8;
- id = "atlas1";
+ id = "snake";
name = "Gunpowder #1"
},
/obj/item/powder_bag,
diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm
index 3f36f5b2734..e9f370b32b2 100644
--- a/code/__DEFINES/admin.dm
+++ b/code/__DEFINES/admin.dm
@@ -76,6 +76,7 @@
#define ADMIN_PUNISHMENT_TOE "Stub Toe (Once)"
#define ADMIN_PUNISHMENT_TOEPLUS "Stub Toe (Always)"
#define ADMIN_PUNISHMENT_CRYO "Force Cryo"
+#define ADMIN_PUNISHMENT_DOCK "Dock Pay" //NSV13
#define AHELP_UNCLAIMED 1
#define AHELP_ACTIVE 2
diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm
index 9d3f4e49a72..318b0013672 100644
--- a/code/_onclick/hud/fullscreen.dm
+++ b/code/_onclick/hud/fullscreen.dm
@@ -110,6 +110,11 @@
layer = BLIND_LAYER
plane = FULLSCREEN_PLANE
+/atom/movable/screen/fullscreen/law_change
+ icon_state = "law_change"
+ layer = BLIND_LAYER
+ plane = FULLSCREEN_PLANE
+
/atom/movable/screen/fullscreen/curse
icon_state = "curse"
layer = CURSE_LAYER
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 9e2744de47c..bc7e4c9891b 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -107,7 +107,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
/obj/effect/landmark/start/security_officer
name = "Military Police" //Nsv13 - Crayon eaters & MPs
- icon_state = "Military Police"
+ icon_state = "Military Police" //Nsv13 - Crayon eaters & MPs
/obj/effect/landmark/start/botanist
name = "Botanist"
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index b3fae2315a9..6c949a6a165 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -1086,7 +1086,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!check_rights(R_ADMIN) || !check_rights(R_FUN))
return
- var/list/punishment_list = list(ADMIN_PUNISHMENT_LIGHTNING, ADMIN_PUNISHMENT_BRAINDAMAGE, ADMIN_PUNISHMENT_GIB, ADMIN_PUNISHMENT_BSA, ADMIN_PUNISHMENT_FIREBALL, ADMIN_PUNISHMENT_ROD, ADMIN_PUNISHMENT_SUPPLYPOD_QUICK, ADMIN_PUNISHMENT_SUPPLYPOD, ADMIN_PUNISHMENT_MAZING, ADMIN_PUNISHMENT_FLOORCLUWNE, ADMIN_PUNISHMENT_CLUWNE, ADMIN_PUNISHMENT_IMMERSE, ADMIN_PUNISHMENT_GHOST, ADMIN_PUNISHMENT_DEMOCRACY, ADMIN_PUNISHMENT_ANARCHY, ADMIN_PUNISHMENT_TOE, ADMIN_PUNISHMENT_TOEPLUS, ADMIN_PUNISHMENT_CRYO, ADMIN_PUNISHMENT_ENTRAPPED) //NSV13 - added entrapped
+ var/list/punishment_list = list(ADMIN_PUNISHMENT_LIGHTNING, ADMIN_PUNISHMENT_BRAINDAMAGE, ADMIN_PUNISHMENT_GIB, ADMIN_PUNISHMENT_BSA, ADMIN_PUNISHMENT_FIREBALL, ADMIN_PUNISHMENT_ROD, ADMIN_PUNISHMENT_SUPPLYPOD_QUICK, ADMIN_PUNISHMENT_SUPPLYPOD, ADMIN_PUNISHMENT_MAZING, ADMIN_PUNISHMENT_FLOORCLUWNE, ADMIN_PUNISHMENT_CLUWNE, ADMIN_PUNISHMENT_IMMERSE, ADMIN_PUNISHMENT_GHOST, ADMIN_PUNISHMENT_DEMOCRACY, ADMIN_PUNISHMENT_ANARCHY, ADMIN_PUNISHMENT_TOE, ADMIN_PUNISHMENT_TOEPLUS, ADMIN_PUNISHMENT_CRYO, ADMIN_PUNISHMENT_ENTRAPPED, ADMIN_PUNISHMENT_DOCK) //NSV13 - added entrapped + Dock
if(istype(target, /mob/living/carbon))
punishment_list += ADMIN_PUNISHMENT_NUGGET
var/punishment = input("Choose a punishment", "DIVINE SMITING") as null|anything in sortList(punishment_list)
@@ -1099,7 +1099,33 @@ Traitors and the like can also be revived with the previous role mostly intact.
for(var/turf/T in (orange(1, target) - target.loc))
new /obj/item/ship_weapon/ammunition/naval_artillery/cannonball/admin(T)
target.playsound_local(get_turf(target), 'sound/magic/clockwork/invoke_general.ogg', 200, pressure_affected = FALSE)
- to_chat(target, "Entrapped.") //NSV13 end
+ to_chat(target, "Entrapped.")
+ if(ADMIN_PUNISHMENT_DOCK)
+ if(!iscarbon(target))
+ to_chat(usr,"This must be used on a carbon mob.")
+ return
+ var/mob/living/carbon/dude = target
+ var/obj/item/card/id/card = dude.get_idcard(TRUE)
+ if(!card)
+ to_chat(usr,"[dude] does not have an ID card on!")
+ return
+ if(!card.registered_account)
+ to_chat(usr,"[dude] does not have an ID card with an account!")
+ return
+ if(card.registered_account.account_balance == 0)
+ to_chat(usr, "ID Card lacks any funds. No pay to dock.")
+ return
+ var/new_cost = input("How much pay are we docking? Current balance: [card.registered_account.account_balance] credits.","BUDGET CUTS") as num|null
+ if(!new_cost)
+ return
+ if(!(card.registered_account.has_money(new_cost)))
+ to_chat(usr, "ID Card lacked funds. Emptying account.")
+ card.registered_account.bank_card_talk("[new_cost] credits deducted from your account based on performance review.")
+ card.registered_account.account_balance = 0
+ else
+ card.registered_account.account_balance = card.registered_account.account_balance - new_cost
+ card.registered_account.bank_card_talk("[new_cost] credits deducted from your account based on performance review.")
+ SEND_SOUND(target, 'sound/machines/buzz-sigh.ogg') //NSV13 end
if(ADMIN_PUNISHMENT_LIGHTNING)
var/turf/T = get_step(get_step(target, NORTH), NORTH)
T.Beam(target, icon_state="lightning[rand(1,12)]", time = 5)
diff --git a/code/modules/mob/living/silicon/laws.dm b/code/modules/mob/living/silicon/laws.dm
index 7e575f40916..e4e1c1a7a0e 100644
--- a/code/modules/mob/living/silicon/laws.dm
+++ b/code/modules/mob/living/silicon/laws.dm
@@ -14,9 +14,12 @@
throw_alert("newlaw", /atom/movable/screen/alert/newlaw)
if(announce && last_lawchange_announce != world.time)
to_chat(src, "Your laws have been changed.")
+ overlay_fullscreen("law_change", /atom/movable/screen/fullscreen/law_change, 1)
// lawset modules cause this function to be executed multiple times in a tick, so we wait for the next tick in order to be able to see the entire lawset
addtimer(CALLBACK(src, PROC_REF(show_laws)), 0)
addtimer(CALLBACK(src, PROC_REF(deadchat_lawchange)), 0)
+ // Wait a tick and clear the vignette
+ addtimer(CALLBACK(src, PROC_REF(clear_fullscreen), "law_change"), 0.2 SECONDS)
last_lawchange_announce = world.time
/mob/living/silicon/proc/set_law_sixsixsix(law, announce = TRUE)
diff --git a/html/changelog.html b/html/changelog.html
index 22e189ebc66..6df7ea347a8 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -56,6 +56,25 @@
-->
+
27 October 2023
+
Bobbanz1 updated:
+
+ - Fixes the issue where small crafts such as Sabres, dropships and ghost ships were showing non-existing armour quadrants!
+
+
someone543 updated:
+
+ - added back MP start landmark icon
+
+
+
20 October 2023
+
Bokkiewokkie updated:
+
+ - Added light fighter plushie
+ - Added heavy fighter plushie
+ - Added sabre plushie
+ - Added mining sabre plushie
+
+
17 October 2023
Bokkiewokkie updated:
@@ -179,47 +198,6 @@ someone543 updated:
- Ecto Sniffer has a cooldown for radio messages, and can now send visible_messages
-
- 25 August 2023
- BlueHNT updated:
-
- - Added Glock AP magazine and ammo box
- - Added Glock I magazine and ammo box
- - Added Glock-related designs to proto-lathe
-
- Bokkiewokkie updated:
-
- - Added an emag effect to plasma constrictors
- - Combined Stormdrive RCC and plasma constrictor tech into one
- - Fixed constrictors not pixel shifting on different layers
- - Made it possible for constrictors to be rotated
- - Moved plasma constrictors into their own file
- - Fixed VV menu not showing new turfs after deleting a turf
- - Fixed admins adding components not logging the object it was added to
-
- Ikalpo updated:
-
- - fixed the holomap not working when inside objects
- - The holomap cursor now shows the location of your camera
-
- SerynEngi updated:
-
- - Added normal armor to all overmap ships.
-
- bruhlookatthisdood updated:
-
- - torpedo crate comes with torpedo warheads now
- - fixed borg crew manifest button overlapping
-
- cacogen, Profakos updated:
-
- - Modifying a navigation beacon's codes list or location name now correctly updates the associated global lists
- - Refactored navigational beacons, making them constructable, deconstructable, and generally easier to use
-
- covertcorvid updated:
-
- - Make gun deletion actually pass in a source to UnregisterSignal
-
GoonStation 13 Development Team
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index 48567808c03..693abaa7730 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -1768,3 +1768,15 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- refactor: Removed the unintended ability for the mission extension to select any
random objective
- admin: Made it possible for admins to select a target for the "clear system" objective
+2023-10-20:
+ Bokkiewokkie:
+ - rscadd: Added light fighter plushie
+ - rscadd: Added heavy fighter plushie
+ - rscadd: Added sabre plushie
+ - rscadd: Added mining sabre plushie
+2023-10-27:
+ Bobbanz1:
+ - bugfix: Fixes the issue where small crafts such as Sabres, dropships and ghost
+ ships were showing non-existing armour quadrants!
+ someone543:
+ - imageadd: added back MP start landmark icon
diff --git a/html/changelogs/AutoChangeLog-pr-2545.yml b/html/changelogs/AutoChangeLog-pr-2545.yml
new file mode 100644
index 00000000000..2b6cd6a4c32
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2545.yml
@@ -0,0 +1,4 @@
+author: covertcorvid
+delete-after: true
+changes:
+ - bugfix: fixed window damage overlay
diff --git a/html/changelogs/AutoChangeLog-pr-2561.yml b/html/changelogs/AutoChangeLog-pr-2561.yml
new file mode 100644
index 00000000000..13d1e397eeb
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2561.yml
@@ -0,0 +1,5 @@
+author: DuskLight9978
+delete-after: true
+changes:
+ - rscadd: Added dock pay smite
+ - admin: new dock pay smite
diff --git a/html/changelogs/AutoChangeLog-pr-2562.yml b/html/changelogs/AutoChangeLog-pr-2562.yml
new file mode 100644
index 00000000000..ea0a6e9e917
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2562.yml
@@ -0,0 +1,5 @@
+author: covertcorvid
+delete-after: true
+changes:
+ - bugfix: Fixed a runtime in the power generation objective when there is no storm
+ drive or AGCNR
diff --git a/html/changelogs/AutoChangeLog-pr-2564.yml b/html/changelogs/AutoChangeLog-pr-2564.yml
new file mode 100644
index 00000000000..ea0e12ee1c0
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2564.yml
@@ -0,0 +1,6 @@
+author: Harranhall
+delete-after: true
+changes:
+ - rscadd: Added a vignette that appears momentarily when your laws are changed as
+ AI.
+ - imageadd: added the "law_change" fullscreen vignette.
diff --git a/html/changelogs/AutoChangeLog-pr-2565.yml b/html/changelogs/AutoChangeLog-pr-2565.yml
new file mode 100644
index 00000000000..f45b9b7acf1
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2565.yml
@@ -0,0 +1,4 @@
+author: someone543
+delete-after: true
+changes:
+ - rscadd: Added Flight Lead fighter colorizer
diff --git a/html/changelogs/AutoChangeLog-pr-2568.yml b/html/changelogs/AutoChangeLog-pr-2568.yml
new file mode 100644
index 00000000000..953ddb48ba1
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2568.yml
@@ -0,0 +1,5 @@
+author: someone543
+delete-after: true
+changes:
+ - bugfix: Ammo sorters on snake now start linked
+ - bugfix: Prevents a failsafe from triggering every time the snake is loaded
diff --git a/icons/mob/landmarks.dmi b/icons/mob/landmarks.dmi
index f14fdbb875b..dee94600cc0 100644
Binary files a/icons/mob/landmarks.dmi and b/icons/mob/landmarks.dmi differ
diff --git a/icons/mob/screen_full.dmi b/icons/mob/screen_full.dmi
index c1ccf3f8905..797f25d13f9 100644
Binary files a/icons/mob/screen_full.dmi and b/icons/mob/screen_full.dmi differ
diff --git a/nsv13.dme b/nsv13.dme
index f4565a41f55..d7ab5d32414 100644
--- a/nsv13.dme
+++ b/nsv13.dme
@@ -3813,12 +3813,14 @@
#include "nsv13\code\game\objects\items\custom_items.dm"
#include "nsv13\code\game\objects\items\custom_materials.dm"
#include "nsv13\code\game\objects\items\munitions_items.dm"
+#include "nsv13\code\game\objects\items\nsv13_plushes.dm"
#include "nsv13\code\game\objects\items\nsv_candle.dm"
#include "nsv13\code\game\objects\items\nsv_circuitboards.dm"
#include "nsv13\code\game\objects\items\RCD.dm"
#include "nsv13\code\game\objects\items\religion.dm"
#include "nsv13\code\game\objects\items\space_pirate_items.dm"
#include "nsv13\code\game\objects\items\storage_items.dm"
+#include "nsv13\code\game\objects\items\colorizers\fighters.dm"
#include "nsv13\code\game\objects\items\devices\radio\gulagpack.dm"
#include "nsv13\code\game\objects\items\robot\hypo.dm"
#include "nsv13\code\game\objects\items\stacks\tiles\tile_types.dm"
@@ -3854,6 +3856,7 @@
#include "nsv13\code\modules\cargo\exports\engineering.dm"
#include "nsv13\code\modules\cargo\exports\syndie.dm"
#include "nsv13\code\modules\client\zoom.dm"
+#include "nsv13\code\modules\client\loadout\loadout_colorizers.dm"
#include "nsv13\code\modules\client\loadout\loadout_donator.dm"
#include "nsv13\code\modules\client\loadout\loadout_general.dm"
#include "nsv13\code\modules\client\loadout\loadout_uniform.dm"
diff --git a/nsv13/code/game/machinery/computer/tactical.dm b/nsv13/code/game/machinery/computer/tactical.dm
index 1c62171c2ac..ea70855dd8f 100644
--- a/nsv13/code/game/machinery/computer/tactical.dm
+++ b/nsv13/code/game/machinery/computer/tactical.dm
@@ -78,6 +78,14 @@
data["flakrange"] = linked.get_flak_range(linked.last_target)
data["integrity"] = linked.obj_integrity
data["max_integrity"] = linked.max_integrity
+ if(istype(linked, /obj/structure/overmap/small_craft))
+ var/obj/structure/overmap/small_craft/small_ship = linked
+ var/obj/item/fighter_component/armour_plating/A = small_ship.loadout.get_slot(HARDPOINT_SLOT_ARMOUR)
+ data["has_quadrant"] = FALSE
+ data["armour_integrity"] = (A) ? A.obj_integrity : 0
+ data["max_armour_integrity"] = (A) ? A.max_integrity : 100
+ else
+ data["has_quadrant"] = TRUE
data["quadrant_fs_armour_current"] = linked.armour_quadrants["forward_starboard"]["current_armour"]
data["quadrant_fs_armour_max"] = linked.armour_quadrants["forward_starboard"]["max_armour"]
data["quadrant_as_armour_current"] = linked.armour_quadrants["aft_starboard"]["current_armour"]
@@ -157,6 +165,14 @@
data["flakrange"] = linked.get_flak_range(linked.last_target)
data["integrity"] = linked.obj_integrity
data["max_integrity"] = linked.max_integrity
+ if(istype(linked, /obj/structure/overmap/small_craft))
+ var/obj/structure/overmap/small_craft/small_ship = linked
+ var/obj/item/fighter_component/armour_plating/A = small_ship.loadout.get_slot(HARDPOINT_SLOT_ARMOUR)
+ data["has_quadrant"] = FALSE
+ data["armour_integrity"] = (A) ? A.obj_integrity : 0
+ data["max_armour_integrity"] = (A) ? A.max_integrity : 100
+ else
+ data["has_quadrant"] = TRUE // I'm uncertain about whether or not we have ANY small crafts that have armor quadrants so I'm making it like this instead.
data["quadrant_fs_armour_current"] = linked.armour_quadrants["forward_starboard"]["current_armour"]
data["quadrant_fs_armour_max"] = linked.armour_quadrants["forward_starboard"]["max_armour"]
data["quadrant_as_armour_current"] = linked.armour_quadrants["aft_starboard"]["current_armour"]
diff --git a/nsv13/code/game/objects/items/colorizers/fighters.dm b/nsv13/code/game/objects/items/colorizers/fighters.dm
new file mode 100644
index 00000000000..411c947e12e
--- /dev/null
+++ b/nsv13/code/game/objects/items/colorizers/fighters.dm
@@ -0,0 +1,5 @@
+/obj/item/colorizer/fighterace
+ name = "Su-818 Rapier Colorizer (Flight Lead)"
+ desc = "This colorizer will apply a new livery to a light fighter. Upgraded parts are not included."
+ allowed_targets = list(/obj/structure/overmap/small_craft/combat/light)
+ apply_icon_state = "ace"
diff --git a/nsv13/code/game/objects/items/nsv13_plushes.dm b/nsv13/code/game/objects/items/nsv13_plushes.dm
index 2533f011a91..ab35636fe29 100644
--- a/nsv13/code/game/objects/items/nsv13_plushes.dm
+++ b/nsv13/code/game/objects/items/nsv13_plushes.dm
@@ -1,3 +1,4 @@
+/* This file was unticked before so I just commented this out
/obj/item/toy/plush/random
name = "\improper Random Plush"
icon_state = "debug"
@@ -7,3 +8,32 @@
var/plush_type = pick(subtypesof(/obj/item/toy/plush/) - /obj/item/toy/plush/random/)
new plush_type(loc)
return INITIALIZE_HINT_QDEL
+*/
+/obj/item/toy/plush/hfighter
+ name = "heavy fighter plush"
+ desc = "An adorable stuffed toy shaped like a Su-410 Scimitar heavy fighter."
+ icon = 'nsv13/icons/obj/custom_plushes.dmi'
+ icon_state = "heavyfighter"
+ attack_verb = list("bombed", "bumped", "rammed", "torpedoed")
+ squeak_override = list('nsv13/sound/effects/fighters/BRRTTTTTT.ogg'=1)
+
+/obj/item/toy/plush/lfighter
+ name = "light fighter plush"
+ desc = "An adorable stuffed toy shaped like a Su-818 Rapier light fighter."
+ icon = 'nsv13/icons/obj/custom_plushes.dmi'
+ icon_state = "lightfighter"
+ attack_verb = list("bumped", "rammed", "missiled")
+ squeak_override = list('nsv13/sound/effects/fighters/autocannon.ogg'=1)
+
+/obj/item/toy/plush/transport
+ name = "utility craft plush"
+ desc = "An adorable stuffed toy shaped like a Su-437 Sabre utility vessel."
+ icon = 'nsv13/icons/obj/custom_plushes.dmi'
+ icon_state = "transport"
+ attack_verb = list("bumped", "rammed")
+ squeak_override = list('nsv13/sound/effects/fighters/warmup.ogg'=1)
+
+/obj/item/toy/plush/transport/mining
+ name = "mining craft plush"
+ desc = "An adorable stuffed toy shaped like a Su-437 Sabre mining vessel."
+ icon_state = "mining"
diff --git a/nsv13/code/game/turfs/legacy_smooth.dm b/nsv13/code/game/turfs/legacy_smooth.dm
index 92e6976996b..a65faf509d3 100644
--- a/nsv13/code/game/turfs/legacy_smooth.dm
+++ b/nsv13/code/game/turfs/legacy_smooth.dm
@@ -42,6 +42,8 @@
/obj/structure/window/legacy_smooth()
//A little cludge here, since I don't know how it will work with slim windows. Most likely VERY wrong.
//this way it will only update full-tile ones
+ if(QDELETED(src))
+ return
. = ..()
if(!can_visually_connect())
icon_state = initial(icon_state)
@@ -59,6 +61,16 @@
I = image(icon, "[basestate][connections[i]]", dir = 1<<(i-1))
overlays += I
+ if(!fulltile)
+ return
+ var/ratio = obj_integrity / max_integrity
+ ratio = CEILING(ratio*4, 1) * 25
+ cut_overlay(crack_overlay)
+ if(ratio > 75)
+ return
+ crack_overlay = mutable_appearance('icons/obj/structures.dmi', "damage[ratio]", (layer+0.1)) //NSV13 - made layer in front of windows
+ add_overlay(crack_overlay)
+
/obj/structure/window/proc/can_visually_connect_to(obj/structure/S)
return istype(S, src)
diff --git a/nsv13/code/modules/client/loadout/loadout_colorizers.dm b/nsv13/code/modules/client/loadout/loadout_colorizers.dm
new file mode 100644
index 00000000000..9ab87aad1bb
--- /dev/null
+++ b/nsv13/code/modules/client/loadout/loadout_colorizers.dm
@@ -0,0 +1,5 @@
+/datum/gear/colorizer/fighterace
+ display_name = "Su-818 Rapier Colorizer (Flight Lead)"
+ path = /obj/item/colorizer/fighterace
+ allowed_roles = list(JOB_NAME_PILOT)
+ cost = 10000
diff --git a/nsv13/code/modules/client/loadout/loadout_general.dm b/nsv13/code/modules/client/loadout/loadout_general.dm
index 42c868d8bbf..6d0c5856437 100644
--- a/nsv13/code/modules/client/loadout/loadout_general.dm
+++ b/nsv13/code/modules/client/loadout/loadout_general.dm
@@ -3,3 +3,22 @@
path = /obj/item/storage/box/suitbox/maid
cost = 5000
+/datum/gear/misc/lfighterplush
+ display_name = "light fighter plush"
+ path = /obj/item/toy/plush/lfighter
+ cost = 1000
+
+/datum/gear/misc/hfighterplush
+ display_name = "heavy fighter plush"
+ path = /obj/item/toy/plush/hfighter
+ cost = 1000
+
+/datum/gear/misc/transportplush
+ display_name = "utility craft plush"
+ path = /obj/item/toy/plush/transport
+ cost = 1000
+
+/datum/gear/misc/miningplush
+ display_name = "mining craft plush"
+ path = /obj/item/toy/plush/transport/mining
+ cost = 1000
diff --git a/nsv13/code/modules/crew_objectives/engineering_objectives.dm b/nsv13/code/modules/crew_objectives/engineering_objectives.dm
index cceed3c9e4e..3b8ebc8ea1e 100644
--- a/nsv13/code/modules/crew_objectives/engineering_objectives.dm
+++ b/nsv13/code/modules/crew_objectives/engineering_objectives.dm
@@ -69,8 +69,8 @@
explanation_text = "Maintain production of [target_amount] Watts in an engine until the end of the shift."
/datum/objective/crew/power_generation/check_completion()
- if(SD.last_power_produced >= target_amount)
+ if(SD?.last_power_produced >= target_amount)
return TRUE
- if(RBMK.last_power_produced >= target_amount)
+ if(RBMK?.last_power_produced >= target_amount)
return TRUE
return FALSE
diff --git a/nsv13/code/modules/overmap/types/nanotrasen.dm b/nsv13/code/modules/overmap/types/nanotrasen.dm
index ba0c588c0cf..e50f2039038 100644
--- a/nsv13/code/modules/overmap/types/nanotrasen.dm
+++ b/nsv13/code/modules/overmap/types/nanotrasen.dm
@@ -196,6 +196,7 @@
/obj/structure/overmap/nanotrasen/patrol_cruiser/starter //Currently assigned to the Snake
role = MAIN_OVERMAP
+ obj_integrity = 1000
max_integrity = 1000
integrity_failure = 1000
bound_width = 64
diff --git a/nsv13/icons/obj/custom_plushes.dmi b/nsv13/icons/obj/custom_plushes.dmi
new file mode 100644
index 00000000000..07af6871b37
Binary files /dev/null and b/nsv13/icons/obj/custom_plushes.dmi differ
diff --git a/tgui/packages/tgui/interfaces/GhostTacticalConsole.js b/tgui/packages/tgui/interfaces/GhostTacticalConsole.js
index 987c93ae832..4a7d4d3f221 100644
--- a/tgui/packages/tgui/interfaces/GhostTacticalConsole.js
+++ b/tgui/packages/tgui/interfaces/GhostTacticalConsole.js
@@ -2,7 +2,7 @@
import { Fragment } from 'inferno';
import { useBackend, useLocalState } from '../backend';
-import { Box, Button, Section, ProgressBar, Knob, Flex, Tabs, LabeledList } from '../components';
+import { Button, Section, ProgressBar, LabeledList } from '../components';
import { Window } from '../layouts';
export const GhostTacticalConsole = (props, context) => {
@@ -27,44 +27,58 @@ export const GhostTacticalConsole = (props, context) => {
}} />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ {data.has_quadrant && (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ) || (
+
+
+
+
+
+ )}
diff --git a/tgui/packages/tgui/interfaces/TacticalConsole.js b/tgui/packages/tgui/interfaces/TacticalConsole.js
index 9018c7562fb..7bf68ce313e 100644
--- a/tgui/packages/tgui/interfaces/TacticalConsole.js
+++ b/tgui/packages/tgui/interfaces/TacticalConsole.js
@@ -2,7 +2,7 @@
import { Fragment } from 'inferno';
import { useBackend, useLocalState } from '../backend';
-import { Box, Button, Section, ProgressBar, Knob, Flex, Tabs, LabeledList } from '../components';
+import { Button, Section, ProgressBar, LabeledList } from '../components';
import { Window } from '../layouts';
export const TacticalConsole = (props, context) => {
@@ -27,44 +27,58 @@ export const TacticalConsole = (props, context) => {
}} />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ {data.has_quadrant && (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ) || (
+
+
+
+
+
+ )}
diff --git a/tgui/yarn.lock b/tgui/yarn.lock
index 42b49bd8922..b1b4f339394 100644
--- a/tgui/yarn.lock
+++ b/tgui/yarn.lock
@@ -24,12 +24,13 @@ __metadata:
languageName: node
linkType: hard
-"@babel/code-frame@npm:^7.18.6":
- version: 7.18.6
- resolution: "@babel/code-frame@npm:7.18.6"
+"@babel/code-frame@npm:^7.22.13":
+ version: 7.22.13
+ resolution: "@babel/code-frame@npm:7.22.13"
dependencies:
- "@babel/highlight": ^7.18.6
- checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba
+ "@babel/highlight": ^7.22.13
+ chalk: ^2.4.2
+ checksum: 22e342c8077c8b77eeb11f554ecca2ba14153f707b85294fcf6070b6f6150aae88a7b7436dd88d8c9289970585f3fe5b9b941c5aa3aa26a6d5a8ef3f292da058
languageName: node
linkType: hard
@@ -88,15 +89,15 @@ __metadata:
languageName: node
linkType: hard
-"@babel/generator@npm:^7.21.0, @babel/generator@npm:^7.21.1":
- version: 7.21.1
- resolution: "@babel/generator@npm:7.21.1"
+"@babel/generator@npm:^7.23.0":
+ version: 7.23.0
+ resolution: "@babel/generator@npm:7.23.0"
dependencies:
- "@babel/types": ^7.21.0
+ "@babel/types": ^7.23.0
"@jridgewell/gen-mapping": ^0.3.2
"@jridgewell/trace-mapping": ^0.3.17
jsesc: ^2.5.1
- checksum: 69085a211ff91a7a608ee3f86e6fcb9cf5e724b756d792a713b0c328a671cd3e423e1ef1b12533f366baba0616caffe0a7ba9d328727eab484de5961badbef00
+ checksum: 8efe24adad34300f1f8ea2add420b28171a646edc70f2a1b3e1683842f23b8b7ffa7e35ef0119294e1901f45bfea5b3dc70abe1f10a1917ccdfb41bed69be5f1
languageName: node
linkType: hard
@@ -210,10 +211,10 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-environment-visitor@npm:^7.18.9":
- version: 7.18.9
- resolution: "@babel/helper-environment-visitor@npm:7.18.9"
- checksum: b25101f6162ddca2d12da73942c08ad203d7668e06663df685634a8fde54a98bc015f6f62938e8554457a592a024108d45b8f3e651fd6dcdb877275b73cc4420
+"@babel/helper-environment-visitor@npm:^7.22.20":
+ version: 7.22.20
+ resolution: "@babel/helper-environment-visitor@npm:7.22.20"
+ checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69
languageName: node
linkType: hard
@@ -237,13 +238,13 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-function-name@npm:^7.18.9, @babel/helper-function-name@npm:^7.19.0, @babel/helper-function-name@npm:^7.21.0":
- version: 7.21.0
- resolution: "@babel/helper-function-name@npm:7.21.0"
+"@babel/helper-function-name@npm:^7.23.0":
+ version: 7.23.0
+ resolution: "@babel/helper-function-name@npm:7.23.0"
dependencies:
- "@babel/template": ^7.20.7
- "@babel/types": ^7.21.0
- checksum: d63e63c3e0e3e8b3138fa47b0cd321148a300ef12b8ee951196994dcd2a492cc708aeda94c2c53759a5c9177fffaac0fd8778791286746f72a000976968daf4e
+ "@babel/template": ^7.22.15
+ "@babel/types": ^7.23.0
+ checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10
languageName: node
linkType: hard
@@ -265,12 +266,12 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-hoist-variables@npm:^7.18.6":
- version: 7.18.6
- resolution: "@babel/helper-hoist-variables@npm:7.18.6"
+"@babel/helper-hoist-variables@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/helper-hoist-variables@npm:7.22.5"
dependencies:
- "@babel/types": ^7.18.6
- checksum: fd9c35bb435fda802bf9ff7b6f2df06308a21277c6dec2120a35b09f9de68f68a33972e2c15505c1a1a04b36ec64c9ace97d4a9e26d6097b76b4396b7c5fa20f
+ "@babel/types": ^7.22.5
+ checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc
languageName: node
linkType: hard
@@ -386,19 +387,19 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-split-export-declaration@npm:^7.18.6":
- version: 7.18.6
- resolution: "@babel/helper-split-export-declaration@npm:7.18.6"
+"@babel/helper-split-export-declaration@npm:^7.22.6":
+ version: 7.22.6
+ resolution: "@babel/helper-split-export-declaration@npm:7.22.6"
dependencies:
- "@babel/types": ^7.18.6
- checksum: c6d3dede53878f6be1d869e03e9ffbbb36f4897c7cc1527dc96c56d127d834ffe4520a6f7e467f5b6f3c2843ea0e81a7819d66ae02f707f6ac057f3d57943a2b
+ "@babel/types": ^7.22.5
+ checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921
languageName: node
linkType: hard
-"@babel/helper-string-parser@npm:^7.19.4":
- version: 7.19.4
- resolution: "@babel/helper-string-parser@npm:7.19.4"
- checksum: b2f8a3920b30dfac81ec282ac4ad9598ea170648f8254b10f475abe6d944808fb006aab325d3eb5a8ad3bea8dfa888cfa6ef471050dae5748497c110ec060943
+"@babel/helper-string-parser@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/helper-string-parser@npm:7.22.5"
+ checksum: 836851ca5ec813077bbb303acc992d75a360267aa3b5de7134d220411c852a6f17de7c0d0b8c8dcc0f567f67874c00f4528672b2a4f1bc978a3ada64c8c78467
languageName: node
linkType: hard
@@ -409,10 +410,10 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1":
- version: 7.19.1
- resolution: "@babel/helper-validator-identifier@npm:7.19.1"
- checksum: 0eca5e86a729162af569b46c6c41a63e18b43dbe09fda1d2a3c8924f7d617116af39cac5e4cd5d431bb760b4dca3c0970e0c444789b1db42bcf1fa41fbad0a3a
+"@babel/helper-validator-identifier@npm:^7.22.20":
+ version: 7.22.20
+ resolution: "@babel/helper-validator-identifier@npm:7.22.20"
+ checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc
languageName: node
linkType: hard
@@ -457,14 +458,14 @@ __metadata:
languageName: node
linkType: hard
-"@babel/highlight@npm:^7.18.6":
- version: 7.18.6
- resolution: "@babel/highlight@npm:7.18.6"
+"@babel/highlight@npm:^7.22.13":
+ version: 7.22.20
+ resolution: "@babel/highlight@npm:7.22.20"
dependencies:
- "@babel/helper-validator-identifier": ^7.18.6
- chalk: ^2.0.0
+ "@babel/helper-validator-identifier": ^7.22.20
+ chalk: ^2.4.2
js-tokens: ^4.0.0
- checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789
+ checksum: 84bd034dca309a5e680083cd827a766780ca63cef37308404f17653d32366ea76262bd2364b2d38776232f2d01b649f26721417d507e8b4b6da3e4e739f6d134
languageName: node
linkType: hard
@@ -477,12 +478,12 @@ __metadata:
languageName: node
linkType: hard
-"@babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.0, @babel/parser@npm:^7.21.2":
- version: 7.21.2
- resolution: "@babel/parser@npm:7.21.2"
+"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0":
+ version: 7.23.0
+ resolution: "@babel/parser@npm:7.23.0"
bin:
parser: ./bin/babel-parser.js
- checksum: e2b89de2c63d4cdd2cafeaea34f389bba729727eec7a8728f736bc472a59396059e3e9fe322c9bed8fd126d201fb609712949dc8783f4cae4806acd9a73da6ff
+ checksum: 453fdf8b9e2c2b7d7b02139e0ce003d1af21947bbc03eb350fb248ee335c9b85e4ab41697ddbdd97079698de825a265e45a0846bb2ed47a2c7c1df833f42a354
languageName: node
linkType: hard
@@ -1497,14 +1498,14 @@ __metadata:
languageName: node
linkType: hard
-"@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7":
- version: 7.20.7
- resolution: "@babel/template@npm:7.20.7"
+"@babel/template@npm:^7.22.15":
+ version: 7.22.15
+ resolution: "@babel/template@npm:7.22.15"
dependencies:
- "@babel/code-frame": ^7.18.6
- "@babel/parser": ^7.20.7
- "@babel/types": ^7.20.7
- checksum: 2eb1a0ab8d415078776bceb3473d07ab746e6bb4c2f6ca46ee70efb284d75c4a32bb0cd6f4f4946dec9711f9c0780e8e5d64b743208deac6f8e9858afadc349e
+ "@babel/code-frame": ^7.22.13
+ "@babel/parser": ^7.22.15
+ "@babel/types": ^7.22.15
+ checksum: 1f3e7dcd6c44f5904c184b3f7fe280394b191f2fed819919ffa1e529c259d5b197da8981b6ca491c235aee8dbad4a50b7e31304aa531271cb823a4a24a0dd8fd
languageName: node
linkType: hard
@@ -1527,20 +1528,20 @@ __metadata:
linkType: hard
"@babel/traverse@npm:^7.7.2":
- version: 7.17.3
- resolution: "@babel/traverse@npm:7.17.3"
- dependencies:
- "@babel/code-frame": ^7.16.7
- "@babel/generator": ^7.17.3
- "@babel/helper-environment-visitor": ^7.16.7
- "@babel/helper-function-name": ^7.16.7
- "@babel/helper-hoist-variables": ^7.16.7
- "@babel/helper-split-export-declaration": ^7.16.7
- "@babel/parser": ^7.17.3
- "@babel/types": ^7.17.0
+ version: 7.23.2
+ resolution: "@babel/traverse@npm:7.23.2"
+ dependencies:
+ "@babel/code-frame": ^7.22.13
+ "@babel/generator": ^7.23.0
+ "@babel/helper-environment-visitor": ^7.22.20
+ "@babel/helper-function-name": ^7.23.0
+ "@babel/helper-hoist-variables": ^7.22.5
+ "@babel/helper-split-export-declaration": ^7.22.6
+ "@babel/parser": ^7.23.0
+ "@babel/types": ^7.23.0
debug: ^4.1.0
globals: ^11.1.0
- checksum: 780d7ecf711758174989794891af08d378f81febdb8932056c0d9979524bf0298e28f8e7708a872d7781151506c28f56c85c63ea3f1f654662c2fcb8a3eb9fdc
+ checksum: 26a1eea0dde41ab99dde8b9773a013a0dc50324e5110a049f5d634e721ff08afffd54940b3974a20308d7952085ac769689369e9127dea655f868c0f6e1ab35d
languageName: node
linkType: hard
@@ -1554,14 +1555,14 @@ __metadata:
languageName: node
linkType: hard
-"@babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.5, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.0, @babel/types@npm:^7.21.2":
- version: 7.21.2
- resolution: "@babel/types@npm:7.21.2"
+"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0":
+ version: 7.23.0
+ resolution: "@babel/types@npm:7.23.0"
dependencies:
- "@babel/helper-string-parser": ^7.19.4
- "@babel/helper-validator-identifier": ^7.19.1
+ "@babel/helper-string-parser": ^7.22.5
+ "@babel/helper-validator-identifier": ^7.22.20
to-fast-properties: ^2.0.0
- checksum: a45a52acde139e575502c6de42c994bdbe262bafcb92ae9381fb54cdf1a3672149086843fda655c7683ce9806e998fd002bbe878fa44984498d0fdc7935ce7ff
+ checksum: 215fe04bd7feef79eeb4d33374b39909ce9cad1611c4135a4f7fdf41fe3280594105af6d7094354751514625ea92d0875aba355f53e86a92600f290e77b0e604
languageName: node
linkType: hard
@@ -1977,6 +1978,17 @@ __metadata:
languageName: node
linkType: hard
+"@jridgewell/gen-mapping@npm:^0.3.2":
+ version: 0.3.3
+ resolution: "@jridgewell/gen-mapping@npm:0.3.3"
+ dependencies:
+ "@jridgewell/set-array": ^1.0.1
+ "@jridgewell/sourcemap-codec": ^1.4.10
+ "@jridgewell/trace-mapping": ^0.3.9
+ checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab
+ languageName: node
+ linkType: hard
+
"@jridgewell/resolve-uri@npm:3.1.0":
version: 3.1.0
resolution: "@jridgewell/resolve-uri@npm:3.1.0"
@@ -1991,6 +2003,13 @@ __metadata:
languageName: node
linkType: hard
+"@jridgewell/resolve-uri@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "@jridgewell/resolve-uri@npm:3.1.1"
+ checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653
+ languageName: node
+ linkType: hard
+
"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1":
version: 1.1.2
resolution: "@jridgewell/set-array@npm:1.1.2"
@@ -2022,6 +2041,13 @@ __metadata:
languageName: node
linkType: hard
+"@jridgewell/sourcemap-codec@npm:^1.4.14":
+ version: 1.4.15
+ resolution: "@jridgewell/sourcemap-codec@npm:1.4.15"
+ checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8
+ languageName: node
+ linkType: hard
+
"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.15, @jridgewell/trace-mapping@npm:^0.3.17":
version: 0.3.17
resolution: "@jridgewell/trace-mapping@npm:0.3.17"
@@ -2032,6 +2058,26 @@ __metadata:
languageName: node
linkType: hard
+"@jridgewell/trace-mapping@npm:^0.3.17":
+ version: 0.3.19
+ resolution: "@jridgewell/trace-mapping@npm:0.3.19"
+ dependencies:
+ "@jridgewell/resolve-uri": ^3.1.0
+ "@jridgewell/sourcemap-codec": ^1.4.14
+ checksum: 956a6f0f6fec060fb48c6bf1f5ec2064e13cd38c8be3873877d4b92b4a27ba58289a34071752671262a3e3c202abcc3fa2aac64d8447b4b0fa1ba3c9047f1c20
+ languageName: node
+ linkType: hard
+
+"@jridgewell/trace-mapping@npm:^0.3.17":
+ version: 0.3.19
+ resolution: "@jridgewell/trace-mapping@npm:0.3.19"
+ dependencies:
+ "@jridgewell/resolve-uri": ^3.1.0
+ "@jridgewell/sourcemap-codec": ^1.4.14
+ checksum: 956a6f0f6fec060fb48c6bf1f5ec2064e13cd38c8be3873877d4b92b4a27ba58289a34071752671262a3e3c202abcc3fa2aac64d8447b4b0fa1ba3c9047f1c20
+ languageName: node
+ linkType: hard
+
"@jridgewell/trace-mapping@npm:^0.3.7, @jridgewell/trace-mapping@npm:^0.3.9":
version: 0.3.14
resolution: "@jridgewell/trace-mapping@npm:0.3.14"
@@ -3425,7 +3471,7 @@ __metadata:
languageName: node
linkType: hard
-"chalk@npm:^2.0.0":
+"chalk@npm:^2.0.0, chalk@npm:^2.4.2":
version: 2.4.2
resolution: "chalk@npm:2.4.2"
dependencies: