Skip to content

Commit

Permalink
Moths, except I have stolen them and they no longer conflict (tgstati…
Browse files Browse the repository at this point in the history
…on#34498)

* Moths, except with less conflicts

* if I remove your wings, will you die?

* it would be extremely painful
  • Loading branch information
ChangelingRain authored and Cyberboss committed Jan 19, 2018
1 parent 7c83f75 commit b30e293
Show file tree
Hide file tree
Showing 22 changed files with 270 additions and 26 deletions.
1 change: 1 addition & 0 deletions code/__DEFINES/DNA.dm
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@
#define SPECIES_INORGANIC 32
#define SPECIES_UNDEAD 33
#define SPECIES_ROBOTIC 34
#define NOEYES 35

#define ORGAN_SLOT_BRAIN "brain"
#define ORGAN_SLOT_APPENDIX "appendix"
Expand Down
23 changes: 16 additions & 7 deletions code/__HELPERS/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,11 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, GLOB.body_markings_list)
if(!GLOB.wings_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, GLOB.wings_list)
if(!GLOB.moth_wings_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_wings, GLOB.moth_wings_list)

//For now we will always return none for tail_human and ears.
return(list("mcolor" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "tail_lizard" = pick(GLOB.tails_list_lizard), "tail_human" = "None", "wings" = "None", "snout" = pick(GLOB.snouts_list), "horns" = pick(GLOB.horns_list), "ears" = "None", "frills" = pick(GLOB.frills_list), "spines" = pick(GLOB.spines_list), "body_markings" = pick(GLOB.body_markings_list), "legs" = "Normal Legs"))
return(list("mcolor" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "tail_lizard" = pick(GLOB.tails_list_lizard), "tail_human" = "None", "wings" = "None", "snout" = pick(GLOB.snouts_list), "horns" = pick(GLOB.horns_list), "ears" = "None", "frills" = pick(GLOB.frills_list), "spines" = pick(GLOB.spines_list), "body_markings" = pick(GLOB.body_markings_list), "legs" = "Normal Legs", "moth_wings" = pick(GLOB.moth_wings_list)))

/proc/random_hair_style(gender)
switch(gender)
Expand All @@ -91,27 +93,34 @@
return pick(GLOB.facial_hair_styles_list)

/proc/random_unique_name(gender, attempts_to_find_unique_name=10)
for(var/i=1, i<=attempts_to_find_unique_name, i++)
for(var/i in 1 to attempts_to_find_unique_name)
if(gender==FEMALE)
. = capitalize(pick(GLOB.first_names_female)) + " " + capitalize(pick(GLOB.last_names))
else
. = capitalize(pick(GLOB.first_names_male)) + " " + capitalize(pick(GLOB.last_names))

if(i != attempts_to_find_unique_name && !findname(.))
if(!findname(.))
break

/proc/random_unique_lizard_name(gender, attempts_to_find_unique_name=10)
for(var/i=1, i<=attempts_to_find_unique_name, i++)
for(var/i in 1 to attempts_to_find_unique_name)
. = capitalize(lizard_name(gender))

if(i != attempts_to_find_unique_name && !findname(.))
if(!findname(.))
break

/proc/random_unique_plasmaman_name(attempts_to_find_unique_name=10)
for(var/i=1, i<=attempts_to_find_unique_name, i++)
for(var/i in 1 to attempts_to_find_unique_name)
. = capitalize(plasmaman_name())

if(i != attempts_to_find_unique_name && !findname(.))
if(!findname(.))
break

/proc/random_unique_moth_name(attempts_to_find_unique_name=10)
for(var/i in 1 to attempts_to_find_unique_name)
. = capitalize(moth_name())

if(!findname(.))
break

/proc/random_skin_tone()
Expand Down
3 changes: 3 additions & 0 deletions code/__HELPERS/names.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
/proc/plasmaman_name()
return "[pick(GLOB.plasmaman_names)] \Roman[rand(1,99)]"

/proc/moth_name()
return "[pick(GLOB.moth_names)]"

/proc/church_name()
var/static/church_name
if (church_name)
Expand Down
1 change: 1 addition & 0 deletions code/_globalvars/lists/flavor_misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ GLOBAL_LIST_EMPTY(ears_list)
GLOBAL_LIST_EMPTY(wings_list)
GLOBAL_LIST_EMPTY(wings_open_list)
GLOBAL_LIST_EMPTY(r_wings_list)
GLOBAL_LIST_EMPTY(moth_wings_list)

