Skip to content

Commit

Permalink
Skill Rebalance (vlggms#2472)
Browse files Browse the repository at this point in the history
* rebalance

asd

* You can now have 3 level 1 skills

* updates battleready

* adds more visuals

* adds more shit

* Update code/game/objects/items/fixerskills/skills.dm

Co-authored-by: Gboster-0 <[email protected]>

---------

Co-authored-by: Gboster-0 <[email protected]>
  • Loading branch information
Kitsunemitsu and Gboster-0 authored Oct 15, 2024
1 parent a0a7976 commit 4f3c6ed
Show file tree
Hide file tree
Showing 14 changed files with 150 additions and 31 deletions.
3 changes: 3 additions & 0 deletions ModularTegustation/tegu_items/associations/vending.dm
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@
/obj/item/book/granter/action/skill/assault = 100,
/obj/item/book/granter/action/skill/retreat = 100,
/obj/item/book/granter/action/skill/smokedash = 100,
/obj/item/book/granter/action/skill/skulk = 100,
/obj/item/book/granter/action/skill/healing = 100,
/obj/item/book/granter/action/skill/soothing = 100,
/obj/item/book/granter/action/skill/curing = 100,
Expand All @@ -149,12 +150,14 @@
/obj/item/book/granter/action/skill/healthhud = 100,
/obj/item/book/granter/action/skill/bulletproof = 100,
/obj/item/book/granter/action/skill/battleready = 100,
/obj/item/book/granter/action/skill/fleetfoot = 100,
//Level 4
/obj/item/book/granter/action/skill/timestop = 100,
/obj/item/book/granter/action/skill/reraise = 100,
/obj/item/book/granter/action/skill/dismember = 100,
/obj/item/book/granter/action/skill/warbanner = 100,
/obj/item/book/granter/action/skill/warcry = 100,
/obj/item/book/granter/action/skill/nuke = 100,
)

default_price = 300
Expand Down
2 changes: 2 additions & 0 deletions code/game/objects/items/fixerskills/level1/defensive.dm
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
human.physiology.black_mod /= 0.8
human.physiology.pale_mod /= 0.8
human.adjustBruteLoss(-30) //Heals you
new /obj/effect/temp_visual/heal(get_turf(owner), "#FF4444")


//Meditation
Expand Down Expand Up @@ -112,4 +113,5 @@
human.physiology.black_mod /= 0.8
human.physiology.pale_mod /= 0.8
human.adjustSanityLoss(-30) //Heals you
new /obj/effect/temp_visual/heal(get_turf(owner), "#6E6EFF")

6 changes: 3 additions & 3 deletions code/game/objects/items/fixerskills/level1/healing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
button_icon_state = "healing"
name = "Healing"
cooldown_time = 300
var/healamount = 15
var/healamount = 20

/datum/action/cooldown/healing/Trigger()
if(!..())
Expand Down Expand Up @@ -40,7 +40,7 @@
button_icon_state = "soothing"
name = "Soothing"
cooldown_time = 300
var/healamount = 15
var/healamount = 20

/datum/action/cooldown/soothing/Trigger()
if(!..())
Expand Down Expand Up @@ -70,7 +70,7 @@
button_icon_state = "curing"
name = "Curing"
cooldown_time = 300
var/healamount = 5
var/healamount = 10

/datum/action/cooldown/curing/Trigger()
if(!..())
Expand Down
38 changes: 33 additions & 5 deletions code/game/objects/items/fixerskills/level1/scavenger.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
button_icon_state = "smokedash"
name = "Smokedash"
cooldown_time = 300
var/healamount = 15

/datum/action/cooldown/smokedash/Trigger()
if(!..())
Expand All @@ -26,9 +25,38 @@
addtimer(CALLBACK(human, TYPE_PROC_REF(/mob, remove_movespeed_modifier), /datum/movespeed_modifier/assault), 2 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)

//drop a bit of smoke
var/datum/effect_system/smoke_spread/bad/smoke = new
smoke.set_up(4, src)
smoke.start()
qdel(smoke)
var/datum/effect_system/smoke_spread/S = new
S.set_up(4, get_turf(human)) //Make the smoke bigger
S.start()
qdel(S)
StartCooldown()


//Skulk
/obj/item/book/granter/action/skill/skulk
granted_action = /datum/action/cooldown/skulk
actionname = "Skulk"
name = "Level 1 Skill: Skulk"
level = 1
custom_premium_price = 600

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

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

if (owner.stat == DEAD)
return FALSE

