Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds wizard item: Plague Talisman #28150

Open
wants to merge 25 commits into
base: master
Choose a base branch
from

Conversation

EmeraldCandy
Copy link
Contributor

@EmeraldCandy EmeraldCandy commented Jan 27, 2025

What Does This PR Do

Adds the Plague Talisman to the wizard's spellbook for 2 points. This item is intended a side-grade equivalent to the necromatic stone. When purchased, the wizard receives 5 plague talismans. When used on a corpse with a mind in it, the victim will be turned into a (NON-NECRO PLAGUE) zombie and is loyal to the wizard. Each zombie is given a disease upon their creation that they carry, to which they are able to spread via attacks with the given claw items. There is a 66% chance the disease will be minor (flu/cold/anxiety) with a 33% chance it will be a major disease (Beserker/cold9/brainrot). GBS/kuru/most transformation diseases have been left out.

Currently, the zombie claws do 35 force, which is 5 less than the claymores given by the necromatic stone, due to both having more potential zombies and the additions of the plagues. This can be changed as needed.

Additionally, makes wiz and zombies virus immune so they wont be affected by their own fun.

edit: Added an examine text about their rotted bodies to help identify them (besides claws) when they are fully clothed

Why It's Good For The Game

New wizard items are interesting, and more options for minions could be fun. These thralls are similar to the necromatic stone, though technically weaker than the weapons given to the skeleton thralls. However, zombies are unable to wield weaponry, and rely on their claws, thus preventing the wizard from giving out equipment to their new thralls (such as staffs of resurrection).

Images of changes

(I am very bad at spriting, feel free to ask me to replacing it)
image

Testing

  • Tested for converting alive/mindless/already slaved bodies
  • ensured proper mindslaving
  • ensured the victim gets the proper welcome message
  • ensured the claws summon as intended
  • ensured claws dispelled as intended
  • ensured claws inflicted diseases as intended
  • ensured each zombie was given their own individual disease
  • ensured zombies rot properly
  • ensured zombies revive properly
  • ensured zombies could not be given items
  • ensured mindless zombies dont spread the necro plague due to AI behavior

Declaration

  • I confirm that I either do not require pre-approval for this PR, or I have obtained such approval and have included a screenshot to demonstrate this below.

Changelog

🆑
add: Added plague talismans for the wizard
add: Added the plague claw spell for plague zombie use
imageadd: Plague talisman icon
/:cl:

@ParadiseSS13-Bot ParadiseSS13-Bot added -Status: Awaiting type assignment This PR is waiting for its type to be assigned internally Sprites This PR modifies the game sprites -Status: Awaiting approval This PR is waiting for approval internally and removed -Status: Awaiting type assignment This PR is waiting for its type to be assigned internally labels Jan 27, 2025
Copy link
Contributor

@Scribble-Sheep Scribble-Sheep left a comment

Choose a reason for hiding this comment

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

Some grammar/spelling/flow touchups/suggestions.

code/game/gamemodes/wizard/artefact.dm Outdated Show resolved Hide resolved
code/game/gamemodes/wizard/artefact.dm Outdated Show resolved Hide resolved
code/game/gamemodes/wizard/artefact.dm Outdated Show resolved Hide resolved
code/game/gamemodes/wizard/godhand.dm Outdated Show resolved Hide resolved
code/game/gamemodes/wizard/spellbook.dm Outdated Show resolved Hide resolved
code/game/objects/items/weapons/storage/belt.dm Outdated Show resolved Hide resolved
code/modules/antagonists/zombie/zombie_spells.dm Outdated Show resolved Hide resolved
@Scribble-Sheep
Copy link
Contributor

And also, I see this has been reworked from being a direct virus vector into more of a conversion spell. I like it~
Hopefully it'll be fun in practice.

@TravisAngeI
Copy link

I think the zombies should be told what virus they have on revival so they know what they're infecting people with, could have the minor zombies play defense with their 35 force claws and the major zombies play offense with their virus-y claws

