normalization

This commit is contained in:
Tupinambis
2020-10-01 18:46:31 -05:00
parent a2fbd76a49
commit d2860b38c7
31 changed files with 205 additions and 203 deletions

View File

@@ -86,7 +86,7 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
#define isinsect(A) (is_species(A, /datum/species/insect))
#define isxenoperson(A) (is_species(A, /datum/species/xeno))
#define isstartjelly(A) (is_species(A, /datum/species/jelly/roundstartslime))
#define isspiderperson(A) (is_species(A, /datum/species/spider))
#define isarachnid(A) (is_species(A, /datum/species/arachnid))
//more carbon mobs
#define ismonkey(A) (istype(A, /mob/living/carbon/monkey))

View File

@@ -32,9 +32,9 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/caps, GLOB.caps_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/insect_wings, GLOB.insect_wings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/insect_fluff, GLOB.insect_fluffs_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_legs, GLOB.spider_legs_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_spinneret, GLOB.spider_spinneret_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_mandibles, GLOB.spider_mandibles_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/arachnid_legs, GLOB.arachnid_legs_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/arachnid_spinneret, GLOB.arachnid_spinneret_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/arachnid_mandibles, GLOB.arachnid_mandibles_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/deco_wings, GLOB.deco_wings_list)
//CIT CHANGES START HERE, ADDS SNOWFLAKE BODYPARTS AND MORE

View File

@@ -76,12 +76,12 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/insect_fluff, GLOB.insect_fluffs_list)
if(!GLOB.insect_markings_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/insect_markings, GLOB.insect_markings_list)
if(!GLOB.spider_legs_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_legs, GLOB.spider_legs_list)
if(!GLOB.spider_spinneret_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_spinneret, GLOB.spider_spinneret_list)
if(!GLOB.spider_mandibles_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_mandibles, GLOB.spider_mandibles_list)
if(!GLOB.arachnid_legs_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/arachnid_legs, GLOB.arachnid_legs_list)
if(!GLOB.arachnid_spinneret_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/arachnid_spinneret, GLOB.arachnid_spinneret_list)
if(!GLOB.arachnid_mandibles_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/arachnid_mandibles, GLOB.arachnid_mandibles_list)
//CIT CHANGES - genitals and such
if(!GLOB.cock_shapes_list.len)
@@ -183,9 +183,9 @@
"insect_wings" = pick(GLOB.insect_wings_list),
"insect_fluff" = "None",
"insect_markings" = pick(GLOB.insect_markings_list),
"spider_legs" = pick(GLOB.spider_legs_list),
"spider_spinneret" = pick(GLOB.spider_spinneret_list),
"spider_mandibles" = pick(GLOB.spider_mandibles_list),
"arachnid_legs" = pick(GLOB.arachnid_legs_list),
"arachnid_spinneret" = pick(GLOB.arachnid_spinneret_list),
"arachnid_mandibles" = pick(GLOB.arachnid_mandibles_list),
"taur" = "None",
"mam_body_markings" = snowflake_markings_list.len ? pick(snowflake_markings_list) : "None",
"mam_ears" = snowflake_ears_list ? pick(snowflake_ears_list) : "None",
@@ -287,9 +287,9 @@
if(!findname(.))
break
/proc/random_unique_spider_name(attempts_to_find_unique_name=10)
/proc/random_unique_arachnid_name(attempts_to_find_unique_name=10)
for(var/i in 1 to attempts_to_find_unique_name)
. = capitalize(pick(GLOB.spider_first)) + " " + capitalize(pick(GLOB.spider_last))
. = capitalize(pick(GLOB.arachnid_first)) + " " + capitalize(pick(GLOB.arachnid_last))
if(!findname(.))
break

View File

@@ -16,8 +16,8 @@
/proc/moth_name()
return "[pick(GLOB.moth_first)] [pick(GLOB.moth_last)]"
/proc/spider_name()
return "[pick(GLOB.spider_first)] [pick(GLOB.spider_last)]"
/proc/arachnid_name()
return "[pick(GLOB.arachnid_first)] [pick(GLOB.arachnid_last)]"
/proc/church_name()
var/static/church_name

View File

