Revert "Merge remote-tracking branch 'upstream/master'"

This reverts commit f5cf7f6f5a, reversing
changes made to a32444dae7.
This commit is contained in:
QuoteFox
2021-03-27 10:56:34 +00:00
parent b81d6bccba
commit a4826e6eab
28 changed files with 65 additions and 137413 deletions
+20
View File
@@ -88,6 +88,22 @@
init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes)
//gradients
GLOBAL_LIST_INIT(hair_gradients, list(
"None" = "none",
"Fade (Up)" = "fadeup",
"Fade (Down)" = "fadedown",
"Fade Low (Up)" = "fadeup_low",
"Bottom Flat" = "bottomflat",
"Fade Low (Down)" = "fadedown_low",
"Vertical Split" = "vsplit",
"Reflected" = "reflected",
"Reflected (Inverted)" = "reflected_inverse",
"Reflected High" = "reflected_high",
"Reflected High (Inverted)" = "reflected_inverse_high",
"Wavy" = "wavy"
))
//creates every subtype of prototype (excluding prototype) and adds it to list L.
//if no list/L is provided, one is created.
/proc/init_subtypes(prototype, list/L)
@@ -105,3 +121,7 @@
for(var/path in subtypesof(prototype))
L+= path
return L
//hair gradient list. Since it shouldn't need to have a seperate datum list.sanitize_inlist
+2 -6
View File
@@ -1112,7 +1112,7 @@ B --><-- A
/proc/get_random_station_turf()
return safepick(get_area_turfs(pick(GLOB.the_station_areas)))
/proc/get_safe_random_station_turf()
for (var/i in 1 to 5)
var/list/L = get_area_turfs(pick(GLOB.the_station_areas))
@@ -1339,10 +1339,6 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
var/obj/structure/window/W = O
if(W.ini_dir == dir_to_check || W.ini_dir == FULLTILE_WINDOW_DIR || dir_to_check == FULLTILE_WINDOW_DIR)
return FALSE
if(istype(O, /obj/structure/railing))
var/obj/structure/railing/rail = O
if(rail.ini_dir == dir_to_check || rail.ini_dir == FULLTILE_WINDOW_DIR || dir_to_check == FULLTILE_WINDOW_DIR)
return FALSE
return TRUE
#define UNTIL(X) while(!(X)) stoplag()
@@ -1512,7 +1508,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
blocked |= typesof(/obj/item/reagent_containers/food/drinks/prospacillin,
/obj/item/reagent_containers/food/drinks/diminicillin
)
return pick(subtypesof(/obj/item/reagent_containers/food/drinks) - blocked)
//For these two procs refs MUST be ref = TRUE format like typecaches!
@@ -36,203 +36,4 @@
/obj/effect/turf_decal/tile/neutral
name = "neutral corner"
color = "#D4D4D4"
alpha = 50
/obj/effect/turf_decal/trimline
layer = TURF_PLATING_DECAL_LAYER
alpha = 110
icon_state = "trimline_box"
/obj/effect/turf_decal/trimline/white
color = "#FFFFFF"
/obj/effect/turf_decal/trimline/white/line
name = "trim decal"
icon_state = "trimline"
/obj/effect/turf_decal/trimline/white/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/white/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/white/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/white/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/white/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/white/filled/end
icon_state = "trimline_end_fill"
/obj/effect/turf_decal/trimline/red
color = "#DE3A3A"
/obj/effect/turf_decal/trimline/red/line
icon_state = "trimline"
/obj/effect/turf_decal/trimline/red/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/red/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/red/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/red/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/red/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/red/filled/end
icon_state = "trimline_end_fill"
/obj/effect/turf_decal/trimline/green
color = "#9FED58"
/obj/effect/turf_decal/trimline/green/line
icon_state = "trimline"
/obj/effect/turf_decal/trimline/green/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/green/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/green/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/green/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/green/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/green/filled/end
icon_state = "trimline_end_fill"
/obj/effect/turf_decal/trimline/blue
color = "#52B4E9"
/obj/effect/turf_decal/trimline/blue/line
icon_state = "trimline"
/obj/effect/turf_decal/trimline/blue/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/blue/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/blue/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/blue/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/blue/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/blue/filled/end
icon_state = "trimline_end_fill"
/obj/effect/turf_decal/trimline/yellow
color = "#EFB341"
/obj/effect/turf_decal/trimline/yellow/line
icon_state = "trimline"
/obj/effect/turf_decal/trimline/yellow/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/yellow/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/yellow/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/yellow/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/yellow/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/yellow/filled/end
icon_state = "trimline_end_fill"
/obj/effect/turf_decal/trimline/purple
color = "#D381C9"
/obj/effect/turf_decal/trimline/purple/line
icon_state = "trimline"
/obj/effect/turf_decal/trimline/purple/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/purple/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/purple/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/purple/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/purple/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/purple/filled/end
icon_state = "trimline_end_fill"
/obj/effect/turf_decal/trimline/brown
color = "#A46106"
/obj/effect/turf_decal/trimline/brown/line
icon_state = "trimline"
/obj/effect/turf_decal/trimline/brown/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/brown/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/brown/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/brown/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/brown/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/brown/filled/end
icon_state = "trimline_end_fill"
/obj/effect/turf_decal/trimline/neutral
color = "#D4D4D4"
alpha = 50
/obj/effect/turf_decal/trimline/neutral/line
icon_state = "trimline"
/obj/effect/turf_decal/trimline/neutral/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/neutral/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/neutral/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/neutral/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/neutral/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/neutral/filled/end
icon_state = "trimline_end_fill"
alpha = 50
+1 -2
View File
@@ -2,7 +2,6 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \
new/datum/stack_recipe("grille", /obj/structure/grille, 2, time = 10, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("table frame", /obj/structure/table_frame, 2, time = 10, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("scooter frame", /obj/item/scooter_frame, 10, time = 25, one_per_turf = 0), \
new/datum/stack_recipe("railing", /obj/structure/railing, 3, time = 18, window_checks = TRUE), \
))
/obj/item/stack/rods
@@ -26,7 +25,7 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \
/obj/item/stack/rods/suicide_act(mob/living/carbon/user)
user.visible_message("<span class='suicide'>[user] begins to stuff \the [src] down [user.p_their()] throat! It looks like [user.p_theyre()] trying to commit suicide!</span>")//it looks like theyre ur mum
return BRUTELOSS
/obj/item/stack/rods/Initialize(mapload, new_amount, merge = TRUE)
. = ..()
-101
View File
@@ -1,101 +0,0 @@
/obj/structure/railing
name = "railing"
desc = "Basic railing meant to protect idiots like you from falling."
icon = 'icons/obj/fluff.dmi'
icon_state = "railing"
density = TRUE
anchored = TRUE
climbable = TRUE
///Initial direction of the railing.
var/ini_dir
/obj/structure/railing/corner //aesthetic corner sharp edges hurt oof ouch
icon_state = "railing_corner"
density = FALSE
climbable = FALSE
/obj/structure/railing/ComponentInitialize()
. = ..()
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, .proc/can_be_rotated),CALLBACK(src,.proc/after_rotation))
/obj/structure/railing/Initialize()
. = ..()
ini_dir = dir
/obj/structure/railing/attackby(obj/item/I, mob/living/user, params)
..()
add_fingerprint(user)
if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP)
if(obj_integrity < max_integrity)
if(!I.tool_start_check(user, amount=0))
return
to_chat(user, "<span class='notice'>You begin repairing [src]...</span>")
if(I.use_tool(src, user, 40, volume=50))
obj_integrity = max_integrity
to_chat(user, "<span class='notice'>You repair [src].</span>")
else
to_chat(user, "<span class='warning'>[src] is already in good condition!</span>")
return
/obj/structure/railing/wirecutter_act(mob/living/user, obj/item/I)
. = ..()
if(!anchored)
to_chat(user, "<span class='warning'>You cut apart the railing.</span>")
I.play_tool_sound(src, 100)
deconstruct()
return TRUE
/obj/structure/railing/deconstruct(disassembled)
. = ..()
if(!loc) //quick check if it's qdeleted already.
return
if(!(flags_1 & NODECONSTRUCT_1))
var/obj/item/stack/rods/rod = new /obj/item/stack/rods(drop_location(), 3)
transfer_fingerprints_to(rod)
qdel(src)
///Implements behaviour that makes it possible to unanchor the railing.
/obj/structure/railing/wrench_act(mob/living/user, obj/item/I)
. = ..()
if(flags_1&NODECONSTRUCT_1)
return
to_chat(user, "<span class='notice'>You begin to [anchored ? "unfasten the railing from":"fasten the railing to"] the floor...</span>")
if(I.use_tool(src, user, volume = 75, extra_checks = CALLBACK(src, .proc/check_anchored, anchored)))
setAnchored(!anchored)
to_chat(user, "<span class='notice'>You [anchored ? "fasten the railing to":"unfasten the railing from"] the floor.</span>")
return TRUE
/obj/structure/railing/CanPass(atom/movable/mover, turf/target)
. = ..()
return TRUE
/obj/structure/railing/corner/CanPass()
..()
return TRUE
/obj/structure/railing/CheckExit(atom/movable/mover, turf/target)
..()
return TRUE
/obj/structure/railing/corner/CheckExit()
return TRUE
/obj/structure/railing/proc/can_be_rotated(mob/user,rotation_type)
if(anchored)
to_chat(user, "<span class='warning'>[src] cannot be rotated while it is fastened to the floor!</span>")
return FALSE
var/target_dir = turn(dir, rotation_type == ROTATION_CLOCKWISE ? -90 : 90)
if(!valid_window_location(loc, target_dir)) //Expanded to include rails, as well!
to_chat(user, "<span class='warning'>[src] cannot be rotated in that direction!</span>")
return FALSE
return TRUE
/obj/structure/railing/proc/check_anchored(checked_anchored)
if(anchored == checked_anchored)
return TRUE
/obj/structure/railing/proc/after_rotation(mob/user,rotation_type)
air_update_turf(1)
ini_dir = dir
add_fingerprint(user)
+19
View File
@@ -92,6 +92,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/hair_color = "000" //Hair color
var/facial_hair_style = "Shaved" //Face hair type
var/facial_hair_color = "000" //Facial hair color
var/grad_style = "None" //Hair Gradient style
var/grad_color = "#000000" //Hair Gradient color
var/skin_tone = "caucasian1" //Skin color
var/eye_color = "000" //Eye color
var/wing_color = "fff" //Wing color
@@ -472,6 +474,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<a style='display:block;width:100px' href='?_src_=prefs;preference=hair_style;task=input'>[hair_style]</a>"
dat += "<a href='?_src_=prefs;preference=previous_hair_style;task=input'>&lt;</a> <a href='?_src_=prefs;preference=next_hair_style;task=input'>&gt;</a><BR>"
dat += "<span style='border:1px solid #161616; background-color: #[hair_color];'>&nbsp;&nbsp;&nbsp;</span> <a href='?_src_=prefs;preference=hair;task=input'>Change</a><BR>"
dat += "<h3>Hair Gradiant</h3>"
dat += "<a style='display:block;width:100px' href='?_src_=prefs;preference=grad_style;task=input'>[grad_style]</a>"
dat += "<span style='border:1px solid #161616; background-color: #[grad_color];'>&nbsp;&nbsp;&nbsp;</span> <a href='?_src_=prefs;preference=grad;task=input'>Change</a><BR>"
dat += "<h3>Facial Hair Style</h3>"
@@ -1747,6 +1752,18 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(hair_style == "Tail Hair" && clientckey <> "quotefox")
hair_style = "Bald"
if("grad_style")
var/new_grad_style
new_grad_style = input(user, "Choose your character's hair gradiant:", "Character Preference") as null|anything in GLOB.hair_gradients
if(new_grad_style)
grad_style = new_grad_style
if("grad")
var/new_grad
new_grad = input(user, "Choose your character's gradiant color:", "Character Preference", new_grad) as color|null
if(new_grad)
grad_color = sanitize_hexcolor(new_grad)
if("facial")
var/new_facial = input(user, "Choose your character's facial-hair colour:", "Character Preference","#"+facial_hair_color) as color|null
if(new_facial)
@@ -2703,11 +2720,13 @@ GLOBAL_LIST_EMPTY(preferences_datums)
organ_eyes.old_eye_color = eye_color
character.hair_color = hair_color
character.facial_hair_color = facial_hair_color
character.grad_color = grad_color
character.wing_color = wing_color
character.skin_tone = skin_tone
character.hair_style = hair_style
character.facial_hair_style = facial_hair_style
character.grad_style = grad_style
character.underwear = underwear
character.saved_underwear = underwear
@@ -311,10 +311,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["body_size"] >> body_size
S["hair_color"] >> hair_color
S["facial_hair_color"] >> facial_hair_color
S["grad_color"] >> grad_color
S["eye_color"] >> eye_color
S["skin_tone"] >> skin_tone
S["hair_style_name"] >> hair_style
S["facial_style_name"] >> facial_hair_style
S["grad_style_name"] >> grad_style
S["underwear"] >> underwear
S["undie_color"] >> undie_color
S["undershirt"] >> undershirt
@@ -480,6 +482,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
else
hair_style = sanitize_inlist(hair_style, GLOB.hair_styles_female_list)
facial_hair_style = sanitize_inlist(facial_hair_style, GLOB.facial_hair_styles_female_list)
grad_style = sanitize_inlist(grad_style, GLOB.hair_gradients, "None")
underwear = sanitize_inlist(underwear, GLOB.underwear_list)
undie_color = sanitize_hexcolor(undie_color, 3, 0, initial(undie_color))
undershirt = sanitize_inlist(undershirt, GLOB.undershirt_list)
@@ -489,6 +492,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
age = sanitize_integer(age, AGE_MIN, AGE_MAX, initial(age))
hair_color = sanitize_hexcolor(hair_color, 3, 0)
facial_hair_color = sanitize_hexcolor(facial_hair_color, 3, 0)
grad_color = sanitize_hexcolor(grad_color, 6, 1)
eye_color = sanitize_hexcolor(eye_color, 3, 0)
skin_tone = sanitize_inlist(skin_tone, GLOB.skin_tones)
wing_color = sanitize_hexcolor(wing_color, 3, FALSE, "#FFFFFF")
@@ -558,10 +562,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["age"] , age)
WRITE_FILE(S["hair_color"] , hair_color)
WRITE_FILE(S["facial_hair_color"] , facial_hair_color)
WRITE_FILE(S["grad_color"] , grad_color)
WRITE_FILE(S["eye_color"] , eye_color)
WRITE_FILE(S["skin_tone"] , skin_tone)
WRITE_FILE(S["hair_style_name"] , hair_style)
WRITE_FILE(S["facial_style_name"] , facial_hair_style)
WRITE_FILE(S["grad_style_name"] , grad_style)
WRITE_FILE(S["underwear"] , underwear)
WRITE_FILE(S["body_size"] , body_size)
WRITE_FILE(S["undie_color"] , undie_color)
@@ -11,20 +11,6 @@
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
/obj/item/clothing/gloves/guncaster
name = "fingerless leather gloves"
desc = "Sturdy leather gloves with no fingertips, buckled at the wrist."
icon_state = "guncaster"
item_state = "guncaster"
icon = 'hyperstation/icons/obj/clothing/gloves.dmi'
alternate_worn_icon = 'hyperstation/icons/mobs/gloves.dmi'
item_color = null //So they don't wash.
transfer_prints = TRUE
strip_delay = 40
equip_delay_other = 20
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
/obj/item/clothing/gloves/botanic_leather
name = "botanist's leather gloves"
desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin. They're also quite warm."
@@ -14,6 +14,9 @@
var/facial_hair_color = "000"
var/facial_hair_style = "Shaved"
var/grad_style = "none"
var/grad_color = "#000000"
//Eye colour
var/eye_color = "000"
@@ -15,6 +15,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
var/hair_color // this allows races to have specific hair colors... if null, it uses the H's hair/facial hair colors. if "mutcolor", it uses the H's mutant_color
var/hair_alpha = 255 // the alpha used by the hair. 255 is completely solid, 0 is transparent.
var/wing_color
var/grad_color
var/use_skintones = 0 // does it use skintones or not? (spoiler alert this is only used by humans)
var/exotic_blood = "" // If your race wants to bleed something other than bog standard blood, change this to reagent id.
@@ -467,6 +468,16 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if(OFFSET_FACE in H.dna.species.offset_features)
hair_overlay.pixel_x += H.dna.species.offset_features[OFFSET_FACE][1]
hair_overlay.pixel_y += H.dna.species.offset_features[OFFSET_FACE][2]
if(H.grad_style)
var/icon/grad_s = new/icon("icon" = 'icons/mob/hair_gradients.dmi', "icon_state" = GLOB.hair_gradients[H.grad_style])
var/grad_f_color = null
if(grad_color)
grad_f_color = "#" + grad_color
else
grad_f_color = "#" + H.grad_color
grad_s.Blend(grad_f_color, ICON_ADD)
hair_overlay.filters = filter(type="layer", icon = grad_s, blend_mode = BLEND_MULTIPLY)
if(hair_overlay.icon)
standing += hair_overlay
-3
View File
@@ -129,9 +129,6 @@
/obj/item/clothing/under/syndicate/tacticool/skirt = 3,
/obj/item/clothing/mask/balaclava = 3,
/obj/item/clothing/head/ushanka = 3,
/obj/item/clothing/suit/gcvest = 2,
/obj/item/clothing/suit/gcvest/alt = 2,
/obj/item/clothing/gloves/guncaster = 4,
/obj/item/clothing/under/soviet = 3,
/obj/item/storage/belt/fannypack/black = 3,
/obj/item/clothing/suit/jacket/letterman_syndie = 5,