@Burzah Burzah added the Balance This PR will modify how effective something is or isnt label Jan 28, 2025
@ParadiseSS13-Bot ParadiseSS13-Bot added -Status: Awaiting review This PR is awaiting review from the review team and removed -Status: Awaiting approval This PR is waiting for approval internally labels Jan 28, 2025
code/game/gamemodes/wizard/artefact.dm Outdated Show resolved Hide resolved
code/game/gamemodes/wizard/artefact.dm Outdated Show resolved Hide resolved
@ParadiseSS13-Bot ParadiseSS13-Bot added -Status: Awaiting approval This PR is waiting for approval internally and removed -Status: Awaiting review This PR is awaiting review from the review team labels Jan 29, 2025
@EmeraldCandy EmeraldCandy requested a review from lewcc January 30, 2025 07:16

//choose what disease this zombie will get
/obj/item/plague_talisman/proc/pick_disease()
var picked_disease
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
var picked_disease
var/picked_disease

Comment on lines +923 to +930
var/minor_length = length(minor_diseases)
var/major_length = length(major_diseases)
if(prob(66))
picked_disease = minor_diseases[rand(1, minor_length)]
return(picked_disease)
else
picked_disease = major_diseases[rand(1, major_length)]
return(picked_disease)
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
var/minor_length = length(minor_diseases)
var/major_length = length(major_diseases)
if(prob(66))
picked_disease = minor_diseases[rand(1, minor_length)]
return(picked_disease)
else
picked_disease = major_diseases[rand(1, major_length)]
return(picked_disease)
if(prob(66))
picked_disease = pick(minor_diseases)
else
picked_disease = pick(major_diseases)
return picked_disease

use_item_overlays = TRUE
can_hold = list(
/obj/item/plague_talisman
)
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
)
)

if(dispel())
return
var/obj/item/plague_claw/claws = new /obj/item/plague_claw(user.loc, src, disease)
if(user.get_organ("l_hand") && user.get_organ("r_hand")) // Takes always takes both hand slots, but doesnt require both
Copy link
Contributor

Choose a reason for hiding this comment

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

What happens if they're already holding something or their hands are full?

Comment on lines +195 to +198
/datum/spell/plague_claws/can_cast(mob/user, charge_check, show_message)
var/mob/living/L = user
if(!L.get_active_hand() || istype(L.get_active_hand(), /obj/item/zombie_claw))
return ..()
Copy link
Contributor

Choose a reason for hiding this comment

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

should probably explicitly return false if that's what you want to have happen here otherwise

return ..()

/obj/item/plague_claw/customised_abstract_text(mob/living/carbon/owner)
return "<span class='warning'>[owner.p_they(TRUE)] [owner.p_have(FALSE)] sharp, ichor-laden claws extending from [owner.p_their(FALSE)] [owner.l_hand == src ? "left hand" : "right hand"].</span>"
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
return "<span class='warning'>[owner.p_they(TRUE)] [owner.p_have(FALSE)] sharp, ichor-laden claws extending from [owner.p_their(FALSE)] [owner.l_hand == src ? "left hand" : "right hand"].</span>"
return "<span class='warning'>[owner.p_they(TRUE)] [owner.p_have()] sharp, ichor-laden claws extending from [owner.p_their()] [owner.l_hand == src ? "left hand" : "right hand"].</span>"

// already have the disease, or have contracted it.
if(!target.HasDisease(claw_disease))
playsound(user.loc, 'sound/misc/moist_impact.ogg', 50, TRUE)
target.bleed_rate = max(5, target.bleed_rate + 1) // Them claws sharp! Good luck with whatever they were laced with
Copy link
Contributor

Choose a reason for hiding this comment

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

Might want to make them bleed regardless when they get hit?

Comment on lines +271 to +273
if(..())
return
qdel(src)
Copy link
Contributor

Choose a reason for hiding this comment

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

What's this doing?

@@ -306,6 +306,9 @@
if(reagents.has_reagent("teslium"))
msg += "[p_they(TRUE)] [p_are()] emitting a gentle blue glow!\n"

if(HAS_TRAIT(src, TRAIT_PLAGUE_ZOMBIE)) //to tell plague zombies easier through clothing
msg += "[p_they(TRUE)] smell like rot and death!\n"
Copy link
Contributor

Choose a reason for hiding this comment

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

This should make sure it shows up properly for he/she and they
"they smell like rot and death!"
"he smells like rot and death!"

Suggested change
msg += "[p_they(TRUE)] smell like rot and death!\n"
msg += "[p_they(TRUE)] smell[p_s()] like rot and death!\n"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-Status: Awaiting approval This PR is waiting for approval internally Balance This PR will modify how effective something is or isnt Sprites This PR modifies the game sprites
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants