mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-20 20:37:34 +01:00
Revenant Gamemode (#10851)
Added a new wave defense gamemode, Revenants, wherein the station crew have to defend themselves from an endless wave of humanoid bluespace creatures. Ported the icon from Baystation, it's their blueforged, but I tweaked the mob's alpha values a tad. Baystation12/Baystation12#21669
This commit is contained in:
@@ -92,4 +92,15 @@
|
||||
space_chance = 10
|
||||
|
||||
/datum/language/terminator/get_random_name()
|
||||
return "HK [pick(list("Hera","Zeus","Artemis","Athena","Ares","Hades","Poseidon","Demeter","Apollo","Aphrodite","Hermes","Hestia","Dionysus","Persephone","Kronos","Odysseus","Ajax","Agamemnon","Chiron","Charon"))]-[rand(100, 999)]"
|
||||
return "HK [pick(list("Hera","Zeus","Artemis","Athena","Ares","Hades","Poseidon","Demeter","Apollo","Aphrodite","Hermes","Hestia","Dionysus","Persephone","Kronos","Odysseus","Ajax","Agamemnon","Chiron","Charon"))]-[rand(100, 999)]"
|
||||
|
||||
/datum/language/revenant
|
||||
name = LANGUAGE_REVENANT
|
||||
desc = "The language of the forsaken bluespace inhabitants."
|
||||
speech_verb = list("gargles")
|
||||
ask_verb = list("gags")
|
||||
exclaim_verb = list("retches")
|
||||
colour = "revenant"
|
||||
key = "c"
|
||||
syllables = list("grhhg", "ghrohg", "grgugh", "grrhh", "hghh", "rghghh", "gghhh", "ggrh", "aghrh")
|
||||
flags = RESTRICTED
|
||||
@@ -583,6 +583,15 @@ mob/living/carbon/human/proc/change_monitor()
|
||||
A.throw_at(target, 10, 30, usr)
|
||||
msg_admin_attack("[key_name_admin(src)] launched a quill at [key_name_admin(target)] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)",ckey=key_name(src),ckey_target=key_name(target))
|
||||
|
||||
/mob/living/carbon/human/proc/dissolve()
|
||||
set name = "Dissolve Self"
|
||||
set desc = "Dissolve yourself in order to escape permanent imprisonment."
|
||||
set category = "Abilities"
|
||||
|
||||
if(alert(usr, "This ability kills you, are you sure you want to do this?", "Dissolve Self", "Yes", "No") == "No")
|
||||
return
|
||||
visible_message(SPAN_DANGER("[src] dissolves!"), SPAN_WARNING("You dissolve yourself, rejoining your brethren in bluespace."))
|
||||
death()
|
||||
|
||||
/mob/living/carbon/human/proc/shatter_light()
|
||||
set category = "Abilities"
|
||||
@@ -596,7 +605,7 @@ mob/living/carbon/human/proc/change_monitor()
|
||||
last_special = world.time + 50
|
||||
|
||||
visible_message("<span class='danger'>\The [src] shrieks!</span>")
|
||||
playsound(src.loc, 'sound/species/shadow/grue_screech.ogg', 100, 1)
|
||||
playsound(src.loc, 'sound/species/revenant/grue_screech.ogg', 100, 1)
|
||||
|
||||
for(var/obj/machinery/light/L in range(7))
|
||||
L.broken()
|
||||
@@ -612,7 +621,7 @@ mob/living/carbon/human/proc/change_monitor()
|
||||
|
||||
last_special = world.time + 100
|
||||
|
||||
playsound(src.loc, 'sound/species/shadow/grue_growl.ogg', 100, 1)
|
||||
playsound(src.loc, 'sound/species/revenant/grue_growl.ogg', 100, 1)
|
||||
|
||||
src.set_light(4,-20)
|
||||
|
||||
@@ -689,7 +698,7 @@ mob/living/carbon/human/proc/change_monitor()
|
||||
src.visible_message("<span class='warning'>\The [src] takes a step backwards and rears up.</span>",
|
||||
"<span class='notice'>You take a step backwards and then...</span>")
|
||||
if(do_after(src,5))
|
||||
playsound(loc, 'sound/species/shadow/grue_screech.ogg', 100, 1)
|
||||
playsound(loc, 'sound/species/revenant/grue_screech.ogg', 100, 1)
|
||||
src.visible_message("<span class='danger'>\The [src] charges!</span>")
|
||||
trampling()
|
||||
|
||||
@@ -822,7 +831,7 @@ mob/living/carbon/human/proc/change_monitor()
|
||||
return
|
||||
|
||||
last_special = world.time + 100
|
||||
playsound(loc, 'sound/species/shadow/grue_screech.ogg', 100, 1)
|
||||
playsound(loc, 'sound/species/revenant/grue_screech.ogg', 100, 1)
|
||||
visible_message("<span class='danger'>\The [src] unleashes a torrent of raging flame!</span>",
|
||||
"<span class='danger'>You unleash a gust of fire!</span>",
|
||||
"<span class='danger'>You hear the roar of an inferno!</span>")
|
||||
|
||||
@@ -0,0 +1,133 @@
|
||||
/mob/living/carbon/human/revenant/Initialize(mapload)
|
||||
. = ..(mapload, SPECIES_REVENANT)
|
||||
alpha = 0
|
||||
animate(src, 2 SECONDS, alpha = 180)
|
||||
|
||||
/datum/species/revenant
|
||||
name = SPECIES_REVENANT
|
||||
name_plural = "revenants"
|
||||
|
||||
blurb = "Have you ever been alone at night \
|
||||
thought you heard footsteps behind, \
|
||||
and turned around and no one's there? \
|
||||
And as you quicken up your pace \
|
||||
you find it hard to look again, \
|
||||
because you're sure there's someone there."
|
||||
|
||||
icobase = 'icons/mob/human_races/r_revenant.dmi'
|
||||
deform = 'icons/mob/human_races/r_revenant.dmi'
|
||||
eyes = "eyes_revenant"
|
||||
has_floating_eyes = TRUE
|
||||
|
||||
default_genders = list(NEUTER)
|
||||
|
||||
language = LANGUAGE_REVENANT
|
||||
default_language = LANGUAGE_REVENANT
|
||||
|
||||
unarmed_types = list(/datum/unarmed_attack/claws/shredding)
|
||||
darksight = 8
|
||||
has_organ = list()
|
||||
siemens_coefficient = 0
|
||||
rarity_value = 10
|
||||
|
||||
break_cuffs = TRUE
|
||||
|
||||
ethanol_resistance = -1
|
||||
taste_sensitivity = TASTE_NUMB
|
||||
|
||||
speech_sounds = list('sound/species/revenant/grue_growl.ogg')
|
||||
speech_chance = 50
|
||||
|
||||
warning_low_pressure = 50 //immune to pressure, so they can into space/survive breaches without worries
|
||||
hazard_low_pressure = -1
|
||||
|
||||
cold_level_1 = 80
|
||||
cold_level_2 = 50
|
||||
cold_level_3 = 0
|
||||
|
||||
brute_mod = 1.2
|
||||
burn_mod = 0.6
|
||||
fall_mod = 0
|
||||
|
||||
breath_type = null
|
||||
poison_type = null
|
||||
|
||||
blood_color = "#0084b8"
|
||||
flesh_color = "#0071db"
|
||||
|
||||
remains_type = /obj/effect/decal/cleanable/ash
|
||||
death_message = "dissolves into ash..."
|
||||
death_message_range = 7
|
||||
|
||||
flags = NO_BLOOD | NO_SCAN | NO_POISON | NO_BREATHE
|
||||
spawn_flags = IS_RESTRICTED
|
||||
|
||||
vision_flags = DEFAULT_SIGHT | SEE_MOBS
|
||||
|
||||
has_limbs = list(
|
||||
BP_CHEST = list("path" = /obj/item/organ/external/chest),
|
||||
BP_GROIN = list("path" = /obj/item/organ/external/groin),
|
||||
BP_HEAD = list("path" = /obj/item/organ/external/head/unbreakable/revenant),
|
||||
BP_L_ARM = list("path" = /obj/item/organ/external/arm),
|
||||
BP_R_ARM = list("path" = /obj/item/organ/external/arm/right),
|
||||
BP_L_LEG = list("path" = /obj/item/organ/external/leg),
|
||||
BP_R_LEG = list("path" = /obj/item/organ/external/leg/right),
|
||||
BP_L_HAND = list("path" = /obj/item/organ/external/hand),
|
||||
BP_R_HAND = list("path" = /obj/item/organ/external/hand/right),
|
||||
BP_L_FOOT = list("path" = /obj/item/organ/external/foot),
|
||||
BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right)
|
||||
)
|
||||
|
||||
stamina = 100
|
||||
stamina_recovery = 5
|
||||
sprint_speed_factor = 0.8
|
||||
sprint_cost_factor = 0.5
|
||||
|
||||
inherent_verbs = list(
|
||||
/mob/living/carbon/human/proc/shatter_light,
|
||||
/mob/living/carbon/human/proc/darkness_eyes,
|
||||
/mob/living/carbon/human/proc/dissolve
|
||||
)
|
||||
|
||||
move_trail = /obj/effect/decal/cleanable/blood/tracks/claw
|
||||
|
||||
max_nutrition_factor = -1
|
||||
max_hydration_factor = -1
|
||||
|
||||
hud_type = /datum/hud_data/construct
|
||||
|
||||
/datum/species/revenant/handle_death(var/mob/living/carbon/human/H)
|
||||
if(player_is_antag(H.mind))
|
||||
var/datum/ghostspawner/revenant/R = SSghostroles.get_spawner(MODE_REVENANT)
|
||||
R.count = max(R.count - 1, 0)
|
||||
INVOKE_ASYNC(src, .proc/spawn_gore, get_turf(H))
|
||||
H.set_death_time(ANIMAL, world.time)
|
||||
for(var/obj/item/I in H)
|
||||
H.unEquip(I)
|
||||
qdel(H)
|
||||
|
||||
/datum/species/revenant/proc/spawn_gore(var/turf/T)
|
||||
var/obj/effect/decal/cleanable/blood/gibs/G = new /obj/effect/decal/cleanable/blood/gibs(T)
|
||||
G.basecolor = blood_color
|
||||
G.fleshcolor = flesh_color
|
||||
G.update_icon()
|
||||
|
||||
/datum/species/revenant/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
H.real_name = "Revenant"
|
||||
H.name = H.real_name
|
||||
..()
|
||||
H.gender = NEUTER
|
||||
|
||||
/datum/species/revenant/get_random_name()
|
||||
return "Revenant"
|
||||
|
||||
/datum/species/revenant/handle_death_check(var/mob/living/carbon/human/H)
|
||||
if(H.get_total_health() <= config.health_threshold_dead)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/species/revenant/bullet_act(var/obj/item/projectile/P, var/def_zone, var/mob/living/carbon/human/H)
|
||||
if((istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) && prob(30))
|
||||
H.visible_message(SPAN_CULT("The [P.name] gets absorbed by [H]!"), SPAN_CULT("You absorb the [P.name]!"))
|
||||
return -1
|
||||
return ..()
|
||||
@@ -1,118 +0,0 @@
|
||||
/mob/living/carbon/human/shadow/Initialize(mapload)
|
||||
. = ..(mapload, SPECIES_SHADOW)
|
||||
|
||||
/datum/species/shadow
|
||||
name = SPECIES_SHADOW
|
||||
name_plural = "shadows"
|
||||
|
||||
blurb = "Have you ever been alone at night \
|
||||
thought you heard footsteps behind, \
|
||||
and turned around and no one's there? \
|
||||
And as you quicken up your pace \
|
||||
you find it hard to look again, \
|
||||
because you're sure there's someone there."
|
||||
|
||||
icobase = 'icons/mob/human_races/r_shadow.dmi'
|
||||
deform = 'icons/mob/human_races/r_shadow.dmi'
|
||||
eyes = "eyes_shadow"
|
||||
has_floating_eyes = 1
|
||||
|
||||
language = "Cult"
|
||||
|
||||
unarmed_types = list(/datum/unarmed_attack/bite/sharp, /datum/unarmed_attack/claws/strong)
|
||||
light_dam = 2
|
||||
darksight = 8
|
||||
has_organ = list()
|
||||
siemens_coefficient = 0
|
||||
rarity_value = 10
|
||||
|
||||
break_cuffs = TRUE
|
||||
|
||||
fall_mod = 0
|
||||
|
||||
ethanol_resistance = -1
|
||||
taste_sensitivity = TASTE_NUMB
|
||||
|
||||
speech_sounds = list('sound/species/shadow/grue_growl.ogg')
|
||||
speech_chance = 50
|
||||
|
||||
warning_low_pressure = 50 //immune to pressure, so they can into space/survive breaches without worries
|
||||
hazard_low_pressure = 0
|
||||
|
||||
cold_level_1 = 80
|
||||
cold_level_2 = 50
|
||||
cold_level_3 = 0
|
||||
|
||||
brute_mod = 0.5
|
||||
burn_mod = 1.2
|
||||
|
||||
breath_type = null
|
||||
poison_type = null
|
||||
|
||||
blood_color = "#CCCCCC"
|
||||
flesh_color = "#AAAAAA"
|
||||
|
||||
remains_type = /obj/effect/decal/cleanable/ash
|
||||
death_message = "dissolves into ash..."
|
||||
death_message_range = 7
|
||||
|
||||
flags = NO_BLOOD | NO_SCAN | NO_SLIP | NO_POISON | NO_PAIN | NO_BREATHE | NO_EMBED
|
||||
spawn_flags = IS_RESTRICTED
|
||||
|
||||
vision_flags = DEFAULT_SIGHT | SEE_MOBS
|
||||
|
||||
has_limbs = list(
|
||||
BP_CHEST = list("path" = /obj/item/organ/external/chest/unbreakable),
|
||||
BP_GROIN = list("path" = /obj/item/organ/external/groin/unbreakable),
|
||||
BP_HEAD = list("path" = /obj/item/organ/external/head/unbreakable),
|
||||
BP_L_ARM = list("path" = /obj/item/organ/external/arm/unbreakable),
|
||||
BP_R_ARM = list("path" = /obj/item/organ/external/arm/right/unbreakable),
|
||||
BP_L_LEG = list("path" = /obj/item/organ/external/leg/unbreakable),
|
||||
BP_R_LEG = list("path" = /obj/item/organ/external/leg/right/unbreakable),
|
||||
BP_L_HAND = list("path" = /obj/item/organ/external/hand/unbreakable),
|
||||
BP_R_HAND = list("path" = /obj/item/organ/external/hand/right/unbreakable),
|
||||
BP_L_FOOT = list("path" = /obj/item/organ/external/foot/unbreakable),
|
||||
BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right/unbreakable)
|
||||
)
|
||||
|
||||
stamina = 500 //Tireless automatons
|
||||
stamina_recovery = 1
|
||||
sprint_speed_factor = 0.3
|
||||
exhaust_threshold = 0 //No oxyloss, so zero threshold
|
||||
|
||||
inherent_verbs = list(
|
||||
/mob/living/carbon/human/proc/shatter_light,
|
||||
/mob/living/carbon/human/proc/create_darkness,
|
||||
/mob/living/carbon/human/proc/darkness_eyes,
|
||||
/mob/living/carbon/human/proc/shadow_step
|
||||
)
|
||||
|
||||
move_trail = /obj/effect/decal/cleanable/blood/tracks/claw
|
||||
|
||||
max_nutrition_factor = -1
|
||||
|
||||
max_hydration_factor = -1
|
||||
|
||||
hud_type = /datum/hud_data/construct
|
||||
|
||||
/datum/species/shadow/handle_death(var/mob/living/carbon/human/H)
|
||||
spawn(1)
|
||||
new /obj/effect/decal/cleanable/ash(H.loc)
|
||||
qdel(H)
|
||||
|
||||
/datum/species/shadow/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
if(H.mind)
|
||||
H.mind.assigned_role = "Shadow"
|
||||
H.mind.special_role = "Shadow"
|
||||
H.real_name = "grue"
|
||||
H.name = H.real_name
|
||||
H.gender = NEUTER
|
||||
..()
|
||||
|
||||
/datum/species/shadow/get_random_name()
|
||||
return "grue"
|
||||
|
||||
/datum/species/shadow/handle_death_check(var/mob/living/carbon/human/H)
|
||||
if(H.get_total_health() <= config.health_threshold_dead)
|
||||
return TRUE
|
||||
return FALSE
|
||||
@@ -57,6 +57,10 @@
|
||||
if(3 to 4) user.visible_message("<span class='danger'>[user] [pick(attack_verb)] [pick("", "", "the side of")] [target]'s [affecting.name]!</span>")
|
||||
if(5) user.visible_message("<span class='danger'>[user] tears [user.get_pronoun("his")] [pick(attack_noun)] [pick("deep into", "into", "across")] [target]'s [affecting.name]!</span>")
|
||||
|
||||
/datum/unarmed_attack/claws/shredding
|
||||
shredding = TRUE
|
||||
attack_name = "durable claws"
|
||||
|
||||
/datum/unarmed_attack/claws/strong
|
||||
attack_verb = list("slashed")
|
||||
damage = 10
|
||||
|
||||
@@ -251,7 +251,7 @@ There are several things that need to be remembered:
|
||||
. = list()
|
||||
if(build_from_parts)
|
||||
var/mutable_appearance/M = mutable_appearance(icon_file, "[item_state]_[worn_overlay]")
|
||||
M.appearance_flags = RESET_COLOR
|
||||
M.appearance_flags = RESET_COLOR|RESET_ALPHA
|
||||
. += M
|
||||
|
||||
//BASE MOB SPRITE
|
||||
@@ -584,6 +584,7 @@ There are several things that need to be remembered:
|
||||
for(var/obj/item/clothing/accessory/A in under.accessories)
|
||||
ovr += A.get_mob_overlay()
|
||||
|
||||
standing.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[UNIFORM_LAYER] = ovr || standing
|
||||
|
||||
if(update_icons)
|
||||
@@ -632,6 +633,7 @@ There are several things that need to be remembered:
|
||||
result_layer = list(result_layer, lanyard_card, plastic_film)
|
||||
else
|
||||
result_layer = list(result_layer, plastic_film)
|
||||
result_layer.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[id_layer] = result_layer
|
||||
|
||||
BITSET(hud_updateflag, ID_HUD)
|
||||
@@ -671,10 +673,12 @@ There are several things that need to be remembered:
|
||||
result_layer = list(result_layer, bloodsies)
|
||||
|
||||
gloves.screen_loc = ui_gloves
|
||||
result_layer.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[GLOVES_LAYER] = result_layer
|
||||
else if(blood_DNA)
|
||||
var/image/bloodsies = image(species.blood_mask, "bloodyhands")
|
||||
var/image/bloodsies = image(species.blood_mask, "bloodyhands")
|
||||
bloodsies.color = hand_blood_color
|
||||
bloodsies.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[GLOVES_LAYER] = bloodsies
|
||||
else
|
||||
overlays_raw[GLOVES_LAYER] = null
|
||||
@@ -704,6 +708,8 @@ There are several things that need to be remembered:
|
||||
if(glasses.color)
|
||||
glasses_overlay.color = glasses.color
|
||||
|
||||
if(glasses_overlay)
|
||||
glasses_overlay.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[GLASSES_LAYER] = glasses_overlay
|
||||
|
||||
if(update_icons)
|
||||
@@ -745,6 +751,8 @@ There are several things that need to be remembered:
|
||||
if(worn_overlays)
|
||||
result_layer.overlays.Add(worn_overlays)
|
||||
|
||||
if(result_layer)
|
||||
result_layer.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[L_EAR_LAYER] = result_layer
|
||||
else
|
||||
overlays_raw[L_EAR_LAYER] = null
|
||||
@@ -788,6 +796,8 @@ There are several things that need to be remembered:
|
||||
if(worn_overlays)
|
||||
result_layer.overlays.Add(worn_overlays)
|
||||
|
||||
if(result_layer)
|
||||
result_layer.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[R_EAR_LAYER] = result_layer
|
||||
else
|
||||
overlays_raw[R_EAR_LAYER] = null
|
||||
@@ -830,12 +840,15 @@ There are several things that need to be remembered:
|
||||
if(worn_overlays)
|
||||
result_layer.overlays.Add(worn_overlays)
|
||||
|
||||
if(result_layer)
|
||||
result_layer.appearance_flags = RESET_ALPHA
|
||||
var/list/ovr
|
||||
|
||||
if(shoes.blood_DNA)
|
||||
var/obj/item/clothing/shoes/S = shoes
|
||||
var/image/bloodsies = image(species.blood_mask, "[S.blood_overlay_type]blood")
|
||||
bloodsies.color = shoes.blood_color
|
||||
bloodsies.appearance_flags = RESET_ALPHA
|
||||
ovr = list(result_layer, bloodsies)
|
||||
|
||||
//Shoe layer stuff from Polaris v1.0333a
|
||||
@@ -850,6 +863,7 @@ There are several things that need to be remembered:
|
||||
if(footprint_color) // Handles bloody feet.
|
||||
var/image/bloodsies = image(species.blood_mask, "shoeblood")
|
||||
bloodsies.color = footprint_color
|
||||
bloodsies.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[SHOES_LAYER] = bloodsies
|
||||
else
|
||||
overlays_raw[SHOES_LAYER] = null
|
||||
@@ -866,11 +880,15 @@ There are several things that need to be remembered:
|
||||
if(s_store.contained_sprite)
|
||||
s_store.auto_adapt_species(src)
|
||||
var/state="[UNDERSCORE_OR_NULL(s_store.icon_species_tag)][s_store.item_state][WORN_SSTORE]"
|
||||
overlays_raw[SUIT_STORE_LAYER] = image(s_store.icon_override || s_store.icon, state)
|
||||
var/image/s_store_image = image(s_store.icon_override || s_store.icon, state)
|
||||
s_store_image.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[SUIT_STORE_LAYER] = s_store_image
|
||||
s_store.screen_loc = ui_sstore1
|
||||
else
|
||||
//s_store.auto_adapt_species(src)
|
||||
overlays_raw[SUIT_STORE_LAYER] = image('icons/mob/belt_mirror.dmi', s_store.item_state || s_store.icon_state)
|
||||
var/image/s_store_image = image('icons/mob/belt_mirror.dmi', s_store.item_state || s_store.icon_state)
|
||||
s_store_image.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[SUIT_STORE_LAYER] = s_store_image
|
||||
s_store.screen_loc = ui_sstore1 //TODO
|
||||
else
|
||||
overlays_raw[SUIT_STORE_LAYER] = null
|
||||
@@ -907,12 +925,13 @@ There are several things that need to be remembered:
|
||||
standing = image(t_icon, head.icon_state)
|
||||
|
||||
standing.color = head.color
|
||||
|
||||
standing.appearance_flags = RESET_ALPHA
|
||||
var/list/ovr
|
||||
|
||||
if(head.blood_DNA)
|
||||
var/image/bloodsies = image("icon" = species.blood_mask, "icon_state" = "helmetblood")
|
||||
bloodsies.color = head.blood_color
|
||||
bloodsies.appearance_flags = RESET_ALPHA
|
||||
ovr = list(standing, bloodsies)
|
||||
|
||||
if(istype(head,/obj/item/clothing/head))
|
||||
@@ -960,6 +979,7 @@ There are several things that need to be remembered:
|
||||
t_icon = 'icons/mob/belt.dmi'
|
||||
|
||||
standing = image(t_icon, t_state)
|
||||
standing.appearance_flags = RESET_ALPHA
|
||||
var/list/ovr
|
||||
|
||||
if(belt.contents.len && istype(belt, /obj/item/storage/belt))
|
||||
@@ -973,6 +993,8 @@ There are several things that need to be remembered:
|
||||
else
|
||||
c_icon = 'icons/mob/belt.dmi'
|
||||
c_state = i.item_state || i.icon_state
|
||||
var/image/belt_item_image = image(c_icon, c_state)
|
||||
belt_item_image.appearance_flags = RESET_ALPHA
|
||||
ovr += image(c_icon, c_state)
|
||||
|
||||
var/beltlayer = BELT_LAYER
|
||||
@@ -1017,6 +1039,7 @@ There are several things that need to be remembered:
|
||||
if(wear_suit.color)
|
||||
result_layer.color = wear_suit.color
|
||||
|
||||
result_layer.appearance_flags = RESET_ALPHA
|
||||
var/image/worn_overlays = wear_suit.worn_overlays(t_icon)
|
||||
if(worn_overlays)
|
||||
result_layer.overlays.Add(worn_overlays)
|
||||
@@ -1027,6 +1050,7 @@ There are several things that need to be remembered:
|
||||
var/obj/item/clothing/suit/S = wear_suit
|
||||
var/image/bloodsies = image(species.blood_mask, "[S.blood_overlay_type]blood")
|
||||
bloodsies.color = wear_suit.blood_color
|
||||
bloodsies.appearance_flags = RESET_ALPHA
|
||||
ovr = list(result_layer, bloodsies)
|
||||
|
||||
// Accessories - copied from uniform, BOILERPLATE because fuck this system.
|
||||
@@ -1089,12 +1113,14 @@ There are several things that need to be remembered:
|
||||
|
||||
if (wear_mask.color)
|
||||
standing.color = wear_mask.color
|
||||
standing.appearance_flags = RESET_ALPHA
|
||||
|
||||
var/list/ovr
|
||||
|
||||
if( !istype(wear_mask, /obj/item/clothing/mask/smokable/cigarette) && wear_mask.blood_DNA )
|
||||
var/image/bloodsies = image(species.blood_mask, "maskblood")
|
||||
bloodsies.color = wear_mask.blood_color
|
||||
bloodsies.appearance_flags = RESET_ALPHA
|
||||
ovr = list(standing, bloodsies)
|
||||
|
||||
overlays_raw[FACEMASK_LAYER] = ovr || standing
|
||||
@@ -1152,6 +1178,7 @@ There are several things that need to be remembered:
|
||||
var/image/standing = image(overlay_icon, overlay_state)
|
||||
if (back.color)
|
||||
standing.color = back.color
|
||||
standing.appearance_flags = RESET_ALPHA
|
||||
|
||||
overlays_raw[BACK_LAYER] = standing
|
||||
|
||||
@@ -1189,6 +1216,7 @@ There are several things that need to be remembered:
|
||||
standing = image(handcuffed.sprite_sheets[GET_BODY_TYPE], "handcuff1")
|
||||
else
|
||||
standing = image('icons/mob/mob.dmi', "handcuff1")
|
||||
standing.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[HANDCUFF_LAYER] = standing
|
||||
else
|
||||
overlays_raw[HANDCUFF_LAYER] = null
|
||||
@@ -1209,6 +1237,7 @@ There are several things that need to be remembered:
|
||||
standing = image(legcuffed.sprite_sheets[GET_BODY_TYPE], "legcuff1")
|
||||
else
|
||||
standing = image('icons/mob/mob.dmi', "legcuff1")
|
||||
standing.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[LEGCUFF_LAYER] = standing
|
||||
|
||||
if(m_intent != M_WALK)
|
||||
@@ -1243,6 +1272,7 @@ There are several things that need to be remembered:
|
||||
if(r_hand.color)
|
||||
result_layer.color = r_hand.color
|
||||
|
||||
result_layer.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[R_HAND_LAYER] = result_layer
|
||||
else
|
||||
if(r_hand.item_state_slots && r_hand.item_state_slots[slot_r_hand_str])
|
||||
@@ -1267,6 +1297,7 @@ There are several things that need to be remembered:
|
||||
if(worn_overlays)
|
||||
result_layer.overlays.Add(worn_overlays)
|
||||
|
||||
result_layer.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[R_HAND_LAYER] = result_layer
|
||||
|
||||
if(update_icons)
|
||||
@@ -1293,6 +1324,7 @@ There are several things that need to be remembered:
|
||||
if(l_hand.color)
|
||||
result_layer.color = l_hand.color
|
||||
|
||||
result_layer.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[L_HAND_LAYER] = result_layer
|
||||
else
|
||||
if(l_hand.item_state_slots && l_hand.item_state_slots[slot_l_hand_str])
|
||||
@@ -1317,6 +1349,7 @@ There are several things that need to be remembered:
|
||||
if(worn_overlays)
|
||||
result_layer.overlays.Add(worn_overlays)
|
||||
|
||||
result_layer.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[L_HAND_LAYER] = result_layer
|
||||
|
||||
if(update_icons)
|
||||
@@ -1432,7 +1465,10 @@ There are several things that need to be remembered:
|
||||
if (QDELING(src))
|
||||
return
|
||||
|
||||
overlays_raw[FIRE_LAYER] = on_fire ? image(species.onfire_overlay, "Standing", layer = FIRE_LAYER) : null
|
||||
var/image/fire_image = on_fire ? image(species.onfire_overlay, "Standing", layer = FIRE_LAYER) : null
|
||||
if(fire_image)
|
||||
fire_image.appearance_flags = RESET_ALPHA
|
||||
overlays_raw[FIRE_LAYER] = fire_image
|
||||
|
||||
if(update_icons)
|
||||
update_icon()
|
||||
@@ -1459,11 +1495,13 @@ There are several things that need to be remembered:
|
||||
if(overlay_state in surgery_states)
|
||||
var/image/flesh = image(icon = surgery_icon, icon_state = overlay_state, layer = -SURGERY_LAYER)
|
||||
flesh.color = E.owner.species.flesh_color
|
||||
flesh.appearance_flags = RESET_ALPHA
|
||||
LAZYADD(overlays_to_add, flesh)
|
||||
overlay_state = "[base_state]-blood"
|
||||
if(overlay_state in surgery_states)
|
||||
var/image/blood = image(icon = surgery_icon, icon_state = overlay_state, layer = -SURGERY_LAYER)
|
||||
blood.color = E.owner.species.blood_color
|
||||
blood.appearance_flags = RESET_ALPHA
|
||||
LAZYADD(overlays_to_add, blood)
|
||||
overlay_state = "[base_state]-bones"
|
||||
if(overlay_state in surgery_states)
|
||||
|
||||
@@ -270,7 +270,7 @@
|
||||
G.name = G.species.get_random_name()
|
||||
G.real_name = G.name
|
||||
if(wizardy)
|
||||
bluespace_golems.add_antagonist(G.mind, TRUE, TRUE, FALSE, TRUE, TRUE)
|
||||
wizard_golems.add_antagonist(G.mind, TRUE, TRUE, FALSE, TRUE, TRUE)
|
||||
else
|
||||
to_chat(G, SPAN_NOTICE("You are a golem. Serve your master, and assist them in completing their goals at any cost."))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user