@@ -38,9 +38,9 @@ GLOBAL_LIST_EMPTY(r_wings_list)
GLOBAL_LIST_EMPTY(insect_wings_list)
GLOBAL_LIST_EMPTY(insect_fluffs_list)
GLOBAL_LIST_EMPTY(insect_markings_list)
GLOBAL_LIST_EMPTY(spider_legs_list)
GLOBAL_LIST_EMPTY(spider_spinneret_list)
GLOBAL_LIST_EMPTY(spider_mandibles_list)
GLOBAL_LIST_EMPTY(arachnid_legs_list)
GLOBAL_LIST_EMPTY(arachnid_spinneret_list)
GLOBAL_LIST_EMPTY(arachnid_mandibles_list)
GLOBAL_LIST_EMPTY(caps_list)
//a way to index the right bodypart list given the type of bodypart
@@ -63,9 +63,9 @@ GLOBAL_LIST_INIT(mutant_reference_list, list(
"insect_wings" = GLOB.insect_wings_list,
"insect_fluff" = GLOB.insect_fluffs_list,
"insect_markings" = GLOB.insect_markings_list,
"spider_legs" = GLOB.spider_legs_list,
"spider_spinneret" = GLOB.spider_spinneret_list,
"spider_mandibles" = GLOB.spider_mandibles_list,
"arachnid_legs" = GLOB.arachnid_legs_list,
"arachnid_spinneret" = GLOB.arachnid_spinneret_list,
"arachnid_mandibles" = GLOB.arachnid_mandibles_list,
"caps" = GLOB.caps_list,
"ipc_screen" = GLOB.ipc_screens_list,
"ipc_antenna" = GLOB.ipc_antennas_list,
@@ -280,7 +280,7 @@ GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/o
//locked parts are those that your picked species requires to have
//unlocked parts are those that anyone can choose on customisation regardless
//parts not in unlocked, but in all, are thus locked
GLOBAL_LIST_INIT(all_mutant_parts, list("tail_lizard" = "Tail", "mam_tail" = "Tail", "tail_human" = "Tail", "snout" = "Snout", "frills" = "Frills", "spines" = "Spines", "body_markings" = "Body Markings", "mam_body_markings" = "Species Markings" , "mam_ears" = "Ears", "ears" = "Ears", "mam_snouts" = "Snout", "legs" = "Legs", "deco_wings" = "Decorative Wings", "insect_wings" = "Insect Wings", "insect_fluff" = "Insect Fluff", "taur" = "Tauric Body", "insect_markings" = "Insect Markings", "wings" = "Wings", "spider_legs" = "Spider Legs", "spider_spinneret" = "Spinneret", "spider_mandibles" = "Mandibles", "xenohead" = "Caste Head", "xenotail" = "Tail", "xenodorsal" = "Dorsal Spines", "ipc_screen" = "Screen", "ipc_antenna" = "Antenna", "meat_type" = "Meat Type", "horns" = "Horns"))
GLOBAL_LIST_INIT(all_mutant_parts, list("tail_lizard" = "Tail", "mam_tail" = "Tail", "tail_human" = "Tail", "snout" = "Snout", "frills" = "Frills", "spines" = "Spines", "body_markings" = "Body Markings", "mam_body_markings" = "Species Markings" , "mam_ears" = "Ears", "ears" = "Ears", "mam_snouts" = "Snout", "legs" = "Legs", "deco_wings" = "Decorative Wings", "insect_wings" = "Insect Wings", "insect_fluff" = "Insect Fluff", "taur" = "Tauric Body", "insect_markings" = "Insect Markings", "wings" = "Wings", "arachnid_legs" = "Arachnid Legs", "arachnid_spinneret" = "Spinneret", "arachnid_mandibles" = "Mandibles", "xenohead" = "Caste Head", "xenotail" = "Tail", "xenodorsal" = "Dorsal Spines", "ipc_screen" = "Screen", "ipc_antenna" = "Antenna", "meat_type" = "Meat Type", "horns" = "Horns"))
GLOBAL_LIST_INIT(unlocked_mutant_parts, list("horns", "insect_fluff"))
//parts in either of the above two lists that require a second option that allows them to be coloured
GLOBAL_LIST_INIT(colored_mutant_parts, list("insect_wings" = "wings_color", "deco_wings" = "wings_color", "horns" = "horns_color"))

View File

@@ -16,8 +16,8 @@ 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_first, world.file2list("strings/names/moth_first.txt"))
GLOBAL_LIST_INIT(moth_last, world.file2list("strings/names/moth_last.txt"))
GLOBAL_LIST_INIT(spider_first, world.file2list("strings/names/spider_first.txt"))
GLOBAL_LIST_INIT(spider_last, world.file2list("strings/names/spider_last.txt"))
GLOBAL_LIST_INIT(arachnid_first, world.file2list("strings/names/arachnid_first.txt"))
GLOBAL_LIST_INIT(arachnid_last, world.file2list("strings/names/arachnid_last.txt"))
GLOBAL_LIST_INIT(plasmaman_names, world.file2list("strings/names/plasmaman.txt"))
GLOBAL_LIST_INIT(ethereal_names, world.file2list("strings/names/ethereal.txt"))
GLOBAL_LIST_INIT(posibrain_names, world.file2list("strings/names/posibrain.txt"))

View File

@@ -199,7 +199,7 @@ SUBSYSTEM_DEF(traumas)
"anime" = typecacheof(list(/datum/species/human/felinid)),
"cats" = typecacheof(list(/datum/species/human/felinid)),
"syndicate" = typecacheof(list(/datum/species/corporate, /datum/species/zombie/infectious)),
"spiders" = typecacheof(list(/datum/species/spider))
"arachnid" = typecacheof(list(/datum/species/arachnid))
)
return ..()

View File

