Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29

# Conflicts:
#	_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm
#	_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	code/_onclick/hud/new_player.dm
#	code/datums/components/squashable.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/datums/diseases/chronic_illness.dm
#	code/datums/status_effects/buffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/stamcrit.dm
#	code/game/machinery/computer/crew.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/wall_mounted.dm
#	code/game/turfs/closed/indestructible.dm
#	code/modules/admin/view_variables/filterrific.dm
#	code/modules/antagonists/heretic/influences.dm
#	code/modules/cargo/orderconsole.dm
#	code/modules/client/preferences.dm
#	code/modules/events/space_vines/vine_mutations.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/carbon/human/death.dm
#	code/modules/mob/living/carbon/human/species_types/jellypeople.dm
#	code/modules/mob/living/damage_procs.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mob_spawn/mob_spawn.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/projectiles/guns/ballistic/launchers.dm
#	code/modules/projectiles/guns/energy/laser.dm
#	code/modules/reagents/chemistry/machinery/chem_dispenser.dm
#	code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/medicine_reagents.dm
#	code/modules/surgery/healing.dm
#	code/modules/unit_tests/designs.dm
#	icons/mob/inhands/items_lefthand.dmi
#	icons/mob/inhands/items_righthand.dmi
#	tgui/packages/tgui/interfaces/ChemDispenser.tsx
This commit is contained in:
nevimer
2025-11-29 22:49:21 -05:00
1185 changed files with 39068 additions and 32028 deletions
+4 -6
View File
@@ -777,15 +777,13 @@ ADMIN_VERB(centcom_podlauncher, R_ADMIN, "Config/Launch Supplypod", "Configure a
/datum/centcom_podlauncher/proc/clearBay() //Clear all objs and mobs from the selected bay
for (var/obj/object in bay.get_all_contents())
if (istype(object.type, /obj/effect/light_emitter/podbay))
if (istype(object, /obj/effect/light_emitter/podbay))
continue
qdel(object)
for (var/mob/mob in bay.get_all_contents())
for (var/mob/living/mob in bay.get_all_contents())
mob.ghostize(FALSE)
qdel(mob)
for (var/bayturf in bay)
var/turf/turf_to_clear = bayturf
if (istype(turf_to_clear, /obj/effect/light_emitter/podbay))
continue
for (var/turf/turf_to_clear in bay)
turf_to_clear.ChangeTurf(/turf/open/floor/iron)
/datum/centcom_podlauncher/Destroy() //The Destroy() proc. This is called by ui_close proc, or whenever the user leaves the game
+14
View File
@@ -26,6 +26,20 @@
cost = CARGO_CRATE_VALUE
unit_name = "laser gun"
export_types = list(/obj/item/gun/energy/laser)
exclude_types = list(
/obj/item/gun/energy/laser/pistol,
/obj/item/gun/energy/laser/assault,
)
/datum/export/weapon/laser_pistol
cost = CARGO_CRATE_VALUE * 0.2
unit_name = "laser pistol"
export_types = list(/obj/item/gun/energy/laser/pistol)
/datum/export/weapon/laser_assault
cost = CARGO_CRATE_VALUE * 10
unit_name = "assault laser gun"
export_types = list(/obj/item/gun/energy/laser/assault)
/datum/export/weapon/disabler
cost = CARGO_CRATE_VALUE * 0.5
+18 -4
View File
@@ -99,19 +99,33 @@
contains = list(/obj/item/gun/energy/e_gun)
/datum/supply_pack/goody/laser_single
name = "Laser Gun Single-Pack"
desc = "Contains one laser gun, the lethal workhorse of Nanotrasen security everywhere."
name = "Type 5 Laser Gun Single-Pack"
desc = "Contains one Type 5 laser gun, the lethal workhorse of Nanotrasen security everywhere."
cost = PAYCHECK_COMMAND * 6
access_view = ACCESS_WEAPONS
contains = list(/obj/item/gun/energy/laser)
/datum/supply_pack/goody/carbine_single
name = "Laser Carbine Single_Pack"
desc = "Contains one laser carbines, capable of rapidly firing weak lasers."
name = "Type 5R Laser Carbine Single_Pack"
desc = "Contains one laser carbine. Fires a rapid burst of slightly weaker laser projectiles."
cost = PAYCHECK_COMMAND * 8
access_view = ACCESS_WEAPONS
contains = list(/obj/item/gun/energy/laser/carbine)
/datum/supply_pack/goody/laser_pistol_single
name = "Type 5C Laser Pistol Single-Pack"
desc = "Contains one Type 5C laser pistol in an energy shoulder holster. Groovy."
cost = PAYCHECK_COMMAND * 2
access_view = ACCESS_WEAPONS
contains = list(/obj/item/storage/belt/holster/energy/laser_pistol)
/datum/supply_pack/goody/laser_single_soul
name = "Type 3 Laser Gun Single-Pack"
desc = "Contains one Type 3 laser gun. They don't make 'em like they used to."
cost = PAYCHECK_COMMAND * 6
access_view = ACCESS_WEAPONS
contains = list(/obj/item/gun/energy/laser/soul)
/datum/supply_pack/goody/smg_single
name = "Disabler SMG Single_Pack"
desc = "Contains one disabler SMGs, capable of rapidly firing weak disabler beams."
+3 -3
View File
@@ -121,7 +121,7 @@
"id" = order.id,
"amount" = 1,
"orderer" = order.orderer,
"paid" = !!order.paying_account?.add_to_accounts, //number of orders purchased privatly
"paid" = !isnull(order.paying_account), //number of orders purchased privatly
"dep_order" = !!order.department_destination, //number of orders purchased by a department
"can_be_cancelled" = order.can_be_cancelled,
))
@@ -271,7 +271,7 @@
if(!dept_choice)
return
if(dept_choice == "Cargo Budget")
personal_department = SSeconomy.get_dep_account(cargo_account)
personal_department = null
if(pack.goody && !self_paid)
playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE)
@@ -298,7 +298,7 @@
break
var/datum/supply_order/order = new(
pack = pack ,
pack = pack,
orderer = name,
orderer_rank = rank,
orderer_ckey = ckey,
+10 -9
View File
@@ -241,19 +241,20 @@
crate_type = /obj/structure/closet/crate/secure/plasma
/datum/supply_pack/security/armory/laser
name = "Lasers Crate"
desc = "Contains three lethal, high-energy laser guns."
name = "Type 5 Laser Gun Crate"
desc = "Contains three Type 5 laser guns, developed by Nanotrasen. For when the going gets tough, you get going with the \
Type 5 Heat Delivery System. As developed by Nanotrasen."
cost = CARGO_CRATE_VALUE * 4
contains = list(/obj/item/gun/energy/laser = 3)
crate_name = "laser crate"
crate_name = "\improper Type 5 laser crate"
crate_type = /obj/structure/closet/crate/secure/plasma
/datum/supply_pack/security/armory/laser_carbine
name = "Laser Carbine Crate"
desc = "Contains three laser carbines, capable of rapidly firing weak lasers."
name = "Type 5R Laser Carbine Crate"
desc = "Contains three Type 5R laser carbines, developed by Nanotrasen. Fires a rapid burst of slightly weaker laser projectiles."
cost = CARGO_CRATE_VALUE * 9
contains = list(/obj/item/gun/energy/laser/carbine = 3)
crate_name = "laser carbine crate"
crate_name = "\improper Type 5R laser carbine crate"
crate_type = /obj/structure/closet/crate/secure/plasma
/datum/supply_pack/security/armory/disabler_smg
@@ -266,9 +267,9 @@
/datum/supply_pack/security/armory/battle_rifle
name = "NT BR-38 Crate"
desc = "An experimental energy-based ballistic battle rifle. Only available to \
Nanotrasen stations for security purposes. DO NOT RESELL TO OUTSIDE COMPANIES. \
Contains three NT BR-38 rifles and 6 magazines containing .38 Standard."
desc = "An experimental energy-based ballistic battle rifle, as developed by Nanotrasen. \
Only available to Nanotrasen stations for security purposes. DO NOT RESELL TO OUTSIDE \
COMPANIES. Contains three NT BR-38 rifles and 6 magazines containing .38 Standard."
cost = CARGO_CRATE_VALUE * 100
contains = list(
/obj/item/gun/ballistic/automatic/battle_rifle = 3,
+2 -2
View File
@@ -343,11 +343,11 @@
sleep(0.1 SECONDS)
if (effectGib) //effectGib is on, that means whatever's underneath us better be fucking oof'd on
target_living.adjustBruteLoss(5000) //THATS A LOT OF DAMAGE (called just in case gib() doesnt work on em)
target_living.adjust_brute_loss(5000) //THATS A LOT OF DAMAGE (called just in case gib() doesnt work on em)
if (!QDELETED(target_living))
target_living.gib(DROP_ALL_REMAINS) //After adjusting the fuck outta that brute loss we finish the job with some satisfying gibs
else
target_living.adjustBruteLoss(damage)
target_living.adjust_brute_loss(damage)
if (boom?.len == 4)
boom.len += 1