GLOBAL_LIST_INIT(ghost_forms_with_directions_list, list("ghost")) //stores the ghost forms that support directional sprites
GLOBAL_LIST_INIT(ghost_forms_with_accessories_list, list("ghost")) //stores the ghost forms that support hair and other such things
Expand Down
1 change: 1 addition & 0 deletions code/_globalvars/lists/names.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ GLOBAL_LIST_INIT(clown_names, world.file2list("strings/names/clown.txt"))
GLOBAL_LIST_INIT(mime_names, world.file2list("strings/names/mime.txt"))
GLOBAL_LIST_INIT(carp_names, world.file2list("strings/names/carp.txt"))
GLOBAL_LIST_INIT(golem_names, world.file2list("strings/names/golem.txt"))
GLOBAL_LIST_INIT(moth_names, world.file2list("strings/names/moth.txt"))
GLOBAL_LIST_INIT(plasmaman_names, world.file2list("strings/names/plasmaman.txt"))
GLOBAL_LIST_INIT(posibrain_names, world.file2list("strings/names/posibrain.txt"))
GLOBAL_LIST_INIT(nightmare_names, world.file2list("strings/names/nightmare.txt"))
Expand Down
19 changes: 17 additions & 2 deletions code/modules/client/preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/skin_tone = "caucasian1" //Skin color
var/eye_color = "000" //Eye color
var/datum/species/pref_species = new /datum/species/human() //Mutant race
var/list/features = list("mcolor" = "FFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs")
var/list/features = list("mcolor" = "FFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs", "moth_wings" = "Plain")

var/list/custom_names = list("human", "clown", "mime", "ai", "cyborg", "religion", "deity")
var/prefered_security_department = SEC_DEPT_RANDOM
Expand Down Expand Up @@ -249,7 +249,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)

dat += "</td>"

if(EYECOLOR in pref_species.species_traits)
if((EYECOLOR in pref_species.species_traits) && !(NOEYES in pref_species.species_traits))

dat += "<td valign='top' width='21%'>"

Expand Down Expand Up @@ -330,6 +330,15 @@ GLOBAL_LIST_EMPTY(preferences_datums)

dat += "<a href='?_src_=prefs;preference=legs;task=input'>[features["legs"]]</a><BR>"

dat += "</td>"
if("moth_wings" in pref_species.mutant_bodyparts)

dat += "<td valign='top' width='7%'>"

dat += "<h3>Moth wings</h3>"

dat += "<a href='?_src_=prefs;preference=moth_wings;task=input'>[features["moth_wings"]]</a><BR>"

dat += "</td>"

if(CONFIG_GET(flag/join_with_mutant_humans))
Expand Down Expand Up @@ -1044,6 +1053,12 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(new_legs)
features["legs"] = new_legs

if("moth_wings")
var/new_moth_wings
new_moth_wings = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.moth_wings_list
if(new_moth_wings)
features["moth_wings"] = new_moth_wings

if("s_tone")
var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in GLOB.skin_tones
if(new_s_tone)
Expand Down
5 changes: 4 additions & 1 deletion code/modules/client/preferences_savefile.dm
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["enable_tips"] >> enable_tips
S["tip_delay"] >> tip_delay
S["pda_style"] >> pda_style
S["pda_color"] >> pda_color
S["pda_color"] >> pda_color

//try to fix any outdated data if necessary
if(needs_update >= 0)
Expand Down Expand Up @@ -290,6 +290,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["feature_lizard_spines"] >> features["spines"]
S["feature_lizard_body_markings"] >> features["body_markings"]
S["feature_lizard_legs"] >> features["legs"]
S["feature_moth_wings"] >> features["moth_wings"]
if(!CONFIG_GET(flag/join_with_mutant_humans))
features["tail_human"] = "none"
features["ears"] = "none"
Expand Down Expand Up @@ -359,6 +360,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["spines"] = sanitize_inlist(features["spines"], GLOB.spines_list)
features["body_markings"] = sanitize_inlist(features["body_markings"], GLOB.body_markings_list)
features["feature_lizard_legs"] = sanitize_inlist(features["legs"], GLOB.legs_list, "Normal Legs")
features["moth_wings"] = sanitize_inlist(features["moth_wings"], GLOB.moth_wings_list, "Plain")

joblessrole = sanitize_integer(joblessrole, 1, 3, initial(joblessrole))
job_civilian_high = sanitize_integer(job_civilian_high, 0, 65535, initial(job_civilian_high))
Expand Down Expand Up @@ -412,6 +414,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
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_moth_wings"] , features["moth_wings"])
WRITE_FILE(S["human_name"] , custom_names["human"])
WRITE_FILE(S["clown_name"] , custom_names["clown"])
WRITE_FILE(S["mime_name"] , custom_names["mime"])
Expand Down
10 changes: 8 additions & 2 deletions code/modules/food_and_drinks/food/snacks/meat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,13 @@
tastes = list("maggots" = 1, "the inside of a reactor" = 1)
foodtype = MEAT | RAW | GROSS

/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/moth
icon_state = "mothmeat"
desc = "Unpleasantly powdery and dry. Kind of pretty, though."
filling_color = "#BF896B"
tastes = list("dust" = 1, "powder" = 1, "meat" = 2)
foodtype = MEAT | RAW

/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton
name = "bone"
icon_state = "skeletonmeat"
Expand All @@ -119,14 +126,13 @@

/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie
name = " meat (rotten)"
icon_state = "lizardmeat" //Close enough.
icon_state = "rottenmeat"
desc = "Halfway to becoming fertilizer for your garden."
filling_color = "#6B8E23"
tastes = list("brains" = 1, "meat" = 1)
foodtype = RAW | MEAT | TOXIC



