Skip to content

Commit

Permalink
Weapon rune, interact_message, UI improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
Ava committed Mar 14, 2023
1 parent e53ca70 commit cc9b122
Show file tree
Hide file tree
Showing 23 changed files with 76 additions and 25 deletions.
13 changes: 7 additions & 6 deletions code/game/gamemodes/cult/arcane_tome.dm
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,11 @@
var/obj/effect/rune/NR = V
if (!initial(NR.can_write))
continue
var/obj/item/paper/talisman/T = initial(NR.talisman_path)
rune_data += list(list(
"name" = initial(NR.rune_name),
"invokers" = initial(NR.required_invokers),
"talisman" = initial(NR.talisman_path),
"talisman" = T ? initial(T.tome_desc) : null,
"shorthand" = initial(NR.rune_shorthand) ? initial(NR.rune_shorthand) : initial(NR.rune_desc),
"typepath" = NR
))
Expand Down Expand Up @@ -79,12 +80,12 @@
user.setClickCooldown(user.get_attack_speed(src))
user.do_attack_animation(M)
var/hit_zone = M.resolve_item_attack(src, user, target_zone)
if(hit_zone)
user.visible_message(
SPAN_DANGER("\The [user] bathes \the [M] in red light from \the [src]'s cover!"),
if (hit_zone)
M.interact_message(user,
SPAN_DANGER("\The [user] bathes \the [M] in red light from \the [src]!"),
SPAN_DANGER("\The [user] bathes you in burning red light from \the [src]!"),
SPAN_DANGER("You burn \the [M] with \the [src]!")
)
to_chat(M, SPAN_DANGER("You feel a searing heat inside!"))
playsound(src, 'sound/weapons/sear.ogg', 50, TRUE, -1)
M.apply_damage(rand(5, 20), BURN, hit_zone, used_weapon = "internal burns")
return
Expand All @@ -104,7 +105,7 @@
blood_name = H.species?.get_blood_name()
user.apply_damage(1, BRUTE, pick(BP_L_HAND, BP_R_HAND), sharp = TRUE, edge = TRUE, used_weapon = "long, precise cut")
user.visible_message(
SPAN_WARNING("\The [user] [!synth ? "slices open [G.his] skin" : "tears open [G.his] circulation"] and begins painting on symbols on the floor with [G.his] own [blood_name]"),
SPAN_WARNING("\The [user] [!synth ? "slices open [G.his] skin" : "tears open [G.his] circulation"] and begins painting on symbols on the floor with [G.his] own [blood_name]!"),
SPAN_NOTICE("You [!synth ? "slice open your skin" : "tear open your circulation"] and begin drawing a rune on the floor whilst invoking the ritual that binds your life essence with the dark arcane energies flowing through the surrounding world."),
SPAN_WARNING("You hear droplets softly splattering on the ground."),
range = 3
Expand Down
3 changes: 2 additions & 1 deletion code/game/gamemodes/cult/cult_items.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/obj/item/melee/cultblade
name = "cult blade"
desc = "An arcane weapon wielded by the followers of an unknown god."
desc = "A wicked sword made of serrated black metal, with a very slightly curving blade evoking a khopesh. The grip is studded with dull spikes."
description_antag = "Through some anomalous means, this weapon refuses to be wielded by any other than the followers of Nar-Sie. Attempting to wield it without being a cultist yourself is like to result in disaster."
icon_state = "cultblade"
origin_tech = list(TECH_COMBAT = 1, TECH_ARCANE = 1)
w_class = ITEMSIZE_LARGE
Expand Down
10 changes: 4 additions & 6 deletions code/game/gamemodes/cult/runes/armor.dm
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
/obj/effect/rune/armor
rune_name = "Armor"
rune_desc = "When this rune is invoked, either from a rune or a talisman, it will equip its invoker with the armor of the followers of Nar-Sie. To use this rune to its fullest extent, make sure you are not wearing any form of headgear, armor, gloves or shoes, and make sure you are not holding anything in your hands."
rune_shorthand = "Creates and equips a set of protective robes as well as a sword."
rune_desc = "When this rune is invoked, either from a rune or a talisman, it will equip its invoker with protective robes. To use this rune to its fullest extent, make sure you are not wearing any form of headgear, armor, or shoes."
rune_shorthand = "Creates and equips a set of protective, conspicuous robes."
talisman_path = /obj/item/paper/talisman/armor
circle_words = list(CULT_WORD_HELL, CULT_WORD_DESTROY, CULT_WORD_OTHER)
circle_words = list(CULT_WORD_HELL, CULT_WORD_DESTROY, CULT_WORD_SELF)
invocation = "Sa tatha najin!"

/obj/effect/rune/armor/invoke(list/invokers)
var/mob/living/L = invokers[1]
L.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(L), slot_head)
L.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(L), slot_wear_suit)
L.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hooded/cult(L), slot_wear_suit)
L.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult(L), slot_shoes)
L.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(L), slot_back)
L.put_in_hands(new /obj/item/melee/cultblade(L))
var/datum/gender/G = gender_datums[L.get_visible_gender()]
L.visible_message(
SPAN_DANGER("The runes crawl onto [L]'s body as they expand to cocoon [G.him], before falling away and revealing [G.his] body once more in gushing spurts of black sludge."),
Expand Down
15 changes: 15 additions & 0 deletions code/game/gamemodes/cult/runes/weapon.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/obj/effect/rune/weapon
rune_name = "Weapon"
rune_desc = "Creates a deadly blade, adept at maiming and dismemberment. It will reject nonbelievers, preventing them from wielding it as a weapon. Use sparingly, for the Geometer disdains bloodshed not executed at Its behest."
circle_words = list(CULT_WORD_HELL, CULT_WORD_DESTROY, CULT_WORD_OTHER)
invocation = "Sa tatha rajin!"

/obj/effect/rune/weapon/invoke(list/invokers)
var/mob/living/L = invokers[1]
var/obj/item/melee/cultblade/C = new (get_turf(src))
L.put_in_active_hand(C)
L.visible_message(
SPAN_DANGER("The runes coalesce into a long, cruel blade, which [L.get_active_hand() == C ? "\the [L] picks up" : "settles on the floor"]."),
SPAN_DANGER("The runes coalesce into a serrated blade[L.get_active_hand() == C ? ", which you pick up" : ""].")
)
qdel(src)
2 changes: 2 additions & 0 deletions code/game/gamemodes/cult/talismans/_talisman.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
var/talisman_name
/// A description of what this talisman actually does.
var/talisman_desc
/// Specifically shown in the arcane tome, alongside the rune's description.
var/tome_desc
/// The words spoken by a cultist activating this talisman.
var/invocation = "Look at this photograph!"
/// If true, cultists invoking this talisman will whisper, instead of speaking normally.
Expand Down
5 changes: 2 additions & 3 deletions code/game/gamemodes/cult/talismans/armor.dm
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
/obj/item/paper/talisman/armor
talisman_name = "Armor"
talisman_desc = "Equips its invoker with a set of followers' armor, equivalent to the rune from which it was drawn."
tome_desc = "Ditto."
invocation = "Sa tatha najin!"

/obj/item/paper/talisman/armor/invoke(mob/living/user)
user.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), slot_head)
user.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), slot_wear_suit)
user.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hooded/cult(user), slot_wear_suit)
user.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult(user), slot_shoes)
user.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), slot_back)
user.put_in_hands(new /obj/item/melee/cultblade(user))
var/datum/gender/G = gender_datums[user.get_visible_gender()]
user.visible_message(
SPAN_DANGER("\The [src] expands to briefly envelop \the [user]'s body before [G.he] tears through it in a gushing spurt of black sludge."),
Expand Down
1 change: 1 addition & 0 deletions code/game/gamemodes/cult/talismans/blind.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/obj/item/paper/talisman/blind
talisman_name = "Blind"
talisman_desc = "Induces blindness in nonbelievers within two tiles."
tome_desc = "Shorter range."
invocation = "Sti'kaliesin!"

/obj/item/paper/talisman/blind/invoke(mob/living/user)
Expand Down
1 change: 1 addition & 0 deletions code/game/gamemodes/cult/talismans/communicate.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/obj/item/paper/talisman/communicate
talisman_name = "Communicate"
talisman_desc = "Allows you to communicate with other cultists."
tome_desc = "Send a single message upon invocation."
invocation = "O bidai nabora se'sma!"
whispered = TRUE
delete_self = FALSE
Expand Down
1 change: 1 addition & 0 deletions code/game/gamemodes/cult/talismans/deafen.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/obj/item/paper/talisman/deafen
talisman_name = "Deafen"
talisman_desc = "Induces deafness in all nearby nonbelievers."
tome_desc = "Shorter range."
invocation = "Sti'kaliedir!"

/obj/item/paper/talisman/deafen/invoke(mob/living/user)
Expand Down
1 change: 1 addition & 0 deletions code/game/gamemodes/cult/talismans/emp.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/obj/item/paper/talisman/emp
talisman_name = "Disable Technology"
talisman_desc = "Emits a strong electromagnetic pulse in a small radius, disabling or harming nearby electronics."
tome_desc = "Shorter range."
invocation = "Ta'gh fara'qha fel d'amar det!"

/obj/item/paper/talisman/emp/invoke(mob/living/user)
Expand Down
2 changes: 2 additions & 0 deletions code/game/gamemodes/cult/talismans/hide_and_reveal.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/obj/item/paper/talisman/hide_runes
talisman_name = "Hide Runes"
talisman_desc = "Veils all nearby runes from sight, turning them invisible until they are revealed."
tome_desc = "Shorter range."
invocation = "Kla'atu barada nikt'o!"

/obj/item/paper/talisman/hide_runes/invoke(mob/living/user)
Expand All @@ -13,6 +14,7 @@
/obj/item/paper/talisman/reveal_runes
talisman_name = "Reveal Runes"
talisman_desc = "Reveal all nearby hidden runes."
tome_desc = "Shorter range."
invocation = "Nikt'o barada kla'atu!"

/obj/item/paper/talisman/reveal_runes/invoke(mob/living/user)
Expand Down
6 changes: 4 additions & 2 deletions code/game/gamemodes/cult/talismans/stun.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/obj/item/paper/talisman/stun
talisman_name = "Stun"
talisman_desc = "Forces the concentrated energy of a stun rune into a struck target, immediately knocking them to the ground. Humans will be prevented from speaking for a time."
tome_desc = "Switch to Harm intent and strike a target to forcefully knock them to the ground and silence them for a time."
invocation = "Dream sign 'Evil Sealing Talisman'!" // I think this is a touhou reference
whispered = FALSE

Expand All @@ -20,9 +21,10 @@
return ..()

/obj/item/paper/talisman/stun/proc/stun(mob/living/user, mob/living/target)
user.visible_message(
target.interact_message(user,
SPAN_DANGER("\The [user] thrusts \the [src] into \the [target]'s face!"),
SPAN_DANGER("You invoke the talisman at [target]!")
SPAN_DANGER("\The [user] thrusts \the [src] into your face!"),
SPAN_DANGER("You invoke the talisman at \the [target]!")
)
if (findNullRod(target))
target.visible_message(
Expand Down
1 change: 1 addition & 0 deletions code/game/gamemodes/cult/talismans/summon_tome.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/obj/item/paper/talisman/summon_tome
talisman_name = "Summon Tome"
talisman_desc = "Manifests another copy of the Geometer's scripture."
tome_desc = "Ditto."
invocation = "N'ath reth sh'yro eth d'raggathnor!"

/obj/item/paper/talisman/summon_tome/invoke(mob/living/user)
Expand Down
1 change: 1 addition & 0 deletions code/game/gamemodes/cult/talismans/teleport.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/obj/item/paper/talisman/teleport
talisman_name = "Teleport"
talisman_desc = "Teleports its invoker to the location of a random Teleport rune with the same keyword."
tome_desc = "On activation, teleports its user to a random rune of the same keyword."
invocation = "Sas'so c'arta forbici!"
delete_self = FALSE
var/key_word = CULT_WORD_OTHER
Expand Down
12 changes: 12 additions & 0 deletions code/modules/clothing/head/hood.dm
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,18 @@
desc = "An old-fashioned fur-lined hood."
icon_state = "vintagepark_hood"

/obj/item/clothing/head/hood/cult
name = "cult hood"
icon_state = "cult_hoodalt"
desc = "Chips of wet magmellite and strips of leathery textile are melded together into stiff cloth. Its surface is warm and shudders at the touch."
flags_inv = HIDEEARS | HIDEFACE | BLOCKHAIR
min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 0
armor = list(melee = 50, bullet = 30, laser = 50, energy = 80, bomb = 25, bio = 10, rad = 0)

/obj/item/clothing/head/hood/cult/cultify()
return

// Explorer gear
/obj/item/clothing/head/hood/explorer
name = "explorer hood"
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/shoes/miscellaneous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
playsound(src, "clownstep", 20, 1)

/obj/item/clothing/shoes/cult
name = "boots"
name = "cult boots"
desc = "Chips of wet magmellite and strips of leathery textile are melded together into stiff cloth. Its surface is warm and shudders at the touch."
icon_state = "cult"
item_state_slots = list(slot_r_hand_str = "cult", slot_l_hand_str = "cult")
Expand Down
15 changes: 15 additions & 0 deletions code/modules/clothing/suits/hooded.dm
Original file line number Diff line number Diff line change
Expand Up @@ -398,3 +398,18 @@
/obj/item/radio,
/obj/item/pickaxe
)

/obj/item/clothing/suit/storage/hooded/cult
name = "cult robes"
desc = "Chips of wet magmellite and strips of leathery textile are melded together into stiff cloth. Its surface is warm and shudders at the touch."
icon_state = "cultrobesalt"
origin_tech = list(TECH_MATERIAL = 3, TECH_ARCANE = 1)
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
flags_inv = HIDEJUMPSUIT
hoodtype = /obj/item/clothing/head/hood/cult
siemens_coefficient = 0
armor = list(melee = 50, bullet = 30, laser = 50, energy = 80, bomb = 25, bio = 10, rad = 0)
allowed = list(/obj/item/arcane_tome, /obj/item/melee/cultblade)

/obj/item/clothing/suit/storage/hooded/cult/cultify()
return
3 changes: 0 additions & 3 deletions code/modules/examine/descriptions/weapons.dm
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,3 @@
description_antag = "The energy sword is a very strong melee weapon, capable of severing limbs easily, if they are targeted. It can also has a chance \
to block projectiles and melee attacks while it is on and being held. The sword can be toggled on or off by using it in your hand. While it is off, \
it can be concealed in your pocket or bag."

/obj/item/melee/cultblade
description_antag = "This sword is a powerful weapon, capable of severing limbs easily, if they are targeted. Nonbelievers are unable to use this weapon."
Binary file modified icons/mob/suit.dmi
Binary file not shown.
Binary file modified icons/obj/clothing/suits.dmi
Binary file not shown.
1 change: 1 addition & 0 deletions polaris.dme
Original file line number Diff line number Diff line change
Expand Up @@ -557,6 +557,7 @@
#include "code\game\gamemodes\cult\runes\tear_reality.dm"
#include "code\game\gamemodes\cult\runes\teleport.dm"
#include "code\game\gamemodes\cult\runes\wall.dm"
#include "code\game\gamemodes\cult\runes\weapon.dm"
#include "code\game\gamemodes\cult\talismans\_talisman.dm"
#include "code\game\gamemodes\cult\talismans\armor.dm"
#include "code\game\gamemodes\cult\talismans\blind.dm"
Expand Down
4 changes: 2 additions & 2 deletions tgui/packages/tgui/interfaces/ArcaneTome.js
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,9 @@ export const ArcaneTome = (props, context) => {
<Section title={entry.name}>
{entry.invokers > 1
&& (<Fragment><i>Required invokers:</i> {entry.invokers}<br /><br /></Fragment>) || ""}
{entry.talisman
&& (<Fragment><i>Can be made into a talisman</i><br /><br /></Fragment>) || ""}
{entry.shorthand}<br /><br />
{entry.talisman
&& (<Fragment><i>Talisman effect:</i> {entry.talisman}<br /><br /></Fragment>) || ""}
<Button
textAlign="center"
content="Scribe"
Expand Down
2 changes: 1 addition & 1 deletion tgui/packages/tgui/public/tgui.bundle.js

Large diffs are not rendered by default.

0 comments on commit cc9b122

Please sign in to comment.