Finishes vampire for role datums (#19612)

* WiP

* Clearing up.

* Better coat.

* Comment.
This commit is contained in:
ShiftyRail
2018-09-06 22:32:54 +00:00
committed by MadmanMartian
parent fc93775be1
commit 0a9d141bed
12 changed files with 79 additions and 31 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -14,7 +14,7 @@
cooldown_min = 1 SECONDS
override_base = "vamp"
hud_state = "vampire_cloack"
hud_state = "vamp_menace"
var/blood_cost = 0

View File

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

View 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

View File

@@ -152,7 +152,7 @@
duration = 50 //in deciseconds
override_base = "vamp"
hud_state = "vampire_jaunt"
hud_state = "vamp_mistform"
enteranim = "batify"
exitanim = "debatify"

View File

@@ -1 +1 @@
Legacy Cult
sandbox

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 84 KiB

View File

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