Skip to content

Commit

Permalink
Some Zayin Buffs and Visual Glow ups. (#1584)
Browse files Browse the repository at this point in the history
* Buffs Zayins

changes one sin, toad, quiet day, fairy festival code

adds new fairy festival, one sin, quiet day, toad sprites

removes old fairy festival sprites

adds status icons for quiet day and toad

adds effect sprites

changes records to reflect new effects

* reverts quiet day buffs

no longer buffs quiet day

* small fix

fixes wrong code

* removes unused var

i hate the preview it lies to me grahhhhh

* prevents one sin confession sound spam

removes two lines

* adds vfx to one sin's healing

i literally forgot this

* removes blubbering toad effect

removes irrelevant vfx

* removes irrelevant comment

* Update code/modules/mob/living/simple_animal/abnormality/zayin/blubbering_toad.dm

doing as suggested

Co-authored-by: EgorDinamit <[email protected]>

* Update zayin.dm

---------

Co-authored-by: EgorDinamit <[email protected]>
  • Loading branch information
TaculoTaculo and EgorDinamit authored Oct 31, 2023
1 parent 9a5dea7 commit 0a268f4
Show file tree
Hide file tree
Showing 11 changed files with 138 additions and 39 deletions.
Binary file modified ModularTegustation/Teguicons/48x48.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/64x64.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/status_sprites.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/tegumobs.dmi
Binary file not shown.
15 changes: 15 additions & 0 deletions code/game/objects/effects/temporary_visuals/miscellaneous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1005,3 +1005,18 @@
icon = 'ModularTegustation/Teguicons/48x64.dmi'
icon_state = "violet_noon_ability"
pixel_x = -8

/obj/effect/temp_visual/blubbering_smash
name = "blubbering smash"
icon_state = "blubbering_smash"
duration = 5

/obj/effect/temp_visual/onesin_punishment
name = "heavenly punishment"
icon_state = "onesin_punishment"
duration = 6

/obj/effect/temp_visual/onesin_blessing
name = "heavenly blessing"
icon_state = "onesin_blessing"
duration = 12
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#define STATUS_EFFECT_BLUERESIN /datum/status_effect/blue_resin
//Coded by Coxswain
/mob/living/simple_animal/hostile/abnormality/blubbering_toad
name = "Blubbering Toad"
Expand Down Expand Up @@ -37,7 +38,8 @@
work_damage_type = BLACK_DAMAGE

//work
var/pulse_healing = 2
var/pulse_healing = 15
var/healing_pulse_amount = 0
//breach
var/tongue_cooldown
var/tongue_cooldown_time = 2 SECONDS
Expand All @@ -63,20 +65,24 @@
..()
BlubberLoop() //crying sfx

/mob/living/simple_animal/hostile/abnormality/blubbering_toad/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time)
if(pe == 0)
return
user.apply_status_effect(STATUS_EFFECT_BLUERESIN)
healing_pulse_amount = pick (rand(6,8))

/mob/living/simple_animal/hostile/abnormality/blubbering_toad/proc/BlubberLoop()
if(health < 1)
return
var/num = pick(1,2,3,4)
playsound(get_turf(src), "sound/abnormalities/blubbering_toad/blurble[num].ogg", 100, FALSE)
addtimer(CALLBACK(src, .proc/BlubberLoop), rand(3,10) SECONDS)
if(IsContained()) //isn't breached
if(IsContained() && (healing_pulse_amount > 0)) //isn't breached and has charges left
healing_pulse_amount --
HealPulse()

/mob/living/simple_animal/hostile/abnormality/blubbering_toad/proc/HealPulse()
for(var/mob/living/L in livinginview(3, get_turf(src)))
if(!ishuman(L))
continue
var/mob/living/carbon/human/H = L
for(var/mob/living/carbon/human/H in livinginview(3, get_turf(src)))
H.adjustSanityLoss(-pulse_healing)

//Attack or approach it directly and it attacks you!
Expand Down Expand Up @@ -170,6 +176,8 @@
SLEEP_CHECK_DEATH(0.5 SECONDS)
forceMove(get_turf(target)) //look out, someone is rushing you!
SLEEP_CHECK_DEATH(0.3)
for(var/turf/T in view(1, src))
new /obj/effect/temp_visual/blubbering_smash(T)
playsound(src, 'sound/abnormalities/blubbering_toad/attack.ogg', 50, FALSE, 4)
jump_cooldown = world.time + jump_cooldown_time
animate(src, alpha = 255,pixel_x = 0, pixel_z = -16, time = 0.1 SECONDS)
Expand Down Expand Up @@ -237,3 +245,29 @@
icon_tongue = "blubbering_tongue_[state]"
icon_state = icon_living
playsound(src, 'sound/abnormalities/doomsdaycalendar/Limbus_Dead_Generic.ogg', 40, 0, 1)