@@ -342,8 +342,9 @@
to_chat(user, "<span class='warning'>You can't lay webs here!</span>")
failed = TRUE
var/turf/T = get_turf(user)
var/obj/structure/spider/stickyweb/genetic/W = locate() in T
if(W)
var/obj/structure/spider/stickyweb/W = locate() in T
var/obj/structure/arachnid/W2 = locate() in T
if(W || W2)
to_chat(user, "<span class='warning'>There's already a web here!</span>")
failed = TRUE
if(failed)

View File

@@ -1,4 +1,4 @@
/obj/structure/spider_player
/obj/structure/arachnid
name = "large web"
icon = 'icons/effects/effects.dmi'
desc = "It's stringy and sticky, but the threads are larger than what spiderlings could produce."
@@ -6,16 +6,16 @@
density = FALSE
max_integrity = 20
/obj/structure/spider_player/New()
/obj/structure/arachnid/New()
..()
icon_state = pick(list("stickyweb1", "stickyweb2"))
/obj/structure/spider_player/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
/obj/structure/arachnid/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
if(damage_type == BURN)//the stickiness of the web mutes all attack sounds except fire damage type
playsound(loc, 'sound/items/welder.ogg', 100, TRUE)
/obj/structure/spider_player/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
/obj/structure/arachnid/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
if(damage_flag == "melee")
switch(damage_type)
if(BURN)
@@ -24,24 +24,24 @@
damage_amount *= 0.5
. = ..()
/obj/structure/spider_player/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
/obj/structure/arachnid/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(exposed_temperature > 300)
take_damage(5, BURN, 0, 0)
/obj/structure/spider_player/CanPass(atom/movable/mover, turf/target)
/obj/structure/arachnid/CanPass(atom/movable/mover, turf/target)
. = ..()
if(isspiderperson(mover))
if(isarachnid(mover))
return TRUE
else if(isliving(mover))
if(isspiderperson(mover.pulledby))
if(isarachnid(mover.pulledby))
return TRUE
if(prob(20))
to_chat(mover, "<span class='danger'>You get stuck in \the [src] for a moment.</span>")
return FALSE
/obj/structure/spider_player/cocoon
/obj/structure/arachnid/cocoon
name = "cocoon"
desc = "Something wrapped in silky spider web."
icon_state = "cocoon1"
@@ -49,11 +49,11 @@
density = FALSE
max_integrity = 60
/obj/structure/spider_player/cocoon/Initialize()
/obj/structure/arachnid/cocoon/Initialize()
icon_state = pick("cocoon1","cocoon2","cocoon3")
. = ..()
/obj/structure/spider_player/cocoon/container_resist(mob/living/user)
/obj/structure/arachnid/cocoon/container_resist(mob/living/user)
var/breakout_time = 150 // DECI not DECA ffs
to_chat(user, "<span class='notice'>You struggle against the tight bonds... (This will take about [DisplayTimeText(breakout_time)].)</span>")
visible_message("<span class='notice'>You see something struggling and writhing in \the [src]!</span>")
@@ -62,7 +62,7 @@
return
qdel(src)
/obj/structure/spider_player/cocoon/Destroy()
/obj/structure/arachnid/cocoon/Destroy()
var/turf/T = get_turf(src)
src.visible_message("<span class='warning'>\The [src] splits open.</span>")
for(var/atom/movable/A in contents)

View File

@@ -43,9 +43,9 @@
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)
H.dna.features["spider_legs"] = pick(GLOB.spider_legs_list)
H.dna.features["spider_spinneret"] = pick(GLOB.spider_spinneret_list)
H.dna.features["spider_mandibles"] = pick(GLOB.spider_mandibles_list)
H.dna.features["arachnid_legs"] = pick(GLOB.arachnid_legs_list)
H.dna.features["arachnid_spinneret"] = pick(GLOB.arachnid_spinneret_list)
H.dna.features["arachnid_mandibles"] = pick(GLOB.arachnid_mandibles_list)
H.dna.features["flavor_text"] = "" //Oh no.
H.dna.features["body_model"] = H.gender

View File

