Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Binary file not shown.
27 changes: 13 additions & 14 deletions modular_meta/features/antagonists/sinful_demon/code/demon_datum.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
show_to_ghosts = TRUE
hud_icon = 'modular_meta/features/antagonists/icons/sinful_demon/demon_icons.dmi'
ui_name = "AntagInfoSinfulDemon"
//S/The sin a specific demon is assigned to. Defines what objectives and powers they'll receive.
//The sin a specific demon is assigned to. Defines what objectives and powers they'll receive.
var/demonsin
//A/The list of choosable sins for demons. One will be assigned to a demon when spawned naturally.
//The list of choosable sins for demons. One will be assigned to a demon when spawned naturally.
var/static/list/demonsins = list(SIN_GLUTTONY, SIN_GREED, SIN_WRATH, SIN_ENVY, SIN_PRIDE, SIN_SLOTH)
var/static/list/demon_spells = typecacheof(list(
/datum/action/cooldown/spell/shapeshift/demon,
Expand All @@ -34,6 +34,7 @@
/datum/action/cooldown/spell/jaunt/ethereal_jaunt/sin,
/datum/action/cooldown/spell/jaunt/ethereal_jaunt/sin/wrath,
/datum/action/cooldown/spell/touch/sleepy,
/datum/action/cooldown/spell/timestop/sloth,
))

var/static/list/sinfuldemon_traits = list(
Expand All @@ -42,12 +43,12 @@
TRAIT_NOCRITDAMAGE,
)

//N/Handles burning and hurting sinful demons while they're in the chapel.
//Handles burning and hurting sinful demons while they're in the chapel.
/datum/antagonist/sinfuldemon/proc/demon_burn() //sinful demons are even more vulnerable to the chapel than vampires, but can turn into their true form to negate this.
var/mob/living/L = owner.current
if(!L)
return
if(L.stat != DEAD) //A/demons however wont dust from the chapel so this needs to be a check to avoid spam while they're already dead
if(L.stat != DEAD) //demons however wont dust from the chapel so this needs to be a check to avoid spam while they're already dead
if(prob(50) && L.health >= 50)
switch(L.health)
if(85 to 100)
Expand Down Expand Up @@ -102,7 +103,7 @@
log_admin("[key_name(admin)] has demonized [key_name(new_owner)].")

/datum/antagonist/sinfuldemon/antag_listing_name()
return ..() + "(, demon of [demonsin])" //B/ Boris Smith, demon of Wrath
return ..() + "(, demon of [demonsin])" //Boris Smith, demon of Wrath

/datum/antagonist/sinfuldemon/greet()
to_chat(owner.current, span_warning("<b>You remember your link to the infernal. You are a demon of [demonsin] released from hell to spread sin amongst the living.</b>"))
Expand All @@ -118,7 +119,7 @@
/datum/antagonist/sinfuldemon/on_gain()
forge_objectives()
owner.current.faction += "hell"
for(var/all_traits in sinfuldemon_traits) //M/adds demon traits
for(var/all_traits in sinfuldemon_traits) //adds demon traits
ADD_TRAIT(owner.current, all_traits, SINFULDEMON_TRAIT)
switch(demonsin)
if(SIN_GLUTTONY)
Expand All @@ -131,10 +132,8 @@
var/datum/action/cooldown/spell/jaunt/ethereal_jaunt/sin/jaunt = new(owner.current)
jaunt.Grant(owner.current)

//A/ADD_TRAIT(owner.current, TRAIT_AGEUSIA, SINFULDEMON_TRAIT) // nothing disgusts you
//S/ADD_TRAIT(owner.current, TRAIT_EAT_MORE, SINFULDEMON_TRAIT) // 3x hunger rate
//S/ADD_TRAIT(owner.current, TRAIT_BOTTOMLESS_STOMACH, SINFULDEMON_TRAIT) // nutrition is capped for infinite eating
//M/ADD_TRAIT(owner.current, TRAIT_VORACIOUS, SINFULDEMON_TRAIT) // eat and drink faster & eat infinite snacks
var/datum/movespeed_modifier/fatty/fatty = new(owner.current)
fatty.New(owner.current)

