From ae4aa375f96458456c166f9832d0b4f267c96c80 Mon Sep 17 00:00:00 2001 From: Glyphee Date: Tue, 8 Aug 2023 22:20:51 -0400 Subject: [PATCH 01/12] goblino parte una mitad --- code/__DEFINES/mobs.dm | 1 + code/__HELPERS/global_lists.dm | 1 + code/__HELPERS/mobs.dm | 3 + code/_globalvars/lists/flavor_misc.dm | 1 + code/modules/mob/living/carbon/human/dummy.dm | 1 + config/game_options.txt | 1 + .../preferences/species_features/goblin.dm | 16 +++ .../sprite_accessories/goblin_ears.dm | 19 ++++ .../carbon/human/species_type/goblin.dm | 106 ++++++++++++++++++ .../surgery/bodyparts/goblin_bodyparts.dm | 25 +++++ .../surgery/organs/external/goblin_ears.dm | 24 ++++ .../icons/mob/species/goblin/bodyparts.dmi | Bin 0 -> 1278 bytes .../icons/mob/species/goblin/goblin_ears.dmi | Bin 0 -> 260 bytes tgstation.dme | 4 + 14 files changed, 202 insertions(+) create mode 100644 monkestation/code/modules/client/preferences/species_features/goblin.dm create mode 100644 monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_ears.dm create mode 100644 monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm create mode 100644 monkestation/code/modules/surgery/bodyparts/goblin_bodyparts.dm create mode 100644 monkestation/code/modules/surgery/organs/external/goblin_ears.dm create mode 100644 monkestation/icons/mob/species/goblin/bodyparts.dmi create mode 100644 monkestation/icons/mob/species/goblin/goblin_ears.dmi diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 2a73e567fb3b..3c14c4a84237 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -129,6 +129,7 @@ #define SPECIES_OOZELING "oozeling" #define SPECIES_IPC "ipc" #define SPECIES_SIMIAN "simian" +#define SPECIES_GOBLIN "goblin" // Like species IDs, but not specifically attached a species. #define BODYPART_ID_ALIEN "alien" #define BODYPART_ID_ROBOTIC "robotic" diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 68aa1d16ac60..443fc802bbfa 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -41,6 +41,7 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_head, GLOB.anime_top_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_middle, GLOB.anime_middle_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_bottom, GLOB.anime_bottom_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_ears, GLOB.goblin_ears_list) //Species for(var/spath in subtypesof(/datum/species)) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 4b49440e0c5f..37ec8163ad52 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -103,6 +103,8 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_middle, GLOB.anime_middle_list) if(!GLOB.anime_top_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_bottom, GLOB.anime_bottom_list) + if(!GLOB.goblin_ears_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_ears, GLOB.goblin_ears_list) //For now we will always return none for tail_human and ears. | "For now" he says. return(list( @@ -131,6 +133,7 @@ "anime_middle" = pick(GLOB.anime_middle_list), "anime_bottom" = pick(GLOB.anime_bottom_list), "animecolor" = "#[pick("7F","FF")][pick("7F","FF")][pick("7F","FF")]", + "goblin_ears" = pick(GLOB.goblin_ears_list), )) /proc/random_hairstyle(gender) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index ef7d86b8a933..b08203aa6e66 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -47,6 +47,7 @@ GLOBAL_LIST_EMPTY(tails_list_monkey) GLOBAL_LIST_EMPTY(anime_top_list) GLOBAL_LIST_EMPTY(anime_middle_list) GLOBAL_LIST_EMPTY(anime_bottom_list) +GLOBAL_LIST_EMPTY(goblin_ears_list) GLOBAL_LIST_INIT(color_list_ethereal, list( "Blue" = "#3399ff", diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm index d9328813d5d1..2debc973c601 100644 --- a/code/modules/mob/living/carbon/human/dummy.dm +++ b/code/modules/mob/living/carbon/human/dummy.dm @@ -105,6 +105,7 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) target.dna.features["anime_top"] = "None" target.dna.features["anime_middle"] = "None" target.dna.features["anime_bottom"] = "None" + target.dna.features["goblin_ears"] = "Long" /// Provides a dummy that is consistently bald, white, naked, etc. /mob/living/carbon/human/dummy/consistent diff --git a/config/game_options.txt b/config/game_options.txt index 7e7c334ea66a..db9ec31dd46c 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -352,6 +352,7 @@ ROUNDSTART_RACES simian ## Races that are better than humans in some ways, but worse in others ROUNDSTART_RACES ethereal +ROUNDSTART_RACES goblin #ROUNDSTART_RACES jelly #ROUNDSTART_RACES abductor #ROUNDSTART_RACES synth diff --git a/monkestation/code/modules/client/preferences/species_features/goblin.dm b/monkestation/code/modules/client/preferences/species_features/goblin.dm new file mode 100644 index 000000000000..235ef8de35ca --- /dev/null +++ b/monkestation/code/modules/client/preferences/species_features/goblin.dm @@ -0,0 +1,16 @@ +/datum/preference/choiced/goblin_ears + savefile_key = "feature_goblin_ears" + savefile_identifier = PREFERENCE_CHARACTER + category = PREFERENCE_CATEGORY_FEATURES + main_feature_name = "Goblin Ears" + should_generate_icons = TRUE + +/datum/preference/choiced/goblin_ears/init_possible_values() + return possible_values_for_sprite_accessory_list_for_body_part( + GLOB.goblin_ears_list, + "goblin_ears", + list("ADJ"), + ) + +/datum/preference/choiced/goblin_ears/apply_to_human(mob/living/carbon/human/target, value) + target.dna.features["goblin_ears"] = value diff --git a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_ears.dm b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_ears.dm new file mode 100644 index 000000000000..e1344702e961 --- /dev/null +++ b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_ears.dm @@ -0,0 +1,19 @@ +/datum/sprite_accessory/goblin_ears + icon = 'monkestation/icons/mob/species/goblin/goblin_ears.dmi' + color_src = MUTCOLORS + +/datum/sprite_accessory/goblin_ears/long + name = "Long" + icon_state = "long" + +/datum/sprite_accessory/goblin_ears/short + name = "Short" + icon_state = "short" + +/datum/sprite_accessory/goblin_ears/droopy + name = "Droopy" + icon_state = "droopy" + +/datum/sprite_accessory/goblin_ears/hugeup + name = "Huge Up" + icon_state = "hugeup" diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm new file mode 100644 index 000000000000..cb991946b528 --- /dev/null +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm @@ -0,0 +1,106 @@ +/datum/species/goblin + name = "\improper Goblin" + plural_form = "Goblins" + id = SPECIES_GOBLIN + changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN + sexes = TRUE + species_traits = list( + MUTCOLORS, + EYECOLOR, + HAIR, + FACEHAIR + ) + inherent_traits = list( + TRAIT_KLEPTOMANIAC, + TRAIT_DWARF, + TRAIT_QUICK_BUILD, + TRAIT_EASILY_WOUNDED, + TRAIT_NIGHT_VISION, + // TRAIT_pickpocketing? + ) + inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID + external_organs = list( + /obj/item/organ/external/goblin_ears = "long") + meat = /obj/item/food/meat/steak + disliked_food = VEGETABLES + liked_food = GORE | MEAT | GROSS + species_language_holder = /datum/language_holder/goblin + maxhealthmod = 0.75 + stunmod = 0.75 + speedmod = -0.25 + payday_modifier = 0.75 + // bodypart_overrides = list( + // BODY_ZONE_HEAD = /obj/item/bodypart/head/human, + // BODY_ZONE_CHEST = /obj/item/bodypart/chest/human, + // BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/human, + // BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/human, + // BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/human, + // BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/human, + // ) + +/mob/living/carbon/human/species/goblin + race = /datum/species/goblin + +/datum/language_holder/goblin + understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/goblin = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/goblin = list(LANGUAGE_ATOM)) + +/datum/language/goblin + name = "Gobbish" + desc = "The language of goblins, pretty much 1 for 1 stolen from dwarves." + space_chance = 100 // Each 'syllable' is its own word + key = "G" + + syllables = list("kulet", "alak", "bidok", "nicol", "anam", "gatal", "mabdug", "zustash", "sedil", "ustos", "emr", "izeg", "beming", "gost", "ntak", "tosid", "feb", "berim", "ibruk", "ermis", "thoth", "thatthil", "gistang", "libash", "lakish", "asdos", "roder", "nel", "biban", "ugog", "ish", "robek", "olmul", "nokzam", "emuth", "fer", "uvel", "dolush", "ag^k", "ucat", "ng rak", "enir", "ugath", "lisig", "etg", "erong", "osed", "lanlar", "udir", "tarmid", "s krith", "nural", "bugsud", "okag", "nazush", "nashon", "ftrid", "en''r", "dstik", "kogan", "ingish", "dudgoth", "stalk*b", "themor", "murak", "altth", "osod", "thcekut", "cog", "selsten", "egdoth", "othsin", "idek", "st", "suthmam", "im", "okab", "onlnl", "gasol", "tegir", "nam...sh", "noval", "shalig", "shin", "lek", ",,kim", "kfkdal", "stum,,m", "alud", "olom", "%lot", "rozsed", "thos", "okon", "n:c + // ), + list( + SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK, + SPECIES_PERK_ICON = "skull", + SPECIES_PERK_NAME = "Level One Goblin", + SPECIES_PERK_DESC = "You are a weak being, and have less health than most.", // 0.75% health and Easily Wounded trait + ) + ,list( + SPECIES_PERK_TYPE = SPECIES_POSITIVE_PERK, + SPECIES_PERK_ICON = "", + SPECIES_PERK_NAME = "Short", + SPECIES_PERK_DESC = "Short, haha.", //Dwarf trauma + ) + ,list( + SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK, + SPECIES_PERK_ICON = "", + SPECIES_PERK_NAME = "Kleptomania", + SPECIES_PERK_DESC = "You just can't help yourself. Surely they won't notice...", //Kleptomania trauma + ), + ,list( + SPECIES_PERK_TYPE = SPECIES_POSITIVE_PERK, + SPECIES_PERK_ICON = "", + SPECIES_PERK_NAME = "Small Hands", + SPECIES_PERK_DESC = "Goblin's small hands allow them to construct machines faster.", //Quick Build trait + ) + ) + + return to_add diff --git a/monkestation/code/modules/surgery/bodyparts/goblin_bodyparts.dm b/monkestation/code/modules/surgery/bodyparts/goblin_bodyparts.dm new file mode 100644 index 000000000000..80e9d7c6c7e5 --- /dev/null +++ b/monkestation/code/modules/surgery/bodyparts/goblin_bodyparts.dm @@ -0,0 +1,25 @@ +/obj/item/bodypart/head/goblin + icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' + limb_id = SPECIES_GOBLIN + is_dimorphic = FALSE + +/obj/item/bodypart/chest/goblin + icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' + limb_id = SPECIES_GOBLIN + is_dimorphic = TRUE + +/obj/item/bodypart/arm/left/goblin + icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' + limb_id = SPECIES_GOBLIN + +/obj/item/bodypart/arm/right/goblin + icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' + limb_id = SPECIES_GOBLIN + +/obj/item/bodypart/leg/left/goblin + icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' + limb_id = SPECIES_GOBLIN + +/obj/item/bodypart/leg/right/goblin + icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' + limb_id = SPECIES_GOBLIN diff --git a/monkestation/code/modules/surgery/organs/external/goblin_ears.dm b/monkestation/code/modules/surgery/organs/external/goblin_ears.dm new file mode 100644 index 000000000000..0ac47c590333 --- /dev/null +++ b/monkestation/code/modules/surgery/organs/external/goblin_ears.dm @@ -0,0 +1,24 @@ +/obj/item/organ/external/goblin_ears + name = "goblin ears" + desc = "They don't actually let you hear better." + icon_state = "goblin_ears" + + preference = "feature_goblin_ears" + zone = BODY_ZONE_HEAD + slot = ORGAN_SLOT_EXTERNAL_FRILLS + + use_mob_sprite_as_obj_sprite = TRUE + bodypart_overlay = /datum/bodypart_overlay/mutant/goblin_ears + +/datum/bodypart_overlay/mutant/goblin_ears + layers = EXTERNAL_ADJACENT + feature_key = "goblin_ears" + +/datum/bodypart_overlay/mutant/goblin_ears/get_global_feature_list() + return GLOB.goblin_ears_list + +/datum/bodypart_overlay/mutant/goblin_ears/get_base_icon_state() + return sprite_datum.icon_state + +/datum/bodypart_overlay/mutant/goblin_ears/can_draw_on_bodypart(mob/living/carbon/human/human) + return TRUE diff --git a/monkestation/icons/mob/species/goblin/bodyparts.dmi b/monkestation/icons/mob/species/goblin/bodyparts.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9932d70af2cbb98d24df1f36285f4585a0d7a5a8 GIT binary patch literal 1278 zcmVe<}9jEdpM%Y$_%u>b%70d!JMQvg8b*k%9#0G)bNSad{Xb7OL8aCB*J zZU6vyoKseCa&`CgQ*iP105pG%tZG-8z( z#U~aKZFUYRii_ei67z`mWe!QIi{f)q(}_14k78v7S3ehUR005H&x;Gbm1Hmg00Ztx zL_t(|ob8;!a+@#^hEXPPwh7^!t`(mf@ILD65`#(a}&NS$k6l7}LX*>I! zvLNj*fpB&uM3OK^GMz;1X}=vq%s!#5?ws>#g6Auz1rZ98P@zx@uydtuZF{2>wkX0y z{;qH1qir*o5}Bcz_mPE$$x& z38Zw3wnSTKjrTz7VK+I3C~D|YD(@$7x;;$6UMvQV<9_l=*Y>#0RW)=R_w%LjVVwX|6i?3Qj(>)$Y3TAKo|D!!_eQ0r3`vs&`AQu0}1x#LzS)|FltpeFyb!R(p za}#s5P4^>HeoaT12D*7hZc#sA`< zp+Tm>dIbWeNl!g?EdCdzUw;Pz8A&LR)b=Pf0*6Cy{9iitO_$-PBFgHuU4lK~_@7}I zhGEV?a2|W;_O8k-0TObSY2n2?Vc(bu_~aE=*V6 z^(VqBO4d|sMn?#|m-qZ-GFaiVi?78oJ$Ntg`8&G+!!QiPFbu<-#Kr4*{ipW&!C3@g zX7(Hca%d9xw+UEe;n%fFYlUHtuPdd)1jH(s-&|YM;{{HIi(vw38}5PC>gJ>#BxLs^XBn|Y{AFU|WJ%;OR3YUS{k=ilS~5Ap%02gA2u zbn$*TANZ*Be?jW6QkCOw(eShO&A3}Me1T?EfwcAoM&9V-4eVyzeK@{AF{(gLoiNQ=^lHihW}W7EYQAq&%sMG>`gv~VHk#Cn4|FaADl>9J8@U$Zivp^uxW#vOx#Fr z@78w(WJ~}&2<`UQ6L8{fFLT}Y3wY~NdneWvj)3>};MUDj!9&`*0&XzvI*bbxcn{7k z;N=5R0cRAY-Zpzk0rp-#kUQ^lx*5Zz#xKh}FSO%9Tc172NG-k7up7+F7{nB(51O6( oO%XfZ599;W5|TdA{@OnF9f4J^Kor!T2mk;807*qoM6N<$f-sS4+5i9m literal 0 HcmV?d00001 diff --git a/monkestation/icons/mob/species/goblin/goblin_ears.dmi b/monkestation/icons/mob/species/goblin/goblin_ears.dmi new file mode 100644 index 0000000000000000000000000000000000000000..28b69020dc3a2d73473107d02c339636cd3ad5fa GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0P3?wHke>@jRF$egBxE?rgAkBMU3XscK666=m z;PC858jv%kDkP%BCAB!YD6^m>Ge3`kp<+&OSV2+g_bH700>(rEtGaA1By1ECJ2Sy&e zdY)BAi6OQjEaOE?mI=^({GKk3AsQ2t6C_v{H`FjNFgY+VCWM-10i_r`UHx3vIVCg! E0FL!r{Qv*} literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 489c2c79f52b..94dc0da3f1a9 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5603,6 +5603,7 @@ #include "monkestation\code\modules\mob\dead\new_player\sprite_accessories\_base.dm" #include "monkestation\code\modules\mob\dead\new_player\sprite_accessories\anime.dm" #include "monkestation\code\modules\mob\dead\new_player\sprite_accessories\clockwork_sprites.dm" +#include "monkestation\code\modules\mob\dead\new_player\sprite_accessories\goblin_ears.dm" #include "monkestation\code\modules\mob\dead\new_player\sprite_accessories\hair.dm" #include "monkestation\code\modules\mob\dead\new_player\sprite_accessories\ipc_antenna.dm" #include "monkestation\code\modules\mob\dead\new_player\sprite_accessories\ipc_chassis.dm" @@ -5623,6 +5624,7 @@ #include "monkestation\code\modules\mob\living\carbon\human\simian_gags.dm" #include "monkestation\code\modules\mob\living\carbon\human\worn_overlays.dm" #include "monkestation\code\modules\mob\living\carbon\human\monkey\dukeman.dm" +#include "monkestation\code\modules\mob\living\carbon\human\species_type\goblin.dm" #include "monkestation\code\modules\mob\living\carbon\human\species_type\ipc.dm" #include "monkestation\code\modules\mob\living\carbon\human\species_type\oozeling.dm" #include "monkestation\code\modules\mob\living\carbon\human\species_type\simian.dm" @@ -5797,11 +5799,13 @@ #include "monkestation\code\modules\store\store_items\toys.dm" #include "monkestation\code\modules\store\store_items\under.dm" #include "monkestation\code\modules\surgery\bodyparts\clockwork_bodyparts.dm" +#include "monkestation\code\modules\surgery\bodyparts\goblin_bodyparts.dm" #include "monkestation\code\modules\surgery\bodyparts\ipc_bodyparts.dm" #include "monkestation\code\modules\surgery\bodyparts\oozeling_bodyparts.dm" #include "monkestation\code\modules\surgery\bodyparts\simian_bodyparts.dm" #include "monkestation\code\modules\surgery\organs\augments.dm" #include "monkestation\code\modules\surgery\organs\external\anime.dm" +#include "monkestation\code\modules\surgery\organs\external\goblin_ears.dm" #include "monkestation\code\modules\surgery\organs\external\ipc.dm" #include "monkestation\code\modules\surgery\organs\external\simian.dm" #include "monkestation\code\modules\surgery\organs\external\tail\clockworktail.dm" From 2873faf5d56d3001ccaca493863ec9fa4fb3dee9 Mon Sep 17 00:00:00 2001 From: Glyphee Date: Wed, 9 Aug 2023 13:22:25 -0400 Subject: [PATCH 02/12] the one line of code that i was missing that makes everything work --- tgstation.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/tgstation.dme b/tgstation.dme index 94dc0da3f1a9..330840d09cbb 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5841,4 +5841,5 @@ #include "monkestation\code\random_rooms\engines\kilostation.dm" #include "monkestation\code\random_rooms\engines\metastation.dm" #include "monkestation\code\random_rooms\engines\tramstation.dm" +#include "monkestation\code\modules\client\preferences\species_features\goblin.dm" // END_INCLUDE From 3f524533c77702fce63e2f0fe7d3bf470aebb75f Mon Sep 17 00:00:00 2001 From: Glyphee Date: Wed, 9 Aug 2023 14:51:06 -0400 Subject: [PATCH 03/12] GOBLINO PARTE UNO --- code/__DEFINES/is_helpers.dm | 1 + code/modules/mob/living/carbon/human/dummy.dm | 2 +- .../code/game/objects/items/effects/amogus.dm | 3 ++ .../preferences/species_features/goblin.dm | 2 +- .../sprite_accessories/goblin_ears.dm | 24 +++++----- .../carbon/human/species_type/goblin.dm | 42 ++++++++++++++---- .../icons/mob/species/goblin/bodyparts.dmi | Bin 1278 -> 1278 bytes .../icons/mob/species/goblin/goblin_ears.dmi | Bin 260 -> 1268 bytes tgstation.dme | 2 +- 9 files changed, 53 insertions(+), 23 deletions(-) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 21969e93e6ad..c9b79ebe3fc4 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -95,6 +95,7 @@ GLOBAL_LIST_INIT(turfs_openspace, typecacheof(list( #define isandroid(A) (is_species(A, /datum/species/android)) #define isnightmare(A) (is_species(A, /datum/species/shadow/nightmare)) #define isipc(A) (is_species(A, /datum/species/ipc)) +#define isgoblin(A) (is_species(A, /datum/species/goblin)) //More carbon mobs diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm index 2debc973c601..02f5d4969e10 100644 --- a/code/modules/mob/living/carbon/human/dummy.dm +++ b/code/modules/mob/living/carbon/human/dummy.dm @@ -105,7 +105,7 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) target.dna.features["anime_top"] = "None" target.dna.features["anime_middle"] = "None" target.dna.features["anime_bottom"] = "None" - target.dna.features["goblin_ears"] = "Long" + target.dna.features["goblin_ears"] = "Normal" /// Provides a dummy that is consistently bald, white, naked, etc. /mob/living/carbon/human/dummy/consistent diff --git a/monkestation/code/game/objects/items/effects/amogus.dm b/monkestation/code/game/objects/items/effects/amogus.dm index 26c2e7d11271..06ded844bc40 100644 --- a/monkestation/code/game/objects/items/effects/amogus.dm +++ b/monkestation/code/game/objects/items/effects/amogus.dm @@ -6,6 +6,9 @@ if(issimian(granter)) to_chat(granter, span_notice("Sorry but simians are to small to be turned into amogus you have not been charged.")) return FALSE + if(isgoblin(granter)) + to_chat(granter, span_notice("Sorry but goblins are to small to be turned into amogus you have not been charged.")) + return FALSE granter.apply_displacement_icon(/obj/effect/distortion/large/amogus) granter.AddElement(/datum/element/waddling) granter.can_be_held = TRUE diff --git a/monkestation/code/modules/client/preferences/species_features/goblin.dm b/monkestation/code/modules/client/preferences/species_features/goblin.dm index 235ef8de35ca..dd6902e933bc 100644 --- a/monkestation/code/modules/client/preferences/species_features/goblin.dm +++ b/monkestation/code/modules/client/preferences/species_features/goblin.dm @@ -9,7 +9,7 @@ return possible_values_for_sprite_accessory_list_for_body_part( GLOB.goblin_ears_list, "goblin_ears", - list("ADJ"), + list("ADJ", "FRONT"), ) /datum/preference/choiced/goblin_ears/apply_to_human(mob/living/carbon/human/target, value) diff --git a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_ears.dm b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_ears.dm index e1344702e961..b0787c33c9be 100644 --- a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_ears.dm +++ b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_ears.dm @@ -2,18 +2,18 @@ icon = 'monkestation/icons/mob/species/goblin/goblin_ears.dmi' color_src = MUTCOLORS -/datum/sprite_accessory/goblin_ears/long - name = "Long" - icon_state = "long" +/datum/sprite_accessory/goblin_ears/normal + name = "Normal" + icon_state = "normal" -/datum/sprite_accessory/goblin_ears/short - name = "Short" - icon_state = "short" +/datum/sprite_accessory/goblin_ears/wide + name = "Wide" + icon_state = "wide" -/datum/sprite_accessory/goblin_ears/droopy - name = "Droopy" - icon_state = "droopy" +/datum/sprite_accessory/goblin_ears/broad + name = "Broad" + icon_state = "broad" -/datum/sprite_accessory/goblin_ears/hugeup - name = "Huge Up" - icon_state = "hugeup" +/datum/sprite_accessory/goblin_ears/long + name = "Long" + icon_state = "long" diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm index cb991946b528..27749ebc9a0a 100644 --- a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm @@ -29,14 +29,14 @@ stunmod = 0.75 speedmod = -0.25 payday_modifier = 0.75 - // bodypart_overrides = list( - // BODY_ZONE_HEAD = /obj/item/bodypart/head/human, - // BODY_ZONE_CHEST = /obj/item/bodypart/chest/human, - // BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/human, - // BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/human, - // BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/human, - // BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/human, - // ) + bodypart_overrides = list( + BODY_ZONE_HEAD = /obj/item/bodypart/head/goblin, + BODY_ZONE_CHEST = /obj/item/bodypart/chest/goblin, + BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/goblin, + BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/goblin, + BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/goblin, + BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/goblin, + ) /mob/living/carbon/human/species/goblin race = /datum/species/goblin @@ -104,3 +104,29 @@ ) return to_add + +/obj/item/bodypart/head/goblin + icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' + limb_id = SPECIES_GOBLIN + is_dimorphic = FALSE + +/obj/item/bodypart/chest/goblin + icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' + limb_id = SPECIES_GOBLIN + is_dimorphic = TRUE + +/obj/item/bodypart/arm/left/goblin + icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' + limb_id = SPECIES_GOBLIN + +/obj/item/bodypart/arm/right/goblin + icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' + limb_id = SPECIES_GOBLIN + +/obj/item/bodypart/leg/left/goblin + icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' + limb_id = SPECIES_GOBLIN + +/obj/item/bodypart/leg/right/goblin + icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' + limb_id = SPECIES_GOBLIN diff --git a/monkestation/icons/mob/species/goblin/bodyparts.dmi b/monkestation/icons/mob/species/goblin/bodyparts.dmi index 9932d70af2cbb98d24df1f36285f4585a0d7a5a8..eb4bfa80e894843025deb69512800b78f298fc09 100644 GIT binary patch delta 1059 zcmV+;1l;@n3H}L?EEd1Nzw+|(|NsBq-rky;n$OSA)0?b$kwU_MO>^2X5Qb4E_8A=4 z=VVbiHx})gI11-{)#pH{|Nl>@+L^|BR|>+#blT27C)Sqsm24SyC5y>KIFQ*iVbAv4 zDb)N5ZF9}en<<{JSql=Bq@hA-mS7jgeDv){W3WXD&WhJ<0rs4HdvalDsGWv+NMq62n_rTg=H#vnW z8|YD{Z>Dg%+s(jUE(ea|{S>ur{Bc{DdgwUb&#Q5~^!D5dn9CCi(7ZM@raHkEH%t=A*^ccb{$-hjQ?-Mm}+H^_+KLCU&+uKPBsfFj zf#!-pz*;-90HHvmX;cB_E)m>hTF{{1i?l#lf`GeZqmH7<`k`HcT~(`iNkI? z;4jyI(F*5%e60@Y!CU#j-^m38K@bE%5Cq{U&R$OIKl9fQP9gv^v!@WyLzBS2O~50M zzphnzD-2tFT`3zTpw`j+=7TpqUgA`^8YYl+@g8`sZjb80=3f*=Tj zAPC1(^$QHqP!?nOb`dMHm-cN9=I(%XwQBf(%kyvX{yX^q>%s6X7=64S&j;Qs{a=uU zt5nsvTQtI~{c+qa8lgZtszBC+0wZtq2?lmM?mnDQpd3}8pg^D)bGAkqyW+=g>)~Hk z?+bKagXiFDJM2w9K@bE%5QKx^`wxzV?O*sIz=Gj|hfR;T$%IF8TV9_F=#&6>P?q<9 zHxOX)c96L~?-vNxrM4{ARZJjwd+?cOso){&xBw5Pxx=(TiTB{t0zp2I6kww$3%1!q z3a}0Gfr7oy$uov?i~lV1w6x5F_5SuGC$kDp!)~x3V^A}kK4>@mKSlg_Kavm3DoFZN d_iOvuchMrRs-`t|kN^Mx07*qoM6N;tV1l%}8l33s6>}kIp zL(D#*t?r!jYJ%r0rv(uTl2D;g3$SygZf$#`6t*bBMgF$W!Jd(ACs&Ggwq26b#Ry`r zsvX#b4%ZK)o;ovsRkXMsB9Jum`4iZL_O^I{7GEvy9|sAfbc?n`TWF2-L)rkJhD1OlQVDAq1AC~?NQX+Ve(zb1Xzl|!ON!m|#y3(s*PkKzC z{zM?4wH{f3P@tAHs(>(;2yQaXY0&?RxIj^WfVpI&j-q6>ZkAw|wCi6I)K9XR3BTa}#s5P4^>HeoaT12D*7hZTh{gZnprJvg!FmM(rb$mdb}arE zrC)ys0vSmtkks}lH3El2Z~R|6^-Y)Iry|PgwOxWe;rO3n7=~faKyV&==;Zb!_~%c= z=TL>A^OD^nkGOG8Yeq*1yqEX< zWinWQ;j)Xb#W6j2FYoy~y8y#548t%C!<@v$>v{dB_WHqD1YlJwDtu?-ss~E>}K43IKDtJsz6SjKtASdjZk{&9($;U|5$x2 z(7t%j!AmpjO+JQU7=~e(qww}0oJd+baaZPUh|b-xX@i?g+(>Tk)^`PDOaMFx?e^Dy z6L8{fFLT}Y3wY~NdneWvj)3>};MUDj!9&`*0&XzvI*bbxcn{7k;N=5R0cRAY-Zpzk z0rp-#kUQ^lx*5Zz#xKh}FSO%9Tc172NG-k7up7+F7{nB(51O6(O%XfZ599;W5|TdA d{@OnF9f4J^Kor!T2mk;807*qoM6N;tV1n)y8&&`S diff --git a/monkestation/icons/mob/species/goblin/goblin_ears.dmi b/monkestation/icons/mob/species/goblin/goblin_ears.dmi index 28b69020dc3a2d73473107d02c339636cd3ad5fa..4cbde77bd97cd63fa1201b51c3316dc15317d704 100644 GIT binary patch literal 1268 zcmZuvdobHs6ppQ8kBO`QBIyzYa)rSZ3kQwHoZRKmY8FtNmmUzILBf=I3`DeW&beW2jy8Q8Q*|+G;@m=86Np z@g0jZHEWt5wfBXn!j!Q1&}R0U=Xj3$NO?ZYcMI~DTlHZXG))76=o+Aq0Z~^N3(^;u zNSwL;VsqipYqCy2bmgOWd!3}hgg&6p$cxkoc#&MrzU1p<*(aYfyLHqFPf@=Qjx{Q0 z;4T~}JO#gtIlh^9ylo8VpgPOPGRPeUpc`T=7K?#9ioAPpa2AWrUT&G`N6_81ZQ8A5 z&6*Rd#hngA$QhC7*nvNuOBB;3epzCKHv3tD8_}K$f41gdpF&Q0T zN0--XYX{7q#|I$ck>;tonBQ z-y6Lx?cCjCfehZgPM==SW^c}js-}yIL?Tf?SNz!)^s1;Rlx{^TWdRn2aWaCCMImuD%A}}R#uj$wWa0Mi+GpJt%6>e)O?go*tS|C z*_K9#T)%{M`H%@P=hQH7`Q+qTD-XTl(a{p;xQ=dF4?Xn8T!#13rA&1$kKF6P}*L00Gop3bWlK7Z|J z^c-FN{E`o4d5ZVDo;SECf7=I#mK+t|0Z=ni-N5xs!6B`BoL*FvDez6l3#2#nVOGd) z-cQ`ek4=O^VL2eaN5Q=(=RR4rJ+j}-Ox8t%E%E)$5h{TC?R~%8VvR;KtKE2;-1-2V zj3A*TCMG(aiIxPS=Wyt`VGdv{inaP*r{i@)LjX7y3%XoUQNf?5yC}=jhQ(gMl1?SH z&g{z@pVX_9{r&=z2|QTDO=8Y*xNC(L`vgK>3Sn*ku^kE_F~=k;Gdv24i0-Hoj8 zhiX-WXE5+G{8cz>Q#JT8sw1zj-EWuB4$+wsg{_E0E4bpz(P-i`_A!T`lLYWTP?Vjw z05J$~@(GD+W`1epKZ^G11`i}cj+c;;-76e!+8(7+`INzfKH_per++}~?!QXeh737G T%JcJq+?`icFb3Ha7=P_QK59^L literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0P3?wHke>@jRF$egBxE?rgAkBMU3XscK666=m z;PC858jv%kDkP%BCAB!YD6^m>Ge3`kp<+&OSV2+g_bH700>(rEtGaA1By1ECJ2Sy&e zdY)BAi6OQjEaOE?mI=^({GKk3AsQ2t6C_v{H`FjNFgY+VCWM-10i_r`UHx3vIVCg! E0FL!r{Qv*} diff --git a/tgstation.dme b/tgstation.dme index 330840d09cbb..94e019cb9890 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5452,6 +5452,7 @@ #include "monkestation\code\modules\client\preferences\loadout_override_preference.dm" #include "monkestation\code\modules\client\preferences\alt_jobs\_job.dm" #include "monkestation\code\modules\client\preferences\alt_jobs\titles.dm" +#include "monkestation\code\modules\client\preferences\species_features\goblin.dm" #include "monkestation\code\modules\client\preferences\species_features\ipc.dm" #include "monkestation\code\modules\client\preferences\species_features\simians.dm" #include "monkestation\code\modules\clothing\head\costume.dm" @@ -5841,5 +5842,4 @@ #include "monkestation\code\random_rooms\engines\kilostation.dm" #include "monkestation\code\random_rooms\engines\metastation.dm" #include "monkestation\code\random_rooms\engines\tramstation.dm" -#include "monkestation\code\modules\client\preferences\species_features\goblin.dm" // END_INCLUDE From c4ce6f11a501ce646364a9cbd9fc556b6c907b57 Mon Sep 17 00:00:00 2001 From: Glyphee <77804365+Glyphee@users.noreply.github.com> Date: Thu, 10 Aug 2023 18:23:58 -0400 Subject: [PATCH 04/12] possible messy workaround for dwarves not having eye colors --- code/__HELPERS/global_lists.dm | 1 + code/__HELPERS/mobs.dm | 3 ++ code/_globalvars/lists/flavor_misc.dm | 1 + code/modules/mob/living/carbon/human/dummy.dm | 1 + .../preferences/species_features/goblin.dm | 19 +++++++ .../{goblin_ears.dm => goblin_accessories.dm} | 12 +++++ .../carbon/human/species_type/goblin.dm | 4 +- .../surgery/bodyparts/goblin_bodyparts.dm | 25 --------- .../organs/external/goblin_accessories.dm | 49 ++++++++++++++++++ .../surgery/organs/external/goblin_ears.dm | 24 --------- .../icons/mob/species/goblin/goblin_eyes.dmi | Bin 0 -> 596 bytes tgstation.dme | 5 +- 12 files changed, 91 insertions(+), 53 deletions(-) rename monkestation/code/modules/mob/dead/new_player/sprite_accessories/{goblin_ears.dm => goblin_accessories.dm} (52%) delete mode 100644 monkestation/code/modules/surgery/bodyparts/goblin_bodyparts.dm create mode 100644 monkestation/code/modules/surgery/organs/external/goblin_accessories.dm delete mode 100644 monkestation/code/modules/surgery/organs/external/goblin_ears.dm create mode 100644 monkestation/icons/mob/species/goblin/goblin_eyes.dmi diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 443fc802bbfa..b549f775bffb 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -42,6 +42,7 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_middle, GLOB.anime_middle_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_bottom, GLOB.anime_bottom_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_ears, GLOB.goblin_ears_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_eyes, GLOB.goblin_eyes_list)//Remove when eyes work with dwarfism //Species for(var/spath in subtypesof(/datum/species)) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 37ec8163ad52..0b1d300dab94 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -105,6 +105,8 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_bottom, GLOB.anime_bottom_list) if(!GLOB.goblin_ears_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_ears, GLOB.goblin_ears_list) + if(!GLOB.goblin_eyes_list.len)//Remove when eyes work with dwarfism + init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_eyes, GLOB.goblin_eyes_list)//Remove when eyes work with dwarfism //For now we will always return none for tail_human and ears. | "For now" he says. return(list( @@ -134,6 +136,7 @@ "anime_bottom" = pick(GLOB.anime_bottom_list), "animecolor" = "#[pick("7F","FF")][pick("7F","FF")][pick("7F","FF")]", "goblin_ears" = pick(GLOB.goblin_ears_list), + "goblin_eyes" = pick(GLOB.goblin_eyes_list),//Remove when eyes work with dwarfism )) /proc/random_hairstyle(gender) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index b08203aa6e66..1665c5dd4564 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -48,6 +48,7 @@ GLOBAL_LIST_EMPTY(anime_top_list) GLOBAL_LIST_EMPTY(anime_middle_list) GLOBAL_LIST_EMPTY(anime_bottom_list) GLOBAL_LIST_EMPTY(goblin_ears_list) +GLOBAL_LIST_EMPTY(goblin_eyes_list)//Remove when eyes work with dwarfism GLOBAL_LIST_INIT(color_list_ethereal, list( "Blue" = "#3399ff", diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm index 02f5d4969e10..6d8b6f61169c 100644 --- a/code/modules/mob/living/carbon/human/dummy.dm +++ b/code/modules/mob/living/carbon/human/dummy.dm @@ -106,6 +106,7 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) target.dna.features["anime_middle"] = "None" target.dna.features["anime_bottom"] = "None" target.dna.features["goblin_ears"] = "Normal" + target.dna.features["goblin_eyes"] = "Flesh"//Remove when eyes work with dwarfism /// Provides a dummy that is consistently bald, white, naked, etc. /mob/living/carbon/human/dummy/consistent diff --git a/monkestation/code/modules/client/preferences/species_features/goblin.dm b/monkestation/code/modules/client/preferences/species_features/goblin.dm index dd6902e933bc..ebbe1933cca8 100644 --- a/monkestation/code/modules/client/preferences/species_features/goblin.dm +++ b/monkestation/code/modules/client/preferences/species_features/goblin.dm @@ -14,3 +14,22 @@ /datum/preference/choiced/goblin_ears/apply_to_human(mob/living/carbon/human/target, value) target.dna.features["goblin_ears"] = value + + +//Remove when eyes work with dwarfism +/datum/preference/choiced/goblin_eyes + savefile_key = "feature_goblin_eyes" + savefile_identifier = PREFERENCE_CHARACTER + category = PREFERENCE_CATEGORY_FEATURES + main_feature_name = "Goblin Eyes" + should_generate_icons = TRUE + +/datum/preference/choiced/goblin_eyes/init_possible_values() + return possible_values_for_sprite_accessory_list_for_body_part( + GLOB.goblin_eyes, + "goblin_eyes", + list("FRONT"), + ) + +/datum/preference/choiced/goblin_eyes/apply_to_human(mob/living/carbon/human/target, value) + target.dna.features["goblin_eyes"] = value diff --git a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_ears.dm b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_accessories.dm similarity index 52% rename from monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_ears.dm rename to monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_accessories.dm index b0787c33c9be..c003bb0cb20a 100644 --- a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_ears.dm +++ b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_accessories.dm @@ -17,3 +17,15 @@ /datum/sprite_accessory/goblin_ears/long name = "Long" icon_state = "long" + +/datum/sprite_accessory/goblin_eyes//Remove when eyes work with dwarfism + icon = "monkestation/icons/mob/species/goblin/goblin_eyes.dmi" + color_src = EYECOLOR + +/datum/sprite_accessory/goblin_eyes/flesh//Remove when eyes work with dwarfism + name = "Flesh" + icon_state = "flesh" + +/datum/sprite_accessory/goblin_eyes/normal//Remove when eyes work with dwarfism + name = "Normal" + icon_state = "normal" diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm index 27749ebc9a0a..63cec0c3ca57 100644 --- a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm @@ -20,7 +20,9 @@ ) inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID external_organs = list( - /obj/item/organ/external/goblin_ears = "long") + /obj/item/organ/external/goblin_ears = "long", + /obj/itme/organ/external/goblin_eyes = "normal"//Remove when eyes work with dwarfism + ) meat = /obj/item/food/meat/steak disliked_food = VEGETABLES liked_food = GORE | MEAT | GROSS diff --git a/monkestation/code/modules/surgery/bodyparts/goblin_bodyparts.dm b/monkestation/code/modules/surgery/bodyparts/goblin_bodyparts.dm deleted file mode 100644 index 80e9d7c6c7e5..000000000000 --- a/monkestation/code/modules/surgery/bodyparts/goblin_bodyparts.dm +++ /dev/null @@ -1,25 +0,0 @@ -/obj/item/bodypart/head/goblin - icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' - limb_id = SPECIES_GOBLIN - is_dimorphic = FALSE - -/obj/item/bodypart/chest/goblin - icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' - limb_id = SPECIES_GOBLIN - is_dimorphic = TRUE - -/obj/item/bodypart/arm/left/goblin - icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' - limb_id = SPECIES_GOBLIN - -/obj/item/bodypart/arm/right/goblin - icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' - limb_id = SPECIES_GOBLIN - -/obj/item/bodypart/leg/left/goblin - icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' - limb_id = SPECIES_GOBLIN - -/obj/item/bodypart/leg/right/goblin - icon_greyscale = 'monkestation/icons/mob/species/goblin/bodyparts.dmi' - limb_id = SPECIES_GOBLIN diff --git a/monkestation/code/modules/surgery/organs/external/goblin_accessories.dm b/monkestation/code/modules/surgery/organs/external/goblin_accessories.dm new file mode 100644 index 000000000000..4e4a0e00c29b --- /dev/null +++ b/monkestation/code/modules/surgery/organs/external/goblin_accessories.dm @@ -0,0 +1,49 @@ +/obj/item/organ/external/goblin_ears + name = "goblin ears" + desc = "They don't actually let you hear better." + icon_state = "goblin_ears" + + preference = "feature_goblin_ears" + zone = BODY_ZONE_HEAD + slot = ORGAN_SLOT_EXTERNAL_FRILLS + + use_mob_sprite_as_obj_sprite = TRUE + bodypart_overlay = /datum/bodypart_overlay/mutant/goblin_ears + +/datum/bodypart_overlay/mutant/goblin_ears + layers = EXTERNAL_ADJACENT | EXTERNAL_FRONT + feature_key = "goblin_ears" + +/datum/bodypart_overlay/mutant/goblin_ears/get_global_feature_list() + return GLOB.goblin_ears_list + +/datum/bodypart_overlay/mutant/goblin_ears/get_base_icon_state() + return sprite_datum.icon_state + +/datum/bodypart_overlay/mutant/goblin_ears/can_draw_on_bodypart(mob/living/carbon/human/human) + return TRUE + +//Remove when eyes work with dwarfism +/obj/item/organ/external/goblin_eyes + name = "goblin eyes" + desc = "You're not supposed to be able to see these." + icon_state = "goblin_eyes" + + preference = "feature_goblin_eyes" + zone = BODY_ZONE_HEAD + slot = ORGAN_SLOT_EXTERNAL_FRILLS + + use_mob_sprite_as_obj_sprite = FALSE + +/datum/bodypart_overlay/mutant/goblin_eyes + layers = EXTERNAL_FRONT + feature_key = "goblin_eyes" + +/datum/bodypart_overlay/mutant/goblin_eyes/get_global_feature_list() + return GLOB.goblin_eyes_list + +/datum/bodypart_overlay/mutant/goblin_eyes/get_base_icon_state() + return sprite_datum.icon_state + +/datum/bodypart_overlay/mutant/goblin_eyes/can_draw_on_bodypart(mob/living/carbon/human/human) + return TRUE diff --git a/monkestation/code/modules/surgery/organs/external/goblin_ears.dm b/monkestation/code/modules/surgery/organs/external/goblin_ears.dm deleted file mode 100644 index 0ac47c590333..000000000000 --- a/monkestation/code/modules/surgery/organs/external/goblin_ears.dm +++ /dev/null @@ -1,24 +0,0 @@ -/obj/item/organ/external/goblin_ears - name = "goblin ears" - desc = "They don't actually let you hear better." - icon_state = "goblin_ears" - - preference = "feature_goblin_ears" - zone = BODY_ZONE_HEAD - slot = ORGAN_SLOT_EXTERNAL_FRILLS - - use_mob_sprite_as_obj_sprite = TRUE - bodypart_overlay = /datum/bodypart_overlay/mutant/goblin_ears - -/datum/bodypart_overlay/mutant/goblin_ears - layers = EXTERNAL_ADJACENT - feature_key = "goblin_ears" - -/datum/bodypart_overlay/mutant/goblin_ears/get_global_feature_list() - return GLOB.goblin_ears_list - -/datum/bodypart_overlay/mutant/goblin_ears/get_base_icon_state() - return sprite_datum.icon_state - -/datum/bodypart_overlay/mutant/goblin_ears/can_draw_on_bodypart(mob/living/carbon/human/human) - return TRUE diff --git a/monkestation/icons/mob/species/goblin/goblin_eyes.dmi b/monkestation/icons/mob/species/goblin/goblin_eyes.dmi new file mode 100644 index 0000000000000000000000000000000000000000..29ccc20616d6bc1a45981c903da423b13552389d GIT binary patch literal 596 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoJyjtQB`&GO$wiq3C7Jno3=9=> zYESRxI%FWhcEPf;tG`TKKX$W6)X57RkK~m8-exIkRMFVCw|R44x`pkz$F7+tB0s86 zeO26aV8iX=Z=bx21uSGOi=UWZ-?!qdS(AhK*=h0z)t&QKrSXQ$otYP2``#kDW~G3H zMRa#>h+@GH(_p=eZU46(U!nSB%@6i;bCU@QOPNxb)Iwde=)8*$6&yG zfTtipGxgb={J_sZ*89JK*|qLxjSm#AH+0Kdd$uEy%_8I6&o_JTFMgJKpE+V4!wkj* zwgyRtG%^^itS2n*dub|49}X81TX5~yyS?^{p2fO)G+etSle}cgCGDhp@$Yx;pBH+A z^Tpo#&*z+9QMv!-Hr@B@)4$3ZK6xY0bTZx%yIa0zv`pfziV@l Date: Fri, 11 Aug 2023 12:51:31 -0400 Subject: [PATCH 05/12] eyes dont work :C --- code/__HELPERS/global_lists.dm | 1 - code/__HELPERS/mobs.dm | 3 --- code/_globalvars/lists/flavor_misc.dm | 1 - code/modules/mob/living/carbon/human/dummy.dm | 1 - .../preferences/species_features/goblin.dm | 19 ------------- .../sprite_accessories/goblin_accessories.dm | 12 --------- .../carbon/human/species_type/goblin.dm | 1 - .../organs/external/goblin_accessories.dm | 25 ------------------ .../icons/mob/species/goblin/goblin_eyes.dmi | Bin 596 -> 0 bytes 9 files changed, 63 deletions(-) delete mode 100644 monkestation/icons/mob/species/goblin/goblin_eyes.dmi diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index b549f775bffb..443fc802bbfa 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -42,7 +42,6 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_middle, GLOB.anime_middle_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_bottom, GLOB.anime_bottom_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_ears, GLOB.goblin_ears_list) - init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_eyes, GLOB.goblin_eyes_list)//Remove when eyes work with dwarfism //Species for(var/spath in subtypesof(/datum/species)) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 0b1d300dab94..37ec8163ad52 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -105,8 +105,6 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_bottom, GLOB.anime_bottom_list) if(!GLOB.goblin_ears_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_ears, GLOB.goblin_ears_list) - if(!GLOB.goblin_eyes_list.len)//Remove when eyes work with dwarfism - init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_eyes, GLOB.goblin_eyes_list)//Remove when eyes work with dwarfism //For now we will always return none for tail_human and ears. | "For now" he says. return(list( @@ -136,7 +134,6 @@ "anime_bottom" = pick(GLOB.anime_bottom_list), "animecolor" = "#[pick("7F","FF")][pick("7F","FF")][pick("7F","FF")]", "goblin_ears" = pick(GLOB.goblin_ears_list), - "goblin_eyes" = pick(GLOB.goblin_eyes_list),//Remove when eyes work with dwarfism )) /proc/random_hairstyle(gender) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 1665c5dd4564..b08203aa6e66 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -48,7 +48,6 @@ GLOBAL_LIST_EMPTY(anime_top_list) GLOBAL_LIST_EMPTY(anime_middle_list) GLOBAL_LIST_EMPTY(anime_bottom_list) GLOBAL_LIST_EMPTY(goblin_ears_list) -GLOBAL_LIST_EMPTY(goblin_eyes_list)//Remove when eyes work with dwarfism GLOBAL_LIST_INIT(color_list_ethereal, list( "Blue" = "#3399ff", diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm index 6d8b6f61169c..02f5d4969e10 100644 --- a/code/modules/mob/living/carbon/human/dummy.dm +++ b/code/modules/mob/living/carbon/human/dummy.dm @@ -106,7 +106,6 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) target.dna.features["anime_middle"] = "None" target.dna.features["anime_bottom"] = "None" target.dna.features["goblin_ears"] = "Normal" - target.dna.features["goblin_eyes"] = "Flesh"//Remove when eyes work with dwarfism /// Provides a dummy that is consistently bald, white, naked, etc. /mob/living/carbon/human/dummy/consistent diff --git a/monkestation/code/modules/client/preferences/species_features/goblin.dm b/monkestation/code/modules/client/preferences/species_features/goblin.dm index ebbe1933cca8..dd6902e933bc 100644 --- a/monkestation/code/modules/client/preferences/species_features/goblin.dm +++ b/monkestation/code/modules/client/preferences/species_features/goblin.dm @@ -14,22 +14,3 @@ /datum/preference/choiced/goblin_ears/apply_to_human(mob/living/carbon/human/target, value) target.dna.features["goblin_ears"] = value - - -//Remove when eyes work with dwarfism -/datum/preference/choiced/goblin_eyes - savefile_key = "feature_goblin_eyes" - savefile_identifier = PREFERENCE_CHARACTER - category = PREFERENCE_CATEGORY_FEATURES - main_feature_name = "Goblin Eyes" - should_generate_icons = TRUE - -/datum/preference/choiced/goblin_eyes/init_possible_values() - return possible_values_for_sprite_accessory_list_for_body_part( - GLOB.goblin_eyes, - "goblin_eyes", - list("FRONT"), - ) - -/datum/preference/choiced/goblin_eyes/apply_to_human(mob/living/carbon/human/target, value) - target.dna.features["goblin_eyes"] = value diff --git a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_accessories.dm b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_accessories.dm index c003bb0cb20a..b0787c33c9be 100644 --- a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_accessories.dm +++ b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/goblin_accessories.dm @@ -17,15 +17,3 @@ /datum/sprite_accessory/goblin_ears/long name = "Long" icon_state = "long" - -/datum/sprite_accessory/goblin_eyes//Remove when eyes work with dwarfism - icon = "monkestation/icons/mob/species/goblin/goblin_eyes.dmi" - color_src = EYECOLOR - -/datum/sprite_accessory/goblin_eyes/flesh//Remove when eyes work with dwarfism - name = "Flesh" - icon_state = "flesh" - -/datum/sprite_accessory/goblin_eyes/normal//Remove when eyes work with dwarfism - name = "Normal" - icon_state = "normal" diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm index 63cec0c3ca57..90d68b931cfa 100644 --- a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm @@ -21,7 +21,6 @@ inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID external_organs = list( /obj/item/organ/external/goblin_ears = "long", - /obj/itme/organ/external/goblin_eyes = "normal"//Remove when eyes work with dwarfism ) meat = /obj/item/food/meat/steak disliked_food = VEGETABLES diff --git a/monkestation/code/modules/surgery/organs/external/goblin_accessories.dm b/monkestation/code/modules/surgery/organs/external/goblin_accessories.dm index 4e4a0e00c29b..5753dc86321c 100644 --- a/monkestation/code/modules/surgery/organs/external/goblin_accessories.dm +++ b/monkestation/code/modules/surgery/organs/external/goblin_accessories.dm @@ -22,28 +22,3 @@ /datum/bodypart_overlay/mutant/goblin_ears/can_draw_on_bodypart(mob/living/carbon/human/human) return TRUE - -//Remove when eyes work with dwarfism -/obj/item/organ/external/goblin_eyes - name = "goblin eyes" - desc = "You're not supposed to be able to see these." - icon_state = "goblin_eyes" - - preference = "feature_goblin_eyes" - zone = BODY_ZONE_HEAD - slot = ORGAN_SLOT_EXTERNAL_FRILLS - - use_mob_sprite_as_obj_sprite = FALSE - -/datum/bodypart_overlay/mutant/goblin_eyes - layers = EXTERNAL_FRONT - feature_key = "goblin_eyes" - -/datum/bodypart_overlay/mutant/goblin_eyes/get_global_feature_list() - return GLOB.goblin_eyes_list - -/datum/bodypart_overlay/mutant/goblin_eyes/get_base_icon_state() - return sprite_datum.icon_state - -/datum/bodypart_overlay/mutant/goblin_eyes/can_draw_on_bodypart(mob/living/carbon/human/human) - return TRUE diff --git a/monkestation/icons/mob/species/goblin/goblin_eyes.dmi b/monkestation/icons/mob/species/goblin/goblin_eyes.dmi deleted file mode 100644 index 29ccc20616d6bc1a45981c903da423b13552389d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoJyjtQB`&GO$wiq3C7Jno3=9=> zYESRxI%FWhcEPf;tG`TKKX$W6)X57RkK~m8-exIkRMFVCw|R44x`pkz$F7+tB0s86 zeO26aV8iX=Z=bx21uSGOi=UWZ-?!qdS(AhK*=h0z)t&QKrSXQ$otYP2``#kDW~G3H zMRa#>h+@GH(_p=eZU46(U!nSB%@6i;bCU@QOPNxb)Iwde=)8*$6&yG zfTtipGxgb={J_sZ*89JK*|qLxjSm#AH+0Kdd$uEy%_8I6&o_JTFMgJKpE+V4!wkj* zwgyRtG%^^itS2n*dub|49}X81TX5~yyS?^{p2fO)G+etSle}cgCGDhp@$Yx;pBH+A z^Tpo#&*z+9QMv!-Hr@B@)4$3ZK6xY0bTZx%yIa0zv`pfziV@l Date: Fri, 11 Aug 2023 13:24:06 -0400 Subject: [PATCH 06/12] new trait and language flags --- .../modules/mob/living/carbon/human/species_type/goblin.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm index 90d68b931cfa..5c9ef427915b 100644 --- a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm @@ -16,6 +16,7 @@ TRAIT_QUICK_BUILD, TRAIT_EASILY_WOUNDED, TRAIT_NIGHT_VISION, + TRAIT_FREERUNNING // TRAIT_pickpocketing? ) inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID @@ -54,6 +55,8 @@ space_chance = 100 // Each 'syllable' is its own word key = "G" + flags = TONGUELESS_SPEECH | LANGUAGE_HIDE_ICON_IF_UNDERSTOOD + syllables = list("kulet", "alak", "bidok", "nicol", "anam", "gatal", "mabdug", "zustash", "sedil", "ustos", "emr", "izeg", "beming", "gost", "ntak", "tosid", "feb", "berim", "ibruk", "ermis", "thoth", "thatthil", "gistang", "libash", "lakish", "asdos", "roder", "nel", "biban", "ugog", "ish", "robek", "olmul", "nokzam", "emuth", "fer", "uvel", "dolush", "ag^k", "ucat", "ng rak", "enir", "ugath", "lisig", "etg", "erong", "osed", "lanlar", "udir", "tarmid", "s krith", "nural", "bugsud", "okag", "nazush", "nashon", "ftrid", "en''r", "dstik", "kogan", "ingish", "dudgoth", "stalk*b", "themor", "murak", "altth", "osod", "thcekut", "cog", "selsten", "egdoth", "othsin", "idek", "st", "suthmam", "im", "okab", "onlnl", "gasol", "tegir", "nam...sh", "noval", "shalig", "shin", "lek", ",,kim", "kfkdal", "stum,,m", "alud", "olom", "%lot", "rozsed", "thos", "okon", "n Date: Fri, 11 Aug 2023 13:49:31 -0400 Subject: [PATCH 07/12] last minute language fixes and monkestation comments --- code/__DEFINES/is_helpers.dm | 2 +- code/__DEFINES/mobs.dm | 2 +- code/__HELPERS/global_lists.dm | 2 +- code/__HELPERS/mobs.dm | 6 +++--- code/_globalvars/lists/flavor_misc.dm | 2 +- code/modules/mob/living/carbon/human/dummy.dm | 2 +- code/modules/surgery/organs/tongue.dm | 1 + .../carbon/human/species_type/goblin.dm | 5 ++--- monkestation/icons/misc/language.dmi | Bin 3894 -> 4007 bytes 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index c9b79ebe3fc4..71778e326b3c 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -95,7 +95,7 @@ GLOBAL_LIST_INIT(turfs_openspace, typecacheof(list( #define isandroid(A) (is_species(A, /datum/species/android)) #define isnightmare(A) (is_species(A, /datum/species/shadow/nightmare)) #define isipc(A) (is_species(A, /datum/species/ipc)) -#define isgoblin(A) (is_species(A, /datum/species/goblin)) +#define isgoblin(A) (is_species(A, /datum/species/goblin))//monkestation addition //More carbon mobs diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 3c14c4a84237..5978990213fa 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -129,7 +129,7 @@ #define SPECIES_OOZELING "oozeling" #define SPECIES_IPC "ipc" #define SPECIES_SIMIAN "simian" -#define SPECIES_GOBLIN "goblin" +#define SPECIES_GOBLIN "goblin"//monkestation addition // Like species IDs, but not specifically attached a species. #define BODYPART_ID_ALIEN "alien" #define BODYPART_ID_ROBOTIC "robotic" diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 443fc802bbfa..b8295052d726 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -41,7 +41,7 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_head, GLOB.anime_top_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_middle, GLOB.anime_middle_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_bottom, GLOB.anime_bottom_list) - init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_ears, GLOB.goblin_ears_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_ears, GLOB.goblin_ears_list)//monkestation addition //Species for(var/spath in subtypesof(/datum/species)) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 37ec8163ad52..ea07e8784b4e 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -103,8 +103,8 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_middle, GLOB.anime_middle_list) if(!GLOB.anime_top_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_bottom, GLOB.anime_bottom_list) - if(!GLOB.goblin_ears_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_ears, GLOB.goblin_ears_list) + if(!GLOB.goblin_ears_list.len)//monkestation addition + init_sprite_accessory_subtypes(/datum/sprite_accessory/goblin_ears, GLOB.goblin_ears_list)//monkestation addition //For now we will always return none for tail_human and ears. | "For now" he says. return(list( @@ -133,7 +133,7 @@ "anime_middle" = pick(GLOB.anime_middle_list), "anime_bottom" = pick(GLOB.anime_bottom_list), "animecolor" = "#[pick("7F","FF")][pick("7F","FF")][pick("7F","FF")]", - "goblin_ears" = pick(GLOB.goblin_ears_list), + "goblin_ears" = pick(GLOB.goblin_ears_list),//monkestation addition )) /proc/random_hairstyle(gender) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index b08203aa6e66..144cb3d88162 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -47,7 +47,7 @@ GLOBAL_LIST_EMPTY(tails_list_monkey) GLOBAL_LIST_EMPTY(anime_top_list) GLOBAL_LIST_EMPTY(anime_middle_list) GLOBAL_LIST_EMPTY(anime_bottom_list) -GLOBAL_LIST_EMPTY(goblin_ears_list) +GLOBAL_LIST_EMPTY(goblin_ears_list)//monkestation addition GLOBAL_LIST_INIT(color_list_ethereal, list( "Blue" = "#3399ff", diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm index 02f5d4969e10..57efd51c73a0 100644 --- a/code/modules/mob/living/carbon/human/dummy.dm +++ b/code/modules/mob/living/carbon/human/dummy.dm @@ -105,7 +105,7 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) target.dna.features["anime_top"] = "None" target.dna.features["anime_middle"] = "None" target.dna.features["anime_bottom"] = "None" - target.dna.features["goblin_ears"] = "Normal" + target.dna.features["goblin_ears"] = "Normal"//monkestation addition /// Provides a dummy that is consistently bald, white, naked, etc. /mob/living/carbon/human/dummy/consistent diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index 07d1bebc207d..e44dc9e2f3c5 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -72,6 +72,7 @@ /datum/language/shadowtongue, /datum/language/terrum, /datum/language/nekomimetic, + /datum/language/goblin,//monkestation addition ) /obj/item/organ/internal/tongue/proc/handle_speech(datum/source, list/speech_args) diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm index 5c9ef427915b..f50601e231d1 100644 --- a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm @@ -55,12 +55,11 @@ space_chance = 100 // Each 'syllable' is its own word key = "G" - flags = TONGUELESS_SPEECH | LANGUAGE_HIDE_ICON_IF_UNDERSTOOD - syllables = list("kulet", "alak", "bidok", "nicol", "anam", "gatal", "mabdug", "zustash", "sedil", "ustos", "emr", "izeg", "beming", "gost", "ntak", "tosid", "feb", "berim", "ibruk", "ermis", "thoth", "thatthil", "gistang", "libash", "lakish", "asdos", "roder", "nel", "biban", "ugog", "ish", "robek", "olmul", "nokzam", "emuth", "fer", "uvel", "dolush", "ag^k", "ucat", "ng rak", "enir", "ugath", "lisig", "etg", "erong", "osed", "lanlar", "udir", "tarmid", "s krith", "nural", "bugsud", "okag", "nazush", "nashon", "ftrid", "en''r", "dstik", "kogan", "ingish", "dudgoth", "stalk*b", "themor", "murak", "altth", "osod", "thcekut", "cog", "selsten", "egdoth", "othsin", "idek", "st", "suthmam", "im", "okab", "onlnl", "gasol", "tegir", "nam...sh", "noval", "shalig", "shin", "lek", ",,kim", "kfkdal", "stum,,m", "alud", "olom", "%lot", "rozsed", "thos", "okon", "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 N002ovPDHLkV1hdEydeMp literal 3894 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 Date: Fri, 11 Aug 2023 14:18:39 -0400 Subject: [PATCH 08/12] icon for goblin ears organ --- .../organs/external/goblin_accessories.dm | 1 + .../icons/obj/medical/organs/organs.dmi | Bin 36221 -> 33524 bytes 2 files changed, 1 insertion(+) diff --git a/monkestation/code/modules/surgery/organs/external/goblin_accessories.dm b/monkestation/code/modules/surgery/organs/external/goblin_accessories.dm index 5753dc86321c..042b8058d177 100644 --- a/monkestation/code/modules/surgery/organs/external/goblin_accessories.dm +++ b/monkestation/code/modules/surgery/organs/external/goblin_accessories.dm @@ -2,6 +2,7 @@ name = "goblin ears" desc = "They don't actually let you hear better." icon_state = "goblin_ears" + icon = 'monkestation/icons/obj/medical/organs/organs.dmi' preference = "feature_goblin_ears" zone = BODY_ZONE_HEAD diff --git a/monkestation/icons/obj/medical/organs/organs.dmi b/monkestation/icons/obj/medical/organs/organs.dmi index 4c85708609a8d65fdd1a0c19df1c96938a40e556..aa34071b23f471818533115afd7afeeb16eaa9e7 100644 GIT binary patch literal 33524 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 Date: Sun, 13 Aug 2023 18:07:51 -0400 Subject: [PATCH 09/12] removed kleptomania --- .../code/modules/mob/living/carbon/human/species_type/goblin.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm index f50601e231d1..1894596596ee 100644 --- a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm @@ -11,7 +11,6 @@ FACEHAIR ) inherent_traits = list( - TRAIT_KLEPTOMANIAC, TRAIT_DWARF, TRAIT_QUICK_BUILD, TRAIT_EASILY_WOUNDED, From 90bf44a2eedaa451d8dafd9d03699dd8bdaf13f2 Mon Sep 17 00:00:00 2001 From: dwasint <82520990+dwasint@users.noreply.github.com> Date: Thu, 17 Aug 2023 15:00:49 -0400 Subject: [PATCH 10/12] Update tgstation.dme --- tgstation.dme | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tgstation.dme b/tgstation.dme index 74577d875c2d..bb6b049bd9d2 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5584,7 +5584,7 @@ #include "monkestation\code\modules\client\preferences\alt_jobs\_job.dm" #include "monkestation\code\modules\client\preferences\alt_jobs\titles.dm" #include "monkestation\code\modules\client\preferences\species_features\arachnid.dm" -#include "monkestation\code\modules\client\preferences\species_features\goblin.dm" +#include "monkestation\code\modules\client\preferences\species_features\.dm" #include "monkestation\code\modules\client\preferences\species_features\ipc.dm" #include "monkestation\code\modules\client\preferences\species_features\simians.dm" #include "monkestation\code\modules\clothing\head\costume.dm" @@ -5762,7 +5762,6 @@ #include "monkestation\code\modules\mob\living\carbon\human\species.dm" #include "monkestation\code\modules\mob\living\carbon\human\worn_overlays.dm" #include "monkestation\code\modules\mob\living\carbon\human\monkey\dukeman.dm" -#include "monkestation\code\modules\mob\living\carbon\human\species_type\goblin.dm" #include "monkestation\code\modules\mob\living\carbon\human\species_type\abductors.dm" #include "monkestation\code\modules\mob\living\carbon\human\species_type\android.dm" #include "monkestation\code\modules\mob\living\carbon\human\species_type\arachnid.dm" From d7646a3c77327301c6335e00f46a178d2d31ad4a Mon Sep 17 00:00:00 2001 From: Glyphee Date: Thu, 17 Aug 2023 15:10:27 -0400 Subject: [PATCH 11/12] Update tgstation.dme --- tgstation.dme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tgstation.dme b/tgstation.dme index bb6b049bd9d2..31c0ce9deeb7 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5584,7 +5584,7 @@ #include "monkestation\code\modules\client\preferences\alt_jobs\_job.dm" #include "monkestation\code\modules\client\preferences\alt_jobs\titles.dm" #include "monkestation\code\modules\client\preferences\species_features\arachnid.dm" -#include "monkestation\code\modules\client\preferences\species_features\.dm" +#include "monkestation\code\modules\client\preferences\species_features\goblin.dm" #include "monkestation\code\modules\client\preferences\species_features\ipc.dm" #include "monkestation\code\modules\client\preferences\species_features\simians.dm" #include "monkestation\code\modules\clothing\head\costume.dm" From 326691bb59c3d1685d737e2d21b2a6ce115ac970 Mon Sep 17 00:00:00 2001 From: Glyphee Date: Sun, 20 Aug 2023 23:08:03 -0400 Subject: [PATCH 12/12] fixed klepto still being on the race screen --- .../modules/mob/living/carbon/human/species_type/goblin.dm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm index 1894596596ee..2835d6721aca 100644 --- a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm @@ -91,12 +91,6 @@ SPECIES_PERK_NAME = "Short", SPECIES_PERK_DESC = "Short, haha.", //Dwarf trauma ) - ,list( - SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK, - SPECIES_PERK_ICON = "", - SPECIES_PERK_NAME = "Kleptomania", - SPECIES_PERK_DESC = "You just can't help yourself. Surely they won't notice...", //Kleptomania trauma - ), ,list( SPECIES_PERK_TYPE = SPECIES_POSITIVE_PERK, SPECIES_PERK_ICON = "",