@@ -119,9 +119,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
"insect_wings" = "Plain",
"insect_fluff" = "None",
"insect_markings" = "None",
"spider_legs" = "Plain",
"spider_spinneret" = "Plain",
"spider_mandibles" = "Plain",
"arachnid_legs" = "Plain",
"arachnid_spinneret" = "Plain",
"arachnid_mandibles" = "Plain",
"mam_body_markings" = "Plain",
"mam_ears" = "None",
"mam_snouts" = "None",
@@ -1685,23 +1685,23 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(new_ipc_antenna)
features["ipc_antenna"] = new_ipc_antenna
if("spider_legs")
var/new_spider_legs
new_spider_legs = input(user, "Choose your character's variant of spider legs:", "Character Preference") as null|anything in GLOB.spider_legs_list
if(new_spider_legs)
features["spider_legs"] = new_spider_legs
if("arachnid_legs")
var/new_arachnid_legs
new_arachnid_legs = input(user, "Choose your character's variant of arachnid legs:", "Character Preference") as null|anything in GLOB.arachnid_legs_list
if(new_arachnid_legs)
features["arachnid_legs"] = new_arachnid_legs
if("spider_spinneret")
var/new_spider_spinneret
new_spider_spinneret = input(user, "Choose your character's spinneret markings:", "Character Preference") as null|anything in GLOB.spider_spinneret_list
if(new_spider_spinneret)
features["spider_spinneret"] = new_spider_spinneret
if("arachnid_spinneret")
var/new_arachnid_spinneret
new_arachnid_spinneret = input(user, "Choose your character's spinneret markings:", "Character Preference") as null|anything in GLOB.arachnid_spinneret_list
if(new_arachnid_spinneret)
features["arachnid_spinneret"] = new_arachnid_spinneret
if("spider_mandibles")
var/new_spider_mandibles
new_spider_mandibles = input(user, "Choose your character's variant of mandibles:", "Character Preference") as null|anything in GLOB.spider_mandibles_list
if (new_spider_mandibles)
features["spider_mandibles"] = new_spider_mandibles
if("arachnid_mandibles")
var/new_arachnid_mandibles
new_arachnid_mandibles = input(user, "Choose your character's variant of mandibles:", "Character Preference") as null|anything in GLOB.arachnid_mandibles_list
if (new_arachnid_mandibles)
features["arachnid_mandibles"] = new_arachnid_mandibles
if("tail_lizard")
var/new_tail
@@ -1868,23 +1868,23 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(new_insect_markings)
features["insect_markings"] = new_insect_markings
if("spider_legs")
var/new_spider_legs
new_spider_legs = input(user, "Choose your character's variant of spider legs:", "Character Preference") as null|anything in GLOB.spider_legs_list
if(new_spider_legs)
features["spider_legs"] = new_spider_legs
if("arachnid_legs")
var/new_arachnid_legs
new_arachnid_legs = input(user, "Choose your character's variant of arachnid legs:", "Character Preference") as null|anything in GLOB.arachnid_legs_list
if(new_arachnid_legs)
features["arachnid_legs"] = new_arachnid_legs
if("spider_spinneret")
var/new_spider_spinneret
new_spider_spinneret = input(user, "Choose your character's spinneret markings:", "Character Preference") as null|anything in GLOB.spider_spinneret_list
if(new_spider_spinneret)
features["spider_spinneret"] = new_spider_spinneret
if("arachnid_spinneret")
var/new_arachnid_spinneret
new_arachnid_spinneret = input(user, "Choose your character's spinneret markings:", "Character Preference") as null|anything in GLOB.arachnid_spinneret_list
if(new_arachnid_spinneret)
features["arachnid_spinneret"] = new_arachnid_spinneret
if("spider_mandibles")
var/new_spider_mandibles
new_spider_mandibles = input(user, "Choose your character's variant of mandibles:", "Character Preference") as null|anything in GLOB.spider_mandibles_list
if (new_spider_mandibles)
features["spider_mandibles"] = new_spider_mandibles
if("arachnid_mandibles")
var/new_arachnid_mandibles
new_arachnid_mandibles = input(user, "Choose your character's variant of mandibles:", "Character Preference") as null|anything in GLOB.arachnid_mandibles_list
if (new_arachnid_mandibles)
features["arachnid_mandibles"] = new_arachnid_mandibles
if("s_tone")
var/list/choices = GLOB.skin_tones - GLOB.nonstandard_skin_tones
@@ -1925,7 +1925,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["xenotail"] = "None"
features["tail_human"] = "None"
features["tail_lizard"] = "None"
features["spider_spinneret"] = "None"
features["arachnid_spinneret"] = "None"
if("ears")
var/list/snowflake_ears_list = list()

View File

