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

@@ -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

@@ -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."

BIN
icons/mob/ascent.dmi Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 743 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 763 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,200 @@
/*
/obj/effect/overmap/visitable/event_vox_derelict
name = "vox derelict"
desc = "A sundered fragment of a much larger vessel. LADAR paints a partial vox silhouette."
scanner_desc = "A sundered fragment of a much larger vessel. LADAR paints a partial vox silhouette."
icon_state = "object"
in_space = 1
start_x = 7
start_y = 4
/datum/map_template/space/vox_derelict
name = "Vox Derelict"
desc = "A sheared-off chunk of a derelict vox vessel."
mappath = 'maps/submaps/space_submaps/vox_derelict/vox_derelict.dmm'
cost = INFINITY
/area/vox_derelict/hallway/e
name = "Vox Derelict - Starboard Arm"
/area/vox_derelict/hallway/n
name = "Vox Derelict - Fore Arm"
/area/vox_derelict/hallway/w
name = "Vox Derelict - Port Arm"
/area/vox_derelict/hallway/s
name = "Vox Derelict - Aft Arm"
/area/vox_derelict/hallway/se
name = "Vox Derelict - Aft Starboard Arm"
/area/vox_derelict/hallway/ne
name = "Vox Derelict - Fore Starboard Arm"
/area/vox_derelict/hallway/sw
name = "Vox Derelict - Aft Port Arm"
/area/vox_derelict/hallway/nw
name = "Vox Derelict - Fore Port Arm"
/area/vox_derelict/fluid_processing
name = "Vox Derelict - Fluid Process"
/area/vox_derelict/grove_one
name = "Vox Derelict - Primary Auxillary Grove"
/area/vox_derelict/grove_two
name = "Vox Derelict - Secondary Auxillary Grove"
/area/vox_derelict/grove_three
name = "Vox Derelict - Tertiary Auxillary Grove"
/area/vox_derelict/storage
name = "Vox Derelict - Storage Nook"
/area/vox_derelict/mass_reclamation
name = "Vox Derelict - Mass Reclamation"
/area/vox_derelict/core
name = "Vox Derelict - Apex Core"
/obj/effect/shuttle_landmark/automatic/vox_derelict
*/
/decl/flooring/vox_tiles
name = "vox tiling"
desc = "Tight-fitting plates of some blue-green vox composite."
icon = 'maps/submaps/space_submaps/vox_derelict/icons/tiles_vox.dmi'
icon_base = "floor"
has_base_range = 4
/turf/simulated/floor/vox
name = "vox plating"
desc = "It quivers uneasily, and feels like hard leather."
icon = 'maps/submaps/space_submaps/vox_derelict/icons/plating_vox.dmi'
icon_state = "plating"
base_name = "vox plating"
base_desc = "It quivers uneasily, and feels like hard leather."
base_icon = 'maps/submaps/space_submaps/vox_derelict/icons/plating_vox.dmi'
oxygen = 0
nitrogen = MOLES_O2STANDARD + MOLES_N2STANDARD
/turf/simulated/floor/vox/tiled
name = "vox tiling"
desc = "Tight-fitting plates of some blue-green vox composite."
icon = 'maps/submaps/space_submaps/vox_derelict/icons/tiles_vox.dmi'
icon_state = "floor1"
initial_flooring = /decl/flooring/vox_tiles
/obj/structure/vox/apex_body
name = "vox biocomputer"
desc = "An enormous spiralling mass of metal and leathery vox biomatter. Whatever life must have once resided in this monstrous shell has fled it."
icon = 'maps/submaps/space_submaps/vox_derelict/icons/vox_large.dmi'
icon_state = "apex"
pixel_x = -48
pixel_y = 64
/obj/structure/vox/apex_pool
name = "vox reclamation pool"
desc = "A wide, shallow pool of inky liquid, stirred by invisible motion below the surface."
pixel_x = -48
icon = 'maps/submaps/space_submaps/vox_derelict/icons/vox_large.dmi'
icon_state = "pit"
/obj/structure/vox_conduit
name = "ark conduit"
desc = "Some kind of energy conduit, ribbed and ridged and occasionally twitching."
icon = 'maps/submaps/space_submaps/vox_derelict/icons/vox_conduit.dmi'
icon_state = "conduit"
layer = TURF_LAYER+0.01
plane = TURF_PLANE
/obj/structure/vox_light
name = "ark light"
desc = "A dim, steady light set into the hull, gleaming like deep sea bioluminescence."
icon = 'maps/submaps/space_submaps/vox_derelict/icons/vox_conduit.dmi'
icon_state = "light"
layer = TURF_LAYER+0.01
plane = TURF_PLANE
/obj/structure/vox_light/Initialize()
. = ..()
set_light(8, 0.3, COLOR_CYAN)
/obj/effect/landmark/corpse/vox
species = SPECIES_VOX
/obj/effect/landmark/corpse/vox/worker
name = "Vox Worker"
corpse_outfit = /decl/hierarchy/outfit/vox/survivor
/obj/effect/landmark/corpse/vox/raider
name = "Vox Raider"
corpse_outfit = /decl/hierarchy/outfit/vox/raider
/decl/mob_organ_names/vox_drone
hit_zones = list(
"chassis",
"crown",
"tail",
"left claw",
"right claw",
"left motivator",
"right motivator"
)
/datum/ai_holder/simple_mob/vox_drone
pointblank = TRUE
conserve_ammo = TRUE
firing_lanes = TRUE
can_flee = FALSE
/datum/say_list/vox_drone
/mob/living/simple_mob/mechanical/ark_adjunct
name = "vox worker drone"
desc = "Some kind of vox-made drone, all clicking bioalloy and glowing magenta lights."
icon = 'maps/submaps/space_submaps/vox_derelict/icons/vox_mobs.dmi'
icon_state = "improvised"
icon_living = "improvised"
icon_dead = "improvised_dead"
faction = "vox_ark"
maxHealth = 3 LASERS_TO_KILL
health = 3 LASERS_TO_KILL
water_resist = 1
movement_sound = 'sound/effects/servostep.ogg'
attacktext = list("slashed")
organ_names = /decl/mob_organ_names/vox_drone
ai_holder_type = /datum/ai_holder/simple_mob/vox_drone
say_list_type = /datum/say_list/vox_drone
melee_damage_lower = 8
melee_damage_upper = 8
attack_armor_pen = 5
/mob/living/simple_mob/mechanical/ark_adjunct/soldier
name = "vox soldier drone"
icon_state = "arkmade"
icon_living = "arkmade"
icon_dead = "arkmade_dead"
maxHealth = 6 LASERS_TO_KILL
health = 6 LASERS_TO_KILL
melee_damage_lower = 15
melee_damage_upper = 25
attack_armor_pen = 25
// VOX PROPS: todo proper icons
/obj/machinery/portable_atmospherics/hydroponics/vox
name = "biofoundry growth vat"
color = COLOR_GREEN_GRAY
/obj/structure/table/vox
color = COLOR_GREEN_GRAY
/obj/structure/rack/vox
color = COLOR_GREEN_GRAY
/obj/machinery/door/airlock/vox
name = "vox bulkhead orifice"
color = COLOR_GREEN_GRAY

View File

@@ -3341,6 +3341,7 @@
#include "maps\submaps\engine_submaps\engine_areas.dm"
#include "maps\submaps\engine_submaps\southern_cross\_engine_submaps.dm"
#include "maps\submaps\space_submaps\space.dm"
#include "maps\submaps\space_submaps\vox_derelict\vox_derelict.dm"
#include "maps\submaps\surface_submaps\mountains\mountains.dm"
#include "maps\submaps\surface_submaps\mountains\mountains_areas.dm"
#include "maps\submaps\surface_submaps\plains\plains.dm"