Files
Bubberstation/code/modules/buildmode/submodes/smite.dm
MrMelbert 5d3519b9cf Adds Dustself, dust smite, divine smites (#89973)
## About The Pull Request

- Adds `dustself` admin verb

- Adds Dust admin smite 
   - Does what it says on the tin

- Adds Divine smites
- Variations of smites that come with the prayer sound and special
effects - so you can get the message across that this is a punishment
from god.


https://github.com/user-attachments/assets/1cf89ece-3e89-4135-a984-79ca10c278a6

## Why It's Good For The Game

- Request. Parity for `gibself`
- Request. Parity with "Gib"
- Request. Someone wanted to add some more flair to smites so I obliged.

## Changelog

🆑 Melbert
admin: Adds "Dustself"
admin: Adds "Dust" smite. Does what it says on the tin
admin: Adds "Divine" smites. They are variations of normal smites themed
around divine intervention.
/🆑
2025-03-17 14:23:46 +01:00

41 lines
1.1 KiB
Plaintext

/datum/buildmode_mode/smite
key = "smite"
var/datum/smite/selected_smite
/datum/buildmode_mode/smite/Destroy()
selected_smite = null
return ..()
/datum/buildmode_mode/smite/show_help(client/builder)
to_chat(builder, span_purple(boxed_message(
"[span_bold("Select smite to use")] -> Right Mouse Button on buildmode button\n\
[span_bold("Smite the mob")] -> Left Mouse Button on mob/living"))
)
/datum/buildmode_mode/smite/change_settings(client/user)
var/punishment = input(user, "Choose a punishment", "DIVINE SMITING") as null|anything in GLOB.smites
var/smite_path = GLOB.smites[punishment]
var/datum/smite/picking_smite = new smite_path
var/configuration_success = picking_smite.configure(user)
if (configuration_success == FALSE)
return
selected_smite = picking_smite
/datum/buildmode_mode/smite/handle_click(client/user, params, object)
var/list/modifiers = params2list(params)
if (!check_rights(R_ADMIN | R_FUN))
return
if (!LAZYACCESS(modifiers, LEFT_CLICK))
return
if (!isliving(object))
return
if (selected_smite == null)
to_chat(user, span_notice("No smite selected."))
return
selected_smite.do_effect(user, object)