Skip to content
Open

Klaives #1086

38 changes: 31 additions & 7 deletions modular_darkpack/modules/occult_artifacts/code/_artifact.dm
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
abstract_type = /obj/item/occult_artifact
w_class = WEIGHT_CLASS_SMALL
var/mob/living/owner
var/true_name = "artifact"
var/true_desc = "Debug"
var/true_name
var/true_desc
var/identified = FALSE
var/research_value = 0
var/can_be_identified_without_ritual = TRUE
Expand All @@ -38,8 +38,10 @@

/obj/item/occult_artifact/proc/identify(mob/living/artifact_identifier)
if(!identified)
name = true_name
desc = true_desc
if(true_name)
name = true_name
if(true_desc)
desc = true_desc
identified = TRUE
if(src in artifact_identifier?.get_all_contents())
bind(artifact_identifier)
Expand Down Expand Up @@ -112,23 +114,45 @@
else
to_chat(artifact_identifier, span_warning("You stop examining [src]."))


/obj/effect/spawner/random/occult
name = "occult spawner"
icon = 'modular_darkpack/modules/occult_artifacts/icons/artifacts.dmi'
icon_state = "art_rand"


/obj/effect/spawner/random/occult/artifact
name = "random occult artifact"
loot_subtype_path = /obj/item/occult_artifact
loot = list(
/obj/effect/spawner/random/occult/artifact/vampire_only = 55,
/obj/effect/spawner/random/occult/artifact/werewolf_only = 45,
)

/obj/effect/spawner/random/occult/artifact/Initialize(mapload)
spawn_loot_chance = CONFIG_GET(number/artifact_random_probability)
if(isnull(spawn_loot_chance))
spawn_loot_chance = CONFIG_GET(number/artifact_random_probability)
. = ..()


/obj/effect/spawner/random/occult/artifact/vampire_only
name = "random vampire artifact"
loot_subtype_path = /obj/item/occult_artifact/vampire


/obj/effect/spawner/random/occult/artifact/werewolf_only
name = "random garou fetish"
loot_subtype_path = /obj/item/occult_artifact/werewolf
loot = list(
/obj/item/occult_artifact/werewolf/nyxs_bangle = 45,
/obj/item/occult_artifact/werewolf/dagger_of_retribution = 45,
/obj/effect/spawner/random/occult/artifact/klaive = 10,
)


/obj/effect/spawner/random/occult/artifact/klaive
name = "random klaive"
loot = list(
/obj/item/occult_artifact/werewolf/klaive = 32,
/obj/item/occult_artifact/werewolf/klaive/bane = 32,
/obj/item/occult_artifact/werewolf/klaive/karambit = 32,
/obj/item/occult_artifact/werewolf/klaive/grand = 4, // Idk this thing is mega scary and mabye even doesnt belong here.
)
19 changes: 7 additions & 12 deletions modular_darkpack/modules/sabbat/code/vaulderie_goblet.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
desc = "A gleaming goblet used in ancient vampire rites."
icon = 'modular_darkpack/modules/sabbat/icons/vaulderie_goblet.dmi'
icon_state = "pewter_cup"
base_icon_state = "pewter_cup"
w_class = WEIGHT_CLASS_TINY
force = 1
throwforce = 1
amount_per_transfer_from_this = 5
custom_materials = list(/datum/material/iron=100)
custom_materials = list(/datum/material/silver = SHEET_MATERIAL_AMOUNT)
possible_transfer_amounts = list(1, 5)
volume = 80
spillable = TRUE
Expand All @@ -23,10 +24,10 @@

/obj/item/reagent_containers/cup/silver_goblet/update_icon_state()
. = ..()
if(reagents && (reagents.has_reagent(/datum/reagent/blood) || reagents.has_reagent(/datum/reagent/blood/vitae)))
icon_state = "pewter_cup_filled_blood"
if(reagents && (reagents.has_reagent(/datum/reagent/blood)))
icon_state = "[base_icon_state]_filled_blood"
else
icon_state = "pewter_cup"
icon_state = base_icon_state

/obj/item/reagent_containers/cup/silver_goblet/attack_self(mob/living/carbon/human/user)
if(!istype(user))
Expand Down Expand Up @@ -56,7 +57,7 @@
user.adjust_brute_loss(5)

reagents.add_reagent(/datum/reagent/blood/vitae, 10)
user.bloodpool -= 2
user.adjust_blood_pool(-2)

if(!(user in blood_donors))
blood_donors += user
Expand Down Expand Up @@ -128,10 +129,4 @@
name = "Vaulderie Goblet"
desc = "An obsidian-black goblet used in ancient vampire rites."
icon_state = "vaulderie_goblet"