/datum/status_effect/blue_resin
id = "blue resin"
status_type = STATUS_EFFECT_UNIQUE
duration = 3000 //Lasts 5 mins
alert_type = /atom/movable/screen/alert/status_effect/blue_resin

/atom/movable/screen/alert/status_effect/blue_resin
name = "Blue Resin"
desc = "The gushing gloom has made you more resilient to BLACK damage."
icon = 'ModularTegustation/Teguicons/status_sprites.dmi'
icon_state = "blueresin"

/datum/status_effect/blue_resin/on_apply()
. = ..()
if(ishuman(owner))
var/mob/living/carbon/human/L = owner
L.physiology.black_mod *= 0.9

/datum/status_effect/blue_resin/on_remove()
. = ..()
if(ishuman(owner))
var/mob/living/carbon/human/L = owner
L.physiology.black_mod /= 0.9

#undef STATUS_EFFECT_BLUERESIN
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
gift_type = /datum/ego_gifts/wingbeat
gift_message = "Fairy Dust covers your hands..."

var/heal_duration = 90 SECONDS
var/heal_amount = 0.02
var/heal_duration = 120 SECONDS
var/heal_amount = 0.05
var/heal_cooldown = 2 SECONDS
var/heal_cooldown_base = 2 SECONDS
var/list/mob/living/carbon/human/protected_people = list()
Expand All @@ -40,16 +40,17 @@
if(heal_cooldown <= world.time)
P.adjustBruteLoss(-heal_amount*P.getMaxHealth())
P.adjustFireLoss(-heal_amount*P.getMaxHealth())
P.adjustSanityLoss(-heal_amount*P.getMaxSanity())
heal_cooldown = (world.time + heal_cooldown_base)
return

/mob/living/simple_animal/hostile/abnormality/fairy_festival/SuccessEffect(mob/living/carbon/human/user, work_type, pe)
if(user.stat != DEAD && istype(user))
if(user in protected_people)
return
flick("fairy_blessing",src)
protected_people += user
RegisterSignal(user, COMSIG_WORK_STARTED, .proc/FairyGib)
RegisterSignal(user, COMSIG_WORK_STARTED, .proc/FairyPause)
RegisterSignal(user, COMSIG_WORK_COMPLETED, .proc/FairyRestart)
to_chat(user, "<span class='nicegreen'>You feel at peace under the fairies' care.</span>")
playsound(get_turf(user), 'sound/abnormalities/fairyfestival/fairylaugh.ogg', 50, 0, 2)
user.add_overlay(mutable_appearance('ModularTegustation/Teguicons/tegu_effects.dmi', "fairy_heal", -MUTATIONS_LAYER))
Expand All @@ -70,14 +71,30 @@
user.cut_overlay(mutable_appearance('ModularTegustation/Teguicons/tegu_effects.dmi', "fairy_heal", -MUTATIONS_LAYER))
to_chat(user, "<span class='notice'>The fairies giggle before returning to their queen.</span>")
UnregisterSignal(user, COMSIG_WORK_STARTED)
UnregisterSignal(user, COMSIG_WORK_COMPLETED)
return

/mob/living/simple_animal/hostile/abnormality/fairy_festival/proc/FairyPause(datum/source, datum/abnormality/datum_sent, mob/living/carbon/human/user, work_type)
SIGNAL_HANDLER
if (datum_sent != datum_reference)
return
to_chat(user, "<span class='notice'>The fairies suddenly go eerily quiet.</span>")
protected_people.Remove(user)

/mob/living/simple_animal/hostile/abnormality/fairy_festival/proc/FairyRestart(datum/source, datum/abnormality/datum_sent, mob/living/carbon/human/user, work_type)
SIGNAL_HANDLER
to_chat(user, "<span class='nicegreen'>The fairies start giggling and playing once more.</span>")
protected_people += user
playsound(get_turf(user), 'sound/abnormalities/fairyfestival/fairylaugh.ogg', 50, 0, 2)

