Vox event icons, turfs and props. (#9020)

* Vox event icons, turfs and props.

* Ported vox prosthetics from Bay.

* Added icons for the vox simplemobs.

* Vox now apply default colours and markings in set_species().
This commit is contained in:
MistakeNot4892
2023-03-05 09:30:54 +11:00
committed by GitHub
parent 20cdc4b676
commit 186dc1cdba
22 changed files with 271 additions and 13 deletions

View File

@@ -25,6 +25,7 @@
var/corpseidicon = null //For setting it to be a gold, silver, CentCom etc ID
var/species = SPECIES_HUMAN //defaults to generic-ass humans
var/random_species = FALSE //flip to TRUE to randomize species from the list below
var/corpse_outfit /// Set to an outfit to equip on spawn.
var/list/random_species_list = list(SPECIES_HUMAN,SPECIES_TAJ,SPECIES_UNATHI,SPECIES_SKRELL) //preset list that can be overriden downstream. only includes common humanoids for voidsuit compatibility's sake.
// var/random_appearance = FALSE //TODO: make this work
// var/cause_of_death = null //TODO: set up a cause-of-death system. needs to support both damage types and actual wound types, so a body can have been bitten/stabbed/clawed/shot/burned/lasered/etc. to death
@@ -92,6 +93,9 @@
M.set_id_info(W)
M.equip_to_slot_or_del(W, slot_wear_id)
if(corpse_outfit)
var/decl/hierarchy/outfit/outfit = GET_DECL(corpse_outfit)
outfit.equip(M)
// I'll work on making a list of corpses people request for maps, or that I think will be commonly used. Syndicate operatives for example.

View File

@@ -34,10 +34,10 @@
var/turf/T = get_turf(src)
if(istype(T))
return T.attackby(O, user)
return T.attackby(O, user)
. = ..()
// Holder for vine plants.
// Icons for plants are generated as overlays, so setting it to invisible wouldn't work.

View File

@@ -1105,12 +1105,7 @@
if(species.icon_scale_x != 1 || species.icon_scale_y != 1)
update_transform()
if(species.base_color && default_colour)
//Apply colour.
r_skin = hex2num(copytext(species.base_color,2,4))
g_skin = hex2num(copytext(species.base_color,4,6))
b_skin = hex2num(copytext(species.base_color,6,8))
else
if(!default_colour || !species.apply_default_colours(src))
r_skin = 0
g_skin = 0
b_skin = 0

View File

@@ -33,7 +33,6 @@
experience."
catalogue_data = list(/datum/category_item/catalogue/fauna/vox)
slowdown = -0.5
speech_sounds = list('sound/voice/shriek1.ogg')
@@ -171,3 +170,41 @@
SPAN_NOTICE("\The [src]'s scaling bristles roughly."),
self_message = SPAN_NOTICE("You bristle your scaling and deflate your internal bladders, restoring mobility but leaving yourself vulnerable to low pressure.")
)
/datum/species/vox/apply_default_colours(var/mob/living/carbon/human/H)
if(!H.h_style)
H.h_style = "Short Vox Quills"
var/hair_color = "#594219"
H.r_hair = hex2num(copytext(hair_color,2,4))
H.g_hair = hex2num(copytext(hair_color,4,6))
H.b_hair = hex2num(copytext(hair_color,6,8))
var/skin_color = "#526D29"
H.r_skin = hex2num(copytext(skin_color,2,4))
H.g_skin = hex2num(copytext(skin_color,4,6))
H.b_skin = hex2num(copytext(skin_color,6,8))
var/scutes_color = "#BC7D3E"
var/obj/item/organ/external/head = H.get_organ(BP_HEAD)
head.markings = list(
"Vox Beak" = list(
"color" = scutes_color,
"datum" = body_marking_styles_list["Vox Beak"]
)
)
for(var/bp in list(BP_L_ARM, BP_L_HAND, BP_R_ARM, BP_R_HAND, BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT))
var/obj/item/organ/external/limb = H.get_organ(bp)
if(limb)
LAZYINITLIST(limb.markings)
limb.markings["Vox Scutes"] = list(
"color" = scutes_color,
"datum" = body_marking_styles_list["Vox Scutes"]
)
var/claw_color = "#A0A654"
for(var/bp in list(BP_L_HAND, BP_R_HAND, BP_L_FOOT, BP_R_FOOT, BP_TORSO))
var/obj/item/organ/external/limb = H.get_organ(bp)
if(limb)
LAZYINITLIST(limb.markings)
limb.markings["Vox Claws"] = list(
"color" = claw_color,
"datum" = body_marking_styles_list["Vox Claws"]
)
return TRUE

View File

@@ -537,3 +537,12 @@
/datum/species/proc/handle_falling(mob/living/carbon/human/H, atom/hit_atom, damage_min, damage_max, silent, planetary)
return FALSE
/datum/species/proc/apply_default_colours(var/mob/living/carbon/human/H)
if(base_color)
//Apply colour.
H.r_skin = hex2num(copytext(base_color,2,4))
H.g_skin = hex2num(copytext(base_color,4,6))
H.b_skin = hex2num(copytext(base_color,6,8))
return TRUE
return FALSE

View File

@@ -106,4 +106,4 @@
ai_holder_type = /datum/ai_holder/simple_mob/ranged/kiting/threatening/event
/decl/mob_organ_names/combatdrone
hit_zones = list("chassis", "comms array", "sensor suite", "left weapons module", "right weapons module", "maneuvering thruster")
hit_zones = list("chassis", "comms array", "sensor suite", "left weapons module", "right weapons module", "maneuvering thruster")

View File

@@ -57,4 +57,4 @@
can_flee = FALSE // Fearless dumb machines.
/decl/mob_organ_names/hivebot
hit_zones = list("central chassis", "positioning servo", "head", "sensor suite", "manipulator arm", "shoulder weapon mount", "weapons array", "front right leg", "front left leg", "rear left leg", "rear right leg")
hit_zones = list("central chassis", "positioning servo", "head", "sensor suite", "manipulator arm", "shoulder weapon mount", "weapons array", "front right leg", "front left leg", "rear left leg", "rear right leg")

View File

@@ -472,6 +472,18 @@ var/global/const/standard_monitor_styles = "blank=ipc_blank;\
species_alternates = list(SPECIES_HUMAN = "Morgan Trading Co")
suggested_species = SPECIES_TESHARI
/datum/robolimb/vox
company = "Arkmade"
icon = 'icons/mob/human_races/cyberlimbs/vox/primalis.dmi'
unavailable_to_build = TRUE
species_cannot_use = list(SPECIES_TESHARI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_HUMAN, SPECIES_TAJ, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_SKRELL, SPECIES_ZADDAT)
suggested_species = SPECIES_VOX
/datum/robolimb/vox/crap
company = "Improvised"
icon = 'icons/mob/human_races/cyberlimbs/vox/improvised.dmi'
/obj/item/disk/limb
name = "Limb Blueprints"
desc = "A disk containing the blueprints for prosthetics."