////////////////////////////////////// OTHER MEATS ////////////////////////////////////////////////////////


Expand Down
12 changes: 12 additions & 0 deletions code/modules/language/moth.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/datum/language/moth
name = "Lepidopterian"
desc = "The common language of moths, composed of various noises made of wing fluttering and clicks."
speech_verb = "flutters"
ask_verb = "clicks"
exclaim_verb = "buzzes"
key = "m"
space_chance = 90
syllables = list("bz", "ba", "mah", "fa", "ki", "nr")
default_priority = 90

icon_state = "moth"
69 changes: 69 additions & 0 deletions code/modules/mob/dead/new_player/sprite_accessories.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1401,3 +1401,72 @@

/datum/sprite_accessory/legs/digitigrade_lizard
name = "Digitigrade Legs"

/datum/sprite_accessory/moth_wings
icon = 'icons/mob/wings.dmi'
color_src = null

/datum/sprite_accessory/moth_wings/plain
name = "Plain"
icon_state = "plain"

/datum/sprite_accessory/moth_wings/monarch
name = "Monarch"
icon_state = "monarch"

/datum/sprite_accessory/moth_wings/luna
name = "Luna"
icon_state = "luna"

/datum/sprite_accessory/moth_wings/atlas
name = "Atlas"
icon_state = "atlas"

/datum/sprite_accessory/moth_wings/reddish
name = "Reddish"
icon_state = "redish"

/datum/sprite_accessory/moth_wings/royal
name = "Royal"
icon_state = "royal"

/datum/sprite_accessory/moth_wings/gothic
name = "Gothic"
icon_state = "gothic"

/datum/sprite_accessory/moth_wings/lovers
name = "Lovers"
icon_state = "lovers"

/datum/sprite_accessory/moth_wings/whitefly
name = "White Fly"
icon_state = "whitefly"

/datum/sprite_accessory/moth_wings/punished
name = "Burnt Off"
icon_state = "punished"
locked = TRUE

/datum/sprite_accessory/moth_wings/firewatch
name = "Firewatch"
icon_state = "firewatch"

/datum/sprite_accessory/moth_wings/deathhead
name = "Deathshead"
icon_state = "deathhead"

/datum/sprite_accessory/moth_wings/poison
name = "Poison"
icon_state = "poison"

/datum/sprite_accessory/moth_wings/ragged
name = "Ragged"
icon_state = "ragged"

/datum/sprite_accessory/moth_wings/moonfly
name = "Moon Fly"
icon_state = "moonfly"

/datum/sprite_accessory/moth_wings/snow
name = "Snow"
icon_state = "snow"
27 changes: 15 additions & 12 deletions code/modules/mob/living/carbon/human/species.dm
Original file line number Diff line number Diff line change
Expand Up @@ -451,18 +451,19 @@ GLOBAL_LIST_EMPTY(roundstart_races)
standing += lip_overlay

// eyes
var/has_eyes = H.getorganslot(ORGAN_SLOT_EYES)
var/mutable_appearance/eye_overlay
if(!has_eyes)
eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER)
else
eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes", -BODY_LAYER)
if((EYECOLOR in species_traits) && has_eyes)
eye_overlay.color = "#" + H.eye_color
if(OFFSET_FACE in H.dna.species.offset_features)
eye_overlay.pixel_x += H.dna.species.offset_features[OFFSET_FACE][1]
eye_overlay.pixel_y += H.dna.species.offset_features[OFFSET_FACE][2]
standing += eye_overlay
if(!(NOEYES in species_traits))
var/has_eyes = H.getorganslot(ORGAN_SLOT_EYES)
var/mutable_appearance/eye_overlay
if(!has_eyes)
eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER)
else
eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes", -BODY_LAYER)
if((EYECOLOR in species_traits) && has_eyes)
eye_overlay.color = "#" + H.eye_color
if(OFFSET_FACE in H.dna.species.offset_features)
eye_overlay.pixel_x += H.dna.species.offset_features[OFFSET_FACE][1]
eye_overlay.pixel_y += H.dna.species.offset_features[OFFSET_FACE][2]
standing += eye_overlay

//Underwear, Undershirts & Socks
if(!(NO_UNDERWEAR in species_traits))
Expand Down Expand Up @@ -624,6 +625,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
S = GLOB.wings_open_list[H.dna.features["wings"]]
if("legs")
S = GLOB.legs_list[H.dna.features["legs"]]
if("moth_wings")
S = GLOB.moth_wings_list[H.dna.features["moth_wings"]]

if(!S || S.icon_state == "none")
continue
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "Flyperson"
id = "fly"
say_mod = "buzzes"
species_traits = list(SPECIES_ORGANIC)
species_traits = list(SPECIES_ORGANIC, NOEYES)
mutanttongue = /obj/item/organ/tongue/fly
mutantliver = /obj/item/organ/liver/fly
mutantstomach = /obj/item/organ/stomach/fly
Expand Down
Loading

0 comments on commit b30e293

Please sign in to comment.