@@ -540,9 +540,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["feature_insect_wings"] >> features["insect_wings"]
S["feature_insect_fluff"] >> features["insect_fluff"]
S["feature_insect_markings"] >> features["insect_markings"]
S["feature_spider_legs"] >> features["spider_legs"]
S["feature_spider_spinneret"] >> features["spider_spinneret"]
S["feature_spider_mandibles"] >> features["spider_mandibles"]
S["feature_arachnid_legs"] >> features["arachnid_legs"]
S["feature_arachnid_spinneret"] >> features["arachnid_spinneret"]
S["feature_arachnid_mandibles"] >> features["arachnid_mandibles"]
S["feature_horns_color"] >> features["horns_color"]
S["feature_wings_color"] >> features["wings_color"]
S["persistent_scars"] >> persistent_scars
@@ -726,9 +726,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["insect_fluff"] = sanitize_inlist(features["insect_fluff"], GLOB.insect_fluffs_list)
features["insect_markings"] = sanitize_inlist(features["insect_markings"], GLOB.insect_markings_list, "None")
features["insect_wings"] = sanitize_inlist(features["insect_wings"], GLOB.insect_wings_list)
features["spider_legs"] = sanitize_inlist(features["spider_legs"], GLOB.spider_legs_list, "Plain")
features["spider_spinneret"] = sanitize_inlist(features["spider_spinneret"], GLOB.spider_spinneret_list, "Plain")
features["spider_mandibles"] = sanitize_inlist(features["spider_mandibles"], GLOB.spider_mandibles_list, "Plain")
features["arachnid_legs"] = sanitize_inlist(features["arachnid_legs"], GLOB.arachnid_legs_list, "Plain")
features["arachnid_spinneret"] = sanitize_inlist(features["arachnid_spinneret"], GLOB.arachnid_spinneret_list, "Plain")
features["arachnid_mandibles"] = sanitize_inlist(features["arachnid_mandibles"], GLOB.arachnid_mandibles_list, "Plain")
var/static/size_min
if(!size_min)
@@ -867,9 +867,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["feature_insect_wings"] , features["insect_wings"])
WRITE_FILE(S["feature_insect_fluff"] , features["insect_fluff"])
WRITE_FILE(S["feature_insect_markings"] , features["insect_markings"])
WRITE_FILE(S["feature_spider_legs"] , features["spider_legs"])
WRITE_FILE(S["feature_spider_spinneret"] , features["spider_spinneret"])
WRITE_FILE(S["feature_spider_mandibles"] , features["spider_mandibles"])
WRITE_FILE(S["feature_arachnid_legs"] , features["arachnid_legs"])
WRITE_FILE(S["feature_arachnid_spinneret"] , features["arachnid_spinneret"])
WRITE_FILE(S["feature_arachnid_mandibles"] , features["arachnid_mandibles"])
WRITE_FILE(S["feature_meat"] , features["meat_type"])
WRITE_FILE(S["feature_has_cock"], features["has_cock"])

View File

@@ -1,6 +1,6 @@
/datum/language/spider
/datum/language/arachnid
name = "Rachnidian"
desc = "A language that exploits the multiple limbs of spiders to do subtle dance like movements to communicate.\
desc = "A language that exploits the multiple limbs of arachnids to do subtle dance like movements to communicate.\
A proper speaker's movements are quick and sharp enough to make audible whiffs and thumps however, which are intelligible over the radio."
speech_verb = "chitter"
ask_verb = "chitter"
@@ -8,8 +8,8 @@
key = "r"
flags = NO_STUTTER | LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD
icon_state = "spider"
icon_state = "arachnid"
/datum/language/spider/scramble(input)
/datum/language/arachnid/scramble(input)
. = prob(65) ? "<i>wiff</i>" : "<i>thump</i>"
. += (copytext(input, length(input)) == "?") ? "?" : "!"

View File

@@ -330,11 +330,11 @@ Key procs
spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
/datum/language/voltaic = list(LANGUAGE_ATOM))
/datum/language_holder/spider
/datum/language_holder/arachnid
understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
/datum/language/spider = list(LANGUAGE_ATOM))
/datum/language/arachnid = list(LANGUAGE_ATOM))
spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM),
/datum/language/spider = list(LANGUAGE_ATOM))
/datum/language/arachnid = list(LANGUAGE_ATOM))
/datum/language_holder/empty
understood_languages = list()

View File

@@ -0,0 +1,68 @@
/datum/sprite_accessory/arachnid_legs
icon = 'icons/mob/arachnid_legs.dmi'
relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER)
mutant_part_string = "arachnid_legs"
color_src = 0
/datum/sprite_accessory/arachnid_legs/none
name = "None"
icon_state = null
relevant_layers = null
/datum/sprite_accessory/arachnid_legs/plain
name = "Plain"
icon_state = "plain"
/datum/sprite_accessory/arachnid_legs/fuzzy
name = "Fuzzy"
icon_state = "fuzzy"
/datum/sprite_accessory/arachnid_legs/spiky
name = "Spiky"
icon_state = "spiky"
/datum/sprite_accessory/arachnid_spinneret
icon = 'icons/mob/arachnid_spinneret.dmi'
relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER)
mutant_part_string = "spinneret"
color_src = 0
/datum/sprite_accessory/arachnid_spinneret/none
name = "None"
icon_state = null
relevant_layers = null
/datum/sprite_accessory/arachnid_spinneret/plain
name = "Plain"
icon_state = "plain"
/datum/sprite_accessory/arachnid_spinneret/fuzzy
name = "Fuzzy"
icon_state = "fuzzy"
/datum/sprite_accessory/arachnid_spinneret/black_widow
name = "Black Widow"
icon_state = "blackwidow"
/datum/sprite_accessory/arachnid_mandibles
icon = 'icons/mob/arachnid_mandibles.dmi'
relevant_layers = list(BODY_ADJ_LAYER, BODY_FRONT_LAYER)
mutant_part_string = "mandibles"
color_src = 0
/datum/sprite_accessory/arachnid_mandibles/none
name = "None"
icon_state = null
relevant_layers = null
/datum/sprite_accessory/arachnid_mandibles/plain
name = "Plain"
icon_state = "plain"
/datum/sprite_accessory/arachnid_mandibles/fuzzy
name = "Fuzzy"
icon_state = "fuzzy"
/datum/sprite_accessory/arachnid_mandibles/spiky
name = "Spiky"
icon_state = "spiky"

