Files
Bubberstation/code/modules/mob/living/basic/cult/constructs/wraith.dm
lizardqueenlexi 7b720a0081 Basic Shades (#79469)
## About The Pull Request

Makes shades into basic mobs. As they are solely player-controller and
have no AI, this was a very simple conversion.

Things of note:
- I've made shades use the same "theme" system as constructs, to
determine their drops and coloration - as opposed to these things being
manually set by the type of soulstone they're held in.
- I've reorganized files slightly, putting both constructs and shades in
a new "cult" basic mob folder.

That's more or less it. As I said, shades are simple.
## Why It's Good For The Game

Basic-izes another mob and cleans up the code a little. Removes the last
cult-related simplemob, too.
## Changelog
🆑
refactor: Shades now use the basic mob framework. Please report any
bugs.
/🆑
2023-11-03 22:39:33 +00:00

51 lines
1.8 KiB
Plaintext

/mob/living/basic/construct/wraith
name = "Wraith"
real_name = "Wraith"
desc = "A wicked, clawed shell constructed to assassinate enemies and sow chaos behind enemy lines."
icon_state = "wraith"
icon_living = "wraith"
maxHealth = 65
health = 65
melee_damage_lower = 20
melee_damage_upper = 20
attack_verb_continuous = "slashes"
attack_verb_simple = "slash"
attack_sound = 'sound/weapons/bladeslice.ogg'
attack_vis_effect = ATTACK_EFFECT_SLASH
construct_spells = list(
/datum/action/cooldown/spell/jaunt/ethereal_jaunt/shift,
/datum/action/innate/cult/create_rune/tele,
)
playstyle_string = span_bold("You are a Wraith. Though relatively fragile, you are fast, deadly, and can phase through walls. Your attacks will lower the cooldown on phasing, moreso for fatal blows.")
/mob/living/basic/construct/wraith/Initialize(mapload)
. = ..()
var/datum/action/cooldown/spell/jaunt/ethereal_jaunt/shift/jaunt = locate() in actions
if(isnull(jaunt))
return .
AddComponent(/datum/component/recharging_attacks, recharged_action = jaunt)
/// Hostile NPC version. Attempts to kill the lowest-health mob it can see.
/mob/living/basic/construct/wraith/hostile
ai_controller = /datum/ai_controller/basic_controller/wraith
melee_attack_cooldown = 1.5 SECONDS
// Alternate wraith themes
/mob/living/basic/construct/wraith/angelic
theme = THEME_HOLY
construct_spells = list(
/datum/action/cooldown/spell/jaunt/ethereal_jaunt/shift/angelic,
/datum/action/innate/cult/create_rune/tele,
)
/mob/living/basic/construct/wraith/angelic/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_ANGELIC, INNATE_TRAIT)
/mob/living/basic/construct/wraith/mystic
theme = THEME_WIZARD
construct_spells = list(
/datum/action/cooldown/spell/jaunt/ethereal_jaunt/shift/mystic,
/datum/action/innate/cult/create_rune/tele,
)