Skip to content

Commit

Permalink
Tool Rebalance Project (vlggms#2139)
Browse files Browse the repository at this point in the history
Rebalances tool abnormalities

fixes a typo

More tool changes

hopefully fixes linters

returns functionality of FF

updates behavior adjustment and bracelet

heart changes

improves theonite slab code

updates hyde

elevates jekyll to WAW

fixes a potential exploit

spelling fix

Linters fix

once again changes how heart of aspiration works

removes work changes

Adds more effects to dr. Jekyll

improves third fates loom

YMBH change

hyde text update

changes jekyll to run off ticks, which is less processor intensive than damage.

Update code/modules/mob/living/simple_animal/abnormality/_tools/teth/behavior.dm

Co-authored-by: [̸R̵e̵d̴a̴c̶t̸e̸d̴]̵ <[email protected]>

Update code/modules/mob/living/simple_animal/abnormality/_tools/teth/bracelet.dm

Co-authored-by: [̸R̵e̵d̴a̴c̶t̸e̸d̴]̵ <[email protected]>

de-conflicts theonite slab
  • Loading branch information
Coxswain-Navigator authored Jun 8, 2024
1 parent 095772e commit 9dee5fd
Show file tree
Hide file tree
Showing 22 changed files with 452 additions and 267 deletions.
Binary file modified ModularTegustation/Teguicons/status_sprites.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/tegu_effects.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/tegu_effects10x10.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/toolabnormalities.dmi
Binary file not shown.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
name = "third fate's loom"
desc = "It is surrounded by spools of red thread."
icon_state = "loom"
var/usage_cooldown
var/usage_cooldown_time = 5 SECONDS

ego_list = list(
/datum/ego_datum/weapon/destiny,
Expand All @@ -15,40 +13,39 @@
. = ..()
if(!do_after(user, 10))
return
if(usage_cooldown > world.time) //just to prevent sfx spam
to_chat(user, span_warning("The loom is already spinning!"))
return
usage_cooldown = world.time + usage_cooldown_time

var/datum/status_effect/stacking/red_string/S = user.has_status_effect(/datum/status_effect/stacking/red_string)
if(!S)
to_chat(user, span_userdanger("As you touch the loom, threads are sewn into your flesh."))
user.apply_status_effect(STATUS_EFFECT_REDSTRING)
else if (S.stacks == 4)
to_chat(user, span_warning("You don't need to use this."))
return
else
to_chat(user, span_userdanger("The threads which were once sparse are now reinforced."))
to_chat(user, span_userdanger("You feel weaker."))
S.add_stacks(4)
user.adjust_attribute_level(FORTITUDE_ATTRIBUTE, -15)
playsound(src, 'sound/abnormalities/fateloom/garrote_bloody.ogg', 80, TRUE, -3)
to_chat(user, span_notice("You touch the loom, and the threads return to it."))
user.remove_status_effect(STATUS_EFFECT_REDSTRING)
return
user.playsound_local(src, 'sound/abnormalities/fateloom/garrote_bloody.ogg', 60, TRUE)

// Status Effect
/datum/status_effect/stacking/red_string
id = "stacking_red_string"
status_type = STATUS_EFFECT_UNIQUE
duration = -1
tick_interval = 120 SECONDS //2 minutes
alert_type = null
stack_decay = 0
stack_decay = -1
stacks = 4 //was 3, until I figured out that 0 stacks causes stacking status effects to forcibly qdel
max_stacks = 4
consumed_on_threshold = FALSE
overlay_file = 'ModularTegustation/Teguicons/tegu_effects.dmi'
overlay_state = "fateloom"

/datum/status_effect/stacking/red_string/on_apply()
RegisterSignal(owner, COMSIG_MOB_APPLY_DAMGE, PROC_REF(heal))
return ..()

/datum/status_effect/stacking/red_string/on_remove()
UnregisterSignal(owner, COMSIG_MOB_APPLY_DAMGE)
return ..()

/datum/status_effect/stacking/red_string/proc/heal()
SIGNAL_HANDLER
var/mob/living/carbon/human/H = owner
Expand Down Expand Up @@ -76,4 +73,16 @@
H.regenerate_icons()
add_stacks(-1)

/datum/status_effect/stacking/red_string/tick()
if(!can_have_status())
qdel(src)
else
stack_decay_effect()
add_stacks(-stack_decay)

/datum/status_effect/stacking/red_string/stack_decay_effect()
if(stacks < max_stacks)
to_chat(owner, span_nicegreen("The threads have been reinforced."))
playsound(owner, 'sound/weapons/cablecuff.ogg', 15, TRUE, -2)

#undef STATUS_EFFECT_REDSTRING
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,21 @@
/datum/status_effect/display/researcher
id = "notes"
status_type = STATUS_EFFECT_UNIQUE
duration = 3 MINUTES
duration = -1
alert_type = null
display_name = "notes"
var/damage_counter
var/damage_max
var/worked = FALSE
var/stat_bonus = 0

/datum/status_effect/display/researcher/on_apply()
. = ..()
if(!ishuman(owner))
return
var/mob/living/carbon/human/status_holder = owner
status_holder.adjust_attribute_buff(TEMPERANCE_ATTRIBUTE, 20)
stat_bonus = (0.1 * get_attribute_level(owner, TEMPERANCE_ATTRIBUTE)) //20 + 10% of the user's temperance is added as a bonus
status_holder.adjust_attribute_buff(TEMPERANCE_ATTRIBUTE, 20 + stat_bonus)
RegisterSignal(status_holder, COMSIG_MOB_APPLY_DAMGE, PROC_REF(TakeDamage))
RegisterSignal(status_holder, COMSIG_WORK_COMPLETED, PROC_REF(OnWorkComplete))
damage_max = (status_holder.maxHealth + status_holder.maxSanity)
Expand All @@ -46,25 +48,29 @@
if(!ishuman(owner))
return
var/mob/living/carbon/human/status_holder = owner
status_holder.adjust_attribute_buff(TEMPERANCE_ATTRIBUTE, -20)
status_holder.adjust_attribute_buff(TEMPERANCE_ATTRIBUTE, (-20 - stat_bonus))
UnregisterSignal(status_holder, COMSIG_MOB_APPLY_DAMGE)
UnregisterSignal(status_holder, COMSIG_WORK_COMPLETED)
to_chat(status_holder, span_nicegreen("The research notes vanish."))

/datum/status_effect/display/researcher/proc/OnWorkComplete(mob/living/carbon/human/user)
SIGNAL_HANDLER
to_chat(user, span_nicegreen("The research notes have been filled out, the yearn for knowledge has been satisfied."))
to_chat(user, span_nicegreen("The research notes have been filled out, it should be safe to return them now."))
worked = TRUE

/datum/status_effect/display/researcher/proc/TakeDamage(mob/living/carbon/human/user, damage, damagetype, def_zone)
SIGNAL_HANDLER
if(damage < 0)
return
damage_counter += damage //we store the raw damage taken by the player
if(damage_counter >= (damage_max * 0.6))
to_chat(owner, span_userdanger("You feel like you should avoid taking any more damage!"))
if(damage_counter >= damage_max) //if the stored damage exceeds the players maxhealth + maxsanity they explode
addtimer(CALLBACK(src, PROC_REF(Explode), owner), 1) //Gives damage procs time to process
return
if(damage_counter >= (damage_max * 0.8))
to_chat(owner, span_userdanger("You need to return the research notes immediately!"))
return
if(damage_counter >= (damage_max * 0.6))
to_chat(owner, span_userdanger("You feel like you should avoid taking any more damage!"))

/datum/status_effect/display/researcher/proc/Explode(mob/living/carbon/human/owner)
playsound(get_turf(owner), 'sound/abnormalities/scorchedgirl/explosion.ogg', 125, 0, 8)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@

/obj/structure/toolabnormality/shelter/proc/travel_check(mob/living/carbon/human/user)
icon_state = "shelter_in_opening"
if(!do_after(user, 30 SECONDS, user))
if(!do_after(user, 15 SECONDS, user))
to_chat(user, span_notice("You decide not to enter [src]."))
icon_state = "shelter_in"
return
Expand Down Expand Up @@ -84,8 +84,7 @@
if(!linked_structure)
linked_structure = locate(/obj/structure/toolabnormality/shelter/entrance) in world.contents
..()
user.Stun(15 SECONDS)
to_chat(user, span_userdanger("You are suddenly overcome with fear and hesitation! What horrors could be lurking out here?"))
user.Stun(3 SECONDS)

// Shelter contents
// Crate
Expand Down
Loading

0 comments on commit 9dee5fd

Please sign in to comment.