View File

@@ -1,68 +0,0 @@
/datum/sprite_accessory/spider_legs
icon = 'icons/mob/spider_legs.dmi'
relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER)
mutant_part_string = "spider_legs"
color_src = 0
/datum/sprite_accessory/spider_legs/none
name = "None"
icon_state = null
relevant_layers = null
/datum/sprite_accessory/spider_legs/plain
name = "Plain"
icon_state = "plain"
/datum/sprite_accessory/spider_legs/fuzzy
name = "Fuzzy"
icon_state = "fuzzy"
/datum/sprite_accessory/spider_legs/spiky
name = "Spiky"
icon_state = "spiky"
/datum/sprite_accessory/spider_spinneret
icon = 'icons/mob/spider_spinneret.dmi'
relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER)
mutant_part_string = "spinneret"
color_src = 0
/datum/sprite_accessory/spider_spinneret/none
name = "None"
icon_state = null
relevant_layers = null
/datum/sprite_accessory/spider_spinneret/plain
name = "Plain"
icon_state = "plain"
/datum/sprite_accessory/spider_spinneret/fuzzy
name = "Fuzzy"
icon_state = "fuzzy"
/datum/sprite_accessory/spider_spinneret/black_widow
name = "Black Widow"
icon_state = "blackwidow"
/datum/sprite_accessory/spider_mandibles
icon = 'icons/mob/spider_mandibles.dmi'
relevant_layers = list(BODY_ADJ_LAYER, BODY_FRONT_LAYER)
mutant_part_string = "mandibles"
color_src = 0
/datum/sprite_accessory/spider_mandibles/none
name = "None"
icon_state = null
relevant_layers = null
/datum/sprite_accessory/spider_mandibles/plain
name = "Plain"
icon_state = "plain"
/datum/sprite_accessory/spider_mandibles/fuzzy
name = "Fuzzy"
icon_state = "fuzzy"
/datum/sprite_accessory/spider_mandibles/spiky
name = "Spiky"
icon_state = "spiky"

View File

@@ -1256,5 +1256,5 @@
/mob/living/carbon/human/species/roundstartslime
race = /datum/species/jelly/roundstartslime
/mob/living/carbon/human/species/spider
race = /datum/species/spider
/mob/living/carbon/human/species/arachnid
race = /datum/species/arachnid

View File