if(SIN_GREED)
var/datum/action/cooldown/spell/shapeshift/demon/demon_form = new(owner.current)
Expand Down Expand Up @@ -195,17 +194,17 @@
var/datum/action/cooldown/spell/touch/sleepy/mimir = new(owner.current)
mimir.Grant(owner.current)

var/datum/action/cooldown/spell/touch/torment/pain_hand = new(owner.current)
pain_hand.Grant(owner.current)

var/datum/action/cooldown/spell/jaunt/ethereal_jaunt/sin/sloth/jaunt = new(owner.current)
jaunt.Grant(owner.current)

var/datum/action/cooldown/spell/timestop/sloth/time_stop = new(owner.current)
time_stop.Grant(owner.current)

return ..()

/datum/antagonist/sinfuldemon/on_removal()
owner.current.faction -= "hell"
for(var/all_status_traits in owner.current._status_traits) //ETA/removes demon traits
for(var/all_status_traits in owner.current._status_traits) //removes demon traits
REMOVE_TRAIT(owner.current, all_status_traits, SINFULDEMON_TRAIT)
for(var/datum/action/cooldown/spell in owner.current.actions)
QDEL_NULL(spell)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,28 @@
/datum/action/cooldown/spell/jaunt/ethereal_jaunt/sin
name = "Demonic Jaunt"
desc = "Briefly turn to cinder and ash, allowing you to freely pass through objects."
desc = "Briefly gib your human vessel, to freely pass through objects."
background_icon_state = "bg_demon"
overlay_icon_state = "bg_demon_border"
sound = 'sound/effects/magic/fireball.ogg'
check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED //blockin hands cuz deez shitty pants demon bouta run from bloody cuffs
spell_requirements = SPELL_REQUIRES_NO_ANTIMAGIC

cooldown_time = 50 SECONDS
cooldown_time = 120 SECONDS

jaunt_duration = 3.5 SECONDS
jaunt_in_type = /obj/effect/temp_visual/dir_setting/ash_shift
jaunt_type = /obj/effect/dummy/phased_mob/spell_jaunt/red
jaunt_duration = 3 SECONDS
jaunt_in_type = /obj/effect/temp_visual/dir_setting/demon_shift
jaunt_out_type = /obj/effect/temp_visual/dir_setting/demon_shift/out

/datum/action/cooldown/spell/jaunt/ethereal_jaunt/sin/do_steam_effects()
return

/obj/effect/temp_visual/dir_setting/demon_shift
icon_state = "gibbed-h_reverse"
icon = 'modular_meta/features/antagonists/icons/sinful_demon/jaunt.dmi'
duration = 1.2 SECONDS

/obj/effect/temp_visual/dir_setting/demon_shift/out
name = "demon_shift"
icon = 'icons/mob/simple/mob.dmi'
icon_state = "gibbed-h"
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
invocation_type = INVOCATION_SHOUT

wall_type = /obj/effect/gluttony/timed
spell_requirements = NONE
spell_requirements = SPELL_REQUIRES_NO_ANTIMAGIC

/datum/action/cooldown/spell/shapeshift/demon/gluttony //emergency get out of jail card, but better. It also eats agents 220.
name = "Gluttony Demon Form"
Expand Down Expand Up @@ -56,3 +56,7 @@
. = ..()
if(timeleft)
QDEL_IN(src, timeleft)

/datum/movespeed_modifier/fatty //fat prevent user to walking fast or even fly and swim
multiplicative_slowdown = 4
movetypes = ALL
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
invocation = "Just one game?"
invocation_type = INVOCATION_WHISPER
check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED
spell_requirements = NONE
spell_requirements = SPELL_REQUIRES_NO_ANTIMAGIC

cooldown_time = 30 SECONDS
cooldown_time = 180 SECONDS
summon_lifespan = 1 MINUTES
summon_radius = 0 //spawns on top of us
summon_type = list(/obj/structure/cursed_slot_machine/betterchance)
Expand All @@ -31,7 +31,7 @@
invocation = "Power beyond measure"
invocation_type = INVOCATION_WHISPER
check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED
spell_requirements = NONE
spell_requirements = SPELL_REQUIRES_NO_ANTIMAGIC