/obj/item/reagent_containers/cup/silver_goblet/vaulderie_goblet/update_icon_state()
. = ..()
if(reagents && (reagents.has_reagent(/datum/reagent/blood) || reagents.has_reagent(/datum/reagent/blood/vitae)))
icon_state = "vaulderie_goblet_filled"
else
icon_state = "vaulderie_goblet"
base_icon_state = "vaulderie_goblet"
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
/obj/item/occult_artifact/werewolf/klaive
name = "klaive"
desc = "A ritual weapon crafted by the Garou out of silver. This blade has a blue tint, due to the way it was crafted."
icon = 'modular_darkpack/modules/werewolf_the_apocalypse/icons/weapons/weapons.dmi'
lefthand_file = 'modular_darkpack/modules/werewolf_the_apocalypse/icons/weapons/lefthand.dmi'
righthand_file = 'modular_darkpack/modules/werewolf_the_apocalypse/icons/weapons/righthand.dmi'
ONFLOOR_ICON_HELPER('modular_darkpack/modules/werewolf_the_apocalypse/icons/weapons/weapon_onfloors.dmi')
icon_state = "klaive"
force = 2 LETHAL_TTRPG_DAMAGE
// icon_angle = -45
hitsound = 'sound/items/weapons/bladeslice.ogg'
obj_flags = CONDUCTS_ELECTRICITY
slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK
w_class = WEIGHT_CLASS_NORMAL
attack_verb_continuous = list("attacks", "slashes", "slices", "tears", "lacerates", "rips", "dices", "cuts")
attack_verb_simple = list("attack", "slash", "slice", "tear", "lacerate", "rip", "dice", "cut")
sharpness = SHARP_EDGED
armor_type = /datum/armor/item_claymore
resistance_flags = FIRE_PROOF
custom_materials = list(/datum/material/silver = (2 * SHEET_MATERIAL_AMOUNT))
spirit_type = SPIRIT_VENGEANCE
var/stirred_spirit = FALSE
var/silver_damage = 2
var/awakened_force = 3 LETHAL_TTRPG_DAMAGE
var/awakened_bonus_silver_damage = 1

/obj/item/occult_artifact/werewolf/klaive/Initialize(mapload)
. = ..()
spirit_name = generate_spirit_name(spirit_type)

/obj/item/occult_artifact/werewolf/klaive/identify()
. = ..()
say("I am [spirit_name]... Wield me against your foes...")

/obj/item/occult_artifact/werewolf/klaive/afterattack(atom/target, mob/user, list/modifiers, list/attack_modifiers)
. = ..()
fera_silver_damage(target, silver_damage, 1) // Copyed the other silver weapon. Not super accurate.

/obj/item/occult_artifact/werewolf/klaive/attack_self(mob/user, modifiers)
var/datum/splat/werewolf/werewolf_splat = get_werewolf_splat(user)
if(owner && identified)
if(stirred_spirit)
to_chat(user, span_warning("[src]'s spirit is already awake!"))
return
if(werewolf_splat)
awaken(user, werewolf_splat)
else
to_chat(user, span_notice("[src]'s is just a dead piece of silver."))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
to_chat(user, span_notice("[src]'s is just a dead piece of silver."))
to_chat(user, span_notice("[src] is just a dead piece of silver."))

grammar


/obj/item/occult_artifact/werewolf/klaive/proc/awaken(mob/living/carbon/human/user, datum/splat/werewolf/werewolf_splat)
if(werewolf_splat.adjust_gnosis(-1))
to_chat(user, span_notice("You beckon [src]'s spirit, you can feel it answer your call."))
stirred_spirit = TRUE
force = awakened_force
silver_damage += awakened_bonus_silver_damage
addtimer(CALLBACK(src, PROC_REF(slumber), user), 1 TURNS)
else
to_chat(user, span_notice("You beckon [src]'s spirit, but all that answers is silence and indifference."))

/obj/item/occult_artifact/werewolf/klaive/proc/slumber(mob/user)
stirred_spirit = FALSE
force = initial(force)
silver_damage = initial(silver_damage)
to_chat(user, span_notice("[src]'s spirit slumbers once more."))


/obj/item/occult_artifact/werewolf/klaive/karambit
name = "curved klaive"
desc = "A ritual weapon crafted by the Garou out of silver. This one has a handle made of bone, and is curved."
icon_state = "klaive_karambit"

/obj/item/occult_artifact/werewolf/klaive/bane
name = "bane klaive"
desc = "A ritual weapon crafted by the Garou out of silver. This one seems rusty, yet still quite sharp"
icon_state = "klaive_bane"

/obj/item/occult_artifact/werewolf/klaive/grand
name = "grand klaive"
desc = "A ritual weapon crafted by the Garou out of silver. This one is HUGE!."
icon = 'modular_darkpack/modules/werewolf_the_apocalypse/icons/weapons/48x32weapons.dmi'
icon_state = "klaive_grand"
force = 5 LETHAL_TTRPG_DAMAGE
attack_difficulty = 7
w_class = WEIGHT_CLASS_HUGE
custom_materials = list(/datum/material/silver = (4 * SHEET_MATERIAL_AMOUNT))
silver_damage = 3
awakened_force = 6 LETHAL_TTRPG_DAMAGE
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
1 change: 1 addition & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// DM Environment file for tgstation.dme.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\dwelling\code\area_dwelling.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\dwelling\code\obj_dwelling.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\weather\code\weather.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\powers\code\discipline\healer_valeren.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\powers\code\discipline\mytherceria.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\drugs\code\bloodpacks\bloodpack_adulteration.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\economy\code\stocks_license.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\computers\code\app.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\computers\code\app_types.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\computers\code\computer.dm.
// All manual changes should be made outside the BEGIN_ and END_ blocks.
// New source code should be placed in .dm files: choose File/New --> Code File.

Expand Down Expand Up @@ -8043,6 +8043,7 @@
#include "modular_darkpack\modules\werewolf_the_apocalypse\code\subsplats\breeds\garou.dm"
#include "modular_darkpack\modules\werewolf_the_apocalypse\code\subsplats\tribes\_tribe.dm"
#include "modular_darkpack\modules\werewolf_the_apocalypse\code\subsplats\tribes\garou.dm"
#include "modular_darkpack\modules\werewolf_the_apocalypse\code\weapons\klaives.dm"
#include "modular_darkpack\modules\westfield_mall\code\mall_areas.dm"
#include "modular_darkpack\modules\westfield_mall\code\modular_rooms.dm"
#include "modular_darkpack\modules\z_travel\code\helpers.dm"
Expand Down
Loading