@@ -1,12 +1,12 @@
/datum/species/spider
/datum/species/arachnid
name = "Arachnid"
id = "rachnid"
override_bp_icon = 'icons/mob/spider_parts.dmi'
id = "arachnid"
override_bp_icon = 'icons/mob/arachnid_parts.dmi'
say_mod = "chitters"
default_color = "00FF00"
species_traits = list(LIPS, NOEYES, NO_UNDERWEAR)
inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BUG
mutant_bodyparts = list("spider_legs" = "Plain", "spider_spinneret" = "Plain", "spider_mandibles" = "Plain")
mutant_bodyparts = list("arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain")
attack_verb = "slash"
attack_sound = 'sound/weapons/slash.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg'
@@ -14,44 +14,44 @@
liked_food = MEAT | RAW
disliked_food = FRUIT | GROSS
toxic_food = VEGETABLES | DAIRY
mutanteyes = /obj/item/organ/eyes/night_vision/spider
mutanttongue = /obj/item/organ/tongue/spider
species_language_holder = /datum/language_holder/spider
mutanteyes = /obj/item/organ/eyes/night_vision/arachnid
mutanttongue = /obj/item/organ/tongue/arachnid
species_language_holder = /datum/language_holder/arachnid
brutemod = 1.1
var/web_cooldown = 200
var/web_ready = TRUE
var/spinner_rate = 25
/datum/species/spider/random_name(gender,unique,lastname)
/datum/species/arachnid/random_name(gender,unique,lastname)
if(unique)
return random_unique_spider_name()
return random_unique_arachnid_name()
var/randname = spider_name()
var/randname = arachnid_name()
if(lastname)
randname += " [lastname]"
return randname
/datum/species/spider/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
/datum/species/arachnid/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
. = ..()
if(chem.type == /datum/reagent/toxin/pestkiller)
H.adjustToxLoss(3)
H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
/datum/species/spider/check_weakness(obj/item/weapon, mob/living/attacker)
/datum/species/arachnid/check_weakness(obj/item/weapon, mob/living/attacker)
if(istype(weapon, /obj/item/melee/flyswatter))
return 9 //flyswatters deal 10x damage to spiders
return 9 //flyswatters deal 10x damage to arachnids
return 0
/datum/species/spider/on_species_gain(mob/living/carbon/human/H, datum/species/old_species)
/datum/species/arachnid/on_species_gain(mob/living/carbon/human/H, datum/species/old_species)
. = ..()
var/datum/action/innate/spin_web/SW = new
var/datum/action/innate/spin_cocoon/SC = new
SC.Grant(H)
SW.Grant(H)
/datum/species/spider/on_species_loss(mob/living/carbon/human/H)
/datum/species/arachnid/on_species_loss(mob/living/carbon/human/H)
. = ..()
var/datum/action/innate/spin_web/SW = locate(/datum/action/innate/spin_web) in H.actions
var/datum/action/innate/spin_cocoon/SC = locate(/datum/action/innate/spin_cocoon) in H.actions
@@ -71,8 +71,8 @@
button_icon_state = "wrap_0"
/datum/action/innate/spin_web/Activate()
var/mob/living/carbon/human/species/spider/H = owner
var/datum/species/spider/E = H.dna.species
var/mob/living/carbon/human/species/arachnid/H = owner
var/datum/species/arachnid/E = H.dna.species
if(H.stat == "DEAD")
return
if(E.web_ready == FALSE)
@@ -83,7 +83,7 @@
to_chat(H, "<span class='warning'>There's no room to spin your web here!</span>")
return
var/obj/structure/spider/stickyweb/W = locate() in T
var/obj/structure/spider_player/W2 = locate() in T
var/obj/structure/arachnid/W2 = locate() in T
if(W || W2)
to_chat(H, "<span class='warning'>There's already a web here!</span>")
return
@@ -97,7 +97,7 @@
H.adjust_nutrition(-E.spinner_rate)
addtimer(VARSET_CALLBACK(E, web_ready, TRUE), E.web_cooldown)
to_chat(H, "<i>You use up a fair amount of energy weaving a web on the ground with your spinneret!</i>")
new /obj/structure/spider_player(T, owner)
new /obj/structure/arachnid(T, owner)
else
to_chat(H, "<span class='warning'>You're too hungry to spin web right now, eat something first!</span>")
@@ -111,8 +111,8 @@
5) if you're not interrupted, force move the target to the cocoon created at their location.
*/
/datum/action/innate/spin_cocoon/Activate()
var/mob/living/carbon/human/species/spider/H = owner
var/datum/species/spider/E = H.dna.species
var/mob/living/carbon/human/species/arachnid/H = owner
var/datum/species/arachnid/E = H.dna.species
if(H.stat == "DEAD")
return
if(E.web_ready == FALSE)
@@ -130,10 +130,10 @@
to_chat(H, "<span class='warning'>You're too hungry to spin web right now, eat something first!</span>")
return
/datum/action/innate/spin_cocoon/proc/cocoonAtom(mob/living/carbon/human/species/spider/H, atom/movable/A)
/datum/action/innate/spin_cocoon/proc/cocoonAtom(mob/living/carbon/human/species/arachnid/H, atom/movable/A)
UnregisterSignal(H, list(COMSIG_MOB_ALTCLICKON))
var/datum/species/spider/E = H.dna.species
if (!H || !isspiderperson(H))
var/datum/species/arachnid/E = H.dna.species
if (!H || !isarachnid(H))
return COMSIG_MOB_CANCEL_CLICKON
else
if(E.web_ready == FALSE)
@@ -143,7 +143,7 @@
to_chat(H, "<span class='warning'>Your web spinning was interrupted!</span>")
return
H.adjust_nutrition(E.spinner_rate * -3)
var/obj/structure/spider_player/cocoon/C = new(A.loc)
var/obj/structure/arachnid/cocoon/C = new(A.loc)
if(isliving(A))
C.icon_state = pick("cocoon_large1","cocoon_large2","cocoon_large3")
A.forceMove(C)

View File

@@ -368,7 +368,8 @@
var/turf/T = get_turf(S)
var/obj/structure/spider/stickyweb/W = locate() in T
if(W)
var/obj/structure/arachnid/W2 = locate() in T
if(W || W2)
to_chat(S, "<span class='warning'>There's already a web here!</span>")
return

View File

@@ -1969,7 +1969,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/bug_spray/on_mob_life(mob/living/carbon/M)
//Bugs should not drink Bug spray.
if(isinsect(M) || isflyperson(M) || isspiderperson(M))
if(isinsect(M) || isflyperson(M) || isarachnid(M))
M.adjustToxLoss(1,0)
return ..()

View File

@@ -785,7 +785,7 @@
name = "Arachnid Mutation Toxin"
description = "A glowing toxin."
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/spider
race = /datum/species/arachnid
mutationtext = "<span class='danger'>The pain subsides. You feel... silky.</span>"
//DANGEROUS RACES

View File

@@ -729,7 +729,7 @@
required_temp = 320
/datum/chemical_reaction/mutationtoxin/arachnid
name = "spiderperson mutation toxin"
name = "arachnid mutation toxin"
id = /datum/reagent/mutationtoxin/arachnid
results = list(/datum/reagent/mutationtoxin/arachnid = 1)
required_reagents = list(/datum/reagent/mutationtoxin/insect = 1, /datum/reagent/toxin/heparin = 10)

