diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm
index de7eb672e8..b466475222 100644
--- a/code/__DEFINES/atmospherics.dm
+++ b/code/__DEFINES/atmospherics.dm
@@ -44,3 +44,4 @@ var/MAX_EXPLOSION_RANGE = 14
#define VENT_GAS_SMOKE "Smoke"
#define VENT_GAS_CN20 "CN20 Nerve Gas"
#define VENT_GAS_CN20_XENO "CN20-X Nerve Gas"
+#define VENT_GAS_LSD "ALD-91 LSD Gas"
diff --git a/code/__pragmas.dm b/code/__pragmas.dm
index 39c14e1bbc..84fcc0dfc3 100644
--- a/code/__pragmas.dm
+++ b/code/__pragmas.dm
@@ -12,7 +12,6 @@
#pragma SoftReservedKeyword error
#pragma DuplicateVariable error
#pragma DuplicateProcDefinition error
-#pragma TooManyArguments error
#pragma PointlessParentCall error
#pragma PointlessBuiltinCall error
#pragma SuspiciousMatrixCall error
diff --git a/code/datums/global_variables.dm b/code/datums/global_variables.dm
index 953f42f172..53e9c0391e 100644
--- a/code/datums/global_variables.dm
+++ b/code/datums/global_variables.dm
@@ -118,15 +118,11 @@
/client/proc/debug_global_variable(name, value, level)
var/html = ""
- var/change = 0
//to make the value bold if changed
if(!(admin_holder.rights & R_DEBUG))
return html
html += "
EC "
- if(value != initial(global.vars[name]))
- html += ""
- change = 1
if (isnull(value))
html += "[name] = null"
@@ -175,8 +171,6 @@
else
html += "[name] = [value]"
- if(change)
- html += ""
html += ""
@@ -353,7 +347,6 @@
if(admin_holder && admin_holder.marked_datum)
possible_classes += "marked datum"
possible_classes += "edit referenced object"
- possible_classes += "restore to default"
class = tgui_input_list(usr, "What kind of variable?","Variable Type", possible_classes)
if(!class)
@@ -365,9 +358,6 @@
mod_list(global.vars[variable])
return
- if("restore to default")
- global.vars[variable] = initial(global.vars[variable])
-
if("edit referenced object")
return .(global.vars[variable])
diff --git a/code/game/objects/effects/effect_system/smoke.dm b/code/game/objects/effects/effect_system/smoke.dm
index b80f53b14d..4cd3c4a37d 100644
--- a/code/game/objects/effects/effect_system/smoke.dm
+++ b/code/game/objects/effects/effect_system/smoke.dm
@@ -258,6 +258,7 @@
var/xeno_affecting = FALSE
opacity = FALSE
alpha = 75
+ time_to_live = 20
/obj/effect/particle_effect/smoke/cn20/xeno
name = "CN20-X nerve gas"
@@ -276,10 +277,14 @@
/obj/effect/particle_effect/smoke/cn20/affect(mob/living/carbon/creature)
var/mob/living/carbon/xenomorph/xeno_creature
var/mob/living/carbon/human/human_creature
+ var/datum/internal_organ/lungs/lungs
+ var/datum/internal_organ/eyes/eyes
if(isxeno(creature))
xeno_creature = creature
else if(ishuman(creature))
human_creature = creature
+ lungs = human_creature.internal_organs_by_name["lungs"]
+ eyes = human_creature.internal_organs_by_name["eyes"]
if(!istype(creature) || issynth(creature) || creature.stat == DEAD)
return FALSE
if(!xeno_affecting && xeno_creature)
@@ -297,14 +302,18 @@
if(xeno_creature)
if(xeno_creature.interference < 4)
to_chat(xeno_creature, SPAN_XENOHIGHDANGER("Your awareness dims to a small area!"))
+ creature.apply_damage(20, BRUTE)
xeno_creature.interference = 10
xeno_creature.blinded = TRUE
else
- creature.apply_damage(12, OXY)
+ creature.apply_damage(12, TOX)
+ creature.apply_damage(2, BRAIN)
+ lungs.take_damage(2)
creature.SetEarDeafness(max(creature.ear_deaf, round(effect_amt*1.5))) //Paralysis of hearing system, aka deafness
- if(!xeno_creature && !creature.eye_blind) //Eye exposure damage
+ if(!xeno_creature) //Eye exposure damage
to_chat(creature, SPAN_DANGER("Your eyes sting. You can't see!"))
creature.SetEyeBlind(round(effect_amt/3))
+ eyes.take_damage(2)
if(!xeno_creature && creature.coughedtime != 1 && !creature.stat) //Coughing/gasping
creature.coughedtime = 1
if(prob(50))
@@ -330,6 +339,40 @@
human_creature.recalculate_move_delay = TRUE
return TRUE
+/////////////////////////////////////////////
+// ALD-91 LSD Gas
+/////////////////////////////////////////////
+
+/obj/effect/particle_effect/smoke/LSD
+ name = "ALD-91 LSD Gas"
+ smokeranking = SMOKE_RANK_HIGH
+ color = "#6e006e"
+ opacity = FALSE
+ alpha = 75
+ time_to_live = 20
+ var/stun_chance = 60
+
+/obj/effect/particle_effect/smoke/LSD/Move()
+ . = ..()
+ for(var/mob/living/carbon/human/human in get_turf(src))
+ affect(human)
+
+/obj/effect/particle_effect/smoke/LSD/affect(mob/living/carbon/human/creature)
+ if(!istype(creature) || issynth(creature) || creature.stat == DEAD || isyautja(creature))
+ return FALSE
+
+ if(creature.wear_mask && (creature.wear_mask.flags_inventory & BLOCKGASEFFECT))
+ return FALSE
+ if(creature.head.flags_inventory & BLOCKGASEFFECT)
+ return FALSE
+
+ creature.hallucination += 15
+ creature.druggy += 1
+
+ if(prob(stun_chance))
+ creature.apply_effect(1, WEAKEN)
+
+
//////////////////////////////////////
// FLASHBANG SMOKE
////////////////////////////////////
@@ -633,6 +676,9 @@
/datum/effect_system/smoke_spread/cn20/xeno
smoke_type = /obj/effect/particle_effect/smoke/cn20/xeno
+/datum/effect_system/smoke_spread/LSD
+ smoke_type = /obj/effect/particle_effect/smoke/LSD
+
// XENO SMOKES
/datum/effect_system/smoke_spread/xeno_acid
diff --git a/code/game/objects/items/explosives/grenades/marines.dm b/code/game/objects/items/explosives/grenades/marines.dm
index 46d2d4eba9..36ba614041 100644
--- a/code/game/objects/items/explosives/grenades/marines.dm
+++ b/code/game/objects/items/explosives/grenades/marines.dm
@@ -484,7 +484,7 @@
/// The typepath of the nerve gas
var/nerve_gas_type = /datum/effect_system/smoke_spread/cn20
/// The radius the gas will reach
- var/nerve_gas_radius = 2
+ var/nerve_gas_radius = 4
/obj/item/explosive/grenade/nerve_gas/Initialize(mapload, ...)
. = ..()
@@ -505,6 +505,38 @@
name = "\improper CN20-X canister grenade"
nerve_gas_type = /datum/effect_system/smoke_spread/cn20/xeno
+/*
+//================================================
+ LSD Gas Grenades
+//================================================
+*/
+/obj/item/explosive/grenade/LSD
+ name = "\improper ALD-91 canister grenade"
+ desc = "A canister grenade of nonlethal LSD gas. It is set to detonate in 4 seconds."
+ icon_state = "flashbang2"//temp icon
+ det_time = 40
+ item_state = "grenade_phos_clf"//temp icon
+ underslug_launchable = FALSE
+ harmful = TRUE
+ antigrief_protection = FALSE
+ var/datum/effect_system/smoke_spread/LSD/LSD_gas
+ var/LSD_gas_radius = 4
+
+/obj/item/explosive/grenade/LSD/Initialize()
+ . = ..() //if it ain't broke don't fix it
+ LSD_gas = new /datum/effect_system/smoke_spread/LSD
+ LSD_gas.attach(src)
+
+/obj/item/explosive/grenade/LSD/Destroy()
+ QDEL_NULL(LSD_gas)
+ return ..()
+
+/obj/item/explosive/grenade/LSD/prime()
+ playsound(src.loc, 'sound/effects/smoke.ogg', 25, 1, 4)
+ LSD_gas.set_up(LSD_gas_radius, 0, get_turf(src), null, 6)
+ LSD_gas.start()
+ qdel(src)
+
/*
//================================================
Airburst Smoke Grenades
diff --git a/code/game/objects/items/reagent_containers/food/cans.dm b/code/game/objects/items/reagent_containers/food/cans.dm
index aab2ee066e..d6d1b9b423 100644
--- a/code/game/objects/items/reagent_containers/food/cans.dm
+++ b/code/game/objects/items/reagent_containers/food/cans.dm
@@ -270,7 +270,7 @@
/obj/item/reagent_container/food/drinks/cans/boda
name = "\improper Boda"
desc = "State regulated soda beverage. Enjoy comrades."
- desc_lore = "Designed back in 2159, the advertising campaign for BODA started out as an attempt by the UPP to win the hearts and minds of colonists and settlers across the galaxy. Soon after, the ubiquitous cyan vendors and large supplies of the drink began to crop up in UA warehouses with seemingly no clear origin. Despite some concerns, after initial testing determined that the stored products were safe for consumption and surprisingly popular when blind-tested with focus groups, the strange surplus of BODA was authorized for usage within the UA-associated colonies. Subsequently, it enjoyed a relative popularity before falling into obscurity in the coming decades as supplies dwindled."
+ desc_lore = "Designed back in 2159, the advertising campaign for BODA started out as an attempt by the UPP to win the hearts and minds of colonists and settlers across the galaxy. Soon after, the ubiquitous cyan vendors and large supplies of the drink began to crop up in UA warehouses with seemingly no clear origin. Despite some concerns, after initial testing determined that the stored products were safe for consumption and surprisingly popular when blind-tested with focus groups, the strange surplus of BODA was authorized for usage within the UA-associated colonies. Subsequently, it enjoyed a relative popularity before falling into obscurity in the coming decades as supplies dwindled."
icon_state = "boda"
center_of_mass = "x=16;y=10"
@@ -347,10 +347,6 @@
icon_state = "souto_diet_classic"
item_state = "souto_diet_classic"
-/obj/item/reagent_container/food/drinks/cans/souto/diet/Initialize()
- . = ..()
- reagents.add_reagent("water", 25)
-
/obj/item/reagent_container/food/drinks/cans/souto/classic
name = "\improper Souto Classic"
desc = "The can boldly proclaims it to be tangerine flavored. You can't help but think that's a lie. Canned in Havana."
@@ -359,7 +355,9 @@
/obj/item/reagent_container/food/drinks/cans/souto/classic/Initialize()
. = ..()
- reagents.add_reagent("souto_classic", 50)
+ reagents.add_reagent("cornsyrup", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_classic", 20)
/obj/item/reagent_container/food/drinks/cans/souto/diet/classic
name = "\improper Diet Souto"
@@ -369,7 +367,9 @@
/obj/item/reagent_container/food/drinks/cans/souto/diet/classic/Initialize()
. = ..()
- reagents.add_reagent("souto_classic", 25)
+ reagents.add_reagent("sucralose", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_classic", 20)
/obj/item/reagent_container/food/drinks/cans/souto/cherry
name = "\improper Cherry Souto"
@@ -379,7 +379,9 @@
/obj/item/reagent_container/food/drinks/cans/souto/cherry/Initialize()
. = ..()
- reagents.add_reagent("souto_cherry", 50)
+ reagents.add_reagent("cornsyrup", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_cherry", 20)
/obj/item/reagent_container/food/drinks/cans/souto/diet/cherry
name = "\improper Diet Cherry Souto"
@@ -389,7 +391,9 @@
/obj/item/reagent_container/food/drinks/cans/souto/diet/cherry/Initialize()
. = ..()
- reagents.add_reagent("souto_cherry", 25)
+ reagents.add_reagent("sucralose", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_cherry", 20)
/obj/item/reagent_container/food/drinks/cans/souto/lime
name = "\improper Lime Souto"
@@ -399,7 +403,9 @@
/obj/item/reagent_container/food/drinks/cans/souto/lime/Initialize()
. = ..()
- reagents.add_reagent("souto_lime", 50)
+ reagents.add_reagent("cornsyrup", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_lime", 20)
/obj/item/reagent_container/food/drinks/cans/souto/diet/lime
name = "\improper Diet Lime Souto"
@@ -409,7 +415,9 @@
/obj/item/reagent_container/food/drinks/cans/souto/diet/lime/Initialize()
. = ..()
- reagents.add_reagent("souto_lime", 25)
+ reagents.add_reagent("sucralose", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_lime", 20)
/obj/item/reagent_container/food/drinks/cans/souto/grape
name = "\improper Grape Souto"
@@ -419,7 +427,9 @@
/obj/item/reagent_container/food/drinks/cans/souto/grape/Initialize()
. = ..()
- reagents.add_reagent("souto_grape", 50)
+ reagents.add_reagent("cornsyrup", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_grape", 20)
/obj/item/reagent_container/food/drinks/cans/souto/diet/grape
name = "\improper Diet Grape Souto"
@@ -429,7 +439,9 @@
/obj/item/reagent_container/food/drinks/cans/souto/diet/grape/Initialize()
. = ..()
- reagents.add_reagent("souto_grape", 25)
+ reagents.add_reagent("sucralose", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_grape", 20)
/obj/item/reagent_container/food/drinks/cans/souto/blue
name = "\improper Blue Raspberry Souto"
@@ -440,7 +452,9 @@
/obj/item/reagent_container/food/drinks/cans/souto/blue/Initialize()
. = ..()
- reagents.add_reagent("souto_blueraspberry", 50)
+ reagents.add_reagent("cornsyrup", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_blueraspberry", 20)
/obj/item/reagent_container/food/drinks/cans/souto/diet/blue
name = "\improper Diet Blue Raspberry Souto"
@@ -450,7 +464,9 @@
/obj/item/reagent_container/food/drinks/cans/souto/diet/blue/Initialize()
. = ..()
- reagents.add_reagent("souto_blueraspberry", 25)
+ reagents.add_reagent("sucralose", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_blueraspberry", 20)
/obj/item/reagent_container/food/drinks/cans/souto/peach
name = "\improper Peach Souto"
@@ -460,7 +476,9 @@
/obj/item/reagent_container/food/drinks/cans/souto/peach/Initialize()
. = ..()
- reagents.add_reagent("souto_peach", 50)
+ reagents.add_reagent("cornsyrup", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_peach", 20)
/obj/item/reagent_container/food/drinks/cans/souto/diet/peach
name = "\improper Diet Peach Souto"
@@ -470,7 +488,9 @@
/obj/item/reagent_container/food/drinks/cans/souto/diet/peach/Initialize()
. = ..()
- reagents.add_reagent("souto_peach", 25)
+ reagents.add_reagent("sucralose", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_peach", 20)
/obj/item/reagent_container/food/drinks/cans/souto/cranberry
name = "\improper Cranberry Souto"
@@ -480,7 +500,9 @@
/obj/item/reagent_container/food/drinks/cans/souto/cranberry/Initialize()
. = ..()
- reagents.add_reagent("souto_cranberry", 50)
+ reagents.add_reagent("cornsyrup", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_cranberry", 20)
/obj/item/reagent_container/food/drinks/cans/souto/diet/cranberry
name = "\improper Diet Cranberry Souto"
@@ -490,8 +512,9 @@
/obj/item/reagent_container/food/drinks/cans/souto/diet/cranberry/Initialize()
. = ..()
- reagents.add_reagent("souto_cranberry", 25)
- reagents.add_reagent("water", 25)
+ reagents.add_reagent("sucralose", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_cranberry", 20)
/obj/item/reagent_container/food/drinks/cans/souto/vanilla
name = "\improper Vanilla Souto"
@@ -511,29 +534,32 @@
/obj/item/reagent_container/food/drinks/cans/souto/diet/vanilla/Initialize()
. = ..()
+ reagents.add_reagent("sodawater", 25)
reagents.add_reagent("souto_vanilla", 25)
- reagents.add_reagent("water", 25)
/obj/item/reagent_container/food/drinks/cans/souto/pineapple
name = "\improper Pineapple Souto"
- desc = "This tastes like battery acid with a full cup of sugar mixed in. Canned in Havana."
+ desc = "This tastes like battery acid with a full cup of corn syrup mixed in. Canned in Havana."
icon_state = "souto_pineapple"
item_state = "souto_pineapple"
/obj/item/reagent_container/food/drinks/cans/souto/pineapple/Initialize()
. = ..()
- reagents.add_reagent("souto_pineapple", 50)
+ reagents.add_reagent("cornsyrup", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_pineapple", 20)
/obj/item/reagent_container/food/drinks/cans/souto/diet/pineapple
name = "\improper Diet Pineapple Souto"
- desc = "This tastes like battery acid with a half cup of sugar mixed in. Canned in Havana."
+ desc = "This tastes like battery acid with a full cup of sugar substitute mixed in. Canned in Havana."
icon_state = "souto_diet_pineapple"
item_state = "souto_diet_pineapple"
/obj/item/reagent_container/food/drinks/cans/souto/diet/pineapple/Initialize()
. = ..()
- reagents.add_reagent("souto_pineapple", 25)
- reagents.add_reagent("water", 25)
+ reagents.add_reagent("cornsyrup", 15)
+ reagents.add_reagent("sodawater", 15)
+ reagents.add_reagent("souto_pineapple", 20)
//ASPEN
diff --git a/code/game/objects/structures/pipes/vents/vents.dm b/code/game/objects/structures/pipes/vents/vents.dm
index 298fbc57f4..926f14cd2f 100644
--- a/code/game/objects/structures/pipes/vents/vents.dm
+++ b/code/game/objects/structures/pipes/vents/vents.dm
@@ -139,7 +139,7 @@
if(welded)
to_chat(usr, SPAN_WARNING("You cannot release gas from a welded vent."))
return FALSE
- var/list/options = list(VENT_GAS_SMOKE, VENT_GAS_CN20, VENT_GAS_CN20_XENO)
+ var/list/options = list(VENT_GAS_SMOKE, VENT_GAS_CN20, VENT_GAS_CN20_XENO, VENT_GAS_LSD)
var/gas_choice = tgui_input_list(user, "What gas do you wish to use?", "Gas Choice", options, 20 SECONDS)
if(!gas_choice)
return FALSE
@@ -166,6 +166,8 @@
spreader = new /datum/effect_system/smoke_spread/cn20
if(VENT_GAS_CN20_XENO)
spreader = new /datum/effect_system/smoke_spread/cn20/xeno
+ if(VENT_GAS_LSD)
+ spreader = new /datum/effect_system/smoke_spread/LSD
if(!spreader)
return FALSE
gas_holder = spreader
diff --git a/code/modules/clothing/shoes/marine_shoes.dm b/code/modules/clothing/shoes/marine_shoes.dm
index 1a11545ea4..365a8a551a 100644
--- a/code/modules/clothing/shoes/marine_shoes.dm
+++ b/code/modules/clothing/shoes/marine_shoes.dm
@@ -231,7 +231,8 @@
/obj/item/clothing/shoes/royal_marine
name = "\improper L10 pattern combat boots"
desc = "Standard issue combat boots for combat scenarios or combat situations. Used by the three world empires royal marines commando units."
- icon_state = "rmc_boots"
+ icon_state = "marine"
+ item_state = "marine"
armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH
armor_laser = CLOTHING_ARMOR_LOW
diff --git a/code/modules/projectiles/ammo_boxes/magazine_boxes.dm b/code/modules/projectiles/ammo_boxes/magazine_boxes.dm
index 7bdf49f0da..320693db36 100644
--- a/code/modules/projectiles/ammo_boxes/magazine_boxes.dm
+++ b/code/modules/projectiles/ammo_boxes/magazine_boxes.dm
@@ -72,6 +72,14 @@
/obj/item/ammo_box/magazine/mk1/empty
empty = TRUE
+/obj/item/ammo_box/magazine/mk1/heap
+ name = "magazine box (HEAP M41A MK1 X 10)"
+ overlay_ammo_type = "_heap"
+ overlay_content = "_heap"
+ magazine_type = /obj/item/ammo_magazine/rifle/m41aMK1/heap
+
+/obj/item/ammo_box/magazine/mk1/heap/empty
+ empty = TRUE
//-----------------------M39 Rifle Mag Boxes-----------------------
/obj/item/ammo_box/magazine/m39
diff --git a/code/modules/reagents/chemistry_reagents/other.dm b/code/modules/reagents/chemistry_reagents/other.dm
index 45e66c182e..bbeeca2e3c 100644
--- a/code/modules/reagents/chemistry_reagents/other.dm
+++ b/code/modules/reagents/chemistry_reagents/other.dm
@@ -363,6 +363,21 @@
properties = list(PROPERTY_NUTRITIOUS = 1)
flags = REAGENT_TYPE_MEDICAL
+/datum/reagent/cornsyrup
+ name = "High-Fructose Corn Syrup"
+ id = "cornsyrup"
+ description = "Ah, some good old, all-american, high-fructose corn syrup. Sickeningly sweet. There's worse things you can put in your body, but very few of them are made to be put there."
+ color = "#593512" // rgb: 89, 53, 18
+ chemclass = CHEM_CLASS_NONE
+ properties = list(PROPERTY_NUTRITIOUS = 1)
+
+/datum/reagent/sucralose
+ name = "Sucralose"
+ id = "sucralose"
+ description = "600 times the flavor of sugar, with none of the calories!"
+ color = "#FFFFFF" // rgb: 255, 255, 255
+ chemclass = CHEM_CLASS_NONE
+
/datum/reagent/glycerol
name = "Glycerol"
id = "glycerol"
diff --git a/code/modules/vehicles/multitile/multitile_movement.dm b/code/modules/vehicles/multitile/multitile_movement.dm
index b5f3081447..b95a7bd057 100644
--- a/code/modules/vehicles/multitile/multitile_movement.dm
+++ b/code/modules/vehicles/multitile/multitile_movement.dm
@@ -159,7 +159,7 @@
// Crashed with something that stopped us
if(!can_move)
- move_momentum = Floor(move_momentum/2)
+ move_momentum = trunc(move_momentum/2)
update_next_move()
interior_crash_effect()
@@ -251,10 +251,10 @@
return
// Not enough momentum for anything serious
- if(abs(move_momentum) <= 1)
+ if(abs(move_momentum) < 1)
return
- var/fling_distance = Ceiling(move_momentum/move_max_momentum) * 2
+ var/fling_distance = Ceiling(abs(move_momentum)/move_max_momentum) * 2
var/turf/target = interior.get_middle_turf()
for (var/x in 0 to fling_distance-1)
@@ -272,7 +272,7 @@
if(isliving(A))
var/mob/living/M = A
- shake_camera(M, 2, Ceiling(move_momentum/move_max_momentum) * 1)
+ shake_camera(M, 2, Ceiling(abs(move_momentum)/move_max_momentum) * 1)
if(!M.buckled)
M.apply_effect(1, STUN)
M.apply_effect(2, WEAKEN)
diff --git a/dependencies.sh b/dependencies.sh
index 01d0ca5c97..1934553cb0 100644
--- a/dependencies.sh
+++ b/dependencies.sh
@@ -18,4 +18,4 @@ export NODE_VERSION_PRECISE=14.16.1
export SPACEMAN_DMM_VERSION=suite-1.8
# Python version for mapmerge and other tools
-export PYTHON_VERSION=3.7.9
+export PYTHON_VERSION=3.9.0
diff --git a/icons/mob/humans/onmob/back.dmi b/icons/mob/humans/onmob/back.dmi
index 670afcf34e..39abfe5ce6 100644
Binary files a/icons/mob/humans/onmob/back.dmi and b/icons/mob/humans/onmob/back.dmi differ
diff --git a/icons/mob/humans/onmob/belt.dmi b/icons/mob/humans/onmob/belt.dmi
index 3750cb985c..9079bda5e7 100644
Binary files a/icons/mob/humans/onmob/belt.dmi and b/icons/mob/humans/onmob/belt.dmi differ
diff --git a/icons/mob/humans/onmob/feet.dmi b/icons/mob/humans/onmob/feet.dmi
index 84121e6b09..909a629f72 100644
Binary files a/icons/mob/humans/onmob/feet.dmi and b/icons/mob/humans/onmob/feet.dmi differ
diff --git a/icons/mob/humans/onmob/head_1.dmi b/icons/mob/humans/onmob/head_1.dmi
index 139dae66e8..fcd8917c9c 100644
Binary files a/icons/mob/humans/onmob/head_1.dmi and b/icons/mob/humans/onmob/head_1.dmi differ
diff --git a/icons/mob/humans/onmob/suit_1.dmi b/icons/mob/humans/onmob/suit_1.dmi
index 3096925329..8a9424ff15 100644
Binary files a/icons/mob/humans/onmob/suit_1.dmi and b/icons/mob/humans/onmob/suit_1.dmi differ
diff --git a/icons/obj/items/clothing/belts.dmi b/icons/obj/items/clothing/belts.dmi
index 0a194a7bbc..18e011f048 100644
Binary files a/icons/obj/items/clothing/belts.dmi and b/icons/obj/items/clothing/belts.dmi differ
diff --git a/icons/obj/items/clothing/cm_hats.dmi b/icons/obj/items/clothing/cm_hats.dmi
index ada7540e96..1411de23fb 100644
Binary files a/icons/obj/items/clothing/cm_hats.dmi and b/icons/obj/items/clothing/cm_hats.dmi differ