Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into hair
This commit is contained in:
@@ -41,7 +41,6 @@
|
||||
H.dna.features["horns"] = pick(GLOB.horns_list)
|
||||
H.dna.features["frills"] = pick(GLOB.frills_list)
|
||||
H.dna.features["spines"] = pick(GLOB.spines_list)
|
||||
H.dna.features["body_markings"] = pick(GLOB.body_markings_list)
|
||||
H.dna.features["insect_wings"] = pick(GLOB.insect_wings_list)
|
||||
H.dna.features["deco_wings"] = pick(GLOB.deco_wings_list)
|
||||
H.dna.features["insect_fluff"] = pick(GLOB.insect_fluffs_list)
|
||||
|
||||
@@ -238,3 +238,9 @@
|
||||
/proc/__nan()
|
||||
var/list/L = json_decode("{\"value\":NaN}")
|
||||
return L["value"]
|
||||
|
||||
/**
|
||||
* Wrapper to return a copy of contents, as SDQL2 can't tell an internal list from a normal list.
|
||||
*/
|
||||
/atom/proc/_contents()
|
||||
return contents.Copy()
|
||||
|
||||
@@ -111,7 +111,7 @@ GLOBAL_LIST_EMPTY(antagonists)
|
||||
var/datum/skill_modifier/job/M = GLOB.skill_modifiers[GET_SKILL_MOD_ID(A, type)]
|
||||
if(istype(M))
|
||||
M.name = "[name] Training"
|
||||
owner.AddComponent(/datum/component/activity)
|
||||
owner.current.AddComponent(/datum/component/activity)
|
||||
SEND_SIGNAL(owner.current, COMSIG_MOB_ANTAG_ON_GAIN, src)
|
||||
|
||||
/datum/antagonist/proc/is_banned(mob/M)
|
||||
|
||||
@@ -229,8 +229,8 @@
|
||||
flags_inv = NONE
|
||||
flags_cover = NONE
|
||||
desc = "Black like tar, doesn't reflect any light. Runic symbols line the outside, with each flash you lose comprehension of what you are seeing."
|
||||
item_flags = EXAMINE_SKIP
|
||||
armor = list("melee" = 30, "bullet" = 30, "laser" = 30,"energy" = 30, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
|
||||
obj_flags = NONE | EXAMINE_SKIP
|
||||
|
||||
/obj/item/clothing/suit/hooded/cultrobes/void
|
||||
name = "void cloak"
|
||||
@@ -253,9 +253,10 @@
|
||||
//We need to account for the hood shenanigans, and that way we can make sure items always fit, even if one of the slots is used by the fucking hood.
|
||||
if(suittoggled)
|
||||
to_chat(carbon_user,"<span class='notice'>The light shifts around you making the cloak invisible!</span>")
|
||||
else
|
||||
obj_flags |= EXAMINE_SKIP
|
||||
else if(obj_flags & EXAMINE_SKIP) // ensures that it won't toggle visibility if raising the hood failed
|
||||
to_chat(carbon_user,"<span class='notice'>The kaleidoscope of colours collapses around you, as the cloak shifts to visibility!</span>")
|
||||
item_flags = suittoggled ? EXAMINE_SKIP : ~EXAMINE_SKIP
|
||||
obj_flags ^= EXAMINE_SKIP
|
||||
else
|
||||
to_chat(carbon_user,"<span class='danger'>You can't force the hood onto your head!</span>")
|
||||
|
||||
|
||||
@@ -172,13 +172,15 @@ GLOBAL_LIST_EMPTY(gateway_destinations)
|
||||
/// bumper object, the thing that starts actual teleport
|
||||
var/obj/effect/gateway_portal_bumper/portal
|
||||
/// Visual object for handling the viscontents
|
||||
var/obj/effect/gateway_portal_effect/portal_visuals
|
||||
/// DISABLED DUE TO BYOND BUG CAUSING STACK OVERFLOWS OF ANY HUMAN INSTANTIATION NEAR AN ACTIVATED GATEWAY.
|
||||
/// Probably due to it referencing each other through the gateway (there's a deep loop, maybe BYOND isn't catching something when it usually would)
|
||||
// var/obj/effect/gateway_portal_effect/portal_visuals
|
||||
|
||||
/obj/machinery/gateway/Initialize()
|
||||
generate_destination()
|
||||
update_icon()
|
||||
portal_visuals = new
|
||||
vis_contents += portal_visuals
|
||||
// portal_visuals = new
|
||||
// vis_contents += portal_visuals
|
||||
return ..()
|
||||
|
||||
/obj/machinery/gateway/proc/generate_destination()
|
||||
@@ -195,7 +197,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations)
|
||||
if(use_power == ACTIVE_POWER_USE)
|
||||
use_power = IDLE_POWER_USE
|
||||
update_icon()
|
||||
portal_visuals.reset_visuals()
|
||||
// portal_visuals.reset_visuals()
|
||||
|
||||
/obj/machinery/gateway/process()
|
||||
if((stat & (NOPOWER)) && use_power)
|
||||
@@ -215,7 +217,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations)
|
||||
return
|
||||
target = D
|
||||
target.activate(destination)
|
||||
portal_visuals.setup_visuals(target)
|
||||
// portal_visuals.setup_visuals(target)
|
||||
generate_bumper()
|
||||
use_power = ACTIVE_POWER_USE
|
||||
update_icon()
|
||||
|
||||
@@ -124,7 +124,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
var/eye_type = DEFAULT_EYES_TYPE //Eye type
|
||||
var/split_eye_colors = FALSE
|
||||
var/datum/species/pref_species = new /datum/species/human() //Mutant race
|
||||
var/list/features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = "Plain", "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING)
|
||||
var/list/features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = list(), "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING)
|
||||
|
||||
var/custom_speech_verb = "default" //if your say_mod is to be something other than your races
|
||||
var/custom_tongue = "default" //if your tongue is to be something other than your races
|
||||
@@ -514,7 +514,76 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "</td>"
|
||||
mutant_category = 0
|
||||
|
||||
// rp marking selection
|
||||
// assume you can only have mam markings or regular markings or none, never both
|
||||
var/marking_type
|
||||
if(parent.can_have_part("mam_body_markings"))
|
||||
marking_type = "mam_body_markings"
|
||||
if(marking_type)
|
||||
dat += APPEARANCE_CATEGORY_COLUMN
|
||||
dat += "<h3>[GLOB.all_mutant_parts[marking_type]]</h3>" // give it the appropriate title for the type of marking
|
||||
dat += "<a href='?_src_=prefs;preference=marking_add;marking_type=[marking_type];task=input'>Add marking</a>"
|
||||
// list out the current markings you have
|
||||
if(length(features[marking_type]))
|
||||
dat += "<table>"
|
||||
var/list/markings = features[marking_type]
|
||||
if(!islist(markings))
|
||||
// something went terribly wrong
|
||||
markings = list()
|
||||
var/list/reverse_markings = reverseList(markings)
|
||||
for(var/list/marking_list in reverse_markings)
|
||||
var/marking_index = markings.Find(marking_list) // consider changing loop to go through indexes over lists instead of using Find here
|
||||
var/limb_value = marking_list[1]
|
||||
var/actual_name = GLOB.bodypart_names[num2text(limb_value)] // get the actual name from the bitflag representing the part the marking is applied to
|
||||
var/color_marking_dat = ""
|
||||
var/number_colors = 1
|
||||
var/datum/sprite_accessory/mam_body_markings/S = GLOB.mam_body_markings_list[marking_list[2]]
|
||||
var/matrixed_sections = S.covered_limbs[actual_name]
|
||||
if(S && matrixed_sections)
|
||||
// if it has nothing initialize it to white
|
||||
if(length(marking_list) == 2)
|
||||
var/first = "#FFFFFF"
|
||||
var/second = "#FFFFFF"
|
||||
var/third = "#FFFFFF"
|
||||
if(features["mcolor"])
|
||||
first = "#[features["mcolor"]]"
|
||||
if(features["mcolor2"])
|
||||
second = "#[features["mcolor2"]]"
|
||||
if(features["mcolor3"])
|
||||
third = "#[features["mcolor3"]]"
|
||||
marking_list += list(list(first, second, third)) // just assume its 3 colours if it isnt it doesnt matter we just wont use the other values
|
||||
// index magic
|
||||
var/primary_index = 1
|
||||
var/secondary_index = 2
|
||||
var/tertiary_index = 3
|
||||
switch(matrixed_sections)
|
||||
if(MATRIX_GREEN)
|
||||
primary_index = 2
|
||||
if(MATRIX_BLUE)
|
||||
primary_index = 3
|
||||
if(MATRIX_RED_BLUE)
|
||||
secondary_index = 2
|
||||
if(MATRIX_GREEN_BLUE)
|
||||
primary_index = 2
|
||||
secondary_index = 3
|
||||
|
||||
// we know it has one matrixed section at minimum
|
||||
color_marking_dat += "<span style='border: 1px solid #161616; background-color: [marking_list[3][primary_index]];'> </span>"
|
||||
// if it has a second section, add it
|
||||
if(matrixed_sections == MATRIX_RED_BLUE || matrixed_sections == MATRIX_GREEN_BLUE || matrixed_sections == MATRIX_RED_GREEN || matrixed_sections == MATRIX_ALL)
|
||||
color_marking_dat += "<span style='border: 1px solid #161616; background-color: [marking_list[3][secondary_index]];'> </span>"
|
||||
number_colors = 2
|
||||
// if it has a third section, add it
|
||||
if(matrixed_sections == MATRIX_ALL)
|
||||
color_marking_dat += "<span style='border: 1px solid #161616; background-color: [marking_list[3][tertiary_index]];'> </span>"
|
||||
number_colors = 3
|
||||
color_marking_dat += " <a href='?_src_=prefs;preference=marking_color;marking_index=[marking_index];marking_type=[marking_type];number_colors=[number_colors];task=input'>Change</a><BR>"
|
||||
dat += "<tr><td>[marking_list[2]] - [actual_name]</td> <td><a href='?_src_=prefs;preference=marking_down;task=input;marking_index=[marking_index];marking_type=[marking_type];'>˄</a> <a href='?_src_=prefs;preference=marking_up;task=input;marking_index=[marking_index];marking_type=[marking_type]'>˅</a> <a href='?_src_=prefs;preference=marking_remove;task=input;marking_index=[marking_index];marking_type=[marking_type]'>X</a> [color_marking_dat]</td></tr>"
|
||||
dat += "</table>"
|
||||
|
||||
for(var/mutant_part in GLOB.all_mutant_parts)
|
||||
if(mutant_part == "mam_body_markings")
|
||||
continue
|
||||
if(parent.can_have_part(mutant_part))
|
||||
if(!mutant_category)
|
||||
dat += APPEARANCE_CATEGORY_COLUMN
|
||||
@@ -533,8 +602,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
if(accessory)
|
||||
if(accessory.color_src == MATRIXED || accessory.color_src == MUTCOLORS || accessory.color_src == MUTCOLORS2 || accessory.color_src == MUTCOLORS3) //mutcolors1-3 are deprecated now, please don't rely on these in the future
|
||||
var/mutant_string = accessory.mutant_part_string
|
||||
if(istype(accessory, /datum/sprite_accessory/mam_body_markings) || istype(accessory, /datum/sprite_accessory/body_markings))
|
||||
continue
|
||||
var/primary_feature = "[mutant_string]_primary"
|
||||
var/secondary_feature = "[mutant_string]_secondary"
|
||||
var/tertiary_feature = "[mutant_string]_tertiary"
|
||||
@@ -1726,13 +1793,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
pref_species = new newtype()
|
||||
//let's ensure that no weird shit happens on species swapping.
|
||||
custom_species = null
|
||||
if(!parent.can_have_part("body_markings"))
|
||||
features["body_markings"] = "None"
|
||||
if(!parent.can_have_part("mam_body_markings"))
|
||||
features["mam_body_markings"] = "None"
|
||||
features["mam_body_markings"] = list()
|
||||
if(parent.can_have_part("mam_body_markings"))
|
||||
if(features["mam_body_markings"] == "None")
|
||||
features["mam_body_markings"] = "Plain"
|
||||
features["mam_body_markings"] = list()
|
||||
if(parent.can_have_part("tail_lizard"))
|
||||
features["tail_lizard"] = "Smooth"
|
||||
if(pref_species.id == "felinid")
|
||||
@@ -1961,14 +2026,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
if(new_spines)
|
||||
features["spines"] = new_spines
|
||||
|
||||
if("body_markings")
|
||||
var/new_body_markings
|
||||
new_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in GLOB.body_markings_list
|
||||
if(new_body_markings)
|
||||
features["body_markings"] = new_body_markings
|
||||
if(new_body_markings != "None")
|
||||
features["mam_body_markings"] = "None"
|
||||
|
||||
if("legs")
|
||||
var/new_legs
|
||||
new_legs = input(user, "Choose your character's legs:", "Character Preference") as null|anything in GLOB.legs_list
|
||||
@@ -2088,26 +2145,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
if(new_ears)
|
||||
features["mam_ears"] = new_ears
|
||||
|
||||
if("mam_body_markings")
|
||||
var/list/snowflake_markings_list = list()
|
||||
for(var/path in GLOB.mam_body_markings_list)
|
||||
var/datum/sprite_accessory/mam_body_markings/instance = GLOB.mam_body_markings_list[path]
|
||||
if(istype(instance, /datum/sprite_accessory))
|
||||
var/datum/sprite_accessory/S = instance
|
||||
if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id))
|
||||
continue
|
||||
if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey)))
|
||||
snowflake_markings_list[S.name] = path
|
||||
var/new_mam_body_markings
|
||||
new_mam_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in snowflake_markings_list
|
||||
if(new_mam_body_markings)
|
||||
features["mam_body_markings"] = new_mam_body_markings
|
||||
if(new_mam_body_markings != "None")
|
||||
features["body_markings"] = "None"
|
||||
else if(new_mam_body_markings == "None")
|
||||
features["mam_body_markings"] = "Plain"
|
||||
features["body_markings"] = "None"
|
||||
|
||||
//Xeno Bodyparts
|
||||
if("xenohead")//Head or caste type
|
||||
var/new_head
|
||||
@@ -2133,7 +2170,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
features["xenodorsal"] = new_dors
|
||||
|
||||
//every single primary/secondary/tertiary colouring done at once
|
||||
if("xenodorsal_primary","xenodorsal_secondary","xenodorsal_tertiary","xhead_primary","xhead_secondary","xhead_tertiary","tail_primary","tail_secondary","tail_tertiary","insect_markings_primary","insect_markings_secondary","insect_markings_tertiary","body_markings_primary","body_markings_secondary","body_markings_tertiary","insect_fluff_primary","insect_fluff_secondary","insect_fluff_tertiary","ears_primary","ears_secondary","ears_tertiary","frills_primary","frills_secondary","frills_tertiary","ipc_antenna_primary","ipc_antenna_secondary","ipc_antenna_tertiary","taur_primary","taur_secondary","taur_tertiary","snout_primary","snout_secondary","snout_tertiary","spines_primary","spines_secondary","spines_tertiary", "mam_body_markings_primary", "mam_body_markings_secondary", "mam_body_markings_tertiary")
|
||||
if("xenodorsal_primary","xenodorsal_secondary","xenodorsal_tertiary","xhead_primary","xhead_secondary","xhead_tertiary","tail_primary","tail_secondary","tail_tertiary","insect_markings_primary","insect_markings_secondary","insect_markings_tertiary","insect_fluff_primary","insect_fluff_secondary","insect_fluff_tertiary","ears_primary","ears_secondary","ears_tertiary","frills_primary","frills_secondary","frills_tertiary","ipc_antenna_primary","ipc_antenna_secondary","ipc_antenna_tertiary","taur_primary","taur_secondary","taur_tertiary","snout_primary","snout_secondary","snout_tertiary","spines_primary","spines_secondary","spines_tertiary", "mam_body_markings_primary", "mam_body_markings_secondary", "mam_body_markings_tertiary")
|
||||
var/the_feature = features[href_list["preference"]]
|
||||
if(!the_feature)
|
||||
features[href_list["preference"]] = "FFFFFF"
|
||||
@@ -2390,6 +2427,111 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
var/selected_body_sprite = input(user, "Choose your desired body sprite", "Character Preference") as null|anything in pref_species.allowed_limb_ids
|
||||
if(selected_body_sprite)
|
||||
chosen_limb_id = selected_body_sprite //this gets sanitized before loading
|
||||
|
||||
if("marking_down")
|
||||
// move the specified marking down
|
||||
var/index = text2num(href_list["marking_index"])
|
||||
var/marking_type = href_list["marking_type"]
|
||||
if(index && marking_type && features[marking_type] && index != length(features[marking_type]))
|
||||
var/index_down = index + 1
|
||||
var/markings = features[marking_type]
|
||||
var/first_marking = markings[index]
|
||||
var/second_marking = markings[index_down]
|
||||
markings[index] = second_marking
|
||||
markings[index_down] = first_marking
|
||||
|
||||
if("marking_up")
|
||||
// move the specified marking up
|
||||
var/index = text2num(href_list["marking_index"])
|
||||
var/marking_type = href_list["marking_type"]
|
||||
if(index && marking_type && features[marking_type] && index != 1)
|
||||
var/index_up = index - 1
|
||||
var/markings = features[marking_type]
|
||||
var/first_marking = markings[index]
|
||||
var/second_marking = markings[index_up]
|
||||
markings[index] = second_marking
|
||||
markings[index_up] = first_marking
|
||||
|
||||
if("marking_remove")
|
||||
// move the specified marking up
|
||||
var/index = text2num(href_list["marking_index"])
|
||||
var/marking_type = href_list["marking_type"]
|
||||
if(index && marking_type && features[marking_type])
|
||||
// because linters are just absolutely awful:
|
||||
var/list/L = features[marking_type]
|
||||
L.Cut(index, index + 1)
|
||||
|
||||
if("marking_add")
|
||||
// add a marking
|
||||
var/marking_type = href_list["marking_type"]
|
||||
if(marking_type && features[marking_type])
|
||||
var/selected_limb = input(user, "Choose the limb to apply to.", "Character Preference") as null|anything in list("Head", "Chest", "Left Arm", "Right Arm", "Left Leg", "Right Leg", "All")
|
||||
if(selected_limb)
|
||||
var/list/marking_list = GLOB.mam_body_markings_list
|
||||
var/list/snowflake_markings_list = list()
|
||||
for(var/path in marking_list)
|
||||
var/datum/sprite_accessory/S = marking_list[path]
|
||||
if(istype(S))
|
||||
if(istype(S, /datum/sprite_accessory/mam_body_markings))
|
||||
var/datum/sprite_accessory/mam_body_markings/marking = S
|
||||
if(!(selected_limb in marking.covered_limbs) && selected_limb != "All")
|
||||
continue
|
||||
|
||||
if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey)))
|
||||
snowflake_markings_list[S.name] = path
|
||||
|
||||
var/selected_marking = input(user, "Select the marking to apply to the limb.") as null|anything in snowflake_markings_list
|
||||
if(selected_marking)
|
||||
if(selected_limb != "All")
|
||||
var/limb_value = text2num(GLOB.bodypart_values[selected_limb])
|
||||
features[marking_type] += list(list(limb_value, selected_marking))
|
||||
else
|
||||
var/datum/sprite_accessory/mam_body_markings/S = marking_list[selected_marking]
|
||||
for(var/limb in S.covered_limbs)
|
||||
var/limb_value = text2num(GLOB.bodypart_values[limb])
|
||||
features[marking_type] += list(list(limb_value, selected_marking))
|
||||
|
||||
if("marking_color")
|
||||
var/index = text2num(href_list["marking_index"])
|
||||
var/marking_type = href_list["marking_type"]
|
||||
if(index && marking_type && features[marking_type])
|
||||
// work out the input options to show the user
|
||||
var/list/options = list("Primary")
|
||||
var/number_colors = text2num(href_list["number_colors"])
|
||||
var/color_number = 1 // 1-3 which color are we editing
|
||||
if(number_colors >= 2)
|
||||
options += "Secondary"
|
||||
if(number_colors == 3)
|
||||
options += "Tertiary"
|
||||
var/color_option = input(user, "Select the colour you wish to edit") as null|anything in options
|
||||
if(color_option)
|
||||
if(color_option == "Secondary") color_number = 2
|
||||
if(color_option == "Tertiary") color_number = 3
|
||||
// perform some magic on the color number
|
||||
var/list/marking_list = features[marking_type][index]
|
||||
var/datum/sprite_accessory/mam_body_markings/S = GLOB.mam_body_markings_list[marking_list[2]]
|
||||
var/matrixed_sections = S.covered_limbs[GLOB.bodypart_names[num2text(marking_list[1])]]
|
||||
if(color_number == 1)
|
||||
switch(matrixed_sections)
|
||||
if(MATRIX_GREEN)
|
||||
color_number = 2
|
||||
if(MATRIX_BLUE)
|
||||
color_number = 3
|
||||
else if(color_number == 2)
|
||||
switch(matrixed_sections)
|
||||
if(MATRIX_RED_BLUE)
|
||||
color_number = 3
|
||||
if(MATRIX_GREEN_BLUE)
|
||||
color_number = 3
|
||||
|
||||
var/color_list = features[marking_type][index][3]
|
||||
var/new_marking_color = input(user, "Choose your character's marking color:", "Character Preference","#"+color_list[color_number]) as color|null
|
||||
if(new_marking_color)
|
||||
var/temp_hsv = RGBtoHSV(new_marking_color)
|
||||
if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV(MINIMUM_MUTANT_COLOR)[3]) // mutantcolors must be bright, but only if they affect the skin
|
||||
color_list[color_number] = "#[sanitize_hexcolor(new_marking_color, 6)]"
|
||||
else
|
||||
to_chat(user, "<span class='danger'>Invalid color. Your color is not bright enough.</span>")
|
||||
else
|
||||
switch(href_list["preference"])
|
||||
//CITADEL PREFERENCES EDIT - I can't figure out how to modularize these, so they have to go here. :c -Pooj
|
||||
|
||||
@@ -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 51
|
||||
#define SAVEFILE_VERSION_MAX 52
|
||||
|
||||
/*
|
||||
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
|
||||
@@ -283,7 +283,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
qdel(temporary_gear_item)
|
||||
//it's double packed into a list because += will union the two lists contents
|
||||
|
||||
S["loadout"] = safe_json_encode(loadout_data)
|
||||
S["loadout"] = loadout_data
|
||||
|
||||
if(current_version < 48) //unlockable loadout items but we need to clear bad data from a mistake
|
||||
S["unlockable_loadout"] = list()
|
||||
@@ -299,6 +299,47 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
if(S["species"] == SPECIES_HUMAN)
|
||||
features["legs"] = "Plantigrade"
|
||||
|
||||
if(current_version < 52) // rp markings means markings are now stored as a list, lizard markings now mam like the rest
|
||||
var/marking_type
|
||||
var/species_id = S["species"]
|
||||
var/datum/species/actual_species = GLOB.species_datums[species_id]
|
||||
|
||||
// convert lizard markings to lizard markings
|
||||
if(species_id == SPECIES_LIZARD && S["feature_lizard_body_markings"])
|
||||
features["mam_body_markings"] = features["body_markings"]
|
||||
|
||||
// convert mam body marking data to the new rp marking data
|
||||
if(actual_species.mutant_bodyparts["mam_body_markings"] && S["feature_mam_body_markings"]) marking_type = "feature_mam_body_markings"
|
||||
|
||||
if(marking_type)
|
||||
var/old_marking_value = S[marking_type]
|
||||
var/list/color_list = list("#FFFFFF","#FFFFFF","#FFFFFF")
|
||||
|
||||
if(S["feature_mcolor"]) color_list[1] = "#" + S["feature_mcolor"]
|
||||
if(S["feature_mcolor2"]) color_list[2] = "#" + S["feature_mcolor2"]
|
||||
if(S["feature_mcolor3"]) color_list[3] = "#" + S["feature_mcolor3"]
|
||||
|
||||
var/list/marking_list = list()
|
||||
for(var/part in list(ARM_LEFT, ARM_RIGHT, LEG_LEFT, LEG_RIGHT, CHEST, HEAD))
|
||||
var/list/copied_color_list = color_list.Copy()
|
||||
var/datum/sprite_accessory/mam_body_markings/mam_marking = GLOB.mam_body_markings_list[old_marking_value]
|
||||
var/part_name = GLOB.bodypart_names[num2text(part)]
|
||||
if(length(mam_marking.covered_limbs) && mam_marking.covered_limbs[part_name])
|
||||
var/matrixed_sections = mam_marking.covered_limbs[part_name]
|
||||
// just trust me this is fine
|
||||
switch(matrixed_sections)
|
||||
if(MATRIX_GREEN)
|
||||
copied_color_list[1] = copied_color_list[2]
|
||||
if(MATRIX_BLUE)
|
||||
copied_color_list[1] = copied_color_list[3]
|
||||
if(MATRIX_RED_BLUE)
|
||||
copied_color_list[2] = copied_color_list[3]
|
||||
if(MATRIX_GREEN_BLUE)
|
||||
copied_color_list[1] = copied_color_list[2]
|
||||
copied_color_list[2] = copied_color_list[3]
|
||||
marking_list += list(list(part, old_marking_value, copied_color_list))
|
||||
features["mam_body_markings"] = marking_list
|
||||
|
||||
/datum/preferences/proc/load_path(ckey,filename="preferences.sav")
|
||||
if(!ckey)
|
||||
return
|
||||
@@ -583,7 +624,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
var/savefile/S = new /savefile(path)
|
||||
if(!S)
|
||||
return FALSE
|
||||
features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = "Plain", "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING)
|
||||
features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = "Plain", "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING)
|
||||
|
||||
S.cd = "/"
|
||||
if(!slot)
|
||||
@@ -653,7 +694,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["feature_lizard_horns"] >> features["horns"]
|
||||
S["feature_lizard_frills"] >> features["frills"]
|
||||
S["feature_lizard_spines"] >> features["spines"]
|
||||
S["feature_lizard_body_markings"] >> features["body_markings"]
|
||||
S["feature_lizard_legs"] >> features["legs"]
|
||||
S["feature_human_tail"] >> features["tail_human"]
|
||||
S["feature_human_ears"] >> features["ears"]
|
||||
@@ -722,7 +762,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["feature_genitals_use_skintone"] >> features["genitals_use_skintone"]
|
||||
S["feature_mcolor2"] >> features["mcolor2"]
|
||||
S["feature_mcolor3"] >> features["mcolor3"]
|
||||
S["feature_mam_body_markings"] >> features["mam_body_markings"]
|
||||
// note safe json decode will runtime the first time it migrates but this is fine and it solves itself don't worry about it if you see it error
|
||||
features["mam_body_markings"] = safe_json_decode(S["feature_mam_body_markings"])
|
||||
S["feature_mam_tail"] >> features["mam_tail"]
|
||||
S["feature_mam_ears"] >> features["mam_ears"]
|
||||
S["feature_mam_tail_animated"] >> features["mam_tail_animated"]
|
||||
@@ -852,7 +893,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
features["ears"] = sanitize_inlist(features["ears"], GLOB.ears_list)
|
||||
features["frills"] = sanitize_inlist(features["frills"], GLOB.frills_list)
|
||||
features["spines"] = sanitize_inlist(features["spines"], GLOB.spines_list)
|
||||
features["body_markings"] = sanitize_inlist(features["body_markings"], GLOB.body_markings_list)
|
||||
features["legs"] = sanitize_inlist(features["legs"], GLOB.legs_list, "Plantigrade")
|
||||
features["deco_wings"] = sanitize_inlist(features["deco_wings"], GLOB.deco_wings_list, "None")
|
||||
features["insect_fluff"] = sanitize_inlist(features["insect_fluff"], GLOB.insect_fluffs_list)
|
||||
@@ -1021,7 +1061,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
WRITE_FILE(S["feature_human_ears"] , features["ears"])
|
||||
WRITE_FILE(S["feature_lizard_frills"] , features["frills"])
|
||||
WRITE_FILE(S["feature_lizard_spines"] , features["spines"])
|
||||
WRITE_FILE(S["feature_lizard_body_markings"] , features["body_markings"])
|
||||
WRITE_FILE(S["feature_lizard_legs"] , features["legs"])
|
||||
WRITE_FILE(S["feature_deco_wings"] , features["deco_wings"])
|
||||
WRITE_FILE(S["feature_horns_color"] , features["horns_color"])
|
||||
|
||||
@@ -305,6 +305,15 @@
|
||||
/obj/item/reagent_containers/food/drinks/bottle/hcider/empty
|
||||
list_reagents = null
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/amaretto
|
||||
name = "Luini Amaretto"
|
||||
desc = "A gentle and syrup-like drink that tastes of almonds and apricots."
|
||||
icon_state = "disaronno"
|
||||
list_reagents = list(/datum/reagent/consumable/ethanol/amaretto = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/amaretto/empty
|
||||
list_reagents = null
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/grappa
|
||||
name = "Phillipes well-aged Grappa"
|
||||
desc = "Bottle of Grappa."
|
||||
@@ -615,6 +624,10 @@
|
||||
icon_state = "hcider"
|
||||
name = "Sealed Cider"
|
||||
|
||||
/obj/item/export/bottle/amaretto
|
||||
icon_state = "disaronno"
|
||||
name = "Sealed Amaretto"
|
||||
|
||||
/obj/item/export/bottle/cognac
|
||||
icon_state = "cognacbottle"
|
||||
name = "Sealed Cognac"
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
id = /datum/reagent/consumable/nuka_cola
|
||||
results = list(/datum/reagent/consumable/nuka_cola = 6)
|
||||
required_reagents = list(/datum/reagent/uranium = 1, /datum/reagent/consumable/space_cola = 6)
|
||||
mix_message = "The bitter-sweet smell of radiation almost makes you wish for a space winter."
|
||||
|
||||
/datum/chemical_reaction/moonshine
|
||||
name = "Moonshine"
|
||||
@@ -36,6 +37,7 @@
|
||||
results = list(/datum/reagent/consumable/ethanol/moonshine = 10)
|
||||
required_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/sugar = 5)
|
||||
required_catalysts = list(/datum/reagent/consumable/enzyme = 5)
|
||||
mix_message = "As the moisture in the glass settles, your entire face burns from the reaction's alcoholic virility."
|
||||
|
||||
/datum/chemical_reaction/wine
|
||||
name = "Wine"
|
||||
@@ -112,6 +114,7 @@
|
||||
id = /datum/reagent/consumable/ethanol/screwdrivercocktail
|
||||
results = list(/datum/reagent/consumable/ethanol/screwdrivercocktail = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 2, /datum/reagent/consumable/orangejuice = 1)
|
||||
mix_message = "The mixture billows a sweet scent of orange, promptly drowned out by a thick nose-scrunching cloud of potato liquor."
|
||||
|
||||
/datum/chemical_reaction/bloody_mary
|
||||
name = "Bloody Mary"
|
||||
@@ -142,18 +145,21 @@
|
||||
id = /datum/reagent/consumable/ethanol/toxins_special
|
||||
results = list(/datum/reagent/consumable/ethanol/toxins_special = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/ethanol/vermouth = 1, /datum/reagent/toxin/plasma = 2)
|
||||
mix_message = "The surface of the mixture sets ablaze as toxic gas erupts into a mystical cloud of fire, shortly settling to but a humble - albeit eternal blaze."
|
||||
|
||||
/datum/chemical_reaction/beepsky_smash
|
||||
name = "Beepksy Smash"
|
||||
id = /datum/reagent/consumable/ethanol/beepsky_smash
|
||||
results = list(/datum/reagent/consumable/ethanol/beepsky_smash = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/limejuice = 2, /datum/reagent/consumable/ethanol/quadruple_sec = 2, /datum/reagent/iron = 1)
|
||||
mix_message = "You can hear the law nearby."
|
||||
|
||||
/datum/chemical_reaction/doctor_delight
|
||||
name = "The Doctor's Delight"
|
||||
id = /datum/reagent/consumable/doctor_delight
|
||||
results = list(/datum/reagent/consumable/doctor_delight = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/tomatojuice = 1, /datum/reagent/consumable/orangejuice = 1, /datum/reagent/consumable/cream = 1, /datum/reagent/medicine/cryoxadone = 1)
|
||||
mix_message = "<span class='warning'>The scent of medicine hits you like a truck!</span>"
|
||||
|
||||
/datum/chemical_reaction/irish_cream
|
||||
name = "Irish Cream"
|
||||
@@ -166,6 +172,7 @@
|
||||
id = /datum/reagent/consumable/ethanol/manly_dorf
|
||||
results = list(/datum/reagent/consumable/ethanol/manly_dorf = 3)
|
||||
required_reagents = list (/datum/reagent/consumable/ethanol/beer = 1, /datum/reagent/consumable/ethanol/ale = 2)
|
||||
mix_message = "You can feel the hair growing on your chest!"
|
||||
|
||||
/datum/chemical_reaction/greenbeer
|
||||
name = "Green Beer"
|
||||
@@ -233,6 +240,7 @@
|
||||
id = /datum/reagent/consumable/ethanol/hiveminderaser
|
||||
results = list(/datum/reagent/consumable/ethanol/hiveminderaser = 4)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/black_russian = 2, /datum/reagent/consumable/ethanol/thirteenloko = 1, /datum/reagent/consumable/grenadine = 1)
|
||||
mix_message = "Your head throbs as the purple-colored mixture swirls with alien-like vigor!"
|
||||
|
||||
/datum/chemical_reaction/manhattan
|
||||
name = "Manhattan"
|
||||
@@ -269,6 +277,8 @@
|
||||
id = /datum/reagent/consumable/ethanol/singulo
|
||||
results = list(/datum/reagent/consumable/ethanol/singulo = 10)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 5, /datum/reagent/radium = 1, /datum/reagent/consumable/ethanol/wine = 5)
|
||||
mix_message = "<span class='warning'>A horrible screeching fills your ears, and a wave of dread washes over you...</span>"
|
||||
mix_sound = 'sound/effects/supermatter.ogg'
|
||||
|
||||
/datum/chemical_reaction/alliescocktail
|
||||
name = "Allies Cocktail"
|
||||
@@ -447,6 +457,8 @@
|
||||
id = /datum/reagent/consumable/ethanol/syndicatebomb
|
||||
results = list(/datum/reagent/consumable/ethanol/syndicatebomb = 2)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/beer = 1, /datum/reagent/consumable/ethanol/whiskey_cola = 1)
|
||||
mix_message = "<span class='warning'>You can hear beeping coming from behind you.</span>"
|
||||
mix_sound = 'sound/items/timer.ogg'
|
||||
|
||||
/datum/chemical_reaction/erikasurprise
|
||||
name = "Erika Surprise"
|
||||
@@ -459,30 +471,38 @@
|
||||
id = /datum/reagent/consumable/ethanol/devilskiss
|
||||
results = list(/datum/reagent/consumable/ethanol/devilskiss = 3)
|
||||
required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/consumable/ethanol/kahlua = 1, /datum/reagent/consumable/ethanol/rum = 1)
|
||||
mix_message = "You can hear faint whispering in your ear and a burning on your cheeks as the mixture blends together into with a fiery swirl."
|
||||
|
||||
/datum/chemical_reaction/hippiesdelight
|
||||
name = "Hippies Delight"
|
||||
id = /datum/reagent/consumable/ethanol/hippies_delight
|
||||
results = list(/datum/reagent/consumable/ethanol/hippies_delight = 2)
|
||||
required_reagents = list(/datum/reagent/drug/mushroomhallucinogen = 1, /datum/reagent/consumable/ethanol/gargle_blaster = 1)
|
||||
mix_message = "You can like... Smell the flowers, man - as the drink mixes."
|
||||
|
||||
/datum/chemical_reaction/bananahonk
|
||||
name = "Banana Honk"
|
||||
id = /datum/reagent/consumable/ethanol/bananahonk
|
||||
results = list(/datum/reagent/consumable/ethanol/bananahonk = 2)
|
||||
required_reagents = list(/datum/reagent/consumable/laughter = 1, /datum/reagent/consumable/cream = 1)
|
||||
mix_message = "The mixture honks. Honk!"
|
||||
mix_sound = 'sound/items/bikehorn.ogg'
|
||||
|
||||
/datum/chemical_reaction/silencer
|
||||
name = "Silencer"
|
||||
id = /datum/reagent/consumable/ethanol/silencer
|
||||
results = list(/datum/reagent/consumable/ethanol/silencer = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/nothing = 1, /datum/reagent/consumable/cream = 1, /datum/reagent/consumable/sugar = 1)
|
||||
mix_message = "As the drink mixes, you can hear nothing..."
|
||||
mix_sound = null
|
||||
|
||||
/datum/chemical_reaction/driestmartini
|
||||
name = "Driest Martini"
|
||||
id = /datum/reagent/consumable/ethanol/driestmartini
|
||||
results = list(/datum/reagent/consumable/ethanol/driestmartini = 2)
|
||||
required_reagents = list(/datum/reagent/consumable/nothing = 1, /datum/reagent/consumable/ethanol/gin = 1)
|
||||
mix_message = "You feel like a prune beneath a sun as the mixture yanks the moisture from your tongue - yet, it's all so silent."
|
||||
mix_sound = null
|
||||
|
||||
/datum/chemical_reaction/thirteenloko
|
||||
name = "Thirteen Loko"
|
||||
@@ -519,12 +539,14 @@
|
||||
id = /datum/reagent/consumable/gibbfloats
|
||||
results = list(/datum/reagent/consumable/gibbfloats = 15)
|
||||
required_reagents = list(/datum/reagent/consumable/dr_gibb = 5, /datum/reagent/consumable/ice = 5, /datum/reagent/consumable/cream = 5)
|
||||
mix_message = "As the cream floats to the top of the glass, you can feel your cholesterol levels rising just looking at it."
|
||||
|
||||
/datum/chemical_reaction/triple_citrus
|
||||
name = "triple_citrus"
|
||||
id = /datum/reagent/consumable/triple_citrus
|
||||
results = list(/datum/reagent/consumable/triple_citrus = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/lemonjuice = 1, /datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/orangejuice = 1)
|
||||
mix_message = "The glass's contents shift colors from a rainbow of fruity twinges before settling with a distinct flowery smell."
|
||||
|
||||
/datum/chemical_reaction/grape_soda
|
||||
name = "grape soda"
|
||||
@@ -567,6 +589,7 @@
|
||||
results = list(/datum/reagent/consumable/ethanol/bacchus_blessing = 4)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/hooch = 1, /datum/reagent/consumable/ethanol/absinthe = 1, /datum/reagent/consumable/ethanol/manly_dorf = 1, /datum/reagent/consumable/ethanol/syndicatebomb = 1)
|
||||
mix_message = "<span class='warning'>The mixture turns to a sickening froth.</span>"
|
||||
mix_sound = 'sound/FermiChem/bufferadd.ogg'
|
||||
|
||||
/datum/chemical_reaction/lemonade
|
||||
name = "Lemonade"
|
||||
@@ -601,7 +624,7 @@
|
||||
id = /datum/reagent/consumable/ethanol/cogchamp
|
||||
results = list(/datum/reagent/consumable/ethanol/cogchamp = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/cognac = 1, /datum/reagent/fuel = 1, /datum/reagent/consumable/ethanol/screwdrivercocktail = 1)
|
||||
mix_message = "You hear faint sounds of gears turning as it mixes."
|
||||
mix_message = "You hear faint sounds of gears turning as the mixture gives off virulent plumes of steam."
|
||||
mix_sound = 'sound/machines/clockcult/steam_whoosh.ogg'
|
||||
|
||||
/datum/chemical_reaction/pinotmort
|
||||
@@ -744,18 +767,22 @@
|
||||
id = /datum/reagent/consumable/pwr_game
|
||||
results = list(/datum/reagent/consumable/pwr_game = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/sodawater = 1, /datum/reagent/colorful_reagent/crayonpowder/black = 1, /datum/reagent/consumable/sodiumchloride = 1)
|
||||
mix_message = "The mixture froths as it turns black, rousing a nauseating aroma of sweat and salt before settling to an eerie purple color."
|
||||
|
||||
/datum/chemical_reaction/pinkmilk
|
||||
name = "Strawberry Milk"
|
||||
id = /datum/reagent/consumable/pinkmilk
|
||||
results = list(/datum/reagent/consumable/pinkmilk = 2)
|
||||
required_reagents = list(/datum/reagent/consumable/strawberryjuice = 1, /datum/reagent/consumable/milk = 1)
|
||||
mix_message = "You feel a sweet aroma drift up your nose as the lactic mixture swirls. It reminds you of... a cafeteria."
|
||||
|
||||
/datum/chemical_reaction/blank_paper
|
||||
name = "Blank Paper"
|
||||
id = /datum/reagent/consumable/ethanol/blank_paper
|
||||
results = list(/datum/reagent/consumable/ethanol/blank_paper = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/silencer = 1, /datum/reagent/consumable/nothing = 1, /datum/reagent/consumable/nuka_cola = 1)
|
||||
mix_message = "As the drink mixes, you can hear nothing..."
|
||||
mix_sound = null
|
||||
|
||||
/datum/chemical_reaction/wizz_fizz
|
||||
name = "Wizz Fizz"
|
||||
@@ -785,18 +812,22 @@
|
||||
id = /datum/reagent/consumable/ethanol/turbo
|
||||
results = list(/datum/reagent/consumable/ethanol/turbo = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/moonshine = 2, /datum/reagent/nitrous_oxide = 1, /datum/reagent/consumable/ethanol/sugar_rush = 1, /datum/reagent/consumable/pwr_game = 1)
|
||||
mix_message = "The mixture pops and fizzles, it's going to bl- oh, nevermind."
|
||||
|
||||
/datum/chemical_reaction/old_timer
|
||||
name = "Old Timer"
|
||||
id = /datum/reagent/consumable/ethanol/old_timer
|
||||
results = list(/datum/reagent/consumable/ethanol/old_timer = 6)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/whiskeysoda = 3, /datum/reagent/consumable/parsnipjuice = 2, /datum/reagent/consumable/ethanol/alexander = 1)
|
||||
mix_message = "You hear a faded record playing in the distance. Then, you hear nothing."
|
||||
mix_sound = null
|
||||
|
||||
/datum/chemical_reaction/rubberneck
|
||||
name = "Rubberneck"
|
||||
id = /datum/reagent/consumable/ethanol/rubberneck
|
||||
results = list(/datum/reagent/consumable/ethanol/rubberneck = 10)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol = 4, /datum/reagent/consumable/grey_bull = 5, /datum/reagent/consumable/astrotame = 1)
|
||||
mix_message = "The mixture boils and bubbles as the faint scent of rubber and heart disease hits your nose."
|
||||
|
||||
/datum/chemical_reaction/duplex
|
||||
name = "Duplex"
|
||||
@@ -809,6 +840,7 @@
|
||||
id = /datum/reagent/consumable/ethanol/trappist
|
||||
results = list(/datum/reagent/consumable/ethanol/trappist = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/ale = 2, /datum/reagent/water/holywater = 2, /datum/reagent/consumable/sugar = 1)
|
||||
mix_message = "As the mixture froths, you swear you can hear a distant holy choir."
|
||||
|
||||
/datum/chemical_reaction/cream_soda
|
||||
name = "Cream Soda"
|
||||
@@ -821,6 +853,8 @@
|
||||
id = /datum/reagent/consumable/ethanol/blazaam
|
||||
results = list(/datum/reagent/consumable/ethanol/blazaam = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/gin = 2, /datum/reagent/consumable/peachjuice = 1, /datum/reagent/bluespace = 1)
|
||||
mix_message = "The mixture- hey, where'd all the liquid go? Oh, there it is."
|
||||
mix_sound = 'sound/magic/Teleport_app.ogg'
|
||||
|
||||
/datum/chemical_reaction/planet_cracker
|
||||
name = "Planet Cracker"
|
||||
@@ -841,6 +875,7 @@
|
||||
results = list(/datum/reagent/consumable/ethanol/gunfire = 4)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/tea = 3)
|
||||
mix_message = "A loud popping begins to fill the air as the drink is mixed."
|
||||
mix_sound = 'sound/effects/wounds/sizzle1.ogg'
|
||||
|
||||
/datum/chemical_reaction/hellfire
|
||||
name = "Hellfire"
|
||||
@@ -848,6 +883,7 @@
|
||||
results = list(/datum/reagent/consumable/ethanol/hellfire = 4)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/ice = 1, /datum/reagent/consumable/ethanol/crevice_spike = 1)
|
||||
mix_message = "The liquid begins to churn as it changes to an amber orange and catches on fire."
|
||||
mix_sound = 'sound/FermiChem/bufferadd.ogg'
|
||||
|
||||
/datum/chemical_reaction/sins_delight
|
||||
name = "Sins Delight"
|
||||
@@ -861,6 +897,7 @@
|
||||
id = /datum/reagent/consumable/ethanol/strawberry_daiquiri
|
||||
results = list(/datum/reagent/consumable/ethanol/strawberry_daiquiri = 7)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/strawberryjuice = 2, /datum/reagent/consumable/ice = 1)
|
||||
mix_message = "The mixture settles as a nostril-flaring waft of strawberry hits your nose."
|
||||
|
||||
/datum/chemical_reaction/miami_vice
|
||||
name = "Miami Vice"
|
||||
@@ -879,18 +916,22 @@
|
||||
id = /datum/reagent/consumable/ethanol/liz_fizz
|
||||
results = list(/datum/reagent/consumable/ethanol/liz_fizz = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/triple_citrus = 3, /datum/reagent/consumable/ice = 1, /datum/reagent/consumable/cream = 1)
|
||||
mix_message = "The smell of cream and lime hits your nose as everything feels very real for a split moment. You want to lick your eye."
|
||||
|
||||
/datum/chemical_reaction/hotlime_miami
|
||||
name = "Hotlime Miami"
|
||||
id = /datum/reagent/consumable/ethanol/hotlime_miami
|
||||
results = list(/datum/reagent/consumable/ethanol/hotlime_miami = 2)
|
||||
required_reagents = list(/datum/reagent/medicine/ephedrine = 1, /datum/reagent/consumable/ethanol/pina_colada = 1)
|
||||
mix_message = "<span class='warning'>You can hear synthwave in the distance as you can feel your blood boiling with rage.</span>"
|
||||
|
||||
/datum/chemical_reaction/mauna_loa
|
||||
name = "Mauna Loa"
|
||||
id = /datum/reagent/consumable/ethanol/mauna_loa
|
||||
results = list(/datum/reagent/consumable/ethanol/mauna_loa = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/capsaicin = 2, /datum/reagent/consumable/ethanol/kahlua = 1, /datum/reagent/consumable/ethanol/bahama_mama = 2)
|
||||
mix_message = "The drink erupts as a plume of lava sprays all over the place! Oh, wait, it's just luke-warm liquor."
|
||||
mix_sound = 'sound/effects/wounds/sizzle2.ogg'
|
||||
|
||||
/datum/chemical_reaction/commander_and_chief
|
||||
name = "Commander and Chief"
|
||||
@@ -899,6 +940,22 @@
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/alliescocktail = 50, /datum/reagent/consumable/ethanol/champagne = 20, /datum/reagent/consumable/doctor_delight = 10, /datum/reagent/consumable/ethanol/quintuple_sec = 10, /datum/reagent/consumable/ethanol/screwdrivercocktail = 10)
|
||||
mix_message = "When your powers combine, I am Captain Pl-..."
|
||||
|
||||
/datum/chemical_reaction/godfather
|
||||
results = list(/datum/reagent/consumable/ethanol/godfather = 2)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/amaretto = 1, /datum/reagent/consumable/ethanol/whiskey = 1)
|
||||
|
||||
/datum/chemical_reaction/godmother
|
||||
results = list(/datum/reagent/consumable/ethanol/godmother = 2)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/amaretto = 1, /datum/reagent/consumable/ethanol/vodka = 1)
|
||||
|
||||
/datum/chemical_reaction/amaretto_alexander
|
||||
results = list(/datum/reagent/consumable/ethanol/amaretto_alexander = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/amaretto = 1, /datum/reagent/consumable/ethanol/creme_de_cacao = 1, /datum/reagent/consumable/cream = 1)
|
||||
|
||||
/datum/chemical_reaction/ginger_amaretto
|
||||
results = list(/datum/reagent/consumable/ethanol/ginger_amaretto = 4)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/amaretto = 1, /datum/reagent/consumable/sol_dry = 1, /datum/reagent/consumable/ice = 1, /datum/reagent/consumable/lemonjuice = 1)
|
||||
|
||||
////////////////////////////////////////// Tea Base Drinks //////////////////////////////////////
|
||||
|
||||
/datum/chemical_reaction/mush
|
||||
@@ -906,6 +963,7 @@
|
||||
id = /datum/reagent/consumable/tea/mush
|
||||
results = list(/datum/reagent/consumable/tea/mush = 3)
|
||||
required_reagents = list(/datum/reagent/drug/mushroomhallucinogen = 3, /datum/reagent/consumable/tea = 3)
|
||||
mix_message = "The liquid stirs with a mixture of psychedelic colors that makes stars peek from the corner of your vision."
|
||||
|
||||
/datum/chemical_reaction/foresttea1
|
||||
name = "Forest Tea"
|
||||
@@ -967,7 +1025,7 @@
|
||||
id = /datum/reagent/consumable/catnip_tea
|
||||
results = list(/datum/reagent/consumable/catnip_tea = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/tea = 5, /datum/reagent/pax/catnip = 2)
|
||||
|
||||
mix_message = "The mixture seems to purr aloud as it stirs together."
|
||||
|
||||
////////////////////////////////////////// Race Base Drinks //////////////////////////////////////
|
||||
|
||||
@@ -976,54 +1034,65 @@
|
||||
id = /datum/reagent/consumable/ethanol/species_drink/coldscales
|
||||
results = list(/datum/reagent/consumable/ethanol/species_drink/coldscales = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/tea = 1, /datum/reagent/toxin/slimejelly = 1, /datum/reagent/consumable/menthol = 1)
|
||||
mix_message = "Bubbles erupt from the glass and spill all over the place as it mixes, before settling with the faint smell of a reptile enclosure."
|
||||
|
||||
/datum/chemical_reaction/oil_drum
|
||||
name = "Oil Drum"
|
||||
id = /datum/reagent/consumable/ethanol/species_drink/oil_drum
|
||||
results = list(/datum/reagent/consumable/ethanol/species_drink/oil_drum = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/oil = 1, /datum/reagent/consumable/ethanol/champagne = 12)
|
||||
mix_message = "You can taste oil in your mouth as the newly-formed mixture floats to the top of the glass."
|
||||
|
||||
/datum/chemical_reaction/nord_king
|
||||
name = "Nord King"
|
||||
id = /datum/reagent/consumable/ethanol/species_drink/nord_king
|
||||
results = list(/datum/reagent/consumable/ethanol/species_drink/nord_king = 10)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol = 5, /datum/reagent/consumable/honey = 1, /datum/reagent/consumable/ethanol/red_mead = 10)
|
||||
mix_message = "You can feel hair growing on places it shouldn't be as the smell of salt water and flame burns into your senses."
|
||||
|
||||
/datum/chemical_reaction/velvet_kiss
|
||||
name = "Velvet Kiss"
|
||||
id = /datum/reagent/consumable/ethanol/species_drink/velvet_kiss
|
||||
results = list(/datum/reagent/consumable/ethanol/species_drink/velvet_kiss = 15) //Limited races use this
|
||||
required_reagents = list(/datum/reagent/blood = 5, /datum/reagent/consumable/tea = 1, /datum/reagent/consumable/ethanol/wine = 10)
|
||||
mix_message = "The taste of blood rolls off your tongue as the mixture oozes a crimson secretion."
|
||||
|
||||
/datum/chemical_reaction/abduction_fruit
|
||||
name = "Abduction Fruit"
|
||||
id = /datum/reagent/consumable/ethanol/species_drink/abduction_fruit
|
||||
results = list(/datum/reagent/consumable/ethanol/species_drink/abduction_fruit = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/limejuice = 10, /datum/reagent/consumable/strawberryjuice = 5, /datum/reagent/consumable/watermelonjuice = 10)
|
||||
mix_message = "The mixture forms with a green cloud of smoke, carrying with a smell of bovines and medicine."
|
||||
|
||||
/datum/chemical_reaction/bug_zapper
|
||||
name = "Bug Zapper"
|
||||
id = /datum/reagent/consumable/ethanol/species_drink/bug_zapper
|
||||
results = list(/datum/reagent/consumable/ethanol/species_drink/bug_zapper = 20) //Harder to make
|
||||
required_reagents = list(/datum/reagent/consumable/lemonjuice = 10, /datum/reagent/teslium = 1, /datum/reagent/copper = 10)
|
||||
mix_message = "The mixture comes to life with a spark and a zap - shortly after, you can hear the faint buzzing of moths circling your head."
|
||||
mix_sound = 'sound/weapons/taser.ogg'
|
||||
|
||||
/datum/chemical_reaction/mush_crush
|
||||
name = "Mush Crush"
|
||||
id = /datum/reagent/consumable/ethanol/species_drink/mush_crush
|
||||
results = list(/datum/reagent/consumable/ethanol/species_drink/mush_crush = 10)
|
||||
required_reagents = list(/datum/reagent/iron = 5, /datum/reagent/ash = 5, /datum/reagent/toxin/coffeepowder = 10)
|
||||
mix_message = "The mixture sputters and coughs as a mushroom suddenly emerges from the glass!"
|
||||
|
||||
/datum/chemical_reaction/darkbrew
|
||||
name = "Darkbrew"
|
||||
id = /datum/reagent/consumable/ethanol/species_drink/darkbrew
|
||||
results = list(/datum/reagent/consumable/ethanol/species_drink/darkbrew = 20)//Limited races use this
|
||||
required_reagents = list(/datum/reagent/liquid_dark_matter = 5, /datum/reagent/toxin/bungotoxin = 5, /datum/reagent/toxin/coffeepowder = 10)
|
||||
mix_message = "As the glass turns into a shadowy pit, you can smell... nothing."
|
||||
|
||||
/datum/chemical_reaction/hollow_bone
|
||||
name = "Hollow Bone"
|
||||
id = /datum/reagent/consumable/ethanol/species_drink/hollow_bone
|
||||
results = list(/datum/reagent/consumable/ethanol/species_drink/hollow_bone = 10)
|
||||
required_reagents = list(/datum/reagent/toxin/bonehurtingjuice = 5, /datum/reagent/consumable/milk = 10, /datum/reagent/consumable/coconutmilk = 10)
|
||||
mix_message = "<span class='warning'>Your bones feel weak.</span>"
|
||||
mix_sound = 'sound/effects/wounds/crack1.ogg'
|
||||
|
||||
/datum/chemical_reaction/frisky_kitty
|
||||
name = "Frisky Kitty"
|
||||
@@ -1031,6 +1100,7 @@
|
||||
results = list(/datum/reagent/consumable/ethanol/species_drink/frisky_kitty = 2)
|
||||
required_reagents = list(/datum/reagent/consumable/catnip_tea = 1, /datum/reagent/consumable/milk = 1)
|
||||
required_temp = 296 //Just above room temp (22.85'C)
|
||||
mix_message = "The drink bubbles over the rim as it settles, and the smell of wet fur and felines makes it feel like you're in heat."
|
||||
|
||||
/datum/chemical_reaction/jell_wyrm
|
||||
name = "Jell Wyrm"
|
||||
@@ -1038,6 +1108,7 @@
|
||||
results = list(/datum/reagent/consumable/ethanol/species_drink/jell_wyrm = 2)
|
||||
required_reagents = list(/datum/reagent/toxin/slimejelly = 1, /datum/reagent/toxin/carpotoxin = 1, /datum/reagent/carbondioxide = 5)
|
||||
required_temp = 333 // (59.85'C)
|
||||
mix_message = "The smell of toxins scrunches your nose as your limbs grow limp and feel like jelly."
|
||||
|
||||
/datum/chemical_reaction/laval_spit
|
||||
name = "Laval Spit"
|
||||
@@ -1045,3 +1116,5 @@
|
||||
results = list(/datum/reagent/consumable/ethanol/species_drink/laval_spit = 20) //Limited use
|
||||
required_reagents = list(/datum/reagent/iron = 5, /datum/reagent/consumable/ethanol/mauna_loa = 10, /datum/reagent/sulfur = 5)
|
||||
required_temp = 900 // (626.85'C)
|
||||
mix_message = "The room grows warm as burning rock rockets over the edge of the drink before settling."
|
||||
mix_sound = 'sound/effects/wounds/sizzle2.ogg'
|
||||
|
||||
@@ -3,6 +3,15 @@
|
||||
|
||||
////////////////////////////////////////////////BREAD////////////////////////////////////////////////
|
||||
|
||||
/datum/crafting_recipe/food/bread
|
||||
name = "Bread"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/breadslice/plain = 5,
|
||||
)
|
||||
tools = list(/obj/item/kitchen/efink)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/bread/plain
|
||||
subcategory = CAT_BREAD
|
||||
|
||||
/datum/crafting_recipe/food/banananutbread
|
||||
name = "Banana nut bread"
|
||||
reqs = list(
|
||||
|
||||
@@ -66,6 +66,16 @@
|
||||
|
||||
////////////////////////////////////////////////MISC RECIPE's////////////////////////////////////////////////
|
||||
|
||||
/datum/crafting_recipe/food/meatslab
|
||||
name = "Meat Slab"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/meat/rawcutlet = 3,
|
||||
)
|
||||
tools = list(/obj/item/kitchen/efink)
|
||||
result = /obj/item/reagent_containers/food/snacks/meat/slab
|
||||
subcategory = CAT_MEAT
|
||||
|
||||
|
||||
/datum/crafting_recipe/food/ribs
|
||||
name = "BBQ Ribs"
|
||||
reqs = list(
|
||||
|
||||
@@ -47,6 +47,24 @@
|
||||
|
||||
/////////////////////////////////MISC/////////////////////////////////////
|
||||
|
||||
/datum/crafting_recipe/food/dough
|
||||
name = "Dough"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/doughslice = 3,
|
||||
)
|
||||
tools = list(/obj/item/kitchen/efink)
|
||||
result = /obj/item/reagent_containers/food/snacks/flatdough
|
||||
subcategory = CAT_MISCFOOD
|
||||
|
||||
/datum/crafting_recipe/food/Pineapple
|
||||
name = "Pineapple"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/pineappleslice = 3,
|
||||
)
|
||||
tools = list(/obj/item/kitchen/efink)
|
||||
result = /obj/item/reagent_containers/food/snacks/grown/pineapple
|
||||
subcategory = CAT_MISCFOOD
|
||||
|
||||
/datum/crafting_recipe/food/beans
|
||||
name = "Beans"
|
||||
time = 40
|
||||
|
||||
@@ -194,6 +194,15 @@
|
||||
|
||||
////////////////////////////////////////////OTHER////////////////////////////////////////////
|
||||
|
||||
/datum/crafting_recipe/food/piedough
|
||||
name = "Pie Dough"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/rawpastrybase = 3,
|
||||
)
|
||||
tools = list(/obj/item/kitchen/efink)
|
||||
result = /obj/item/reagent_containers/food/snacks/piedough
|
||||
subcategory = CAT_PASTRY
|
||||
|
||||
/datum/crafting_recipe/food/chococornet
|
||||
name = "Choco cornet"
|
||||
reqs = list(
|
||||
|
||||
@@ -8,6 +8,10 @@
|
||||
area_flags = BLOBS_ALLOWED | UNIQUE_AREA
|
||||
flags_1 = CAN_BE_DIRTY_1
|
||||
|
||||
/area/survivalpod/nonpowered
|
||||
name = "\proper Emergency Shelter"
|
||||
requires_power = TRUE
|
||||
|
||||
//Survival Capsule
|
||||
/obj/item/survivalcapsule
|
||||
name = "bluespace shelter capsule"
|
||||
@@ -81,6 +85,10 @@
|
||||
desc = "A luxury bar in a capsule. Bartender required and not included."
|
||||
template_id = "shelter_charlie"
|
||||
|
||||
/obj/item/survivalcapsule/luxury/empty
|
||||
name = "large empty capsule"
|
||||
desc = "An extremly large capsule which requires power. Useful for projects all over."
|
||||
template_id = "shelter_delta"
|
||||
//Pod objects
|
||||
|
||||
//Window
|
||||
|
||||
@@ -994,7 +994,6 @@
|
||||
H.dna.features["wings"] = "None"
|
||||
H.dna.features["frills"] = "None"
|
||||
H.dna.features["spines"] = "Long"
|
||||
H.dna.features["body_markings"] = "Dark Tiger Body"
|
||||
H.dna.features["legs"] = "Digitigrade"
|
||||
H.dna.features["taur_body"] = "None"
|
||||
H.left_eye_color = "fee5a3"
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
new /datum/data/mining_equipment("Ice hiking boots", /obj/item/clothing/shoes/winterboots/ice_boots, 2500),
|
||||
new /datum/data/mining_equipment("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 3000),
|
||||
new /datum/data/mining_equipment("Luxury Bar Capsule", /obj/item/survivalcapsule/luxury/elitebar, 10000),
|
||||
new /datum/data/mining_equipment("Empty Capsule", /obj/item/survivalcapsule/luxury/empty, 5000),
|
||||
new /datum/data/mining_equipment("Nanotrasen Minebot", /mob/living/simple_animal/hostile/mining_drone, 800),
|
||||
new /datum/data/mining_equipment("Minebot Melee Upgrade", /obj/item/mine_bot_upgrade, 400),
|
||||
new /datum/data/mining_equipment("Minebot Armor Upgrade", /obj/item/mine_bot_upgrade/health, 400),
|
||||
|
||||
@@ -73,3 +73,15 @@
|
||||
. = ..()
|
||||
whitelisted_turfs = typecacheof(/turf/closed/mineral)
|
||||
banned_objects = typecacheof(/obj/structure/stone_tile)
|
||||
|
||||
/datum/map_template/shelter/delta
|
||||
name = "Shelter Delta"
|
||||
shelter_id = "shelter_delta"
|
||||
description = "A massive but barebones survival capsule useful\
|
||||
for projects that require great deals of space."
|
||||
mappath = "_maps/templates/shelter_4.dmm"
|
||||
|
||||
/datum/map_template/shelter/delta/New()
|
||||
. = ..()
|
||||
whitelisted_turfs = typecacheof(/turf/closed/mineral)
|
||||
banned_objects = typecacheof(/obj/structure/stone_tile)
|
||||
|
||||
@@ -54,6 +54,8 @@
|
||||
mannequin.job = previewJob.title
|
||||
previewJob.equip(mannequin, TRUE, preference_source = parent)
|
||||
|
||||
mannequin.regenerate_icons()
|
||||
|
||||
COMPILE_OVERLAYS(mannequin)
|
||||
parent.show_character_previews(new /mutable_appearance(mannequin))
|
||||
unset_busy_human_dummy(DUMMY_HUMAN_SLOT_PREFERENCES)
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
name = "DataShark"
|
||||
icon_state = "datashark"
|
||||
ckeys_allowed = list("rubyflamewing")
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_GREEN, "Left Leg" = MATRIX_GREEN, "Right Leg" = MATRIX_GREEN, "Left Arm" = MATRIX_GREEN, "Right Arm" = MATRIX_GREEN)
|
||||
|
||||
//Sabresune
|
||||
/datum/sprite_accessory/ears/mam_ears/sabresune
|
||||
@@ -39,6 +40,7 @@
|
||||
name = "Sabresune"
|
||||
icon_state = "sabresune"
|
||||
ckeys_allowed = list("poojawa")
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_RED_GREEN, "Right Leg" = MATRIX_RED_GREEN, "Left Arm" = MATRIX_RED_GREEN, "Right Arm" = MATRIX_RED_GREEN)
|
||||
|
||||
//Lunasune
|
||||
/datum/sprite_accessory/ears/mam_ears/lunasune
|
||||
|
||||
@@ -1,39 +1,3 @@
|
||||
/******************************************
|
||||
************* Lizard Markings *************
|
||||
*******************************************/
|
||||
|
||||
/datum/sprite_accessory/body_markings
|
||||
icon = 'icons/mob/mutant_bodyparts.dmi'
|
||||
relevant_layers = list(BODY_ADJ_LAYER)
|
||||
mutant_part_string = "body_markings"
|
||||
|
||||
/datum/sprite_accessory/body_markings/none
|
||||
name = "None"
|
||||
icon_state = "none"
|
||||
relevant_layers = null
|
||||
|
||||
/datum/sprite_accessory/body_markings/dtiger
|
||||
name = "Dark Tiger Body"
|
||||
icon_state = "dtiger"
|
||||
gender_specific = 1
|
||||
|
||||
/datum/sprite_accessory/body_markings/guilmon
|
||||
name = "Guilmon"
|
||||
icon_state = "guilmon"
|
||||
color_src = MATRIXED
|
||||
icon = 'modular_citadel/icons/mob/markings_notmammals.dmi'
|
||||
matrixed_sections = MATRIX_ALL
|
||||
|
||||
/datum/sprite_accessory/body_markings/ltiger
|
||||
name = "Light Tiger Body"
|
||||
icon_state = "ltiger"
|
||||
gender_specific = 1
|
||||
|
||||
/datum/sprite_accessory/body_markings/lbelly
|
||||
name = "Light Belly"
|
||||
icon_state = "lbelly"
|
||||
gender_specific = 1
|
||||
|
||||
/******************************************
|
||||
************ Furry Markings ***************
|
||||
*******************************************/
|
||||
@@ -49,7 +13,8 @@
|
||||
gender_specific = 0
|
||||
icon = 'modular_citadel/icons/mob/mam_markings.dmi'
|
||||
recommended_species = list("mammal", "xeno", "slimeperson", "podweak")
|
||||
matrixed_sections = MATRIX_ALL
|
||||
matrixed_sections = MATRIX_ALL // this value is used if there is no value in covered_limbs, don't rely on it, it's a backup value
|
||||
var/list/covered_limbs = list("Head", "Chest", "Left Leg", "Right Leg", "Left Arm", "Right Arm")
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/none
|
||||
name = "None"
|
||||
@@ -62,87 +27,107 @@
|
||||
/datum/sprite_accessory/mam_body_markings/redpanda
|
||||
name = "Redpanda"
|
||||
icon_state = "redpanda"
|
||||
covered_limbs = list("Head" = MATRIX_RED_BLUE, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_RED_GREEN, "Right Leg" = MATRIX_RED_GREEN, "Left Arm" = MATRIX_RED_GREEN, "Right Arm" = MATRIX_RED_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/bat
|
||||
name = "Bat"
|
||||
icon_state = "bat"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_ALL, "Left Leg" = MATRIX_RED_BLUE, "Right Leg" = MATRIX_RED_BLUE, "Left Arm" = MATRIX_RED, "Right Arm" = MATRIX_RED)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/bee
|
||||
name = "Bee"
|
||||
icon_state = "bee"
|
||||
icon = 'modular_citadel/icons/mob/markings_notmammals.dmi'
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_GREEN, "Left Leg" = MATRIX_GREEN, "Right Leg" = MATRIX_GREEN, "Left Arm" = MATRIX_GREEN, "Right Arm" = MATRIX_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/belly
|
||||
name = "Belly"
|
||||
icon_state = "belly"
|
||||
icon = 'modular_citadel/icons/mob/markings_notmammals.dmi'
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_GREEN, "Left Leg" = MATRIX_RED, "Right Leg" = MATRIX_RED)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/bellyslim
|
||||
name = "Bellyslim"
|
||||
icon_state = "bellyslim"
|
||||
icon = 'modular_citadel/icons/mob/markings_notmammals.dmi'
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_RED, "Right Leg" = MATRIX_RED, "Left Arm" = MATRIX_RED, "Right Arm" = MATRIX_RED)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/cow
|
||||
name = "Bovine"
|
||||
icon_state = "bovine"
|
||||
covered_limbs = list("Head" = MATRIX_ALL, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_ALL, "Right Leg" = MATRIX_ALL, "Left Arm" = MATRIX_RED_GREEN, "Right Arm" = MATRIX_RED_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/corgi
|
||||
name = "Corgi"
|
||||
icon_state = "corgi"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_RED_GREEN, "Right Leg" = MATRIX_RED_GREEN, "Left Arm" = MATRIX_RED_GREEN, "Right Arm" = MATRIX_RED_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/corvid
|
||||
name = "Corvid"
|
||||
icon_state = "corvid"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_ALL, "Right Leg" = MATRIX_ALL, "Left Arm" = MATRIX_RED, "Right Arm" = MATRIX_RED)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/dalmation
|
||||
name = "Dalmation"
|
||||
icon_state = "dalmation"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_RED_GREEN, "Right Leg" = MATRIX_RED_GREEN, "Left Arm" = MATRIX_RED_GREEN, "Right Arm" = MATRIX_RED_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/deer
|
||||
name = "Deer"
|
||||
icon_state = "deer"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_GREEN_BLUE, "Right Leg" = MATRIX_GREEN_BLUE, "Left Arm" = MATRIX_GREEN, "Right Arm" = MATRIX_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/dog
|
||||
name = "Dog"
|
||||
icon_state = "dog"
|
||||
covered_limbs = list("Head" = MATRIX_RED_BLUE, "Chest" = MATRIX_ALL, "Left Leg" = MATRIX_GREEN_BLUE, "Right Leg" = MATRIX_GREEN_BLUE, "Left Arm" = MATRIX_ALL, "Right Arm" = MATRIX_ALL)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/eevee
|
||||
name = "Eevee"
|
||||
icon_state = "eevee"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/fennec
|
||||
name = "Fennec"
|
||||
icon_state = "Fennec"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_RED_GREEN, "Right Leg" = MATRIX_RED_GREEN, "Left Arm" = MATRIX_RED_GREEN, "Right Arm" = MATRIX_RED_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/fox
|
||||
name = "Fox"
|
||||
icon_state = "fox"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_ALL, "Right Leg" = MATRIX_ALL, "Left Arm" = MATRIX_RED_BLUE, "Right Arm" = MATRIX_RED_BLUE)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/frog
|
||||
name = "Frog"
|
||||
icon_state = "frog"
|
||||
icon = 'modular_citadel/icons/mob/markings_notmammals.dmi'
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_GREEN, "Left Leg" = MATRIX_GREEN, "Right Leg" = MATRIX_GREEN, "Left Arm" = MATRIX_GREEN, "Right Arm" = MATRIX_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/goat
|
||||
name = "Goat"
|
||||
icon_state = "goat"
|
||||
covered_limbs = list("Head" = MATRIX_RED, "Chest" = MATRIX_RED, "Left Leg" = MATRIX_RED_BLUE, "Right Leg" = MATRIX_RED_BLUE, "Left Arm" = MATRIX_RED_BLUE, "Right Arm" = MATRIX_RED_BLUE)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/handsfeet
|
||||
name = "Handsfeet"
|
||||
icon_state = "handsfeet"
|
||||
icon = 'modular_citadel/icons/mob/markings_notmammals.dmi'
|
||||
covered_limbs = list("Head" = MATRIX_RED, "Chest" = MATRIX_RED, "Left Leg" = MATRIX_RED_GREEN, "Right Leg" = MATRIX_RED_GREEN, "Left Arm" = MATRIX_RED_GREEN, "Right Arm" = MATRIX_RED_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/hawk
|
||||
name = "Hawk"
|
||||
icon_state = "hawk"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_ALL, "Right Leg" = MATRIX_ALL, "Left Arm" = MATRIX_RED, "Right Arm" = MATRIX_RED)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/husky
|
||||
name = "Husky"
|
||||
icon_state = "husky"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_ALL, "Right Leg" = MATRIX_ALL, "Left Arm" = MATRIX_RED_GREEN, "Right Arm" = MATRIX_RED_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/hyena
|
||||
name = "Hyena"
|
||||
icon_state = "hyena"
|
||||
covered_limbs = list("Head" = MATRIX_ALL, "Chest" = MATRIX_ALL, "Left Leg" = MATRIX_RED_GREEN, "Right Leg" = MATRIX_RED_GREEN, "Left Arm" = MATRIX_RED_GREEN, "Right Arm" = MATRIX_RED_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/insect
|
||||
name = "Insect"
|
||||
@@ -152,78 +137,118 @@
|
||||
/datum/sprite_accessory/mam_body_markings/lab
|
||||
name = "Lab"
|
||||
icon_state = "lab"
|
||||
covered_limbs = list("Head" = MATRIX_RED, "Chest" = MATRIX_RED, "Left Leg" = MATRIX_RED, "Right Leg" = MATRIX_RED, "Left Arm" = MATRIX_RED, "Right Arm" = MATRIX_RED)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/orca
|
||||
name = "Orca"
|
||||
icon_state = "orca"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_RED_GREEN, "Right Leg" = MATRIX_RED_GREEN, "Left Arm" = MATRIX_RED_GREEN, "Right Arm" = MATRIX_RED_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/otie
|
||||
name = "Otie"
|
||||
icon_state = "otie"
|
||||
covered_limbs = list("Head" = MATRIX_ALL, "Chest" = MATRIX_ALL, "Left Leg" = MATRIX_ALL, "Right Leg" = MATRIX_ALL, "Left Arm" = MATRIX_ALL, "Right Arm" = MATRIX_ALL)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/otter
|
||||
name = "Otter"
|
||||
icon_state = "otter"
|
||||
covered_limbs = list("Head" = MATRIX_ALL, "Chest" = MATRIX_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/panther
|
||||
name = "Panther"
|
||||
icon_state = "panther"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_RED_GREEN, "Right Leg" = MATRIX_RED_GREEN, "Left Arm" = MATRIX_RED_GREEN, "Right Arm" = MATRIX_RED_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/plain
|
||||
name = "Plain"
|
||||
icon_state = "plain"
|
||||
icon = 'modular_citadel/icons/mob/markings_notmammals.dmi'
|
||||
covered_limbs = list("Head" = MATRIX_RED, "Chest" = MATRIX_RED, "Left Leg" = MATRIX_RED, "Right Leg" = MATRIX_RED, "Left Arm" = MATRIX_RED, "Right Arm" = MATRIX_RED)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/possum
|
||||
name = "Possum"
|
||||
icon_state = "possum"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_RED_BLUE, "Right Leg" = MATRIX_RED_BLUE, "Left Arm" = MATRIX_RED_BLUE, "Right Arm" = MATRIX_RED_BLUE)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/raccoon
|
||||
name = "Raccoon"
|
||||
icon_state = "raccoon"
|
||||
covered_limbs = list("Head" = MATRIX_ALL, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_ALL, "Right Leg" = MATRIX_ALL, "Left Arm" = MATRIX_RED_GREEN, "Right Arm" = MATRIX_RED_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/sergal
|
||||
name = "Sergal"
|
||||
icon_state = "sergal"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/pede
|
||||
name = "Scolipede"
|
||||
icon_state = "scolipede"
|
||||
icon = 'modular_citadel/icons/mob/markings_notmammals.dmi'
|
||||
covered_limbs = list("Head" = MATRIX_GREEN, "Chest" = MATRIX_GREEN_BLUE, "Left Leg" = MATRIX_GREEN, "Right Leg" = MATRIX_GREEN, "Left Arm" = MATRIX_GREEN, "Right Arm" = MATRIX_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/shark
|
||||
name = "Shark"
|
||||
icon_state = "shark"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED, "Left Leg" = MATRIX_RED, "Right Leg" = MATRIX_RED_GREEN, "Left Arm" = MATRIX_RED_GREEN, "Right Arm" = MATRIX_RED_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/shepherd
|
||||
name = "Shepherd"
|
||||
icon_state = "shepherd"
|
||||
covered_limbs = list("Head" = MATRIX_ALL, "Chest" = MATRIX_ALL, "Left Leg" = MATRIX_RED_GREEN, "Right Leg" = MATRIX_RED_GREEN, "Left Arm" = MATRIX_RED, "Right Arm" = MATRIX_RED)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/skunk
|
||||
name = "Skunk"
|
||||
icon_state = "skunk"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_RED_GREEN, "Right Leg" = MATRIX_RED_GREEN, "Left Arm" = MATRIX_RED, "Right Arm" = MATRIX_RED)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/tajaran
|
||||
name = "Tajaran"
|
||||
icon_state = "tajaran"
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_RED, "Right Leg" = MATRIX_RED, "Left Arm" = MATRIX_RED, "Right Arm" = MATRIX_RED)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/tiger
|
||||
name = "Tiger"
|
||||
icon_state = "tiger"
|
||||
covered_limbs = list("Head" = MATRIX_ALL, "Chest" = MATRIX_ALL, "Left Leg" = MATRIX_ALL, "Right Leg" = MATRIX_ALL, "Left Arm" = MATRIX_RED_BLUE, "Right Arm" = MATRIX_RED_BLUE)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/turian
|
||||
name = "Turian"
|
||||
icon_state = "turian"
|
||||
icon = 'modular_citadel/icons/mob/markings_notmammals.dmi'
|
||||
covered_limbs = list("Head" = MATRIX_RED_GREEN, "Chest" = MATRIX_RED, "Left Leg" = MATRIX_RED, "Right Leg" = MATRIX_RED, "Left Arm" = MATRIX_RED, "Right Arm" = MATRIX_RED)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/wolf
|
||||
name = "Wolf"
|
||||
icon_state = "wolf"
|
||||
covered_limbs = list("Head" = MATRIX_ALL, "Chest" = MATRIX_ALL, "Left Leg" = MATRIX_RED_BLUE, "Right Leg" = MATRIX_RED_BLUE, "Left Arm" = MATRIX_RED_BLUE, "Right Arm" = MATRIX_RED_BLUE)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/xeno
|
||||
name = "Xeno"
|
||||
icon_state = "xeno"
|
||||
icon = 'modular_citadel/icons/mob/markings_notmammals.dmi'
|
||||
covered_limbs = list("Head" = MATRIX_BLUE, "Chest" = MATRIX_GREEN, "Left Leg" = MATRIX_GREEN, "Right Leg" = MATRIX_GREEN, "Left Arm" = MATRIX_GREEN, "Right Arm" = MATRIX_GREEN)
|
||||
|
||||
// sticking old lizard markings here for now
|
||||
/datum/sprite_accessory/mam_body_markings/dtiger
|
||||
name = "Dark Tiger Body"
|
||||
icon_state = "dtiger"
|
||||
covered_limbs = list("Head" = MATRIX_RED, "Chest" = MATRIX_RED, "Left Leg" = MATRIX_RED, "Right Leg" = MATRIX_RED, "Left Arm" = MATRIX_RED, "Right Arm" = MATRIX_RED)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/guilmon
|
||||
name = "Guilmon"
|
||||
icon_state = "guilmon"
|
||||
icon = 'modular_citadel/icons/mob/markings_notmammals.dmi'
|
||||
covered_limbs = list("Head" = MATRIX_RED_BLUE, "Chest" = MATRIX_GREEN_BLUE, "Left Leg" = MATRIX_BLUE, "Right Leg" = MATRIX_BLUE, "Left Arm" = MATRIX_GREEN_BLUE, "Right Arm" = MATRIX_GREEN_BLUE)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/ltiger
|
||||
name = "Light Tiger Body"
|
||||
icon_state = "ltiger"
|
||||
covered_limbs = list("Head" = MATRIX_RED, "Chest" = MATRIX_RED, "Left Leg" = MATRIX_RED, "Right Leg" = MATRIX_RED, "Left Arm" = MATRIX_RED, "Right Arm" = MATRIX_RED)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/lbelly
|
||||
name = "Light Belly"
|
||||
icon_state = "lbelly"
|
||||
covered_limbs = list("Head" = MATRIX_RED, "Chest" = MATRIX_RED, "Left Leg" = MATRIX_RED, "Right Leg" = MATRIX_RED, "Left Arm" = MATRIX_RED, "Right Arm" = MATRIX_RED)
|
||||
|
||||
/******************************************
|
||||
************* Insect Markings *************
|
||||
|
||||
@@ -32,20 +32,20 @@
|
||||
icon = 'modular_citadel/icons/mob/synthliz_body_markings.dmi'
|
||||
name = "Synthetic Lizard - Pecs"
|
||||
icon_state = "synthlizpecs"
|
||||
matrixed_sections = MATRIX_GREEN
|
||||
covered_limbs = list("Chest" = MATRIX_GREEN)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/synthliz/synthliz_pecslight
|
||||
icon = 'modular_citadel/icons/mob/synthliz_body_markings.dmi'
|
||||
name = "Synthetic Lizard - Pecs Light"
|
||||
icon_state = "synthlizpecslight"
|
||||
matrixed_sections = MATRIX_GREEN_BLUE
|
||||
covered_limbs = list("Chest" = MATRIX_GREEN_BLUE)
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/synthliz
|
||||
recommended_species = list("synthliz")
|
||||
icon = 'modular_citadel/icons/mob/synthliz_body_markings.dmi'
|
||||
name = "Synthetic Lizard - Plates"
|
||||
icon_state = "synthlizscutes"
|
||||
matrixed_sections = MATRIX_GREEN
|
||||
covered_limbs = list("Chest" = MATRIX_GREEN)
|
||||
|
||||
//Synth tails
|
||||
/datum/sprite_accessory/tails/mam_tails/synthliz
|
||||
|
||||
@@ -41,10 +41,10 @@
|
||||
|
||||
. += "[t_He] [t_is] wearing [w_uniform.get_examine_string(user)][accessory_msg]."
|
||||
//head
|
||||
if(head && !(head.item_flags & EXAMINE_SKIP))
|
||||
if(head && !(head.obj_flags & EXAMINE_SKIP))
|
||||
. += "[t_He] [t_is] wearing [head.get_examine_string(user)] on [t_his] head."
|
||||
//suit/armor
|
||||
if(wear_suit && !(wear_suit.item_flags & EXAMINE_SKIP))
|
||||
if(wear_suit && !(wear_suit.obj_flags & EXAMINE_SKIP))
|
||||
. += "[t_He] [t_is] wearing [wear_suit.get_examine_string(user)]."
|
||||
//suit/armor storage
|
||||
if(s_store && !(SLOT_S_STORE in obscured))
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,HORNCOLOR,WINGCOLOR,HAS_FLESH,HAS_BONE)
|
||||
inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BEAST
|
||||
mutant_bodyparts = list("mcolor" = "FFFFFF","mcolor2" = "FFFFFF","mcolor3" = "FFFFFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "deco_wings" = "None",
|
||||
"mam_body_markings" = "Husky", "taur" = "None", "horns" = "None", "legs" = "Plantigrade", "meat_type" = "Mammalian")
|
||||
"mam_body_markings" = list(), "taur" = "None", "horns" = "None", "legs" = "Plantigrade", "meat_type" = "Mammalian")
|
||||
attack_verb = "claw"
|
||||
attack_sound = 'sound/weapons/slash.ogg'
|
||||
miss_sound = 'sound/weapons/slashmiss.ogg'
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
coldmod = 1.5
|
||||
heatmod = 0.67
|
||||
mutant_bodyparts = list("mcolor" = "0F0", "mcolor2" = "0F0", "mcolor3" = "0F0", "tail_lizard" = "Smooth", "mam_snouts" = "Round",
|
||||
"horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None",
|
||||
"horns" = "None", "frills" = "None", "spines" = "None", "mam_body_markings" = list(),
|
||||
"legs" = "Digitigrade", "taur" = "None", "deco_wings" = "None")
|
||||
attack_verb = "slash"
|
||||
attack_sound = 'sound/weapons/slash.ogg'
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
name = "Anthropomorphic Plant"
|
||||
id = SPECIES_POD_WEAK
|
||||
species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS,CAN_SCAR,HAS_FLESH,HAS_BONE)
|
||||
mutant_bodyparts = list("mcolor" = "FFFFFF","mcolor2" = "FFFFFF","mcolor3" = "FFFFFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "mam_body_markings" = "Husky", "taur" = "None", "legs" = "Normal Legs")
|
||||
mutant_bodyparts = list("mcolor" = "FFFFFF","mcolor2" = "FFFFFF","mcolor3" = "FFFFFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "mam_body_markings" = list(), "taur" = "None", "legs" = "Normal Legs")
|
||||
limbs_id = SPECIES_POD
|
||||
light_nutrition_gain_factor = 3
|
||||
light_bruteheal = -0.2
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
say_mod = "hisses"
|
||||
default_color = "00FF00"
|
||||
species_traits = list(MUTCOLORS,EYECOLOR,LIPS,CAN_SCAR,HAS_FLESH,HAS_BONE)
|
||||
mutant_bodyparts = list("xenotail"="Xenomorph Tail","xenohead"="Standard","xenodorsal"="Standard", "mam_body_markings" = "Xeno","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None", "legs" = "Digitigrade","deco_wings"= "None")
|
||||
mutant_bodyparts = list("xenotail"="Xenomorph Tail","xenohead"="Standard","xenodorsal"="Standard", "mam_body_markings" = list(),"mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None", "legs" = "Digitigrade","deco_wings"= "None")
|
||||
attack_verb = "slash"
|
||||
attack_sound = 'sound/weapons/slash.ogg'
|
||||
miss_sound = 'sound/weapons/slashmiss.ogg'
|
||||
|
||||
@@ -729,11 +729,8 @@ use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if
|
||||
. += "-[BP.digitigrade_type]"
|
||||
if(BP.dmg_overlay_type)
|
||||
. += "-[BP.dmg_overlay_type]"
|
||||
if(BP.body_markings)
|
||||
. += "-[BP.body_markings]"
|
||||
if(length(BP.markings_color) && length(BP.markings_color[1]))
|
||||
for(var/color in BP.markings_color[1])
|
||||
. += "-[color]"
|
||||
if(BP.body_markings_list)
|
||||
. += "-[safe_json_encode(BP.body_markings_list)]"
|
||||
if(BP.icon)
|
||||
. += "-[BP.icon]"
|
||||
else
|
||||
|
||||
@@ -134,7 +134,7 @@ Difficulty: Hard
|
||||
/mob/living/simple_animal/hostile/megafauna/bubblegum/grant_achievement(medaltype,scoretype)
|
||||
. = ..()
|
||||
if(.)
|
||||
SSshuttle.shuttle_purchase_requirements_met |= "bubblegum"
|
||||
SSshuttle.shuttle_purchase_requirements_met["bubblegum"] = TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/bubblegum/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect)
|
||||
if(!charging)
|
||||
|
||||
@@ -360,6 +360,18 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A fine drink originally made to prevent waste by using the leftovers from winemaking."
|
||||
pH = 3.5
|
||||
|
||||
/datum/reagent/consumable/ethanol/amaretto
|
||||
name = "Amaretto"
|
||||
description = "A gentle drink that carries a sweet aroma."
|
||||
color = "#E17600"
|
||||
boozepwr = 25
|
||||
taste_description = "fruity and nutty sweetness"
|
||||
glass_icon_state = "amarettoglass"
|
||||
shot_glass_icon_state = "shotglassgold"
|
||||
glass_name = "glass of amaretto"
|
||||
glass_desc = "A sweet and syrupy-looking drink."
|
||||
pH = 3.5
|
||||
|
||||
/datum/reagent/consumable/ethanol/cognac
|
||||
name = "Cognac"
|
||||
description = "A sweet and strongly alcoholic drink, made after numerous distillations and years of maturing. Classy as fornication."
|
||||
@@ -1790,6 +1802,50 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
to_chat(L,"<span class='notice'>You notice [mighty_shield] looks worn again. Weird.</span>")
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/amaretto_alexander
|
||||
name = "Amaretto Alexander"
|
||||
description = "A weaker version of the Alexander, what it lacks in strength it makes up for in flavor."
|
||||
color = "#DBD5AE"
|
||||
boozepwr = 35
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "sweet, creamy cacao"
|
||||
glass_icon_state = "alexanderam"
|
||||
glass_name = "Amaretto Alexander"
|
||||
glass_desc = "A creamy, indulgent delight that is in fact as gentle as it seems."
|
||||
|
||||
/datum/reagent/consumable/ethanol/ginger_amaretto
|
||||
name = "Ginger Amaretto"
|
||||
description = "A delightfully simple cocktail that pleases the senses."
|
||||
boozepwr = 30
|
||||
color = "#EFB42A"
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "sweetness followed by a soft sourness and warmth"
|
||||
glass_icon_state = "gingeramaretto"
|
||||
glass_name = "Ginger Amaretto"
|
||||
glass_desc = "The sprig of rosemary adds a nice aroma to the drink, and isn't just to be pretentious afterall!"
|
||||
|
||||
/datum/reagent/consumable/ethanol/godfather
|
||||
name = "Godfather"
|
||||
description = "A rough cocktail with illegal connections."
|
||||
boozepwr = 50
|
||||
color = "#E68F00"
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "a delightful softened punch"
|
||||
glass_icon_state = "godfather"
|
||||
glass_name = "Godfather"
|
||||
glass_desc = "A classic from old Italy and enjoyed by gangsters, pray the orange peel doesnt end up in your mouth."
|
||||
|
||||
/datum/reagent/consumable/ethanol/godmother
|
||||
name = "Godmother"
|
||||
description = "A twist on a classic, liked more by mature women."
|
||||
boozepwr = 50
|
||||
color = "#E68F00"
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "sweetness and a zesty twist"
|
||||
glass_icon_state = "godmother"
|
||||
glass_name = "Godmother"
|
||||
glass_desc = "A lovely fresh-smelling cocktail, a true Sicilian delight."
|
||||
|
||||
/datum/reagent/consumable/ethanol/sidecar
|
||||
name = "Sidecar"
|
||||
description = "The one ride you'll gladly give up the wheel for."
|
||||
|
||||
@@ -13,6 +13,14 @@
|
||||
build_path = /obj/item/kitchen/knife
|
||||
category = list("initial","Dinnerware")
|
||||
|
||||
/datum/design/efink
|
||||
name = "E-Fink"
|
||||
id = "efink"
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 12000)
|
||||
build_path = /obj/item/kitchen/efink
|
||||
category = list("initial","Dinnerware")
|
||||
|
||||
/datum/design/fork
|
||||
name = "Fork"
|
||||
id = "fork"
|
||||
|
||||
@@ -47,10 +47,11 @@
|
||||
var/species_color = ""
|
||||
var/mutation_color = ""
|
||||
var/no_update = 0
|
||||
var/body_markings = "" //for bodypart markings
|
||||
var/body_markings_icon = 'modular_citadel/icons/mob/mam_markings.dmi'
|
||||
var/body_markings = "" //for bodypart markings, deprecated
|
||||
var/list/body_markings_list // stores body markings as lists, with the first value being the name of the bodypart, the second value being the name of the marking, and the third being the colour
|
||||
var/marking_value // combination of old aux_marking and body_marking variables as they were always set together to the same value
|
||||
var/static/default_body_markings_icon = 'modular_citadel/icons/mob/mam_markings.dmi'
|
||||
var/list/markings_color = list()
|
||||
var/aux_marking
|
||||
var/digitigrade_type
|
||||
|
||||
var/animal_origin = null //for nonhuman bodypart (e.g. monkey)
|
||||
@@ -614,6 +615,7 @@
|
||||
|
||||
//we inform the bodypart of the changes that happened to the owner, or give it the informations from a source mob.
|
||||
/obj/item/bodypart/proc/update_limb(dropping_limb, mob/living/carbon/source)
|
||||
body_markings_list = list()
|
||||
var/mob/living/carbon/C
|
||||
if(source)
|
||||
C = source
|
||||
@@ -632,8 +634,7 @@
|
||||
color_src = FALSE
|
||||
base_bp_icon = DEFAULT_BODYPART_ICON
|
||||
no_update = TRUE
|
||||
body_markings = "husk" // reeee
|
||||
aux_marking = "husk"
|
||||
marking_value = "husk"
|
||||
|
||||
if(no_update)
|
||||
return
|
||||
@@ -649,11 +650,7 @@
|
||||
|
||||
//body marking memes
|
||||
var/list/colorlist = list()
|
||||
//var/advanced_color_system = (H.dna.features["color_scheme"] == ADVANCED_CHARACTER_COLORING)
|
||||
colorlist.Cut()
|
||||
//colorlist += advanced_color_system ? ReadRGB("[H.dna.features["mam_body_markings_primary"]]00") : ReadRGB("[H.dna.features["mcolor"]]00")
|
||||
//colorlist += advanced_color_system ? ReadRGB("[H.dna.features["mam_body_markings_secondary"]]00") : ReadRGB("[H.dna.features["mcolor2"]]00")
|
||||
//colorlist += advanced_color_system ? ReadRGB("[H.dna.features["mam_body_markings_tertiary"]]00") : ReadRGB("[H.dna.features["mcolor3"]]00")
|
||||
colorlist += ReadRGB("[H.dna.features["mcolor"]]00")
|
||||
colorlist += ReadRGB("[H.dna.features["mcolor2"]]00")
|
||||
colorlist += ReadRGB("[H.dna.features["mcolor3"]]00")
|
||||
@@ -688,21 +685,31 @@
|
||||
else
|
||||
digitigrade_type = null
|
||||
|
||||
if(S.mutant_bodyparts["mam_body_markings"])
|
||||
var/datum/sprite_accessory/Smark
|
||||
Smark = GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]]
|
||||
if(Smark)
|
||||
body_markings_icon = Smark.icon
|
||||
if(H.dna.features["mam_body_markings"] != "None")
|
||||
body_markings = Smark?.icon_state || lowertext(H.dna.features["mam_body_markings"])
|
||||
aux_marking = Smark?.icon_state || lowertext(H.dna.features["mam_body_markings"])
|
||||
else
|
||||
body_markings = "plain"
|
||||
aux_marking = "plain"
|
||||
if(S.mutant_bodyparts["mam_body_markings"]) // checks if the species can actually have body markings
|
||||
// get all markings for this bodypart type
|
||||
for(var/list/marking in H.dna.features["mam_body_markings"])
|
||||
// marking is a list containing bodypart type, bodymarking name, and then the colour (colour won't be used in v1)
|
||||
if(marking[1] == body_part)
|
||||
var/datum/sprite_accessory/Smark
|
||||
Smark = GLOB.mam_body_markings_list[marking[2]]
|
||||
var/body_markings_icon = default_body_markings_icon
|
||||
if(Smark)
|
||||
body_markings_icon = Smark.icon
|
||||
var/marking_value = "" // combination of body and aux markings from old system
|
||||
if(H.dna.features["mam_body_markings"] != "None")
|
||||
marking_value = Smark?.icon_state || lowertext(H.dna.features["mam_body_markings"])
|
||||
else
|
||||
marking_value = "plain"
|
||||
var/list/color_values
|
||||
if(length(marking) == 3)
|
||||
color_values = marking[3]
|
||||
else
|
||||
color_values = list("#FFFFFF", "#FFFFFF", "#FFFFFF")
|
||||
body_markings_list += list(list(body_markings_icon, marking_value, color_values))
|
||||
|
||||
markings_color = list(colorlist)
|
||||
else
|
||||
body_markings = null
|
||||
aux_marking = null
|
||||
marking_value = null
|
||||
|
||||
if(S.override_bp_icon)
|
||||
base_bp_icon = S.override_bp_icon
|
||||
@@ -728,8 +735,7 @@
|
||||
if(is_robotic_limb())
|
||||
dmg_overlay_type = "robotic"
|
||||
if(is_robotic_limb(FALSE))
|
||||
body_markings = null
|
||||
aux_marking = null
|
||||
marking_value = null
|
||||
|
||||
if(dropping_limb)
|
||||
no_update = TRUE //when attached, the limb won't be affected by the appearance changes of its mob owner.
|
||||
@@ -765,17 +771,18 @@
|
||||
. += image('icons/mob/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_0[burnstate]", -DAMAGE_LAYER, image_dir)
|
||||
|
||||
if(!isnull(body_markings) && is_organic_limb(FALSE))
|
||||
if(!use_digitigrade)
|
||||
if(body_zone == BODY_ZONE_CHEST)
|
||||
. += image(body_markings_icon, "[body_markings]_[body_zone]_[icon_gender]", -MARKING_LAYER, image_dir)
|
||||
for(var/list/marking_list in body_markings_list)
|
||||
// marking stores icon and value for the specific bodypart
|
||||
if(!use_digitigrade)
|
||||
if(body_zone == BODY_ZONE_CHEST)
|
||||
. += image(marking_list[1], "[marking_list[2]]_[body_zone]_[icon_gender]", -MARKING_LAYER, image_dir)
|
||||
else
|
||||
. += image(marking_list[1], "[marking_list[2]]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
else
|
||||
. += image(body_markings_icon, "[body_markings]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
else
|
||||
. += image(body_markings_icon, "[body_markings]_[digitigrade_type]_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
. += image(marking_list[1], "[marking_list[2]]_[digitigrade_type]_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
|
||||
var/image/limb = image(layer = -BODYPARTS_LAYER, dir = image_dir)
|
||||
var/list/aux = list()
|
||||
var/image/marking
|
||||
var/list/auxmarking = list()
|
||||
|
||||
. += limb
|
||||
@@ -795,6 +802,7 @@
|
||||
if((body_zone != BODY_ZONE_HEAD && body_zone != BODY_ZONE_CHEST))
|
||||
should_draw_gender = FALSE
|
||||
|
||||
var/list/markings_list = list()
|
||||
if(is_organic_limb())
|
||||
limb.icon = base_bp_icon || 'icons/mob/human_parts.dmi'
|
||||
if(should_draw_gender)
|
||||
@@ -808,21 +816,26 @@
|
||||
limb.icon_state = "[species_id]_[body_zone]"
|
||||
|
||||
// Body markings
|
||||
if(!isnull(body_markings))
|
||||
if(length(body_markings_list))
|
||||
if(species_id == "husk")
|
||||
marking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
. += image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
else if(species_id == "husk" && use_digitigrade)
|
||||
marking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[digitigrade_type]_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
|
||||
else if(!use_digitigrade)
|
||||
if(body_zone == BODY_ZONE_CHEST)
|
||||
marking = image(body_markings_icon, "[body_markings]_[body_zone]_[icon_gender]", -MARKING_LAYER, image_dir)
|
||||
else
|
||||
marking = image(body_markings_icon, "[body_markings]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
. += image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[digitigrade_type]_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
else
|
||||
marking = image(body_markings_icon, "[body_markings]_[digitigrade_type]_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
for(var/list/marking_list in body_markings_list)
|
||||
// marking stores icon and value for the specific bodypart
|
||||
if(!use_digitigrade)
|
||||
if(body_zone == BODY_ZONE_CHEST)
|
||||
markings_list.Add(image(marking_list[1], "[marking_list[2]]_[body_zone]_[icon_gender]", -MARKING_LAYER, image_dir))
|
||||
else
|
||||
markings_list.Add(image(marking_list[1], "[marking_list[2]]_[body_zone]", -MARKING_LAYER, image_dir))
|
||||
else
|
||||
markings_list.Add(image(marking_list[1], "[marking_list[2]]_[digitigrade_type]_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir))
|
||||
|
||||
. += marking
|
||||
if(color_src && length(marking_list) == 3)
|
||||
var/image/I = markings_list[length(markings_list)]
|
||||
I.color = marking_list[3]
|
||||
. += markings_list
|
||||
|
||||
// Citadel End
|
||||
|
||||
@@ -830,11 +843,14 @@
|
||||
for(var/I in aux_icons)
|
||||
var/aux_layer = aux_icons[I]
|
||||
aux += image(limb.icon, "[species_id]_[I]", -aux_layer, image_dir)
|
||||
if(!isnull(aux_marking))
|
||||
if(species_id == "husk")
|
||||
auxmarking += image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[I]", -aux_layer, image_dir)
|
||||
else
|
||||
auxmarking += image(body_markings_icon, "[body_markings]_[I]", -aux_layer, image_dir)
|
||||
if(species_id == "husk")
|
||||
auxmarking += image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[I]", -aux_layer, image_dir)
|
||||
else
|
||||
for(var/marking_list in body_markings_list)
|
||||
var/image/aux_marking_image = image(marking_list[1], "[marking_list[2]]_[I]", -aux_layer, image_dir)
|
||||
if(length(marking_list) == 3)
|
||||
aux_marking_image.color = marking_list[3]
|
||||
auxmarking += aux_marking_image
|
||||
. += aux
|
||||
. += auxmarking
|
||||
|
||||
@@ -849,31 +865,35 @@
|
||||
for(var/I in aux_icons)
|
||||
var/aux_layer = aux_icons[I]
|
||||
aux += image(limb.icon, "[I]", -aux_layer, image_dir)
|
||||
if(!isnull(aux_marking))
|
||||
if(species_id == "husk")
|
||||
auxmarking += image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[I]", -aux_layer, image_dir)
|
||||
else
|
||||
auxmarking += image(body_markings_icon, "[body_markings]_[I]", -aux_layer, image_dir)
|
||||
if(species_id == "husk")
|
||||
auxmarking += image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[I]", -aux_layer, image_dir)
|
||||
else
|
||||
for(var/marking_list in body_markings_list)
|
||||
var/image/aux_marking_image = image(marking_list[1], "[marking_list[2]]_[I]", -aux_layer, image_dir)
|
||||
if(length(marking_list) == 3)
|
||||
aux_marking_image.color = marking_list[3]
|
||||
auxmarking += aux_marking_image
|
||||
. += auxmarking
|
||||
. += aux
|
||||
|
||||
if(!isnull(body_markings))
|
||||
if(length(body_markings))
|
||||
if(species_id == "husk")
|
||||
marking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
. += image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
else if(species_id == "husk" && use_digitigrade)
|
||||
marking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_digitigrade_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
|
||||
else if(!use_digitigrade)
|
||||
if(body_zone == BODY_ZONE_CHEST)
|
||||
marking = image(body_markings_icon, "[body_markings]_[body_zone]_[icon_gender]", -MARKING_LAYER, image_dir)
|
||||
else
|
||||
marking = image(body_markings_icon, "[body_markings]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
. += image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_digitigrade_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
else
|
||||
marking = image(body_markings_icon, "[body_markings]_[digitigrade_type]_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
. += marking
|
||||
for(var/list/marking_list in body_markings_list)
|
||||
// marking stores icon and value for the specific bodypart
|
||||
if(!use_digitigrade)
|
||||
if(body_zone == BODY_ZONE_CHEST)
|
||||
. += image(marking_list[1], "[marking_list[2]]_[body_zone]_[icon_gender]", -MARKING_LAYER, image_dir)
|
||||
else
|
||||
. += image(marking_list[1], "[marking_list[2]]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
else
|
||||
. += image(marking_list[1], "[marking_list[2]]_[digitigrade_type]_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
return
|
||||
|
||||
if(color_src) //TODO - add color matrix support for base species limbs
|
||||
if(color_src) //TODO - add color matrix support for base species limbs (or dont because color matrixes suck)
|
||||
var/draw_color = mutation_color || species_color
|
||||
var/grayscale = FALSE
|
||||
if(!draw_color)
|
||||
@@ -891,20 +911,15 @@
|
||||
if(grayscale)
|
||||
I.icon_state += "_g"
|
||||
I.color = draw_color
|
||||
if(!isnull(aux_marking))
|
||||
for(var/a in auxmarking)
|
||||
var/image/I = a
|
||||
if(species_id == "husk")
|
||||
I.color = "#141414"
|
||||
else
|
||||
I.color = list(markings_color)
|
||||
for(var/a in auxmarking)
|
||||
var/image/I = a
|
||||
if(species_id == "husk")
|
||||
I.color = "#141414"
|
||||
|
||||
if(!isnull(body_markings))
|
||||
if(species_id == "husk")
|
||||
marking.color = "#141414"
|
||||
else
|
||||
marking.color = list(markings_color)
|
||||
|
||||
for(var/image/marking in markings_list)
|
||||
marking.color = "#141414"
|
||||
|
||||
/obj/item/bodypart/deconstruct(disassembled = TRUE)
|
||||
drop_organs()
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
/obj/item/reagent_containers/food/drinks/bottle/absinthe = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/grappa = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/sake = 5,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/amaretto = 5,
|
||||
/obj/item/reagent_containers/food/drinks/ale = 6,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/orangejuice = 4,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/tomatojuice = 4,
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
/obj/item/storage/bag/tray = 8,
|
||||
/obj/item/kitchen/fork = 6,
|
||||
/obj/item/kitchen/knife = 6,
|
||||
/obj/item/kitchen/efink = 2,
|
||||
/obj/item/kitchen/rollingpin = 4,
|
||||
/obj/item/kitchen/unrollingpin = 4,
|
||||
/obj/item/reagent_containers/food/drinks/drinkingglass = 8,
|
||||
|
||||
Reference in New Issue
Block a user