From 52977003405546251bb33403eabb1e46e10c3406 Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Wed, 5 Aug 2020 14:11:40 +0100
Subject: [PATCH 01/23] snowflake coders are bad
---
code/_globalvars/lists/flavor_misc.dm | 8 +-
code/modules/client/preferences.dm | 322 ++------------------------
2 files changed, 23 insertions(+), 307 deletions(-)
diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index a25381f266..6afa8ef0ce 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -231,4 +231,10 @@ GLOBAL_LIST_INIT(speech_verbs, list("default","says","gibbers", "states", "chitt
GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/organ/tongue, "lizard tongue" = /obj/item/organ/tongue/lizard, "skeleton tongue" = /obj/item/organ/tongue/bone, "fly tongue" = /obj/item/organ/tongue/fly, "ipc tongue" = /obj/item/organ/tongue/robot/ipc))
-
+//locked parts are those that your picked species requires to have
+//unlocked parts are those that anyone can choose on customisation regardless
+//parts not in unlocked, but in all, are thus locked
+GLOBAL_LIST_INIT(all_mutant_parts, list("tail_lizard" = "Tail", "mam_tail" = "Tail", "tail_human" = "Tail", "snout" = "Snout", "frills" = "Frills", "spines" = "Spines", "body_markings" = "Body Markings", "mam_body_markings" = "Species Markings" , "mam_ears" = "Ears", "ears" = "Ears", "mam_snouts" = "Snout", "legs" = "Legs", "deco_wings" = "Decorative Wings", "insect_wings" = "Insect Wings", "insect_fluff" = "Insect Fluff", "taur" = "Tauric Body", "insect_markings" = "Insect Markings", "wings" = "Wings", "xenohead" = "Caste Head", "xenotail" = "Tail", "xenodorsal" = "Dorsal Spines", "ipc_screen" = "Screen", "ipc_antenna" = "Antenna", "meat_type" = "Meat Type"))
+GLOBAL_LIST_INIT(unlocked_mutant_parts, list("meat_type", "horns"))
+//parts in either of the above two lists that require a second option that allows them to be coloured
+GLOBAL_LIST_INIT(colored_mutant_parts, list("insect_wings" = "wings_color", "deco_wings" = "wings_color", "horns" = "horns_color"))
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 9355f83827..291e4eac0e 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -507,310 +507,20 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += ""
mutant_category = 0
- if(pref_species.mutant_bodyparts["tail_lizard"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "
Tail
"
-
- dat += "[features["tail_lizard"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
-
- if(pref_species.mutant_bodyparts["mam_tail"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Tail
"
-
- dat += "[features["mam_tail"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
- if(pref_species.mutant_bodyparts["tail_human"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Tail
"
-
- dat += "[features["tail_human"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
-
- if(pref_species.mutant_bodyparts["meat_type"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Meat Type
"
-
- dat += "[features["meat_type"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
- if(pref_species.mutant_bodyparts["snout"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Snout
"
-
- dat += "[features["snout"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
- if(pref_species.mutant_bodyparts["horns"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Horns
"
-
- dat += "[features["horns"]]"
- dat += " Change
"
-
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- if(pref_species.mutant_bodyparts["frills"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Frills
"
-
- dat += "[features["frills"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
-
- if(pref_species.mutant_bodyparts["spines"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Spines
"
-
- dat += "[features["spines"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
-
- if(pref_species.mutant_bodyparts["body_markings"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Body Markings
"
-
- dat += "[features["body_markings"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
- if(pref_species.mutant_bodyparts["mam_body_markings"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Species Markings
"
-
- dat += "[features["mam_body_markings"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
-
- if(pref_species.mutant_bodyparts["mam_ears"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Ears
"
-
- dat += "[features["mam_ears"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
-
- if(pref_species.mutant_bodyparts["ears"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Ears
"
-
- dat += "[features["ears"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
-
- if(pref_species.mutant_bodyparts["mam_snouts"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Snout
"
-
- dat += "[features["mam_snouts"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
- if(pref_species.mutant_bodyparts["legs"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Legs
"
-
- dat += "[features["legs"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
- if(pref_species.mutant_bodyparts["deco_wings"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Decorative wings
"
-
- dat += "[features["deco_wings"]]"
- dat += " Change
"
-
- if(pref_species.mutant_bodyparts["insect_wings"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Insect wings
"
-
- dat += "[features["insect_wings"]]"
- dat += " Change
"
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
- if(pref_species.mutant_bodyparts["insect_fluff"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Insect Fluff
"
-
- dat += "[features["insect_fluff"]]"
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
- if(pref_species.mutant_bodyparts["taur"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Tauric Body
"
-
- dat += "[features["taur"]]"
-
- if(pref_species.mutant_bodyparts["insect_markings"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Insect markings
"
-
- dat += "[features["insect_markings"]]
"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
- if(pref_species.mutant_bodyparts["wings"] && GLOB.r_wings_list.len >1)
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Wings
"
-
- dat += "[features["wings"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
- if(pref_species.mutant_bodyparts["xenohead"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Caste Head
"
-
- dat += "[features["xenohead"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
- if(pref_species.mutant_bodyparts["xenotail"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Tail
"
-
- dat += "[features["xenotail"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
- if(pref_species.mutant_bodyparts["xenodorsal"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Dorsal Spines
"
-
- dat += "[features["xenodorsal"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
- if(pref_species.mutant_bodyparts["ipc_screen"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Screen
"
-
- dat += "[features["ipc_screen"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
- if(pref_species.mutant_bodyparts["ipc_antenna"])
- if(!mutant_category)
- dat += APPEARANCE_CATEGORY_COLUMN
-
- dat += "Antenna
"
-
- dat += "[features["ipc_antenna"]]"
-
- mutant_category++
- if(mutant_category >= MAX_MUTANT_ROWS)
- dat += ""
- mutant_category = 0
+ for(var/mutant_part in GLOB.all_mutant_parts)
+ var/part_name = pref_species.mutant_bodyparts[mutant_part]
+ if(part_name || GLOB.unlocked_mutant_parts[mutant_part]) //either its in the species, or it's unlocked and it doesn't matter (unlocked meaning any species can have it)
+ if(!mutant_category)
+ dat += APPEARANCE_CATEGORY_COLUMN
+ dat += "[part_name]
"
+ dat += "[features[mutant_part]]"
+ var/color_type = GLOB.colored_mutant_parts[mutant_part] //if it can be coloured, show the appropriate button
+ if(color_type)
+ dat += " Change
"
+ mutant_category++
+ if(mutant_category >= MAX_MUTANT_ROWS)
+ dat += ""
+ mutant_category = 0
if(mutant_category)
dat += ""
@@ -1919,7 +1629,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["tail_human"] = "None"
features["tail_lizard"] = "None"
- if("meats")
+ if("_type")
var/new_meat
new_meat = input(user, "Choose your character's meat type:", "Character Preference") as null|anything in GLOB.meat_types
if(new_meat)
@@ -2024,7 +1734,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(new_deco_wings)
features["deco_wings"] = new_deco_wings
- if("insect_fluffs")
+ if("insect_fluff")
var/new_insect_fluff
new_insect_fluff = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.insect_fluffs_list
if(new_insect_fluff)
From 8effb219e1b4f107f3b7deaec2c0268ffa4ced39 Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Wed, 5 Aug 2020 15:27:48 +0100
Subject: [PATCH 02/23] fix a bug and reduce it by 1 more line
---
code/modules/client/preferences.dm | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 291e4eac0e..25cae1a9e9 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -508,11 +508,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
mutant_category = 0
for(var/mutant_part in GLOB.all_mutant_parts)
- var/part_name = pref_species.mutant_bodyparts[mutant_part]
- if(part_name || GLOB.unlocked_mutant_parts[mutant_part]) //either its in the species, or it's unlocked and it doesn't matter (unlocked meaning any species can have it)
+ if(pref_species.mutant_bodyparts[mutant_part] || GLOB.unlocked_mutant_parts[mutant_part]) //either its in the species, or it's unlocked and it doesn't matter (unlocked meaning any species can have it)
if(!mutant_category)
dat += APPEARANCE_CATEGORY_COLUMN
- dat += "[part_name]
"
+ dat += "[GLOB.all_mutant_parts[mutant_part]]
"
dat += "[features[mutant_part]]"
var/color_type = GLOB.colored_mutant_parts[mutant_part] //if it can be coloured, show the appropriate button
if(color_type)
From 1f62a4bbf91f6796c2a0c88ddf75944b907f47fd Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Wed, 5 Aug 2020 15:29:07 +0100
Subject: [PATCH 03/23] typo
---
code/modules/client/preferences.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 25cae1a9e9..a42c4b89ac 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -1628,7 +1628,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["tail_human"] = "None"
features["tail_lizard"] = "None"
- if("_type")
+ if("meat_type")
var/new_meat
new_meat = input(user, "Choose your character's meat type:", "Character Preference") as null|anything in GLOB.meat_types
if(new_meat)
From f2c1b251194ce56b9364a2caa3046c2458c084f7 Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Wed, 5 Aug 2020 15:50:25 +0100
Subject: [PATCH 04/23] yes
---
code/_globalvars/lists/flavor_misc.dm | 2 +-
code/modules/client/preferences.dm | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index 6afa8ef0ce..9b7589345f 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -234,7 +234,7 @@ GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/o
//locked parts are those that your picked species requires to have
//unlocked parts are those that anyone can choose on customisation regardless
//parts not in unlocked, but in all, are thus locked
-GLOBAL_LIST_INIT(all_mutant_parts, list("tail_lizard" = "Tail", "mam_tail" = "Tail", "tail_human" = "Tail", "snout" = "Snout", "frills" = "Frills", "spines" = "Spines", "body_markings" = "Body Markings", "mam_body_markings" = "Species Markings" , "mam_ears" = "Ears", "ears" = "Ears", "mam_snouts" = "Snout", "legs" = "Legs", "deco_wings" = "Decorative Wings", "insect_wings" = "Insect Wings", "insect_fluff" = "Insect Fluff", "taur" = "Tauric Body", "insect_markings" = "Insect Markings", "wings" = "Wings", "xenohead" = "Caste Head", "xenotail" = "Tail", "xenodorsal" = "Dorsal Spines", "ipc_screen" = "Screen", "ipc_antenna" = "Antenna", "meat_type" = "Meat Type"))
+GLOBAL_LIST_INIT(all_mutant_parts, list("tail_lizard" = "Tail", "mam_tail" = "Tail", "tail_human" = "Tail", "snout" = "Snout", "frills" = "Frills", "spines" = "Spines", "body_markings" = "Body Markings", "mam_body_markings" = "Species Markings" , "mam_ears" = "Ears", "ears" = "Ears", "mam_snouts" = "Snout", "legs" = "Legs", "deco_wings" = "Decorative Wings", "insect_wings" = "Insect Wings", "insect_fluff" = "Insect Fluff", "taur" = "Tauric Body", "insect_markings" = "Insect Markings", "wings" = "Wings", "xenohead" = "Caste Head", "xenotail" = "Tail", "xenodorsal" = "Dorsal Spines", "ipc_screen" = "Screen", "ipc_antenna" = "Antenna", "meat_type" = "Meat Type", "horns" = "Horns"))
GLOBAL_LIST_INIT(unlocked_mutant_parts, list("meat_type", "horns"))
//parts in either of the above two lists that require a second option that allows them to be coloured
GLOBAL_LIST_INIT(colored_mutant_parts, list("insect_wings" = "wings_color", "deco_wings" = "wings_color", "horns" = "horns_color"))
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index a42c4b89ac..294e6713a5 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -508,7 +508,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
mutant_category = 0
for(var/mutant_part in GLOB.all_mutant_parts)
- if(pref_species.mutant_bodyparts[mutant_part] || GLOB.unlocked_mutant_parts[mutant_part]) //either its in the species, or it's unlocked and it doesn't matter (unlocked meaning any species can have it)
+ if(pref_species.mutant_bodyparts[mutant_part] || mutant_part in GLOB.unlocked_mutant_parts) //either its in the species, or it's unlocked and it doesn't matter (unlocked meaning any species can have it)
if(!mutant_category)
dat += APPEARANCE_CATEGORY_COLUMN
dat += "[GLOB.all_mutant_parts[mutant_part]]
"
From 14bc60955ffe828b29d9aa832be6231d5a72b3b0 Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Wed, 5 Aug 2020 16:31:27 +0100
Subject: [PATCH 05/23] unlocked
---
code/modules/client/client_procs.dm | 3 +++
code/modules/client/preferences.dm | 18 +++++++++---------
.../modules/mob/living/carbon/human/species.dm | 3 +++
3 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 5c9b1eec2e..62a997c938 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -988,3 +988,6 @@ GLOBAL_LIST_EMPTY(external_rsc_urls)
screen -= S
qdel(S)
char_render_holders = null
+
+/client/proc/can_have_part(part_name)
+ return prefs.pref_species.mutant_bodyparts[part_name] || part_name in GLOB.unlocked_mutant_parts //either they have it, or its unlocked
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 294e6713a5..bac373235c 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -508,7 +508,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
mutant_category = 0
for(var/mutant_part in GLOB.all_mutant_parts)
- if(pref_species.mutant_bodyparts[mutant_part] || mutant_part in GLOB.unlocked_mutant_parts) //either its in the species, or it's unlocked and it doesn't matter (unlocked meaning any species can have it)
+ if(parent.can_have_part(mutant_part))
if(!mutant_category)
dat += APPEARANCE_CATEGORY_COLUMN
dat += "[GLOB.all_mutant_parts[mutant_part]]
"
@@ -565,7 +565,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/tauric_shape = FALSE
if(features["cock_taur"])
var/datum/sprite_accessory/penis/P = GLOB.cock_shapes_list[features["cock_shape"]]
- if(P.taur_icon && pref_species.mutant_bodyparts["taur"])
+ if(P.taur_icon && parent.can_have_part("taur"))
var/datum/sprite_accessory/taur/T = GLOB.taur_list[features["taur"]]
if(T.taur_mode & P.accepted_taurs)
tauric_shape = TRUE
@@ -1493,14 +1493,14 @@ GLOBAL_LIST_EMPTY(preferences_datums)
pref_species = new newtype()
//let's ensure that no weird shit happens on species swapping.
custom_species = null
- if(!pref_species.mutant_bodyparts["body_markings"])
+ if(!parent.can_have_part("body_markings"))
features["body_markings"] = "None"
- if(!pref_species.mutant_bodyparts["mam_body_markings"])
+ if(!parent.can_have_part("mam_body_markings"))
features["mam_body_markings"] = "None"
- if(pref_species.mutant_bodyparts["mam_body_markings"])
+ if(parent.can_have_part("mam_body_markings"))
if(features["mam_body_markings"] == "None")
features["mam_body_markings"] = "Plain"
- if(pref_species.mutant_bodyparts["tail_lizard"])
+ if(parent.can_have_part("tail_lizard"))
features["tail_lizard"] = "Smooth"
if(pref_species.id == "felinid")
features["mam_tail"] = "Cat"
@@ -1881,7 +1881,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("cock_shape")
var/new_shape
var/list/hockeys = list()
- if(pref_species.mutant_bodyparts["taur"])
+ if(parent.can_have_part("taur"))
var/datum/sprite_accessory/taur/T = GLOB.taur_list[features["taur"]]
for(var/A in GLOB.cock_shapes_list)
var/datum/sprite_accessory/penis/P = GLOB.cock_shapes_list[A]
@@ -2488,10 +2488,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
character.dna.nameless = character.nameless
character.dna.custom_species = character.custom_species
- if(pref_species.mutant_bodyparts["meat_type"])
+ if(parent.can_have_part("meat_type"))
character.type_of_meat = GLOB.meat_types[features["meat_type"]]
- if(character.dna.species.mutant_bodyparts["legs"] && (character.dna.features["legs"] == "Digitigrade" || character.dna.features["legs"] == "Avian"))
+ if(parent.can_have_part("legs") && (character.dna.features["legs"] == "Digitigrade" || character.dna.features["legs"] == "Avian"))
pref_species.species_traits |= DIGITIGRADE
else
pref_species.species_traits -= DIGITIGRADE
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index dc7fe86aca..c1fb704a6d 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -123,6 +123,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
limbs_id = id
..()
+ //update our mutant bodyparts to include unlocked ones
+ mutant_bodyparts += GLOB.unlocked_mutant_parts
+
/proc/generate_selectable_species(clear = FALSE)
if(clear)
GLOB.roundstart_races = list()
From 6ba359e0a1769af16e094263d18fc9fdec95baf6 Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Wed, 5 Aug 2020 17:43:54 +0100
Subject: [PATCH 06/23] fix
---
code/modules/client/client_procs.dm | 2 +-
code/modules/client/preferences.dm | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 62a997c938..cfca66a2a6 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -990,4 +990,4 @@ GLOBAL_LIST_EMPTY(external_rsc_urls)
char_render_holders = null
/client/proc/can_have_part(part_name)
- return prefs.pref_species.mutant_bodyparts[part_name] || part_name in GLOB.unlocked_mutant_parts //either they have it, or its unlocked
+ return prefs.pref_species.mutant_bodyparts[part_name] || (part_name in GLOB.unlocked_mutant_parts)
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index bac373235c..c950c186e4 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -2488,10 +2488,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
character.dna.nameless = character.nameless
character.dna.custom_species = character.custom_species
- if(parent.can_have_part("meat_type"))
+ if((parent && parent.can_have_part("meat_type")) || pref_species.mutant_bodyparts["meat_type"])
character.type_of_meat = GLOB.meat_types[features["meat_type"]]
- if(parent.can_have_part("legs") && (character.dna.features["legs"] == "Digitigrade" || character.dna.features["legs"] == "Avian"))
+ if(((parent && parent.can_have_part("legs")) || pref_species.mutant_bodyparts["legs"]) && (character.dna.features["legs"] == "Digitigrade" || character.dna.features["legs"] == "Avian"))
pref_species.species_traits |= DIGITIGRADE
else
pref_species.species_traits -= DIGITIGRADE
From 815ddd1866271a5569cbbf309fa0f0eb24e072e3 Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Wed, 5 Aug 2020 21:34:26 -0700
Subject: [PATCH 07/23] oh boy
---
code/__HELPERS/text.dm | 2 +-
.../crafting/recipes/recipes_misc.dm | 10 ++++----
code/datums/materials/basemats.dm | 2 +-
code/game/machinery/doors/airlock_types.dm | 11 +++++++++
.../items/stacks/sheets/sheet_types.dm | 21 ++++++++---------
.../objects/items/stacks/tiles/tile_types.dm | 9 ++++++++
.../objects/structures/beds_chairs/chair.dm | 6 ++---
.../objects/structures/door_assembly_types.dm | 11 +++++++++
code/game/objects/structures/girders.dm | 8 +++----
code/game/objects/structures/tables_racks.dm | 2 +-
code/game/objects/structures/window.dm | 23 +++++++++++++++++++
code/game/turfs/simulated/floor/misc_floor.dm | 2 +-
code/game/turfs/simulated/wall/misc_walls.dm | 2 +-
code/modules/cargo/exports/sheets.dm | 4 ++--
.../chemistry/reagents/other_reagents.dm | 2 +-
code/modules/ruins/lavaland_ruin_code.dm | 2 +-
16 files changed, 85 insertions(+), 32 deletions(-)
diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm
index 9c71cfeb69..e6dac22d8d 100644
--- a/code/__HELPERS/text.dm
+++ b/code/__HELPERS/text.dm
@@ -811,4 +811,4 @@ GLOBAL_LIST_INIT(binary, list("0","1"))
corrupted_text += pick(corruption_options)
if(prob(15))
corrupted_text += pick(corruption_options)
- return corrupted_text
\ No newline at end of file
+ return corrupted_text
diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm
index 214c1b1427..8061258228 100644
--- a/code/datums/components/crafting/recipes/recipes_misc.dm
+++ b/code/datums/components/crafting/recipes/recipes_misc.dm
@@ -188,7 +188,7 @@
result = /obj/item/screwdriver/bronze
reqs = list(/obj/item/screwdriver = 1,
/obj/item/stack/cable_coil = 10,
- /obj/item/stack/tile/bronze = 1,
+ /obj/item/stack/sheet/bronze = 1,
/datum/reagent/water = 15)
time = 40
subcategory = CAT_TOOL
@@ -200,7 +200,7 @@
result = /obj/item/weldingtool/bronze
reqs = list(/obj/item/weldingtool = 1,
/obj/item/stack/cable_coil = 10,
- /obj/item/stack/tile/bronze = 1,
+ /obj/item/stack/sheet/bronze = 1,
/datum/reagent/water = 15)
time = 40
subcategory = CAT_TOOL
@@ -212,7 +212,7 @@
result = /obj/item/wirecutters/bronze
reqs = list(/obj/item/wirecutters = 1,
/obj/item/stack/cable_coil = 10,
- /obj/item/stack/tile/bronze = 1,
+ /obj/item/stack/sheet/bronze = 1,
/datum/reagent/water = 15)
time = 40
subcategory = CAT_TOOL
@@ -224,7 +224,7 @@
result = /obj/item/crowbar/bronze
reqs = list(/obj/item/crowbar = 1,
/obj/item/stack/cable_coil = 10,
- /obj/item/stack/tile/bronze = 1,
+ /obj/item/stack/sheet/bronze = 1,
/datum/reagent/water = 15)
time = 40
subcategory = CAT_TOOL
@@ -236,7 +236,7 @@
result = /obj/item/wrench/bronze
reqs = list(/obj/item/wrench = 1,
/obj/item/stack/cable_coil = 10,
- /obj/item/stack/tile/bronze = 1,
+ /obj/item/stack/sheet/bronze = 1,
/datum/reagent/water = 15)
time = 40
subcategory = CAT_TOOL
diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm
index 721af65449..1469965b57 100644
--- a/code/datums/materials/basemats.dm
+++ b/code/datums/materials/basemats.dm
@@ -287,7 +287,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
desc = "Clock Cult? Never heard of it."
color = "#92661A"
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE)
- sheet_type = /obj/item/stack/tile/bronze
+ sheet_type = /obj/item/stack/sheet/bronze
value_per_unit = 0.025
armor_modifiers = list("melee" = 1, "bullet" = 1, "laser" = 1, "energy" = 1, "bomb" = 1, "bio" = 1, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5)
beauty_modifier = 0.2
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index 530a287134..b34e97d374 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -310,6 +310,17 @@
opacity = 0
glass = TRUE
+/obj/machinery/door/airlock/bronze
+ name = "bronze airlock"
+ icon = 'icons/obj/doors/airlocks/clockwork/pinion_airlock.dmi'
+ overlays_file = 'icons/obj/doors/airlocks/clockwork/overlays.dmi'
+ assemblytype = /obj/structure/door_assembly/door_assembly_bronze
+
+/obj/machinery/door/airlock/bronze/seethru
+ assemblytype = /obj/structure/door_assembly/door_assembly_bronze/seethru
+ opacity = 0
+ glass = TRUE
+
//////////////////////////////////
/*
Station2 Airlocks
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 5f6341ea21..0326ed4d4b 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -672,6 +672,10 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \
GLOBAL_LIST_INIT(bronze_recipes, list ( \
new/datum/stack_recipe("wall gear", /obj/structure/girder/bronze, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE), \
null,
+ new/datum/stack_recipe("directional bronze window", /obj/structure/window/bronze/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \
+ new/datum/stack_recipe("fulltile bronze window", /obj/structure/window/bronze/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE), \
+ new/datum/stack_recipe("pinion airlock assembly", /obj/structure/door_assembly/door_assembly_bronze, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
+ new/datum/stack_recipe("bronze pinion airlock assembly", /obj/structure/door_assembly/door_assembly_bronze/seethru, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("bronze hat", /obj/item/clothing/head/bronze), \
new/datum/stack_recipe("bronze suit", /obj/item/clothing/suit/bronze), \
new/datum/stack_recipe("bronze boots", /obj/item/clothing/shoes/bronze), \
@@ -679,9 +683,10 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \
new/datum/stack_recipe("bronze chair", /obj/structure/chair/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("bronze bar stool", /obj/structure/chair/stool/bar/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("bronze stool", /obj/structure/chair/stool/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
+ new /datum/stack_Recipe("bronze floor tiles", /obj/item/stack/tile/bronze, 1, 4, 20), \
))
-/obj/item/stack/tile/bronze
+/obj/item/stack/sheet/bronze
name = "brass"
desc = "On closer inspection, what appears to be wholly-unsuitable-for-building brass is actually more structurally stable bronze."
singular_name = "bronze sheet"
@@ -690,27 +695,21 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \
icon = 'icons/obj/stack_objects.dmi'
custom_materials = list(/datum/material/bronze = MINERAL_MATERIAL_AMOUNT)
resistance_flags = FIRE_PROOF | ACID_PROOF
- throwforce = 10
- max_amount = 50
- throw_speed = 1
- throw_range = 3
- turf_type = /turf/open/floor/bronze
- novariants = FALSE
grind_results = list(/datum/reagent/iron = 5, /datum/reagent/copper = 3) //we have no "tin" reagent so this is the closest thing
- merge_type = /obj/item/stack/tile/bronze
+ merge_type = /obj/item/stack/sheet/bronze
tableVariant = /obj/structure/table/bronze
material_type = /datum/material/bronze
-/obj/item/stack/tile/bronze/attack_self(mob/living/user)
+/obj/item/stack/sheet/bronze/attack_self(mob/living/user)
if(is_servant_of_ratvar(user)) //still lets them build with it, just gives a message
to_chat(user, "Wha... what is this cheap imitation crap? This isn't brass at all!")
..()
-/obj/item/stack/tile/bronze/get_main_recipes()
+/obj/item/stack/sheet/bronze/get_main_recipes()
. = ..()
. += GLOB.bronze_recipes
-/obj/item/stack/tile/bronze/thirty
+/obj/item/stack/sheet/bronze/thirty
amount = 30
/*
diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm
index 13fca1e8fe..0d85e897d2 100644
--- a/code/game/objects/items/stacks/tiles/tile_types.dm
+++ b/code/game/objects/items/stacks/tiles/tile_types.dm
@@ -513,3 +513,12 @@
icon_state = "material_tile"
turf_type = /turf/open/floor/material
material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS
+
+/obj/item/stack/tile/bronze
+ name = "bronze tile"
+ singular_name = "bronze floor tile"
+ desc = "A tile made out of bronze. Looks like clockwork."
+ icon_state = "material_tile"
+ color = "#92661A"
+ turf_type = /turf/open/floor/bronze
+ custom_materials = list(/datum/material/bronze = 250)
diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm
index 299ba7b659..5ff3b1988e 100644
--- a/code/game/objects/structures/beds_chairs/chair.dm
+++ b/code/game/objects/structures/beds_chairs/chair.dm
@@ -454,7 +454,7 @@
desc = "A bronze bar stool with red silk for a pillow."
icon_state = "barbrass"
item_chair = /obj/item/chair/stool/bar/bronze
- buildstacktype = /obj/item/stack/tile/bronze
+ buildstacktype = /obj/item/stack/sheet/bronze
buildstackamount = 1
/obj/structure/chair/stool/brass
@@ -470,7 +470,7 @@
desc = "A bronze stool with a silk top for comfort."
icon_state = "stoolbrass"
item_chair = /obj/item/chair/stool/bronze
- buildstacktype = /obj/item/stack/tile/bronze
+ buildstacktype = /obj/item/stack/sheet/bronze
buildstackamount = 1
/obj/item/chair/stool/brass
@@ -575,7 +575,7 @@
desc = "A spinny chair made of bronze. It has little cogs for wheels!"
anchored = FALSE
icon_state = "brass_chair"
- buildstacktype = /obj/item/stack/tile/bronze
+ buildstacktype = /obj/item/stack/sheet/bronze
buildstackamount = 1
item_chair = null
diff --git a/code/game/objects/structures/door_assembly_types.dm b/code/game/objects/structures/door_assembly_types.dm
index fe9c4e7bbc..5fb454b5bc 100644
--- a/code/game/objects/structures/door_assembly_types.dm
+++ b/code/game/objects/structures/door_assembly_types.dm
@@ -240,3 +240,14 @@
airlock_type = /obj/machinery/door/airlock/wood
mineral = "wood"
glass_type = /obj/machinery/door/airlock/wood/glass
+
+/obj/structure/door_assembly/door_assembly_bronze
+ name = "bronze airlock assembly"
+ icon = 'icons/obj/doors/airlocks/clockwork/pinion_airlock.dmi'
+ base_name = "bronze airlock"
+ airlock_type = /obj/machinery/door/airlock/bronze
+ noglass = TRUE
+ material_type = /obj/item/stack/tile/bronze
+
+/obj/structure/door_assembly/door_assembly_bronze/seethru
+ airlock_type = /obj/machinery/door/airlock/bronze/seethru
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index ff62b9cc48..87cfbb56e0 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -442,19 +442,19 @@
to_chat(user, "You start slicing apart [src]...")
if(W.use_tool(src, user, 40, volume=50))
to_chat(user, "You slice apart [src].")
- var/obj/item/stack/tile/bronze/B = new(drop_location(), 2)
+ var/obj/item/stack/sheet/bronze/B = new(drop_location(), 2)
transfer_fingerprints_to(B)
qdel(src)
else if(istype(W, /obj/item/pickaxe/drill/jackhammer))
to_chat(user, "Your jackhammer smashes through the girder!")
- var/obj/item/stack/tile/bronze/B = new(drop_location(), 2)
+ var/obj/item/stack/sheet/bronze/B = new(drop_location(), 2)
transfer_fingerprints_to(B)
W.play_tool_sound(src)
qdel(src)
- else if(istype(W, /obj/item/stack/tile/bronze))
- var/obj/item/stack/tile/bronze/B = W
+ else if(istype(W, /obj/item/stack/sheet/bronze))
+ var/obj/item/stack/sheet/bronze/B = W
if(B.get_amount() < 2)
to_chat(user, "You need at least two bronze sheets to build a bronze wall!")
return 0
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index a553e63b0f..9f91d2c5e0 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -597,7 +597,7 @@
icon = 'icons/obj/smooth_structures/brass_table.dmi'
icon_state = "brass_table"
resistance_flags = FIRE_PROOF | ACID_PROOF
- buildstack = /obj/item/stack/tile/bronze
+ buildstack = /obj/item/stack/sheet/bronze
canSmoothWith = list(/obj/structure/table/reinforced/brass, /obj/structure/table/bronze)
/obj/structure/table/bronze/tablelimbsmash(mob/living/user, mob/living/pushed_mob)
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 6aae4955f1..8be19c110e 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -875,3 +875,26 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
return
..()
update_icon()
+
+/obj/structure/window/bronze
+ name = "brass window"
+ desc = "A paper-thin pane of translucent yet reinforced brass. Nevermind, this is just weak bronze!"
+ icon = 'icons/obj/smooth_structures/clockwork_window.dmi'
+ icon_state = "clockwork_window_single"
+ glass_type = /obj/item/stack/tile/bronze
+
+/obj/structure/window/bronze/unanchored
+ anchored = FALSE
+
+/obj/structure/window/bronze/fulltile
+ icon_state = "clockwork_window"
+ smoothing_flags = SMOOTH_TRUE
+ canSmoothWith = null
+ fulltile = TRUE
+ flags_1 = PREVENT_CLICK_UNDER_1
+ dir = FULLTILE_WINDOW_DIR
+ max_integrity = 50
+ glass_amount = 2
+
+/obj/structure/window/bronze/fulltile/unanchored
+ anchored = FALSE
diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm
index f6e70f8ef5..5075bb613e 100644
--- a/code/game/turfs/simulated/floor/misc_floor.dm
+++ b/code/game/turfs/simulated/floor/misc_floor.dm
@@ -259,7 +259,7 @@
desc = "Some heavy bronze tiles."
icon = 'icons/obj/clockwork_objects.dmi'
icon_state = "clockwork_floor"
- floor_tile = /obj/item/stack/tile/bronze
+ floor_tile = /obj/item/stack/sheet/bronze
/turf/open/floor/padded
name = "padded floor"
diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm
index d445be91cb..7938d9bf4d 100644
--- a/code/game/turfs/simulated/wall/misc_walls.dm
+++ b/code/game/turfs/simulated/wall/misc_walls.dm
@@ -199,6 +199,6 @@
desc = "A huge chunk of bronze, decorated like gears and cogs."
icon = 'icons/turf/walls/clockwork_wall.dmi'
icon_state = "clockwork_wall"
- sheet_type = /obj/item/stack/tile/bronze
+ sheet_type = /obj/item/stack/sheet/bronze
sheet_amount = 2
girder_type = /obj/structure/girder/bronze
diff --git a/code/modules/cargo/exports/sheets.dm b/code/modules/cargo/exports/sheets.dm
index a562210164..b0676fbde2 100644
--- a/code/modules/cargo/exports/sheets.dm
+++ b/code/modules/cargo/exports/sheets.dm
@@ -138,11 +138,11 @@
message = "of bones"
export_types = list(/obj/item/stack/sheet/bone)
-/datum/export/stack/bronze
+/datum/export/stack/sheet/bronze
unit_name = "tiles"
cost = 5
message = "of brozne"
- export_types = list(/obj/item/stack/tile/bronze)
+ export_types = list(/obj/item/stack/sheet/bronze)
/datum/export/stack/brass
unit_name = "tiles"
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index 81ad676613..020579b719 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -883,7 +883,7 @@
if(istype(O, /obj/item/stack/sheet/metal))
var/obj/item/stack/sheet/metal/M = O
reac_volume = min(reac_volume, M.amount)
- new/obj/item/stack/tile/bronze(get_turf(M), reac_volume)
+ new/obj/item/stack/sheet/bronze(get_turf(M), reac_volume)
M.use(reac_volume)
/datum/reagent/nitrogen
diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm
index 45b6939f42..e572f1ee02 100644
--- a/code/modules/ruins/lavaland_ruin_code.dm
+++ b/code/modules/ruins/lavaland_ruin_code.dm
@@ -93,7 +93,7 @@
/obj/item/stack/sheet/mineral/adamantine = /datum/species/golem/adamantine,
/obj/item/stack/sheet/plastic = /datum/species/golem/plastic,
/obj/item/stack/tile/brass = /datum/species/golem/clockwork,
- /obj/item/stack/tile/bronze = /datum/species/golem/bronze,
+ /obj/item/stack/sheet/bronze = /datum/species/golem/bronze,
/obj/item/stack/sheet/cardboard = /datum/species/golem/cardboard,
/obj/item/stack/sheet/leather = /datum/species/golem/leather,
/obj/item/stack/sheet/bone = /datum/species/golem/bone,
From 2a0f2a38a7507112e077394898e4fb5cfd581de3 Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Wed, 5 Aug 2020 21:42:05 -0700
Subject: [PATCH 08/23] Fix
---
code/game/objects/items/stacks/sheets/sheet_types.dm | 2 +-
code/game/objects/structures/window.dm | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 0326ed4d4b..305c2ab276 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -683,7 +683,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \
new/datum/stack_recipe("bronze chair", /obj/structure/chair/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("bronze bar stool", /obj/structure/chair/stool/bar/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("bronze stool", /obj/structure/chair/stool/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
- new /datum/stack_Recipe("bronze floor tiles", /obj/item/stack/tile/bronze, 1, 4, 20), \
+ new /datum/stack_recipe("bronze floor tiles", /obj/item/stack/tile/bronze, 1, 4, 20), \
))
/obj/item/stack/sheet/bronze
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 8be19c110e..17dacf0fe1 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -888,7 +888,6 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
/obj/structure/window/bronze/fulltile
icon_state = "clockwork_window"
- smoothing_flags = SMOOTH_TRUE
canSmoothWith = null
fulltile = TRUE
flags_1 = PREVENT_CLICK_UNDER_1
From d6a5442a372011ef1cf9e6ed0cde0cf942404d93 Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Thu, 6 Aug 2020 12:00:15 -0700
Subject: [PATCH 09/23] fix
---
code/game/objects/structures/window.dm | 1 +
1 file changed, 1 insertion(+)
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 17dacf0fe1..888098c535 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -889,6 +889,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
/obj/structure/window/bronze/fulltile
icon_state = "clockwork_window"
canSmoothWith = null
+ smooth = SMOOTH_TRUE
fulltile = TRUE
flags_1 = PREVENT_CLICK_UNDER_1
dir = FULLTILE_WINDOW_DIR
From 6f754188acad2f6c7958e31431537c98eef38901 Mon Sep 17 00:00:00 2001
From: Hatterhat
Date: Fri, 7 Aug 2020 18:02:33 -0500
Subject: [PATCH 10/23] funny guns go pew
---
code/game/objects/effects/spawners/bundle.dm | 23 ++++++++++++++++++++
code/game/objects/items/storage/toolbox.dm | 19 ++++++++--------
code/modules/cargo/packs/armory.dm | 8 ++++---
code/modules/cargo/packs/security.dm | 13 +++++++----
4 files changed, 47 insertions(+), 16 deletions(-)
diff --git a/code/game/objects/effects/spawners/bundle.dm b/code/game/objects/effects/spawners/bundle.dm
index 3f2701c03f..b75df644eb 100644
--- a/code/game/objects/effects/spawners/bundle.dm
+++ b/code/game/objects/effects/spawners/bundle.dm
@@ -168,3 +168,26 @@
items = list(
/obj/item/clothing/mask/gas/sexymime,
/obj/item/clothing/under/rank/civilian/mime/sexy)
+
+/obj/effect/spawner/bundle/crate/Initialize(mapload)
+ if(items && items.len)
+ var/turf/T = get_turf(src)
+ var/obj/structure/closet/LC = locate(/obj/structure/closet) in T
+ if(LC)
+ for(var/path in items)
+ new path(LC)
+ return INITIALIZE_HINT_QDEL
+
+/obj/effect/spawner/bundle/crate/mosin
+ name = "Mosin-Nagant spawner"
+ items = list(
+ /obj/item/gun/ballistic/shotgun/boltaction,
+ /obj/item/ammo_box/a762
+ )
+
+/obj/effect/spawner/bundle/crate/surplusrifle
+ name = "surplus rifle spawner"
+ items = list(
+ /obj/item/gun/ballistic/automatic/surplus,
+ /obj/item/ammo_box/magazine/m10mm/rifle
+ )
diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm
index ed0ee8ad07..a6b34c59e3 100644
--- a/code/game/objects/items/storage/toolbox.dm
+++ b/code/game/objects/items/storage/toolbox.dm
@@ -245,19 +245,20 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons)
new /obj/item/stack/cable_coil/white(src)
/obj/item/storage/toolbox/ammo
- name = "ammo box"
- desc = "It contains a few clips."
+ name = "ammunition case (7.62mm stripper clips)"
+ desc = "It contains a few 7.62 stripper clips."
icon_state = "ammobox"
item_state = "ammobox"
+ var/ammotype = /obj/item/ammo_box/a762 // make sure this is a typepath thanks
/obj/item/storage/toolbox/ammo/PopulateContents()
- new /obj/item/ammo_box/a762(src)
- new /obj/item/ammo_box/a762(src)
- new /obj/item/ammo_box/a762(src)
- new /obj/item/ammo_box/a762(src)
- new /obj/item/ammo_box/a762(src)
- new /obj/item/ammo_box/a762(src)
- new /obj/item/ammo_box/a762(src)
+ for (var/i = 0, i < 7, i++)
+ new ammotype(src)
+
+/obj/item/storage/toolbox/ammo/surplus
+ name = "ammunition case (10mm rifle magazines)"
+ desc = "It contains a few 10mm rifle magazines."
+ ammotype = /obj/item/ammo_box/magazine/m10mm/rifle
/obj/item/storage/toolbox/infiltrator
name = "insidious case"
diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm
index 835457536f..c065789e56 100644
--- a/code/modules/cargo/packs/armory.dm
+++ b/code/modules/cargo/packs/armory.dm
@@ -158,11 +158,10 @@
/datum/supply_pack/security/armory/russian
name = "Russian Surplus Crate"
- desc = "Hello Comrade, we have the most modern russian military equipment the black market can offer, for the right price of course. Sadly we couldnt remove the lock so it requires Armory access to open."
+ desc = "Hello Comrade, we have the most modern Russian military equipment the black market can offer, for the right price of course. Sadly we couldn't remove the lock so it requires Armory access to open."
cost = 7500
contraband = TRUE
contains = list(/obj/item/reagent_containers/food/snacks/rationpack,
- /obj/item/ammo_box/magazine/m10mm/rifle,
/obj/item/clothing/suit/armor/vest/russian,
/obj/item/clothing/head/helmet/rus_helmet,
/obj/item/clothing/shoes/russian,
@@ -172,7 +171,10 @@
/obj/item/clothing/mask/russian_balaclava,
/obj/item/clothing/head/helmet/rus_ushanka,
/obj/item/clothing/suit/armor/vest/russian_coat,
- /obj/item/gun/ballistic/automatic/surplus)
+ /obj/effect/spawner/bundle/crate/mosin,
+ /obj/item/storage/toolbox/ammo,
+ /obj/effect/spawner/bundle/crate/surplusrifle,
+ /obj/item/storage/toolbox/ammo/surplus)
crate_name = "surplus military crate"
/datum/supply_pack/security/armory/russian/fill(obj/structure/closet/crate/C)
diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm
index 738eb03fbf..cf9cc5e0d1 100644
--- a/code/modules/cargo/packs/security.dm
+++ b/code/modules/cargo/packs/security.dm
@@ -100,7 +100,7 @@
crate_name = "surplus russian clothing"
crate_type = /obj/structure/closet/crate/internals
-/datum/supply_pack/security/russianmosin
+/datum/supply_pack/security/russian_partisan
name = "Russian Partisan Gear"
desc = "An old russian partisan equipment crate, comes with a full russian outfit, a loaded surplus rifle and a second magazine."
contraband = TRUE
@@ -112,12 +112,17 @@
/obj/item/clothing/suit/armor/bulletproof,
/obj/item/clothing/head/helmet/alt,
/obj/item/clothing/gloves/tackler/combat/insulated,
- /obj/item/clothing/mask/gas,
- /obj/item/ammo_box/magazine/m10mm/rifle,
- /obj/item/gun/ballistic/automatic/surplus)
+ /obj/item/clothing/mask/gas)
crate_name = "surplus russian gear"
crate_type = /obj/structure/closet/crate/internals
+/datum/supply_pack/security/russian_partisan/fill(obj/structure/closet/crate/C)
+ ..()
+ if(prob(20))
+ new /obj/effect/spawner/bundle/crate/mosin(C)
+ else
+ new /obj/effect/spawner/bundle/crate/surplusrifle(C)
+
/datum/supply_pack/security/sechardsuit
name = "Sec Hardsuit"
desc = "One Sec Hardsuit with a small air tank and mask."
From ce0a5b701606c8c7676efe6eadc9ef9a3623766b Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Sat, 8 Aug 2020 15:26:25 +0100
Subject: [PATCH 11/23] only horns is unlocked now
---
code/_globalvars/lists/flavor_misc.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index 9b7589345f..b7d3d71574 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -235,6 +235,6 @@ GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/o
//unlocked parts are those that anyone can choose on customisation regardless
//parts not in unlocked, but in all, are thus locked
GLOBAL_LIST_INIT(all_mutant_parts, list("tail_lizard" = "Tail", "mam_tail" = "Tail", "tail_human" = "Tail", "snout" = "Snout", "frills" = "Frills", "spines" = "Spines", "body_markings" = "Body Markings", "mam_body_markings" = "Species Markings" , "mam_ears" = "Ears", "ears" = "Ears", "mam_snouts" = "Snout", "legs" = "Legs", "deco_wings" = "Decorative Wings", "insect_wings" = "Insect Wings", "insect_fluff" = "Insect Fluff", "taur" = "Tauric Body", "insect_markings" = "Insect Markings", "wings" = "Wings", "xenohead" = "Caste Head", "xenotail" = "Tail", "xenodorsal" = "Dorsal Spines", "ipc_screen" = "Screen", "ipc_antenna" = "Antenna", "meat_type" = "Meat Type", "horns" = "Horns"))
-GLOBAL_LIST_INIT(unlocked_mutant_parts, list("meat_type", "horns"))
+GLOBAL_LIST_INIT(unlocked_mutant_parts, list("horns"))
//parts in either of the above two lists that require a second option that allows them to be coloured
GLOBAL_LIST_INIT(colored_mutant_parts, list("insect_wings" = "wings_color", "deco_wings" = "wings_color", "horns" = "horns_color"))
From 0decd32e5436f82749f8850f6ec324f1b6acc404 Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Sat, 8 Aug 2020 18:27:54 -0700
Subject: [PATCH 12/23] Update living_active_block.dm
---
code/modules/mob/living/living_active_block.dm | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/code/modules/mob/living/living_active_block.dm b/code/modules/mob/living/living_active_block.dm
index 729e7d3d7a..be22575c0f 100644
--- a/code/modules/mob/living/living_active_block.dm
+++ b/code/modules/mob/living/living_active_block.dm
@@ -13,7 +13,7 @@
DelayNextAction(data.block_end_click_cd_add)
return TRUE
-/mob/living/proc/ACTIVE_BLOCK_START(obj/item/I)
+/mob/living/proc/active_block_start(obj/item/I)
if(combat_flags & (COMBAT_FLAG_ACTIVE_BLOCK_STARTING | COMBAT_FLAG_ACTIVE_BLOCKING))
return FALSE
if(!(I in held_items))
@@ -109,7 +109,7 @@
animate(src, pixel_x = get_standard_pixel_x_offset(), pixel_y = get_standard_pixel_y_offset(), time = 2.5, FALSE, SINE_EASING | EASE_IN, ANIMATION_END_NOW)
return
combat_flags &= ~(COMBAT_FLAG_ACTIVE_BLOCK_STARTING)
- ACTIVE_BLOCK_START(I)
+ active_block_start(I)
/**
* Gets the first item we can that can block, but if that fails, default to active held item.COMSIG_ENABLE_COMBAT_MODE
@@ -180,6 +180,12 @@
/// Apply the stamina damage to our user, notice how damage argument is stamina_amount.
/obj/item/proc/active_block_do_stamina_damage(mob/living/owner, atom/object, stamina_amount, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
+ if(istype(object, /obj/item/projectile))
+ var/obj/item/projectile/P = O
+ if(P.stamina)
+ var/blocked = active_block_calculate_final_damage(owner, object, stamina, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return)
+ var/stam = active_block_stamina_cost(owner, object, blocked, attack_text, ATTACK_TYPE_PROJECTILE, armour_penetration, attacker, def_zone, final_block_chance, block_return)
+ stamina_amount += stam
var/datum/block_parry_data/data = get_block_parry_data()
if(iscarbon(owner))
var/mob/living/carbon/C = owner
From 369af2a83ac3585436955f4e66b057ec63f850da Mon Sep 17 00:00:00 2001
From: Detective Google <48196179+Detective-Google@users.noreply.github.com>
Date: Mon, 10 Aug 2020 14:50:37 -0500
Subject: [PATCH 13/23] adds more heatpipes to snaxi sm
---
_maps/map_files/Snaxi/Snaxi.dmm | 284 ++++++++++++++++----------------
1 file changed, 142 insertions(+), 142 deletions(-)
diff --git a/_maps/map_files/Snaxi/Snaxi.dmm b/_maps/map_files/Snaxi/Snaxi.dmm
index 43e7915ca4..447c0fce85 100644
--- a/_maps/map_files/Snaxi/Snaxi.dmm
+++ b/_maps/map_files/Snaxi/Snaxi.dmm
@@ -1640,8 +1640,8 @@
"aiS" = (
/obj/structure/closet/secure_closet/CMO,
/obj/machinery/keycard_auth{
- pixel_y = 4;
- pixel_x = -24
+ pixel_x = -24;
+ pixel_y = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -3147,8 +3147,8 @@
dir = 4
},
/obj/machinery/conveyor{
- id = "packageSort2";
- dir = 1
+ dir = 1;
+ id = "packageSort2"
},
/obj/machinery/disposal/deliveryChute,
/obj/structure/window/reinforced{
@@ -4061,9 +4061,9 @@
/area/crew_quarters/dorms)
"aNS" = (
/obj/machinery/turnstile{
+ dir = 4;
name = "Genpop Entrance Turnstile";
- req_access_txt = "69";
- dir = 4
+ req_access_txt = "69"
},
/obj/machinery/door/poddoor/preopen{
id = "permacell1";
@@ -4554,9 +4554,9 @@
/area/maintenance/solars/port/fore)
"bcc" = (
/obj/machinery/door/window/brigdoor/security/cell{
+ dir = 1;
id = "Cell 2";
- name = "Cell 2";
- dir = 1
+ name = "Cell 2"
},
/obj/effect/turf_decal/vg_decals/numbers/two,
/obj/machinery/door/poddoor/preopen{
@@ -5031,9 +5031,9 @@
"brE" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/obj/machinery/door/window/southleft{
+ dir = 1;
name = "Court Cell";
- req_access_txt = "2";
- dir = 1
+ req_access_txt = "2"
},
/obj/structure/window/reinforced{
dir = 8
@@ -5284,9 +5284,9 @@
dir = 1
},
/obj/machinery/turnstile{
+ dir = 4;
name = "Genpop Entrance Turnstile";
- req_access_txt = "69";
- dir = 4
+ req_access_txt = "69"
},
/turf/open/floor/plasteel/dark,
/area/security/brig)
@@ -6957,9 +6957,9 @@
name = "west facing firelock"
},
/obj/machinery/door/window/southleft{
+ dir = 8;
name = "Test Chamber";
- req_access_txt = "55";
- dir = 8
+ req_access_txt = "55"
},
/obj/machinery/door/poddoor/preopen{
id = "xenobio2";
@@ -6975,9 +6975,9 @@
dir = 10
},
/obj/machinery/door/window/southleft{
+ dir = 4;
name = "Test Chamber";
- req_access_txt = "55";
- dir = 4
+ req_access_txt = "55"
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
@@ -7072,9 +7072,9 @@
dir = 4
},
/obj/machinery/door/window/brigdoor{
+ dir = 1;
name = "Reception Desk";
- req_access_txt = "63";
- dir = 1
+ req_access_txt = "63"
},
/obj/machinery/door/window/brigdoor{
dir = 8;
@@ -7475,8 +7475,8 @@
},
/obj/structure/table/wood,
/obj/machinery/recharger{
- pixel_y = 4;
- pixel_x = -7
+ pixel_x = -7;
+ pixel_y = 4
},
/obj/item/book/manual/wiki/security_space_law{
pixel_x = 6;
@@ -9296,8 +9296,8 @@
},
/obj/machinery/camera{
c_tag = "Medbay West";
- network = list("ss13","medbay");
- dir = 4
+ dir = 4;
+ network = list("ss13","medbay")
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
@@ -9414,9 +9414,9 @@
req_access_txt = "10"
},
/obj/machinery/door/window/northright{
+ dir = 4;
name = "Engineering Delivery";
- req_access_txt = "10";
- dir = 4
+ req_access_txt = "10"
},
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel/dark,
@@ -10387,8 +10387,8 @@
dir = 4
},
/obj/machinery/shower{
- pixel_y = 20;
- pixel_x = 11
+ pixel_x = 11;
+ pixel_y = 20
},
/obj/structure/disposalpipe/segment{
dir = 4
@@ -10760,8 +10760,8 @@
/obj/structure/table/wood,
/obj/item/book/manual/wiki/security_space_law,
/obj/item/flashlight/lamp/green{
- pixel_y = 1;
- pixel_x = -7
+ pixel_x = -7;
+ pixel_y = 1
},
/turf/open/floor/wood,
/area/security/courtroom)
@@ -11207,9 +11207,9 @@
dir = 4
},
/obj/machinery/turnstile{
+ dir = 8;
name = "Genpop Exit Turnstile";
- req_access_txt = "70";
- dir = 8
+ req_access_txt = "70"
},
/turf/open/floor/plasteel/dark,
/area/security/brig)
@@ -12173,8 +12173,8 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/button/flasher{
id = "PCell 1";
- pixel_y = 9;
- pixel_x = -37
+ pixel_x = -37;
+ pixel_y = 9
},
/turf/open/floor/plasteel/dark,
/area/security/brig)
@@ -12356,9 +12356,9 @@
dir = 4
},
/obj/machinery/turnstile{
+ dir = 8;
name = "Genpop Exit Turnstile";
- req_access_txt = "70";
- dir = 8
+ req_access_txt = "70"
},
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -13510,9 +13510,9 @@
icon_state = "1-4"
},
/obj/machinery/door/window/brigdoor/security/cell{
+ dir = 8;
id = "Cell 1";
- name = "Cell 1";
- dir = 8
+ name = "Cell 1"
},
/obj/effect/turf_decal/vg_decals/numbers/one,
/obj/machinery/door/poddoor/preopen{
@@ -14345,8 +14345,8 @@
name = "Door Bolt Control";
normaldoorcontrol = 1;
pixel_x = 24;
- specialfunctions = 4;
- pixel_y = -5
+ pixel_y = -5;
+ specialfunctions = 4
},
/obj/machinery/light/small{
dir = 8
@@ -14836,8 +14836,8 @@
/obj/structure/table/wood,
/obj/item/book/manual/wiki/security_space_law,
/obj/item/flashlight/lamp/green{
- pixel_y = 1;
- pixel_x = -7
+ pixel_x = -7;
+ pixel_y = 1
},
/turf/open/floor/wood,
/area/security/courtroom)
@@ -15538,9 +15538,9 @@
/obj/machinery/button/door{
id = "Secure Gate";
name = "Cell Shutters";
+ pixel_x = 3;
pixel_y = 24;
- req_access_txt = "2";
- pixel_x = 3
+ req_access_txt = "2"
},
/turf/open/floor/plasteel/dark,
/area/security/brig)
@@ -16835,9 +16835,9 @@
/obj/machinery/button/door{
id = "kitchen";
name = "Kitchen Shutters Control";
- req_access_txt = "28";
pixel_x = 24;
- pixel_y = -4
+ pixel_y = -4;
+ req_access_txt = "28"
},
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/kitchen)
@@ -17096,8 +17096,8 @@
dir = 8
},
/obj/machinery/computer/monitor{
- name = "bridge power monitoring console";
- dir = 1
+ dir = 1;
+ name = "bridge power monitoring console"
},
/obj/structure/cable{
icon_state = "0-2"
@@ -17235,8 +17235,8 @@
/obj/item/folder/blue,
/obj/item/stamp/law,
/obj/item/flashlight/lamp/green{
- pixel_y = 1;
- pixel_x = -7
+ pixel_x = -7;
+ pixel_y = 1
},
/turf/open/floor/plasteel/cult,
/area/lawoffice)
@@ -18426,9 +18426,9 @@
/area/engine/engineering)
"hVH" = (
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
+ dir = 1;
external_pressure_bound = 120;
- name = "killroom vent";
- dir = 1
+ name = "killroom vent"
},
/turf/open/floor/circuit/telecomms,
/area/science/xenobiology)
@@ -18466,8 +18466,8 @@
},
/obj/machinery/camera{
c_tag = "Surgery Observation";
- network = list("ss13","medbay");
- dir = 8
+ dir = 8;
+ network = list("ss13","medbay")
},
/turf/open/floor/plasteel/dark,
/area/medical/surgery)
@@ -18616,8 +18616,8 @@
/area/security/main)
"iam" = (
/obj/machinery/computer/slot_machine{
- pixel_y = 2;
- pixel_x = -7
+ pixel_x = -7;
+ pixel_y = 2
},
/turf/open/floor/wood,
/area/maintenance/bar)
@@ -19807,8 +19807,8 @@
/obj/machinery/button/door{
id = "hos";
name = "HoS Office Shutters";
- pixel_y = -26;
- pixel_x = -6
+ pixel_x = -6;
+ pixel_y = -26
},
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
@@ -21383,8 +21383,8 @@
pixel_y = -22
},
/obj/machinery/button/door/incinerator_vent_toxmix{
- pixel_y = -22;
- pixel_x = 9
+ pixel_x = 9;
+ pixel_y = -22
},
/obj/machinery/meter,
/turf/open/floor/plasteel/white,
@@ -24577,8 +24577,8 @@
"lMF" = (
/obj/machinery/camera{
c_tag = "Virology Module";
- network = list("ss13","medbay");
- dir = 1
+ dir = 1;
+ network = list("ss13","medbay")
},
/obj/structure/disposalpipe/segment{
dir = 4
@@ -26012,8 +26012,8 @@
/obj/machinery/button/door{
id = "engsm";
name = "Radiation Shutters Control";
- req_access_txt = "10";
- pixel_y = 25
+ pixel_y = 25;
+ req_access_txt = "10"
},
/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
/obj/effect/turf_decal/stripes/line{
@@ -26159,9 +26159,9 @@
dir = 4
},
/obj/machinery/turnstile{
+ dir = 8;
name = "Genpop Exit Turnstile";
- req_access_txt = "70";
- dir = 8
+ req_access_txt = "70"
},
/obj/structure/cable{
icon_state = "4-8"
@@ -27616,8 +27616,8 @@
/area/bridge)
"nFM" = (
/obj/machinery/atmospherics/components/binary/pump{
- name = "Port Mix to Engine";
- dir = 1
+ dir = 1;
+ name = "Port Mix to Engine"
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -27738,9 +27738,9 @@
"nJI" = (
/obj/structure/table/reinforced,
/obj/machinery/door/window/southleft{
+ dir = 4;
name = "Reception Desk";
- req_access_txt = "63";
- dir = 4
+ req_access_txt = "63"
},
/obj/structure/cable{
icon_state = "1-2"
@@ -27989,8 +27989,8 @@
/area/engine/engineering)
"nSX" = (
/obj/machinery/atmospherics/components/binary/pump/on{
- name = "Gas to Cooling Loop";
- dir = 1
+ dir = 1;
+ name = "Gas to Cooling Loop"
},
/turf/open/floor/plating,
/area/engine/atmospherics_engine)
@@ -30136,8 +30136,8 @@
/area/quartermaster/storage)
"pfb" = (
/obj/machinery/atmospherics/components/binary/pump/on{
- name = "Gas to Cooling Loop";
- dir = 1
+ dir = 1;
+ name = "Gas to Cooling Loop"
},
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -30845,10 +30845,10 @@
/area/ai_monitored/security/armory)
"pvY" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1;
external_pressure_bound = 140;
name = "killroom vent";
- pressure_checks = 0;
- dir = 1
+ pressure_checks = 0
},
/turf/open/floor/circuit/telecomms,
/area/science/xenobiology)
@@ -31385,9 +31385,9 @@
dir = 4
},
/obj/machinery/turnstile{
+ dir = 8;
name = "Genpop Exit Turnstile";
- req_access_txt = "70";
- dir = 8
+ req_access_txt = "70"
},
/obj/machinery/door/firedoor/border_only{
dir = 8;
@@ -32565,8 +32565,8 @@
},
/obj/machinery/button/ignition{
id = "testigniter";
- pixel_y = -30;
- pixel_x = -1
+ pixel_x = -1;
+ pixel_y = -30
},
/obj/structure/disposalpipe/trunk{
dir = 1
@@ -32750,9 +32750,9 @@
/area/maintenance/bar)
"qEz" = (
/obj/machinery/door/window/brigdoor/security/cell{
+ dir = 1;
id = "Cell 3";
- name = "Cell 3";
- dir = 1
+ name = "Cell 3"
},
/obj/effect/turf_decal/vg_decals/numbers/three,
/obj/machinery/door/poddoor/preopen{
@@ -33684,8 +33684,8 @@
"rgQ" = (
/obj/machinery/camera{
c_tag = "Xenobiology Test Chamber";
- network = list("xeno","rd");
- dir = 4
+ dir = 4;
+ network = list("xeno","rd")
},
/turf/open/floor/engine,
/area/science/xenobiology)
@@ -34451,8 +34451,8 @@
},
/obj/machinery/camera{
c_tag = "AI Chamber - Core";
- network = list("aicore");
- dir = 4
+ dir = 4;
+ network = list("aicore")
},
/turf/open/floor/circuit/off,
/area/ai_monitored/turret_protected/ai)
@@ -34542,9 +34542,9 @@
dir = 4
},
/obj/machinery/turnstile{
+ dir = 8;
name = "Genpop Exit Turnstile";
- req_access_txt = "70";
- dir = 8
+ req_access_txt = "70"
},
/obj/machinery/door/firedoor/border_only{
dir = 4;
@@ -37770,8 +37770,8 @@
},
/obj/machinery/camera{
c_tag = "Genetics Research";
- network = list("ss13","medbay");
- dir = 8
+ dir = 8;
+ network = list("ss13","medbay")
},
/turf/open/floor/plasteel/white,
/area/medical/genetics)
@@ -37932,9 +37932,9 @@
/obj/machinery/button/door{
id = "Secure Brig Control";
name = "Brig Control Shutters";
+ pixel_x = -6;
pixel_y = -3;
- req_access_txt = "2";
- pixel_x = -6
+ req_access_txt = "2"
},
/turf/open/floor/plasteel/dark,
/area/security/warden)
@@ -39014,8 +39014,8 @@
"uuY" = (
/obj/machinery/camera{
c_tag = "Toxins Lab West";
- network = list("ss13","rd");
- dir = 4
+ dir = 4;
+ network = list("ss13","rd")
},
/obj/structure/table/reinforced,
/obj/item/assembly/prox_sensor{
@@ -39406,9 +39406,9 @@
pixel_y = 23
},
/obj/machinery/door/window/southright{
+ dir = 8;
name = "Bar Door";
- req_one_access_txt = "25;28";
- dir = 8
+ req_one_access_txt = "25;28"
},
/obj/machinery/door/firedoor/border_only{
dir = 8;
@@ -39560,8 +39560,8 @@
dir = 4
},
/obj/machinery/computer/security/telescreen/prison{
- pixel_x = 29;
- dir = 8
+ dir = 8;
+ pixel_x = 29
},
/turf/open/floor/plasteel/cult,
/area/lawoffice)
@@ -39968,8 +39968,8 @@
dir = 8
},
/obj/structure/chair{
- name = "Judge";
- dir = 4
+ dir = 4;
+ name = "Judge"
},
/turf/open/floor/wood,
/area/security/courtroom)
@@ -40683,8 +40683,8 @@
},
/obj/machinery/button/ignition{
id = "Incinerator";
- pixel_y = 35;
- pixel_x = -1
+ pixel_x = -1;
+ pixel_y = 35
},
/turf/open/floor/plasteel,
/area/engine/atmospherics_engine)
@@ -42591,8 +42591,8 @@
"wtt" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/green{
- pixel_y = 13;
- pixel_x = -7
+ pixel_x = -7;
+ pixel_y = 13
},
/obj/item/camera/detective,
/obj/item/hand_labeler{
@@ -42600,8 +42600,8 @@
},
/obj/item/storage/briefcase,
/obj/item/storage/secure/safe{
- pixel_y = 36;
- pixel_x = 6
+ pixel_x = 6;
+ pixel_y = 36
},
/turf/open/floor/carpet,
/area/security/detectives_office)
@@ -44647,8 +44647,8 @@
areastring = "/area/engine/engineering";
dir = 8;
name = "Engineering APC";
- pixel_y = -1;
- pixel_x = -27
+ pixel_x = -27;
+ pixel_y = -1
},
/obj/machinery/firealarm{
dir = 1;
@@ -100071,11 +100071,11 @@ xUL
xUL
xUL
xUL
-xUL
-xUL
-xUL
rGc
jls
+rGc
+cly
+jls
odg
ucC
gUL
@@ -100327,12 +100327,12 @@ bum
bum
bum
bum
-bum
-bum
-bum
rGc
tdX
tdX
+tdX
+cly
+tdX
jPj
ucC
gUL
@@ -100584,12 +100584,12 @@ bum
bum
bum
bum
-bum
-bum
-bum
dQW
tdX
tdX
+tdX
+cly
+tdX
jls
ucC
gUL
@@ -100841,12 +100841,12 @@ bum
bum
bum
bum
-bum
-bum
-bum
rGc
tdX
tdX
+tdX
+cly
+tdX
jPj
ucC
cfs
@@ -101098,12 +101098,12 @@ bum
bum
bum
bum
-bum
-bum
-bum
dQW
tdX
tdX
+tdX
+cly
+tdX
jls
ucC
cfs
@@ -101355,11 +101355,11 @@ bum
bum
bum
bum
-bum
-bum
-bum
-xUL
+rGc
+jPj
dQW
+jPj
+rGc
flw
flw
lFN
@@ -101612,11 +101612,11 @@ bum
bum
bum
bum
-bum
-bum
-bum
-xUL
-xUL
+dQW
+cly
+cly
+cly
+jPj
dQW
jPj
bnU
@@ -101869,9 +101869,9 @@ bum
bum
bum
bum
-bum
-bum
-bum
+xUL
+xUL
+xUL
bDA
bYY
bYY
@@ -102126,9 +102126,9 @@ bum
bum
bum
bum
-bum
-bum
-bum
+xUL
+xUL
+xUL
gjW
xUL
xUL
@@ -102383,9 +102383,9 @@ bum
bum
bum
bum
-bum
-bum
-bum
+xUL
+xUL
+xUL
xUL
xUL
bum
@@ -102640,9 +102640,9 @@ bum
bum
bum
bum
-bum
-bum
-bum
+xUL
+xUL
+xUL
xUL
xUL
sTq
From 23b235d6ed001cc4b047aa3b2ee0d94ec05a8635 Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Tue, 11 Aug 2020 01:42:42 -0700
Subject: [PATCH 14/23] Update living_active_block.dm
---
code/modules/mob/living/living_active_block.dm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/modules/mob/living/living_active_block.dm b/code/modules/mob/living/living_active_block.dm
index be22575c0f..2493509e16 100644
--- a/code/modules/mob/living/living_active_block.dm
+++ b/code/modules/mob/living/living_active_block.dm
@@ -181,9 +181,9 @@
/// Apply the stamina damage to our user, notice how damage argument is stamina_amount.
/obj/item/proc/active_block_do_stamina_damage(mob/living/owner, atom/object, stamina_amount, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
if(istype(object, /obj/item/projectile))
- var/obj/item/projectile/P = O
+ var/obj/item/projectile/P = object
if(P.stamina)
- var/blocked = active_block_calculate_final_damage(owner, object, stamina, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return)
+ var/blocked = active_block_calculate_final_damage(owner, object, P.stamina, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return)
var/stam = active_block_stamina_cost(owner, object, blocked, attack_text, ATTACK_TYPE_PROJECTILE, armour_penetration, attacker, def_zone, final_block_chance, block_return)
stamina_amount += stam
var/datum/block_parry_data/data = get_block_parry_data()
From 82298fd56c796534d95566bb7e0a6c85b037906a Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Wed, 12 Aug 2020 17:03:23 +0100
Subject: [PATCH 15/23] yes
---
code/modules/client/preferences_savefile.dm | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 59d99674eb..07670b3ea5 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -5,7 +5,7 @@
// You do not need to raise this if you are adding new values that have sane defaults.
// Only raise this value when changing the meaning/format/name/layout of an existing value
// where you would want the updater procs below to run
-#define SAVEFILE_VERSION_MAX 33
+#define SAVEFILE_VERSION_MAX 34
/*
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
@@ -200,6 +200,13 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["silicon_flavor_text"] = html_encode(features["silicon_flavor_text"])
features["ooc_notes"] = html_encode(features["ooc_notes"])
+ if(current_version < 34)
+ if(features["horns"] && S["species"]) //check for saved horn data
+ var/datum/species/loaded_species = GLOB.species_list[S["species"]]
+ if(loaded_species && !initial(loaded_species.mutant_bodyparts["horns"])) //if saved horn data plus previously no initial horns were allowed on their race, wipe the horns
+ features["horns"] = null
+
+
/datum/preferences/proc/load_path(ckey,filename="preferences.sav")
if(!ckey)
return
@@ -224,7 +231,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
var/needs_update = savefile_needs_update(S)
if(needs_update == -2) //fatal, can't load any data
return 0
-
+
. = TRUE
//general preferences
@@ -443,7 +450,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
return 0
. = TRUE
-
+
//Species
var/species_id
S["species"] >> species_id
From e5d48e307a3ba33f3af08f68b4917acf54954936 Mon Sep 17 00:00:00 2001
From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Wed, 12 Aug 2020 17:04:37 +0100
Subject: [PATCH 16/23] woops
---
code/modules/client/preferences_savefile.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 07670b3ea5..dc66008027 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -203,7 +203,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(current_version < 34)
if(features["horns"] && S["species"]) //check for saved horn data
var/datum/species/loaded_species = GLOB.species_list[S["species"]]
- if(loaded_species && !initial(loaded_species.mutant_bodyparts["horns"])) //if saved horn data plus previously no initial horns were allowed on their race, wipe the horns
+ if(loaded_species && !initial(loaded_species.mutant_bodyparts)["horns"]) //if saved horn data plus previously no initial horns were allowed on their race, wipe the horns
features["horns"] = null
From a9caceb001d9225911f39047260ae44e8bf22c17 Mon Sep 17 00:00:00 2001
From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Fri, 14 Aug 2020 02:27:54 +0100
Subject: [PATCH 17/23] insect fluff!
---
code/_globalvars/lists/flavor_misc.dm | 2 +-
code/modules/client/preferences_savefile.dm | 13 ++++++++-----
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index b7d3d71574..7c2ebc5f0c 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -235,6 +235,6 @@ GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/o
//unlocked parts are those that anyone can choose on customisation regardless
//parts not in unlocked, but in all, are thus locked
GLOBAL_LIST_INIT(all_mutant_parts, list("tail_lizard" = "Tail", "mam_tail" = "Tail", "tail_human" = "Tail", "snout" = "Snout", "frills" = "Frills", "spines" = "Spines", "body_markings" = "Body Markings", "mam_body_markings" = "Species Markings" , "mam_ears" = "Ears", "ears" = "Ears", "mam_snouts" = "Snout", "legs" = "Legs", "deco_wings" = "Decorative Wings", "insect_wings" = "Insect Wings", "insect_fluff" = "Insect Fluff", "taur" = "Tauric Body", "insect_markings" = "Insect Markings", "wings" = "Wings", "xenohead" = "Caste Head", "xenotail" = "Tail", "xenodorsal" = "Dorsal Spines", "ipc_screen" = "Screen", "ipc_antenna" = "Antenna", "meat_type" = "Meat Type", "horns" = "Horns"))
-GLOBAL_LIST_INIT(unlocked_mutant_parts, list("horns"))
+GLOBAL_LIST_INIT(unlocked_mutant_parts, list("horns", "insect_fluff"))
//parts in either of the above two lists that require a second option that allows them to be coloured
GLOBAL_LIST_INIT(colored_mutant_parts, list("insect_wings" = "wings_color", "deco_wings" = "wings_color", "horns" = "horns_color"))
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index dc66008027..a5d7b3f8ca 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -5,7 +5,7 @@
// You do not need to raise this if you are adding new values that have sane defaults.
// Only raise this value when changing the meaning/format/name/layout of an existing value
// where you would want the updater procs below to run
-#define SAVEFILE_VERSION_MAX 34
+#define SAVEFILE_VERSION_MAX 35
/*
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
@@ -200,11 +200,14 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["silicon_flavor_text"] = html_encode(features["silicon_flavor_text"])
features["ooc_notes"] = html_encode(features["ooc_notes"])
- if(current_version < 34)
- if(features["horns"] && S["species"]) //check for saved horn data
+ if(current_version < 35)
+ if(S["species"])
var/datum/species/loaded_species = GLOB.species_list[S["species"]]
- if(loaded_species && !initial(loaded_species.mutant_bodyparts)["horns"]) //if saved horn data plus previously no initial horns were allowed on their race, wipe the horns
- features["horns"] = null
+ if(loaded_species)
+ for(var/unlocked_part in GLOB.unlocked_mutant_parts)
+ if(features[unlocked_part]) //check for saved data on an unlocked part
+ if(!initial(loaded_species.mutant_bodyparts)[unlocked_part]) //if saved horn data plus previously no initial horns were allowed on their race, wipe the horns
+ features[unlocked_part] = null
/datum/preferences/proc/load_path(ckey,filename="preferences.sav")
From 8b4fb136b224b05e672994418c5d04ee2a154b2b Mon Sep 17 00:00:00 2001
From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Fri, 14 Aug 2020 02:37:08 +0100
Subject: [PATCH 18/23] ok fuck it
---
code/modules/client/preferences_savefile.dm | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index a5d7b3f8ca..64c5e775b0 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -5,7 +5,7 @@
// You do not need to raise this if you are adding new values that have sane defaults.
// Only raise this value when changing the meaning/format/name/layout of an existing value
// where you would want the updater procs below to run
-#define SAVEFILE_VERSION_MAX 35
+#define SAVEFILE_VERSION_MAX 34
/*
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
@@ -200,16 +200,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["silicon_flavor_text"] = html_encode(features["silicon_flavor_text"])
features["ooc_notes"] = html_encode(features["ooc_notes"])
- if(current_version < 35)
- if(S["species"])
- var/datum/species/loaded_species = GLOB.species_list[S["species"]]
- if(loaded_species)
- for(var/unlocked_part in GLOB.unlocked_mutant_parts)
- if(features[unlocked_part]) //check for saved data on an unlocked part
- if(!initial(loaded_species.mutant_bodyparts)[unlocked_part]) //if saved horn data plus previously no initial horns were allowed on their race, wipe the horns
- features[unlocked_part] = null
-
-
/datum/preferences/proc/load_path(ckey,filename="preferences.sav")
if(!ckey)
return
From 7661a8c8b435c2d7a83f99c7696aaae220a6c409 Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Mon, 17 Aug 2020 00:12:25 +0000
Subject: [PATCH 19/23] Automatic changelog compile [ci skip]
---
html/changelog.html | 31 +++++++++++-----------
html/changelogs/.all_changelog.yml | 13 +++++++++
html/changelogs/AutoChangeLog-pr-12739.yml | 12 ---------
html/changelogs/AutoChangeLog-pr-13177.yml | 4 ---
4 files changed, 28 insertions(+), 32 deletions(-)
delete mode 100644 html/changelogs/AutoChangeLog-pr-12739.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-13177.yml
diff --git a/html/changelog.html b/html/changelog.html
index 261c23fc60..2159cfd50c 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -50,6 +50,21 @@
-->
+
17 August 2020
+
DeltaFire15 updated:
+
+ - Cogscarabs are no longer always Pogscarabs
+
+
Strazyplus updated:
+
+ - Added drakeborgs
+ - Added drakeplushies
+ - added drakeborg sprites
+ - added drakeplushie sprites
+ - changed some code - added drakeplushies to backpack loadout Removed duplicate voresleeper belly sprites from engdrake & jantidrake. [CC BY-NC-SA 3.0](https://creativecommons.org/licenses/by-nc-sa/3.0/)
+ - Added CC BY-NC-SA 3.0 license details to icon/mob/cyborg moved drakeborg.dmi to icon/mob/cyborg
+
+
16 August 2020
kiwedespars updated:
@@ -1387,22 +1402,6 @@
- Food carts now function as intended, allowing the pouring and mixing of drinks.
- slimes can now change their color using alter form
-
-
15 June 2020
-
Anturk, kevinz000 updated:
-
- - VV now properly allows access to datums in associative lists
- - SDQL2 printout has been upgraded for the 5th time.
-
-
kevinz000 updated:
-
- - plushies now work. credits to timothytea.
- - You can now tape knives to cleanbots
-
-
kevinz000 (port from VOREStation) updated:
-
- - Ported zoomba skins for cyborgs.
-
GoonStation 13 Development Team
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index d984c0c092..1efccd666e 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -26931,3 +26931,16 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
zeroisthebiggay:
- rscadd: tips
- rscdel: tips
+2020-08-17:
+ DeltaFire15:
+ - bugfix: Cogscarabs are no longer always Pogscarabs
+ Strazyplus:
+ - rscadd: Added drakeborgs
+ - rscadd: Added drakeplushies
+ - imageadd: added drakeborg sprites
+ - imageadd: added drakeplushie sprites
+ - code_imp: changed some code - added drakeplushies to backpack loadout Removed
+ duplicate voresleeper belly sprites from engdrake & jantidrake. [CC BY-NC-SA
+ 3.0](https://creativecommons.org/licenses/by-nc-sa/3.0/)
+ - rscadd: Added CC BY-NC-SA 3.0 license details to icon/mob/cyborg moved drakeborg.dmi
+ to icon/mob/cyborg
diff --git a/html/changelogs/AutoChangeLog-pr-12739.yml b/html/changelogs/AutoChangeLog-pr-12739.yml
deleted file mode 100644
index 324309ddc6..0000000000
--- a/html/changelogs/AutoChangeLog-pr-12739.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-author: "Strazyplus"
-delete-after: True
-changes:
- - rscadd: "Added drakeborgs"
- - rscadd: "Added drakeplushies"
- - imageadd: "added drakeborg sprites"
- - imageadd: "added drakeplushie sprites"
- - code_imp: "changed some code - added drakeplushies to backpack loadout
-Removed duplicate voresleeper belly sprites from engdrake & jantidrake.
-[CC BY-NC-SA 3.0](https://creativecommons.org/licenses/by-nc-sa/3.0/)"
- - rscadd: "Added CC BY-NC-SA 3.0 license details to icon/mob/cyborg
-moved drakeborg.dmi to icon/mob/cyborg"
diff --git a/html/changelogs/AutoChangeLog-pr-13177.yml b/html/changelogs/AutoChangeLog-pr-13177.yml
deleted file mode 100644
index e55e4973e9..0000000000
--- a/html/changelogs/AutoChangeLog-pr-13177.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "DeltaFire15"
-delete-after: True
-changes:
- - bugfix: "Cogscarabs are no longer always Pogscarabs"
From 1be6b8789725bd3c990c0b72338815d58cb527f8 Mon Sep 17 00:00:00 2001
From: CitadelStationBot
Date: Sun, 16 Aug 2020 20:20:07 -0500
Subject: [PATCH 20/23] Automatic changelog generation for PR #13045 [ci skip]
---
html/changelogs/AutoChangeLog-pr-13045.yml | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-13045.yml
diff --git a/html/changelogs/AutoChangeLog-pr-13045.yml b/html/changelogs/AutoChangeLog-pr-13045.yml
new file mode 100644
index 0000000000..ea813fe8c4
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-13045.yml
@@ -0,0 +1,5 @@
+author: "ported from tg"
+delete-after: True
+changes:
+ - rscadd: "bronze airlocks and windows can now be built"
+ - balance: "i also tweaked bronze flooring to be cheaper."
From dbf065526adb1fffd4459ab3bfdcb216e0ffb936 Mon Sep 17 00:00:00 2001
From: CitadelStationBot
Date: Sun, 16 Aug 2020 20:20:32 -0500
Subject: [PATCH 21/23] Automatic changelog generation for PR #13092 [ci skip]
---
html/changelogs/AutoChangeLog-pr-13092.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-13092.yml
diff --git a/html/changelogs/AutoChangeLog-pr-13092.yml b/html/changelogs/AutoChangeLog-pr-13092.yml
new file mode 100644
index 0000000000..fd8e39800f
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-13092.yml
@@ -0,0 +1,4 @@
+author: "silicons"
+delete-after: True
+changes:
+ - tweak: "stamina draining projectiles without stamina for their primary damage type now has their stamina damage taken into account for shield blocking, rather than the block being done for free for that."
From 6f0c6ca88df13dbe6a9d6afc990a74962ad01476 Mon Sep 17 00:00:00 2001
From: CitadelStationBot
Date: Sun, 16 Aug 2020 20:35:08 -0500
Subject: [PATCH 22/23] Automatic changelog generation for PR #13037 [ci skip]
---
html/changelogs/AutoChangeLog-pr-13037.yml | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-13037.yml
diff --git a/html/changelogs/AutoChangeLog-pr-13037.yml b/html/changelogs/AutoChangeLog-pr-13037.yml
new file mode 100644
index 0000000000..83dba115e9
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-13037.yml
@@ -0,0 +1,5 @@
+author: "timothyteakettle"
+delete-after: True
+changes:
+ - refactor: "snowflake code for mutant bodypart selection has been rewritten to be ~14x shorter"
+ - tweak: "meat type and horns can now be selected by any species"
From bdacd72f3d67f3b3314fc02d081489e9f4b1b18d Mon Sep 17 00:00:00 2001
From: CitadelStationBot
Date: Sun, 16 Aug 2020 20:38:56 -0500
Subject: [PATCH 23/23] Automatic changelog generation for PR #13067 [ci skip]
---
html/changelogs/AutoChangeLog-pr-13067.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-13067.yml
diff --git a/html/changelogs/AutoChangeLog-pr-13067.yml b/html/changelogs/AutoChangeLog-pr-13067.yml
new file mode 100644
index 0000000000..48e760b002
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-13067.yml
@@ -0,0 +1,4 @@
+author: "Hatterhat"
+delete-after: True
+changes:
+ - balance: "The funny blyat men have stumbled upon another surplus of Mosin-Nagants and are starting to pack them into crates again."