Skip to content

Commit

Permalink
Skill cleanup and quite a lot of fixes (#2527)
Browse files Browse the repository at this point in the history
* replaces `cooldown_time` milisecond definitions with SECONDS/MINUTES, if(!..()) cleanup

* re-codes the butchering ability basically entirelly

* Fixes shockwave, gives it a message

* rewords butchering desc a lil bit, 1 MINUTES instead of 60 SECONDS

* fixes lifesteal stealing from yourself, re-organizes the name var location, removes useless var on reraise

* minor fixups
  • Loading branch information
Gboster-0 authored Nov 3, 2024
1 parent f3df10f commit 13ef3e6
Show file tree
Hide file tree
Showing 16 changed files with 144 additions and 82 deletions.
10 changes: 5 additions & 5 deletions code/game/objects/items/fixerskills/level1/defensive.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
custom_premium_price = 600

/datum/action/cooldown/hunkerdown
cooldown_time = 300
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "hunkerdown"
cooldown_time = 30 SECONDS


/datum/action/cooldown/hunkerdown/Trigger()
Expand Down Expand Up @@ -49,7 +49,7 @@
custom_premium_price = 600

/datum/action/cooldown/firstaid
cooldown_time = 600
cooldown_time = 1 MINUTES
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "firstaid"

Expand All @@ -58,7 +58,8 @@
. = ..()
if(!.)
return FALSE
if (ishuman(owner))

if(ishuman(owner))
var/mob/living/carbon/human/human = owner
human.physiology.red_mod *= 0.8
human.physiology.white_mod *= 0.8
Expand Down Expand Up @@ -87,7 +88,7 @@
custom_premium_price = 600

/datum/action/cooldown/meditation
cooldown_time = 600
cooldown_time = 1 MINUTES
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "meditation"

Expand All @@ -114,4 +115,3 @@
human.physiology.pale_mod /= 0.8
human.adjustSanityLoss(-30) //Heals you
new /obj/effect/temp_visual/heal(get_turf(owner), "#6E6EFF")

21 changes: 12 additions & 9 deletions code/game/objects/items/fixerskills/level1/healing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@
custom_premium_price = 600

/datum/action/cooldown/healing
name = "Healing"
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "healing"
name = "Healing"
cooldown_time = 300
cooldown_time = 30 SECONDS
var/healamount = 20

/datum/action/cooldown/healing/Trigger()
if(!..())
. = ..()
if(!.)
return FALSE

if (owner.stat == DEAD)
Expand All @@ -36,14 +37,15 @@
custom_premium_price = 600

/datum/action/cooldown/soothing
name = "Soothing"
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "soothing"
name = "Soothing"
cooldown_time = 300
cooldown_time = 30 SECONDS
var/healamount = 20

/datum/action/cooldown/soothing/Trigger()
if(!..())
. = ..()
if(!.)
return FALSE

if (owner.stat == DEAD)
Expand All @@ -66,14 +68,15 @@
custom_premium_price = 600

/datum/action/cooldown/curing
name = "Curing"
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "curing"
name = "Curing"
cooldown_time = 300
cooldown_time = 30 SECONDS
var/healamount = 10

/datum/action/cooldown/curing/Trigger()
if(!..())
. = ..()
if(!.)
return FALSE

if (owner.stat == DEAD)
Expand Down
12 changes: 6 additions & 6 deletions code/game/objects/items/fixerskills/level1/movement.dm
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "dash"
name = "Dash"
cooldown_time = 30
cooldown_time = 3 SECONDS
var/direction = 1

/datum/action/cooldown/dash/Trigger()
if(!..())
. = ..()
if(!.)
return FALSE

if (owner.stat == DEAD)
Expand All @@ -45,9 +46,9 @@
return TRUE

/datum/action/cooldown/dash/back
name = "Backstep"
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "backstep"
name = "Backstep"
direction = -1

//Assault
Expand All @@ -59,7 +60,7 @@
custom_premium_price = 600

/datum/action/cooldown/assault
cooldown_time = 200
cooldown_time = 20 SECONDS
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "assault"

Expand Down Expand Up @@ -87,10 +88,9 @@
custom_premium_price = 600

/datum/action/cooldown/retreat
cooldown_time = 200
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "retreat"

cooldown_time = 20 SECONDS

/datum/action/cooldown/retreat/Trigger()
. = ..()
Expand Down
14 changes: 8 additions & 6 deletions code/game/objects/items/fixerskills/level1/scavenger.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@
custom_premium_price = 600

/datum/action/cooldown/smokedash
name = "Smokedash"
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "smokedash"
name = "Smokedash"
cooldown_time = 300
cooldown_time = 30 SECONDS

/datum/action/cooldown/smokedash/Trigger()
if(!..())
. = ..()
if(!.)
return FALSE

if (owner.stat == DEAD)
Expand Down Expand Up @@ -41,13 +42,14 @@
custom_premium_price = 600

/datum/action/cooldown/skulk
name = "Skulk"
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "smkulk"
name = "Skulk"
cooldown_time = 300
cooldown_time = 30 SECONDS

/datum/action/cooldown/skulk/Trigger()
if(!..())
. = ..()
if(!.)
return FALSE

if (owner.stat == DEAD)
Expand Down
60 changes: 50 additions & 10 deletions code/game/objects/items/fixerskills/level2/butcher.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,63 @@
name = "Level 2 Skill: Butcher"
level = 2
custom_premium_price = 1200
remarks = list(
"So there is 1 pair of gloves in the backstreets that can make me a butchering god...? huh.",
"To butcher the meat properly you have to understand the meat... what a bunch of nonsense.",
"District 23 is the perfect place to practice butchering and get butchered at the same time...",
)

/datum/action/cooldown/butcher
name = "Butcher"
desc = "Instantly butcher all dead opponents in a 5x5 range around you. If you are holding an object that can butcher more efficiently than your skill, absorb the object into the skill."
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "butcher"
name = "Butcher"
cooldown_time = 20
cooldown_time = 2 SECONDS
var/datum/component/butchering/butcher_component

/datum/action/cooldown/butcher/New()
. = ..()
AddComponent(/datum/component/butchering)
butcher_component = src.GetComponent(/datum/component/butchering)

/datum/action/cooldown/butcher/Destroy()
butcher_component = null
return ..()

/datum/action/cooldown/butcher/Trigger()
if(!..())
return FALSE
. = ..()
if(!.)
return
if(owner.stat != CONSCIOUS)
to_chat(owner, span_warning("You need to not be bleeding out on the floor to butcher creatures!"))
return

if (owner.stat == DEAD)
return FALSE
absorb_knife() // if our owner is holding a thing that can butcher better than we do, lets assume its form

//Compile people around you
for(var/mob/living/M in view(2, get_turf(src)))
if(M.stat == DEAD && !ishuman(M))
M.gib()
for(var/mob/living/the_meal in view(2, get_turf(src))) // For conviniency, do it in a range
if(the_meal.stat == DEAD && !ishuman(the_meal) && (the_meal.butcher_results || the_meal.guaranteed_butcher_results))
butcher_component.Butcher(owner, the_meal)
StartCooldown()

/datum/action/cooldown/butcher/proc/absorb_knife()
var/obj/potential_knife = owner.get_active_held_item()
if(!potential_knife)
return

var/datum/component/butchering/meat_machine = potential_knife.GetComponent(/datum/component/butchering)
if(!meat_machine)
return

var/their_weak_effectiveness = meat_machine.effectiveness + meat_machine.bonus_modifier
var/our_strong_butchering = butcher_component.effectiveness + butcher_component.bonus_modifier
if(our_strong_butchering >= their_weak_effectiveness)
return

butcher_component.effectiveness = meat_machine.effectiveness
butcher_component.bonus_modifier = meat_machine.bonus_modifier
to_chat(owner, span_nicegreen("You absorb [potential_knife] into the [name] ability, empowering its butchering effectiveness!"))
qdel(potential_knife)

var/difference = floor((their_weak_effectiveness - our_strong_butchering) / 5)
for(var/i in 1 to difference)
name = "[name]+"
7 changes: 4 additions & 3 deletions code/game/objects/items/fixerskills/level2/confusion.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@
custom_premium_price = 1200

/datum/action/cooldown/confusion
name = "Confusion"
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "confusion"
name = "Confusion"
cooldown_time = 500
cooldown_time = 50 SECONDS

/datum/action/cooldown/confusion/Trigger()
if(!..())
. = ..()
if(!.)
return FALSE

if (owner.stat == DEAD)
Expand Down
7 changes: 4 additions & 3 deletions code/game/objects/items/fixerskills/level2/flashbang.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@
custom_premium_price = 1200

/datum/action/cooldown/solarflare
name = "Solar Flare"
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "solarflare"
name = "Solar Flare"
cooldown_time = 500
cooldown_time = 50 SECONDS

/datum/action/cooldown/solarflare/Trigger()
if(!..())
. = ..()
if(!.)
return FALSE

if (owner.stat == DEAD)
Expand Down
32 changes: 18 additions & 14 deletions code/game/objects/items/fixerskills/level2/lifesteal.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,31 +7,35 @@
custom_premium_price = 1200

/datum/action/cooldown/lifesteal
name = "Lifesteal"
desc = "Steal health and sanity from everyone alive around you in a 5x5 tile radious."
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "lifesteal"
name = "Lifesteal"
cooldown_time = 100
cooldown_time = 10 SECONDS
var/damageamount = 10

/datum/action/cooldown/lifesteal/Trigger()
if(!..())
. = ..()
if(!.)
return FALSE

if (owner.stat == DEAD)
if(owner.stat > SOFT_CRIT)
to_chat(owner, span_userdanger("You are too weak to steal life from people around you..."))
return FALSE

var/mob/living/carbon/human/skilluser = owner

//Compile people around you
for(var/mob/living/M in view(2, get_turf(src)))
new /obj/effect/temp_visual/cult/sparks (get_turf(M))
M.adjustBruteLoss(10) //Healing for those around.
skilluser.adjustBruteLoss(-4) //Healing for those around.
for(var/mob/living/victim in oview(2, get_turf(src)))
if(victim.stat == DEAD) // what are you going to take from them?
continue

for(var/mob/living/carbon/human/M in view(2, get_turf(src)))
M.adjustSanityLoss(10) //Healing for those around.
skilluser.adjustSanityLoss(-4) //Healing for those around.
new /obj/effect/temp_visual/cult/sparks(get_turf(victim))
victim.adjustBruteLoss(10)
skilluser.adjustBruteLoss(-4)
if(ishuman(victim))
var/mob/living/carbon/human/double_victim = victim
double_victim.adjustSanityLoss(10)
skilluser.adjustSanityLoss(-4)

owner.visible_message(span_userdanger("tiny cuts form on everyone around [owner], their blood flowing to [owner]'s injuries!"), span_warning("You absorb life from everyone around you!"))
new /obj/effect/temp_visual/heal(get_turf(skilluser), "#E2ED4A")
StartCooldown()

7 changes: 4 additions & 3 deletions code/game/objects/items/fixerskills/level2/lockpick.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@
custom_premium_price = 1200

/datum/action/cooldown/lockpick
name = "Lockpick"
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "lockpick"
name = "Lockpick"
cooldown_time = 600
cooldown_time = 1 MINUTES

/datum/action/cooldown/lockpick/Trigger()
if(!..())
. = ..()
if(!.)
return FALSE

if (owner.stat == DEAD)
Expand Down
15 changes: 9 additions & 6 deletions code/game/objects/items/fixerskills/level2/shockwave.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,20 @@
custom_premium_price = 1200

/datum/action/cooldown/shockwave
icon_icon = 'icons/hud/screen_skills.dmi'
name = "Shockwave"
desc = "Throw everything in a 13 meter radious away from you."
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "shockwave"
cooldown_time = 150
cooldown_time = 15 SECONDS

/datum/action/cooldown/shockwave/Trigger()
. = ..()
if(!.)
return FALSE
return
if(owner.stat != CONSCIOUS)
to_chat(owner, span_warning("Throwing everything away from you would be difficult in this state."))
return

if (owner.stat)
return FALSE
goonchem_vortex(get_turf(src), 1, 13)
goonchem_vortex(get_turf(owner), 1, 13)
owner.visible_message(span_userdanger("[owner] throws away everything around them!"), span_warning("You throw everything away from you!"))
StartCooldown()
1 change: 1 addition & 0 deletions code/game/objects/items/fixerskills/level3/bulletproof.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
/datum/action/innate/bulletproof
name = "Bulletproof"
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "shield_off"
var/datum/martial_art/bulletproof/MA = new /datum/martial_art/bulletproof

/datum/action/innate/bulletproof/Activate()
Expand Down
Loading

0 comments on commit 13ef3e6

Please sign in to comment.