mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 02:16:05 +00:00
Finishes vampire for role datums (#19612)
* WiP * Clearing up. * Better coat. * Comment.
This commit is contained in:
committed by
MadmanMartian
parent
fc93775be1
commit
0a9d141bed
@@ -990,6 +990,7 @@ var/default_colour_matrix = list(1,0,0,0,\
|
||||
#define VAMP_SHADOW 15
|
||||
#define VAMP_CHARISMA 16
|
||||
#define VAMP_UNDYING 17
|
||||
#define VAMP_CAPE 18
|
||||
|
||||
#define STARTING_BLOOD 10
|
||||
|
||||
|
||||
@@ -212,6 +212,20 @@
|
||||
if (!(VP.id in powers))
|
||||
VP.Give(src)
|
||||
|
||||
var/mob/living/carbon/human/H = antag.current
|
||||
if (!istype(H))
|
||||
return
|
||||
|
||||
// Vision-related changes.
|
||||
if (VAMP_MATURE in powers)
|
||||
H.change_sight(adding = SEE_TURFS|SEE_MOBS|SEE_OBJS)
|
||||
H.see_in_dark = 8
|
||||
H.see_invisible = SEE_INVISIBLE_MINIMUM
|
||||
|
||||
else if (VAMP_VISION in powers)
|
||||
H.change_sight(adding = SEE_MOBS)
|
||||
|
||||
|
||||
/datum/role/vampire/proc/handle_enthrall(var/datum/mind/M)
|
||||
if (!istype(M))
|
||||
return FALSE
|
||||
@@ -246,17 +260,6 @@
|
||||
I.status &= ~ORGAN_BLEEDING
|
||||
nullified = max(0, nullified - 1)
|
||||
|
||||
if (!H.druggy)
|
||||
H.see_invisible = SEE_INVISIBLE_LEVEL_TWO
|
||||
|
||||
if (VAMP_MATURE in powers)
|
||||
H.change_sight(adding = SEE_TURFS|SEE_MOBS|SEE_OBJS)
|
||||
H.see_in_dark = 8
|
||||
H.see_invisible = SEE_INVISIBLE_MINIMUM
|
||||
|
||||
else if (VAMP_VISION in powers)
|
||||
antag.current.change_sight(adding = SEE_MOBS)
|
||||
|
||||
/datum/role/vampire/proc/handle_cloak(var/mob/living/carbon/human/H)
|
||||
var/turf/T = get_turf(H)
|
||||
if(!iscloaking)
|
||||
|
||||
@@ -145,5 +145,12 @@
|
||||
blood_threeshold = 666
|
||||
id = VAMP_UNDYING
|
||||
spell_path = /spell/undeath
|
||||
helptext = "You have reached the absolute peak of your power. Your abilities cannot be nullified very easily, and you may return from the grave so long as your body is not burned, destroyed or sanctified. You can also spawn a rather nice cape."
|
||||
helptext = "You have reached the absolute peak of your power. Your abilities cannot be nullified very easily, and you may return from the grave so long as your body is not burned, destroyed or sanctified."
|
||||
store_in_memory = TRUE
|
||||
|
||||
/datum/power/vampire/cape
|
||||
blood_threeshold = 666
|
||||
id = VAMP_CAPE
|
||||
spell_path = /spell/targeted/equip_item/cape
|
||||
helptext = "You can also spawn a rather nice cape."
|
||||
store_in_memory = TRUE
|
||||
|
||||
@@ -95,16 +95,29 @@
|
||||
healths.icon_state = "health7" //DEAD healthmeter
|
||||
return
|
||||
else
|
||||
change_sight(removing = SEE_TURFS|SEE_MOBS|SEE_OBJS)
|
||||
|
||||
var/datum/organ/internal/eyes/E = src.internal_organs_by_name["eyes"]
|
||||
if(E)
|
||||
see_in_dark = E.see_in_dark //species.darksight
|
||||
else
|
||||
see_in_dark = species.darksight
|
||||
// Vampire bandaid. I'm sorry.
|
||||
// Rewrite idea : divide life() into organs (Eyes...) and have flags in the roles if they overwrite the functions of those organs.
|
||||
// Basically, the problem here is that abstract things (HUD icons) are handled as the same time as "organs" things (seeing in the dark.)
|
||||
var/datum/role/vampire/V = isvampire(src)
|
||||
if (!V || (!(VAMP_VISION in V.powers) && !(VAMP_MATURE in V.powers))) // Not a vampire, or a vampire but neither of the spells.
|
||||
change_sight(removing = SEE_MOBS)
|
||||
if (!V || !(VAMP_MATURE in V.powers))
|
||||
change_sight(removing = SEE_TURFS|SEE_OBJS)
|
||||
var/datum/organ/internal/eyes/E = src.internal_organs_by_name["eyes"]
|
||||
if(E)
|
||||
see_in_dark = E.see_in_dark //species.darksight
|
||||
else
|
||||
see_in_dark = species.darksight
|
||||
// You should really be blind but w/e.
|
||||
|
||||
see_invisible = see_in_dark > 2 ? SEE_INVISIBLE_LEVEL_ONE : SEE_INVISIBLE_LIVING
|
||||
see_invisible = see_in_dark > 2 ? SEE_INVISIBLE_LEVEL_ONE : SEE_INVISIBLE_LIVING
|
||||
|
||||
// Moiving this "see invisble" thing here so that it can be overriden by xrays, vampires...
|
||||
if(glasses)
|
||||
handle_glasses_vision_updates(glasses)
|
||||
else if (!V)
|
||||
see_invisible = SEE_INVISIBLE_LIVING
|
||||
|
||||
if(dna)
|
||||
switch(dna.mutantrace)
|
||||
if("slime")
|
||||
@@ -133,11 +146,6 @@
|
||||
see_invisible = SEE_INVISIBLE_LIVING
|
||||
seer = 0
|
||||
|
||||
if(glasses)
|
||||
handle_glasses_vision_updates(glasses)
|
||||
else
|
||||
see_invisible = SEE_INVISIBLE_LIVING
|
||||
|
||||
apply_vision_overrides()
|
||||
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
user_type = USER_TYPE_VAMPIRE
|
||||
|
||||
override_base = "vamp"
|
||||
hud_state = "vampire_blink"
|
||||
hud_state = "vamp_blink"
|
||||
|
||||
charge_max = 20 SECONDS
|
||||
cooldown_min = 20 SECONDS
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
cooldown_min = 1 SECONDS
|
||||
|
||||
override_base = "vamp"
|
||||
hud_state = "vampire_cloack"
|
||||
hud_state = "vamp_menace"
|
||||
|
||||
var/blood_cost = 0
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
cooldown_min = 45 SECONDS
|
||||
|
||||
override_base = "vamp"
|
||||
hud_state = "vampire_undeath"
|
||||
hud_state = "vamp_cheatdeath"
|
||||
|
||||
var/blood_cost = 0
|
||||
|
||||
@@ -54,7 +54,8 @@
|
||||
/datum/action/undeath
|
||||
name = "Return to unlife"
|
||||
desc = "Allows you to walk among the living once more."
|
||||
// Need spiters
|
||||
icon_icon = 'icons/mob/screen_spells.dmi'
|
||||
button_icon_state = "vamp_cheatdeath2"
|
||||
|
||||
/datum/action/undeath/Trigger()
|
||||
var/mob/living/M = owner
|
||||
|
||||
27
code/modules/spells/targeted/equip/cape.dm
Normal file
27
code/modules/spells/targeted/equip/cape.dm
Normal file
@@ -0,0 +1,27 @@
|
||||
#define SLOT_WEAR_SUIT_STR "11"
|
||||
|
||||
/spell/targeted/equip_item/cape
|
||||
name = "Spawn Cape"
|
||||
desc = "Acquire a fabulous, yet fearsome cape."
|
||||
abbreviation = "SC"
|
||||
user_type = USER_TYPE_VAMPIRE
|
||||
|
||||
charge_max = 300
|
||||
invocation_type = SpI_NONE
|
||||
range = SELFCAST
|
||||
spell_flags = INCLUDEUSER
|
||||
|
||||
delete_old = 0 //Players shouldn't lose their hardsuits because they decided to summon some cape.
|
||||
|
||||
cooldown_min = 5 MINUTES
|
||||
charge_max = 5 MINUTES
|
||||
duration = 0
|
||||
|
||||
override_base = "vamp"
|
||||
|
||||
compatible_mobs = list(/mob/living/carbon/human)
|
||||
equipped_summons = list(SLOT_WEAR_SUIT_STR = /obj/item/clothing/suit/storage/draculacoat)
|
||||
|
||||
hud_state = "vamp_coat"
|
||||
|
||||
#undef SLOT_WEAR_SUIT_STR
|
||||
@@ -152,7 +152,7 @@
|
||||
duration = 50 //in deciseconds
|
||||
|
||||
override_base = "vamp"
|
||||
hud_state = "vampire_jaunt"
|
||||
hud_state = "vamp_mistform"
|
||||
|
||||
enteranim = "batify"
|
||||
exitanim = "debatify"
|
||||
|
||||
@@ -1 +1 @@
|
||||
Legacy Cult
|
||||
sandbox
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 84 KiB |
@@ -2243,6 +2243,7 @@
|
||||
#include "code\modules\spells\targeted\shoesnatch.dm"
|
||||
#include "code\modules\spells\targeted\targeted.dm"
|
||||
#include "code\modules\spells\targeted\wrap.dm"
|
||||
#include "code\modules\spells\targeted\equip\cape.dm"
|
||||
#include "code\modules\spells\targeted\equip\clowncurse.dm"
|
||||
#include "code\modules\spells\targeted\equip\equip.dm"
|
||||
#include "code\modules\spells\targeted\equip\frenchcurse.dm"
|
||||
|
||||
Reference in New Issue
Block a user