Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,14 @@

var/datum/storyteller_roll/identify_occult/identify_roll

/obj/item/vtm_artifact/proc/identify()
/obj/item/vtm_artifact/proc/identify(mob/living/artifact_identifier)
if(!identified)
name = true_name
desc = true_desc
identified = TRUE
owner = artifact_identifier
if(src in artifact_identifier.get_all_contents())
pickup(artifact_identifier)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pickup includes the generic pickup behavior i believe so i am unsure if this is a good idea?


/obj/item/vtm_artifact/proc/get_powers()
if(!identified)
Expand Down Expand Up @@ -78,7 +81,7 @@
identify_roll.difficulty = 8
var/roll = identify_roll.st_roll(user, src)
if(roll == ROLL_SUCCESS)
identify()
identify(artifact_identifier)
to_chat(artifact_identifier, span_cult("You successfully identify [src]!"))
else
to_chat(artifact_identifier, span_warning("You stop examining [src]."))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
var/datum/action/bloodstone_track/tracking_action
research_value = 15

/obj/item/vtm_artifact/bloodstone/identify()
/obj/item/vtm_artifact/bloodstone/identify(mob/living/artifact_identifier)
. = ..()
if(identified && !bound_identifier)
var/mob/living/carbon/human/user = usr
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@

/obj/item/vtm_artifact/heart_of_eliza/remove_powers()
. = ..()
owner.st_remove_stat_mod(STAT_STRENGTH, 1, type)
owner.st_remove_stat_mod(STAT_STRENGTH, type)
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,47 @@
icon_state = "o_chalice"
var/stored_blood = 0
research_value = 30
COOLDOWN_DECLARE(chalice_alert_cooldown)

/obj/item/vtm_artifact/odious_chalice/examine(mob/user)
. = ..()
. += "[src] contains [stored_blood] blood points..."

/obj/item/vtm_artifact/odious_chalice/identify(mob/living/artifact_identifier)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would need to be this but we prob still need to generize it to link / unlink procs.

Suggested change
/obj/item/vtm_artifact/odious_chalice/identify(mob/living/artifact_identifier)
/obj/item/vtm_artifact/odious_chalice/pickup(mob/living/artifact_identifier)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why would it have to be that? oh, for... picking up and stuff. yeah we'd need some way to unregister the signal and stuff. lemme look into this when i can...

. = ..()
to_chat(owner, span_cult("The Chalice awaits for blood. As long as it remains in your bag, it will draw the blood of your target into it!"))
RegisterSignal(owner, COMSIG_MOB_ITEM_ATTACK, PROC_REF(on_attack))

/obj/item/vtm_artifact/odious_chalice/proc/on_attack(mob/living/source, mob/living/target, mob/living/user, list/modifiers, list/attack_modifiers)
if(!identified)
return
var/obj/item/weapon = source.get_active_held_item()
if(!weapon?.get_sharpness())
return
if(!prob(50))
return
if(!(src in source.get_all_contents()))
return
if(!target.bloodpool && !target.blood_volume)
return
stored_blood++
if(COOLDOWN_FINISHED(src, chalice_alert_cooldown))
//rather spammy. 1 scene cooldown
balloon_alert(source, "the chalice drinks...")
COOLDOWN_START(src, chalice_alert_cooldown, 1 SCENES)

/obj/item/vtm_artifact/odious_chalice/attack(mob/living/M, mob/living/user)
. = ..()
if(!get_kindred_splat(M))
if(!get_vampire_splat(M))
return
if(!stored_blood)
if(stored_blood <= 0)
return
if(!identified)
return
M.adjust_brute_loss(-5*stored_blood, TRUE)
M.adjust_fire_loss(-5*stored_blood, TRUE)
M.update_damage_overlays()
M.update_health_hud()
stored_blood--
playsound(M.loc,'sound/items/drink.ogg', 50, TRUE)
return
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

/obj/ritual_rune/abyss/identification/complete()
for(var/obj/item/vtm_artifact/VA in loc)
VA.identify()
VA.identify(last_activator)
playsound(loc, 'sound/effects/magic/voidblink.ogg', 50, FALSE)
qdel(src)
return
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
if(VA.identified)
to_chat(identifier, span_warning("You have already identified this artifact."))
return
VA.identify()
VA.identify(last_activator)
playsound(loc, 'modular_darkpack/modules/powers/sounds/thaum.ogg', 50, FALSE)
qdel(src)
return
Expand Down
Loading