//become invisible
owner.alpha = 15
addtimer(CALLBACK(src, PROC_REF(Recall),), 10 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
StartCooldown()

/datum/action/cooldown/skulk/proc/Recall()
owner.alpha = 255
2 changes: 1 addition & 1 deletion code/game/objects/items/fixerskills/level2/butcher.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "butcher"
name = "Butcher"
cooldown_time = 100
cooldown_time = 20

/datum/action/cooldown/butcher/Trigger()
if(!..())
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/fixerskills/level2/lifesteal.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@
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(-10) //Healing for those around.
skilluser.adjustBruteLoss(-4) //Healing for those around.

for(var/mob/living/carbon/human/M in view(2, get_turf(src)))
M.adjustSanityLoss(10) //Healing for those around.
skilluser.adjustSanityLoss(-10) //Healing for those around.
skilluser.adjustSanityLoss(-4) //Healing for those around.

new /obj/effect/temp_visual/heal(get_turf(skilluser), "#E2ED4A")
StartCooldown()
Expand Down
43 changes: 35 additions & 8 deletions code/game/objects/items/fixerskills/level3/battleready.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/obj/item/book/granter/action/skill/battleready
granted_action = /datum/action/innate/battleready
actionname = "Battle Ready"
name = "Level 3 Skill: Battle Ready"
actionname = "Veteran"
name = "Level 3 Skill: Veteran"
level = 3
custom_premium_price = 1800

Expand All @@ -10,29 +10,56 @@
icon_icon = 'icons/hud/screen_skills.dmi'

/datum/action/innate/battleready/Activate()
to_chat(owner, span_notice("You can now take more hits and move faster."))
to_chat(owner, span_notice("You can now take more hits."))
button_icon_state = "battleready_on"
active = TRUE
var/mob/living/carbon/human/human = owner
human.physiology.red_mod *= 0.8
human.physiology.white_mod *= 0.8
human.physiology.black_mod *= 0.8
human.physiology.pale_mod *= 0.8
human.add_movespeed_modifier(/datum/movespeed_modifier/assault)
UpdateButtonIcon()

/datum/action/innate/battleready/Deactivate()
to_chat(owner, span_notice("You now take more damage and move slower."))
to_chat(owner, span_notice("You now take more damage."))
button_icon_state = "battleready_off"
active = FALSE
var/mob/living/carbon/human/human = owner
human.physiology.red_mod /= 0.8
human.physiology.white_mod /= 0.8
human.physiology.black_mod /= 0.8
human.physiology.pale_mod /= 0.8
human.remove_movespeed_modifier(/datum/movespeed_modifier/assault)
UpdateButtonIcon()

/datum/movespeed_modifier/battleready


/obj/item/book/granter/action/skill/fleetfoot
granted_action = /datum/action/innate/fleetfoot
actionname = "Fleetfoot"
name = "Level 3 Skill: Fleetfoot"
level = 3
custom_premium_price = 1800

/datum/action/innate/fleetfoot
name = "Fleet Foot"
icon_icon = 'icons/hud/screen_skills.dmi'

/datum/action/innate/fleetfoot/Activate()
to_chat(owner, span_notice("You now move faster."))
button_icon_state = "fleetfoot_on"
active = TRUE
var/mob/living/carbon/human/human = owner
human.add_movespeed_modifier(/datum/movespeed_modifier/fleetfoot)
UpdateButtonIcon()

/datum/action/innate/fleetfoot/Deactivate()
to_chat(owner, span_notice("You now move slower."))
button_icon_state = "fleetfoot_off"
active = FALSE
var/mob/living/carbon/human/human = owner
human.remove_movespeed_modifier(/datum/movespeed_modifier/fleetfoot)
UpdateButtonIcon()

/datum/movespeed_modifier/fleetfoot
variable = TRUE
multiplicative_slowdown = -0.2
multiplicative_slowdown = -0.1
17 changes: 12 additions & 5 deletions code/game/objects/items/fixerskills/level3/bulletproof.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,31 @@
var/datum/martial_art/bulletproof/MA = new /datum/martial_art/bulletproof

/datum/action/innate/bulletproof/Activate()
to_chat(owner, span_notice("You will now block bullets."))
to_chat(owner, span_notice("You will now block bullets, but take increased melee damage."))
button_icon_state = "shield_on"
if (ishuman(owner))
var/mob/living/carbon/human/human = owner
MA.teach(human, TRUE)
human.physiology.red_mod *= 1.3
human.physiology.white_mod *= 1.3
human.physiology.black_mod *= 1.3
human.physiology.pale_mod *= 1.3
active = TRUE
UpdateButtonIcon()

/datum/action/innate/bulletproof/Deactivate()
to_chat(owner, span_notice("You will no longer block bullets."))
to_chat(owner, span_notice("You will no longer block bullets, and no longer take increased melee damage"))
button_icon_state = "shield_off"
if (ishuman(owner))
var/mob/living/carbon/human/human = owner
MA.remove(human)
human.physiology.red_mod /= 1.3
human.physiology.white_mod /= 1.3
human.physiology.black_mod /= 1.3
human.physiology.pale_mod /= 1.3
active = FALSE
UpdateButtonIcon()

/datum/martial_art/bulletproof/on_projectile_hit(mob/living/A, obj/projectile/P, def_zone)
if(prob(40))
to_chat(A, span_notice("You blocked a bullet."))
return BULLET_ACT_BLOCK
to_chat(A, span_notice("You blocked a bullet."))
return BULLET_ACT_BLOCK
26 changes: 26 additions & 0 deletions code/game/objects/items/fixerskills/level4/kys.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
//Nuke
/obj/item/book/granter/action/skill/nuke
granted_action = /datum/action/cooldown/nuke
actionname = "Nuke"
name = "Level 4 Skill: Nuke"
level = 4
custom_premium_price = 2400

/datum/action/cooldown/nuke
icon_icon = 'icons/hud/screen_skills.dmi'
button_icon_state = "nuke"
name = "Nuke"
cooldown_time = 12000

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

if (owner.stat == DEAD)
return FALSE

//Blow up
explosion(owner,0,0,10,18)

StartCooldown()

Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
button_icon_state = "timestop"
cooldown_time = 6000
var/timestop_range = 2
var/timestop_duration = 20
var/timestop_duration = 15

/datum/action/cooldown/timestop/Trigger()
. = ..()
Expand Down
7 changes: 6 additions & 1 deletion code/game/objects/items/fixerskills/level4/team.dm
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@
if (human == owner && !affect_self)
continue
human.add_movespeed_modifier(/datum/movespeed_modifier/retreat)
addtimer(CALLBACK(human, TYPE_PROC_REF(/mob, remove_movespeed_modifier), /datum/movespeed_modifier/retreat), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
addtimer(CALLBACK(human, TYPE_PROC_REF(/mob, remove_movespeed_modifier), /datum/movespeed_modifier/warcry), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
affected+=human

addtimer(CALLBACK(src, PROC_REF(Warcry),), 0.5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
Expand All @@ -94,3 +94,8 @@
if(human == owner)
continue
human.say("YES SIR!")

/datum/movespeed_modifier/warcry
variable = TRUE
multiplicative_slowdown = -0.3

30 changes: 25 additions & 5 deletions code/game/objects/items/fixerskills/skills.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
/datum/action/cooldown/dash = 1,
/datum/action/cooldown/dash/back = 1,
/datum/action/cooldown/smokedash = 1,
/datum/action/cooldown/skulk = 1,
/datum/action/cooldown/assault = 1,
/datum/action/cooldown/retreat = 1,
/datum/action/cooldown/healing = 1,
Expand All @@ -17,34 +18,53 @@
/datum/action/cooldown/firstaid = 1,
/datum/action/cooldown/meditation = 1,
/datum/action/cooldown/hunkerdown = 1,

/datum/action/cooldown/shockwave = 2,
/datum/action/cooldown/butcher = 2,
/datum/action/cooldown/solarflare = 2,
/datum/action/cooldown/confusion = 2,
/datum/action/cooldown/lockpick = 2,
/datum/action/cooldown/lifesteal = 2,

/datum/action/innate/healthhud = 3,
/datum/action/innate/bulletproof = 3,
/datum/action/innate/battleready = 3,
/datum/action/innate/fleetfoot = 3,

/datum/action/cooldown/timestop = 4,
/datum/action/cooldown/reraise = 4,
/datum/action/cooldown/dismember = 4,
/datum/action/cooldown/warbanner = 4,
/datum/action/cooldown/warcry = 4,
/datum/action/cooldown/nuke = 4,
)

/obj/item/book/granter/action/skill/on_reading_finished(mob/user)
if (ishuman(user))
var/mob/living/carbon/human/human = user
var/user_level = get_civilian_level(human)
var/allowed_level1_skills = 3

if ((level != user_level && level != -1) )
to_chat(user, span_notice("Your level is [user_level]. This book need level [level]!"))
return FALSE
if (!(user?.mind?.assigned_role in list("Civilian", "Rat")))
to_chat(user, span_notice("Only Civilians and Rats can use this book!"))
if(user_level == 0 && level==1) //Specific check for Grade 9s, throw these bastards a bone
to_chat(user, span_notice("Your are able to get 5 skills of this level."))
allowed_level1_skills = 5

else
to_chat(user, span_notice("Your level is [user_level]. This book needs level [level]!"))
return FALSE
if (!(user?.mind?.assigned_role in list("Civilian")))
to_chat(user, span_notice("Only Civilians can use this book!"))
return FALSE

for(var/datum/action/A in user.actions)
if (actions_levels[A.type] == level)
if (actions_levels[A.type] == level && level == 1)
allowed_level1_skills -= 1
if(allowed_level1_skills == 0)
to_chat(user, span_notice("You are out of skills for this level!"))
return FALSE

if (actions_levels[A.type] == level && level != 1)
to_chat(user, span_notice("You already have a skill of this level!"))
return FALSE

Expand Down
Binary file modified icons/hud/screen_skills.dmi
Binary file not shown.
1 change: 1 addition & 0 deletions lobotomy-corp13.dme
Original file line number Diff line number Diff line change
Expand Up @@ -1311,6 +1311,7 @@
#include "code\game\objects\items\fixerskills\level3\hud.dm"
#include "code\game\objects\items\fixerskills\level4\dismember.dm"
#include "code\game\objects\items\fixerskills\level4\healing.dm"
#include "code\game\objects\items\fixerskills\level4\kys.dm"
#include "code\game\objects\items\fixerskills\level4\status_effects.dm"
#include "code\game\objects\items\fixerskills\level4\team.dm"
#include "code\game\objects\items\food\_food.dm"
Expand Down

0 comments on commit 4f3c6ed

Please sign in to comment.