cooldown_time = 180 SECONDS //no farming a bunch of items
summon_radius = 0 //spawns on top of us
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
invocation = "Aren't I so amazing?"
invocation_type = INVOCATION_WHISPER
check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED
spell_requirements = NONE
spell_requirements = SPELL_REQUIRES_NO_ANTIMAGIC

cooldown_time = 30 SECONDS
cooldown_time = 60 SECONDS
summon_lifespan = 1 MINUTES
summon_radius = 0
summon_type = list(/obj/structure/mirror/magic/lesser)
Expand All @@ -29,7 +29,7 @@
invocation_type = INVOCATION_WHISPER

cooldown_time = 12 SECONDS
spell_requirements = NONE
spell_requirements = SPELL_REQUIRES_NO_ANTIMAGIC

hand_path = /obj/item/melee/touch_attack/mend

Expand Down
39 changes: 35 additions & 4 deletions modular_meta/features/antagonists/sinful_demon/code/sins/sloth.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
/mob/living/basic/lesserdemon/sloth
name = "sloth demon"
real_name = "sloth demon"
desc = "*yawns* aaw.. battle? Ahhh no.. i.. go.. to... to.. sleeep.."
desc = "A large, menacing creature covered in armored red scales, and red one sleeping cap."
icon_state = "lesserdaemon_sloth"
icon_living = "lesserdaemon_sloth"
speed = 1.5
Expand All @@ -24,11 +24,11 @@
overlay_icon_state = "bg_demon_border"

school = SCHOOL_EVOCATION
invocation = "MIMIR"
invocation = "MI'MIR"
invocation_type = INVOCATION_SHOUT

cooldown_time = 20 SECONDS
spell_requirements = NONE
spell_requirements = SPELL_REQUIRES_NO_ANTIMAGIC

hand_path = /obj/item/melee/touch_attack/sleepy

Expand All @@ -55,5 +55,36 @@

/datum/action/cooldown/spell/jaunt/ethereal_jaunt/sin/sloth
name = "Sloth Demonic Jaunt"
cooldown_time = 30 SECONDS
cooldown_time = 80 SECONDS
jaunt_duration = 1 SECONDS

/datum/action/cooldown/spell/timestop/sloth
name = "Stop Time"
desc = "This spell stops time for everyone INCLUDE you."
button_icon_state = "time"
background_icon_state = "bg_demon"
overlay_icon_state = "bg_demon_border"
check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED

cooldown_time = 180 SECONDS
spell_requirements = SPELL_REQUIRES_NO_ANTIMAGIC

invocation = "CAN I HAVE TIME TO SLEEP?!!"
invocation_type = INVOCATION_SHOUT

timestop_range = 2
timestop_duration = 12 SECONDS

owner_is_immune_to_all_timestop = FALSE
owner_is_immune_to_self_timestop = FALSE

/datum/action/cooldown/spell/timestop/sloth/cast(atom/cast_on)
. = ..()
new /obj/effect/timestop/sloth(get_turf(cast_on), timestop_range, timestop_duration)

/obj/effect/timestop/sloth
anchored = TRUE
name = "sleeping area"
desc = "Go to sleep.. Go to sleep."
icon = 'modular_meta/features/antagonists/icons/sinful_demon/160x160.dmi'
icon_state = "go_to_sleep"
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
sound = 'sound/effects/magic/fireball.ogg'
cooldown_time = 1 MINUTES
active_msg = span_notice("You ignite in a flash of hellfire!")
spell_requirements = NONE
spell_requirements = SPELL_REQUIRES_NO_ANTIMAGIC

/datum/action/cooldown/spell/pointed/ignite/InterceptClickOn(mob/living/clicker, params, atom/target)
. = ..()
Expand All @@ -51,6 +51,6 @@
name = "Greater Demonic Jaunt"
desc = "Briefly turn to cinder and ash, allowing you to freely pass through objects. Lasts slightly shorter than normal, but is more easily used."

cooldown_time = 25 SECONDS
cooldown_time = 80 SECONDS

jaunt_duration = 3 SECONDS
jaunt_duration = 2 SECONDS
Loading