//not called by anything anymore, left here if somebody wants to readd it later for any reason.
/mob/living/simple_animal/hostile/abnormality/fairy_festival/proc/FairyGib(datum/source, datum/abnormality/datum_sent, mob/living/carbon/human/user, work_type)
SIGNAL_HANDLER
if(((user in protected_people) && datum_sent != datum_reference) && !(GODMODE in user.status_flags))
to_chat(user, "<span class='userdanger'>With a beat of their wings, the fairies pounce on you and ravenously consume your body!</span>")
playsound(get_turf(user), 'sound/magic/demon_consume.ogg', 75, 0)
UnregisterSignal(user, COMSIG_WORK_STARTED)
UnregisterSignal(user, COMSIG_WORK_COMPLETED)
protected_people.Remove(user)
user.gib()
return
Expand Down
75 changes: 52 additions & 23 deletions code/modules/mob/living/simple_animal/abnormality/zayin/one_sin.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
name = "One Sin and Hundreds of Good Deeds"
desc = "A giant skull that is attached to a cross, it wears a crown of thorns."
icon = 'ModularTegustation/Teguicons/tegumobs.dmi'
icon_state = "onesin"
icon_living = "onesin"
icon_state = "onesin_halo_normal"
icon_living = "onesin_halo_normal"
maxHealth = 777
health = 777
is_flying_animal = TRUE
Expand All @@ -13,7 +13,7 @@
ABNORMALITY_WORK_INSIGHT = list(70, 70, 50, 50, 50),
ABNORMALITY_WORK_ATTACHMENT = 70,
ABNORMALITY_WORK_REPRESSION = list(50, 40, 30, 30, 30),
"Confess" = 100
"Confess" = 50
)
work_damage_amount = 6
work_damage_type = WHITE_DAMAGE
Expand All @@ -30,6 +30,17 @@
harvest_phrase = "<span class='notice'>As you hold it up before %ABNO, holy light fills %VESSEL.</span>"
harvest_phrase_third = "%PERSON holds up %VESSEL, letting it be filled with holy light."

var/halo_status = "onesin_halo_normal" //used for changing the halo overlays

//Overlay stuff
/mob/living/simple_animal/hostile/abnormality/onesin/PostSpawn()
..()
update_icon()

/mob/living/simple_animal/hostile/abnormality/onesin/update_overlays()
. = ..()
. += "onesin" //by the nine this is too cursed

/mob/living/simple_animal/hostile/abnormality/onesin/WorkChance(mob/living/carbon/human/user, chance)
if(istype(user.ego_gift_list[HAT], /datum/ego_gifts/penitence))
return chance + 10
Expand All @@ -47,39 +58,57 @@
for(var/mob/M in GLOB.player_list)
if(M.client)
M.playsound_local(get_turf(M), 'sound/abnormalities/onesin/confession_start.ogg', 25, 0)
return TRUE
return FALSE
return TRUE

/mob/living/simple_animal/hostile/abnormality/onesin/PostWorkEffect(mob/living/carbon/human/user, work_type, pe)
if(work_type == "Confess")
for(var/mob/living/simple_animal/hostile/abnormality/white_night/WN in GLOB.mob_living_list)
if(WN.status_flags & GODMODE)
return FALSE
WN.heretics = list()
to_chat(WN, "<span class='colossus'>The twelfth has betrayed us...</span>")
WN.loot = list() // No loot for you!
var/curr_health = WN.health
for(var/i = 1 to 12)
sleep(1.5 SECONDS)
playsound(get_turf(WN), 'sound/machines/clockcult/ark_damage.ogg', 75, TRUE, -1)
WN.adjustBruteLoss(curr_health/12)
WN.adjustBruteLoss(666666)
sleep(5 SECONDS)
for(var/mob/M in GLOB.player_list)
if(M.client)
M.playsound_local(get_turf(M), 'sound/abnormalities/onesin/confession_end.ogg', 50, 0)
return
if(isapostle(user))
for(var/mob/living/simple_animal/hostile/abnormality/white_night/WN in GLOB.mob_living_list)
if(WN.status_flags & GODMODE)
return FALSE
WN.heretics = list()
to_chat(WN, "<span class='colossus'>The twelfth has betrayed us...</span>")
WN.loot = list() // No loot for you!
var/curr_health = WN.health
for(var/i = 1 to 12)
sleep(1.5 SECONDS)
playsound(get_turf(WN), 'sound/machines/clockcult/ark_damage.ogg', 75, TRUE, -1)
WN.adjustBruteLoss(curr_health/12)
WN.adjustBruteLoss(666666)
sleep(5 SECONDS)
for(var/mob/M in GLOB.player_list)
if(M.client)
M.playsound_local(get_turf(M), 'sound/abnormalities/onesin/confession_end.ogg', 50, 0)
return

else
var/heal_chance = rand(2,pe)

if(heal_chance > 1)
flick("onesin_halo_good", src)
new /obj/effect/temp_visual/onesin_blessing(get_turf(user))
user.adjustBruteLoss(-user.maxHealth)
user.adjustSanityLoss(-user.maxSanity)
else
flick("onesin_halo_bad", src)
new /obj/effect/temp_visual/onesin_punishment(get_turf(user))
user.adjustSanityLoss(66)
playsound(get_turf(user), 'sound/abnormalities/thunderbird/tbird_bolt.ogg', 33, 1)

playsound(get_turf(user), 'sound/abnormalities/onesin/confession_end.ogg', 50, 0)
return ..()