View File

@@ -430,8 +430,8 @@
if(severity >= 70)
owner.adjustOrganLoss(ORGAN_SLOT_EYES, 20)
/obj/item/organ/eyes/night_vision/spider
name = "spider eyes"
/obj/item/organ/eyes/night_vision/arachnid
name = "arachnid eyes"
desc = "These eyes seem to have increased sensitivity to bright light, offset by basic night vision."
see_in_dark = 4
flash_protect = -1

View File

@@ -259,7 +259,7 @@
. = ..()
languages_possible = languages_possible_ethereal
/obj/item/organ/tongue/spider
/obj/item/organ/tongue/arachnid
name = "inner mandible"
desc = "A set of soft, spoon-esque mandibles closer to the mouth opening, that allow for basic speech, and the ability to speak Rachnidian."
say_mod = "chitters"
@@ -271,9 +271,9 @@
/datum/language/narsie,
/datum/language/beachbum,
/datum/language/aphasia,
/datum/language/spider,
/datum/language/arachnid,
))
/obj/item/organ/tongue/spider/Initialize(mapload)
/obj/item/organ/tongue/arachnid/Initialize(mapload)
. = ..()
languages_possible = languages_possible_arachnid

View File

@@ -477,7 +477,7 @@ ROUNDSTART_RACES xeno
ROUNDSTART_RACES slimeperson
ROUNDSTART_RACES guilmon
ROUNDSTART_RACES ipc
ROUNDSTART_RACES rachnid
ROUNDSTART_RACES arachnid
##-------------------------------------------------------------------------------------------

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 498 B

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -944,6 +944,7 @@
#include "code\game\objects\structures.dm"
#include "code\game\objects\effects\alien_acid.dm"
#include "code\game\objects\effects\anomalies.dm"
#include "code\game\objects\effects\arachnid_web.dm"
#include "code\game\objects\effects\blessing.dm"
#include "code\game\objects\effects\bump_teleporter.dm"
#include "code\game\objects\effects\contraband.dm"
@@ -957,7 +958,6 @@
#include "code\game\objects\effects\overlays.dm"
#include "code\game\objects\effects\portals.dm"
#include "code\game\objects\effects\proximity.dm"
#include "code\game\objects\effects\spiderperson_web.dm"
#include "code\game\objects\effects\spiders.dm"
#include "code\game\objects\effects\step_triggers.dm"
#include "code\game\objects\effects\wanted_poster.dm"
@@ -2294,6 +2294,7 @@
#include "code\modules\keybindings\keybind\robot.dm"
#include "code\modules\keybindings\keybind\targeting.dm"
#include "code\modules\language\aphasia.dm"
#include "code\modules\language\arachnid.dm"
#include "code\modules\language\beachbum.dm"
#include "code\modules\language\codespeak.dm"
#include "code\modules\language\common.dm"
@@ -2309,7 +2310,6 @@
#include "code\modules\language\narsian.dm"
#include "code\modules\language\ratvarian.dm"
#include "code\modules\language\slime.dm"
#include "code\modules\language\spider.dm"
#include "code\modules\language\swarmer.dm"
#include "code\modules\language\sylvan.dm"
#include "code\modules\language\vampiric.dm"
@@ -2413,6 +2413,7 @@
#include "code\modules\mob\dead\new_player\preferences_setup.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\_sprite_accessories.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\alienpeople.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\arachnid.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\body_markings.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\caps.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\Citadel_Snowflake.dm"
@@ -2425,7 +2426,6 @@
#include "code\modules\mob\dead\new_player\sprite_accessories\legs_and_taurs.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\snouts.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\socks.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\spider.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\spines.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\synthliz.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\tails.dm"
@@ -2544,6 +2544,7 @@
#include "code\modules\mob\living\carbon\human\species_types\abductors.dm"
#include "code\modules\mob\living\carbon\human\species_types\android.dm"
#include "code\modules\mob\living\carbon\human\species_types\angel.dm"
#include "code\modules\mob\living\carbon\human\species_types\arachnid.dm"
#include "code\modules\mob\living\carbon\human\species_types\bugmen.dm"
#include "code\modules\mob\living\carbon\human\species_types\corporate.dm"
#include "code\modules\mob\living\carbon\human\species_types\dullahan.dm"
@@ -2562,7 +2563,6 @@
#include "code\modules\mob\living\carbon\human\species_types\podpeople.dm"
#include "code\modules\mob\living\carbon\human\species_types\shadowpeople.dm"
#include "code\modules\mob\living\carbon\human\species_types\skeletons.dm"
#include "code\modules\mob\living\carbon\human\species_types\spider.dm"
#include "code\modules\mob\living\carbon\human\species_types\synthliz.dm"
#include "code\modules\mob\living\carbon\human\species_types\synths.dm"
#include "code\modules\mob\living\carbon\human\species_types\vampire.dm"