/mob/living/simple_animal/hostile/abnormality/onesin/SuccessEffect(mob/living/carbon/human/user, work_type, pe)
user.adjustSanityLoss(-user.maxSanity * 0.5) // It's healing
if(work_type != "Confess")
new /obj/effect/temp_visual/onesin_blessing(get_turf(user))
user.adjustSanityLoss(-user.maxSanity * 0.5) // It's healing
if(pe >= datum_reference.max_boxes)
for(var/mob/living/carbon/human/H in GLOB.player_list)
if(H.z != z)
continue
if(H == user)
continue
new /obj/effect/temp_visual/onesin_blessing(get_turf(H))
var/heal_factor = 0.5
if(H.sanity_lost)
heal_factor = 0.25
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@
TalkStart(user)

/mob/living/simple_animal/hostile/abnormality/quiet_day/proc/TalkStart(mob/living/carbon/human/user)
flick("quiet_fadein", src)
icon_state = "quiet_ghost"
switch(buff_given)
if(ABNORMALITY_WORK_INSTINCT)
Expand Down Expand Up @@ -135,6 +136,7 @@
user.apply_status_effect(STATUS_EFFECT_DEMENTIA_RAMBLINGS)

/mob/living/simple_animal/hostile/abnormality/quiet_day/proc/ResetIcon()
flick("quiet_fadeout", src)
icon_state = "quiet_day"

/mob/living/simple_animal/hostile/abnormality/quiet_day/proc/PlayerCheck(mob/living/carbon/human/user)
Expand All @@ -148,7 +150,7 @@
name = "A Quiet Day"
desc = "You listened to the old man's story."
icon = 'ModularTegustation/Teguicons/status_sprites.dmi'
icon_state = "rest" //Guh I suck at status sprites but I'm also broke
icon_state = "quiet"

//A Quiet day
//A simple 5 minute stat buff
Expand Down
12 changes: 7 additions & 5 deletions code/modules/paperwork/records/info/zayin.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
abno_code = "O-03-03"
abno_info = list(
"One Sin and Hundreds of Good Deeds will restore the employee’s mental state when the work result is Good. Bong Bong, who received this benediction, commented that it felt refreshing.",
"After the maximum number of PE-Boxes was produced with One Sin and Hundreds of Good Deeds, it restored the mental health of every employee in the facility.")
"After the maximum number of PE-Boxes was produced with One Sin and Hundreds of Good Deeds, it restored the mental health of every employee in the facility.",
"Performing a confession to One Sin and Hundred of Good Deeds has often resulted in the employee being completely cured of their wounds, but it seems the abnormality can detect untruthful confessions.")

//Wellcheers
/obj/item/paper/fluff/info/zayin/shrimple
Expand Down Expand Up @@ -43,7 +44,7 @@
abno_info = list(
"When the work result was Normal or Good, small fairies appeared around the employee.",
"The small fairies will heal the employee’s HP over a limited time.",
"If an employee under the fairies’ care is assigned to a different Containment Unit, they will immediately die and be consumed by the fairies.")
"If an employee under the fairies’ care is assigned to a different Containment Unit, the fairies will cease their healing until the work is completed.")

//We can change anything
/obj/item/paper/fluff/info/zayin/change
Expand All @@ -70,7 +71,7 @@
abno_code = "D-01-145"
abno_info = list(
"When work with T-01-145 was completed, it started to speak.",
"If the agent working with T-01-145 listened to it's entire story, they recieved a buff for the corresponding attribute lasting 5 minutes.")
"If the agent working with T-01-145 listened to it's entire story, they received a buff for the corresponding attribute, lasting 5 minutes.")

//Letters on Standby
/obj/item/paper/fluff/info/zayin/mail
Expand All @@ -95,7 +96,8 @@
abno_code = "T-02-158"
abno_info = list(
"When the abnormality was approached outside of work, it suddenly became extremely hostile to that specific employee.",
"Employees report the toad's cries having a soothing effect while in containment, recovering SP.")
"Upon successful work completion, the employee received a slight temporary resistance to BLACK damage.",
"Employees report that after a work, the toad's cries having a soothing effect while in containment, quickly recovering SP.")

//Hammer of Light
/obj/item/paper/fluff/info/zayin/hammer_light
Expand All @@ -107,7 +109,7 @@
"When a level 1 employee tried to pick up the hammer, they were reduced to ashes by its power.",
"When agent YumYum picked up the unsealed hammer, they were granted the immense power required to resolve the emergency situation.",
"However, once the situation began to settle down, YumYum disappeared.")

//Vending Machine and Oceanic Waves
/obj/item/paper/fluff/info/zayin/oceanic_waves
abno_type = /mob/living/simple_animal/hostile/abnormality/oceanicwaves
Expand Down
Binary file modified icons/effects/effects.dmi
Binary file not shown.

0 comments on commit 0a268f4

Please sign in to comment.