From 13baacbe5475281a46120777d7c0544472aa01a5 Mon Sep 17 00:00:00 2001 From: scrubmcnoob Date: Sat, 21 Jan 2017 18:28:02 -0500 Subject: [PATCH 1/5] Shadowling Thrall Scaling Shadowlings now have a scaling thrall count for acension dependent on amount of players. Min amount of thralls is limited to 15 as normal. Max amount of thralls is capped to 40. Formula is Players/2.5 Just happens 100 players is exactly 40 thralls. Looking at a balancing standpoint, most can agree right now that shadowlings only needing 15 thralls on 100+ rounds is way too little and prematurely ends the round before things can get really heated up. Also the game mode's minimum playercount is 30, to which it still expects you to convert half the station to thralls, 15. This formula is much less drastic than that but still raises the count. Thanks to Kyet for writing this and explaining the in&outs of the code, and helping me with this. --- code/game/gamemodes/shadowling/shadowling.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm index 548bf1cf6ad..d2cca5cd1a5 100644 --- a/code/game/gamemodes/shadowling/shadowling.dm +++ b/code/game/gamemodes/shadowling/shadowling.dm @@ -97,6 +97,14 @@ Made by Xhuis shadow.special_role = SPECIAL_ROLE_SHADOWLING shadow.restricted_roles = restricted_jobs shadowlings-- + + var/num_players = num_players() + required_thralls = round(num_players / 2.5) + if(required_thralls < 15) + required_thralls = 15 + if(required_thralls > 40) + required_thralls = 40 + ..() return 1 From acfee0a4041a9039d25d67d95a8e14edf1f362d1 Mon Sep 17 00:00:00 2001 From: scrubmcnoob Date: Sat, 21 Jan 2017 21:34:19 -0500 Subject: [PATCH 2/5] Reworks Max Thralls and changes Thrall abilities --- code/game/gamemodes/shadowling/shadowling.dm | 7 ++-- .../shadowling/shadowling_abilities.dm | 39 ++----------------- 2 files changed, 6 insertions(+), 40 deletions(-) diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm index d2cca5cd1a5..00ad8f9c167 100644 --- a/code/game/gamemodes/shadowling/shadowling.dm +++ b/code/game/gamemodes/shadowling/shadowling.dm @@ -99,11 +99,11 @@ Made by Xhuis shadowlings-- var/num_players = num_players() - required_thralls = round(num_players / 2.5) + required_thralls = round(num_players / 3) if(required_thralls < 15) required_thralls = 15 - if(required_thralls > 40) - required_thralls = 40 + if(required_thralls > 30) + required_thralls = 30 ..() return 1 @@ -158,7 +158,6 @@ Made by Xhuis update_shadow_icons_added(new_thrall_mind) new_thrall_mind.current.create_attack_log("Became a thrall") new_thrall_mind.current.add_language("Shadowling Hivemind") - new_thrall_mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/lesser_glare(null)) new_thrall_mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/lesser_shadow_walk(null)) new_thrall_mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/shadow_vision/thrall(null)) to_chat(new_thrall_mind.current, "You see the truth. Reality has been torn away and you realize what a fool you've been.") diff --git a/code/game/gamemodes/shadowling/shadowling_abilities.dm b/code/game/gamemodes/shadowling/shadowling_abilities.dm index 8c67e8a807d..40253048d57 100644 --- a/code/game/gamemodes/shadowling/shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/shadowling_abilities.dm @@ -1,4 +1,4 @@ -#define EMPOWERED_THRALL_LIMIT 5 +#define EMPOWERED_THRALL_LIMIT 10 /obj/effect/proc_holder/spell/proc/shadowling_check(var/mob/living/carbon/human/H) if(!H || !istype(H)) return @@ -49,39 +49,6 @@ M.AdjustSilence(10) -/obj/effect/proc_holder/spell/targeted/lesser_glare - name = "Lesser Glare" - desc = "Stuns and mutes a target for a short duration." - panel = "Thrall Abilities" - charge_max = 450 - clothes_req = 0 - action_icon_state = "glare" - -/obj/effect/proc_holder/spell/targeted/lesser_glare/cast(list/targets) - for(var/mob/living/carbon/human/target in targets) - if(!ishuman(target) || !target) - to_chat(usr, "You nay only glare at humans!") - charge_counter = charge_max - return - if(target.stat) - to_chat(usr, "[target] must be conscious!") - charge_counter = charge_max - return - if(is_shadow_or_thrall(target)) - to_chat(usr, "You cannot glare at allies!") - charge_counter = charge_max - return - var/mob/living/carbon/human/M = target - usr.visible_message("[usr]'s eyes flash a blinding red!") - target.visible_message("[target] freezes in place, their eyes glazing over...") - if(in_range(target, usr)) - to_chat(target, "Your gaze is forcibly drawn into [usr]'s eyes, and you are mesmerized by the heavenly lights...") - else - to_chat(target, "Red lights suddenly dance in your vision, and you are mesmerized by their heavenly beauty...") - target.Stun(3) //Roughly 30% as long as the normal one - M.AdjustSilence(3) - - /obj/effect/proc_holder/spell/aoe_turf/veil name = "Veil" desc = "Extinguishes most nearby light sources." @@ -672,12 +639,12 @@ sleep(20) thrallToRevive.visible_message("[thrallToRevive] slowly rises, no longer recognizable as human.", \ "You feel new power flow into you. You have been gifted by your masters. You now closely resemble them. You are empowered in \ - darkness but wither slowly in light. In addition, Lesser Glare and Guise have been upgraded into their true forms.") + darkness but wither slowly in light. In addition, you now have glare, veil, and true shadow walk.") thrallToRevive.set_species("Lesser Shadowling") - thrallToRevive.mind.RemoveSpell(/obj/effect/proc_holder/spell/targeted/lesser_glare) thrallToRevive.mind.RemoveSpell(/obj/effect/proc_holder/spell/targeted/lesser_shadow_walk) thrallToRevive.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/glare(null)) thrallToRevive.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/shadow_walk(null)) + thrallToRevive.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/veil(null)) if("Revive") if(!is_thrall(thrallToRevive)) to_chat(usr, "[thrallToRevive] is not a thrall.") From 06f9ae70385d1be2dfd7a9b9974fc9cb601cf8f7 Mon Sep 17 00:00:00 2001 From: scrubmcnoob Date: Sun, 22 Jan 2017 00:32:10 -0500 Subject: [PATCH 3/5] Clamp to 25 --- code/game/gamemodes/shadowling/shadowling.dm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm index 00ad8f9c167..104026d5719 100644 --- a/code/game/gamemodes/shadowling/shadowling.dm +++ b/code/game/gamemodes/shadowling/shadowling.dm @@ -100,10 +100,7 @@ Made by Xhuis var/num_players = num_players() required_thralls = round(num_players / 3) - if(required_thralls < 15) - required_thralls = 15 - if(required_thralls > 30) - required_thralls = 30 + required_thralls = Clamp(required_thralls, 15, 25) ..() return 1 From 9312d831ae532b96be3d0e20305692926c0a1de0 Mon Sep 17 00:00:00 2001 From: scrubmcnoob Date: Mon, 23 Jan 2017 18:07:38 -0500 Subject: [PATCH 4/5] Lesser Slings count back to 5 and lose veil --- code/game/gamemodes/shadowling/shadowling_abilities.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/shadowling/shadowling_abilities.dm b/code/game/gamemodes/shadowling/shadowling_abilities.dm index 40253048d57..6c8f13ff317 100644 --- a/code/game/gamemodes/shadowling/shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/shadowling_abilities.dm @@ -1,4 +1,4 @@ -#define EMPOWERED_THRALL_LIMIT 10 +#define EMPOWERED_THRALL_LIMIT 5 /obj/effect/proc_holder/spell/proc/shadowling_check(var/mob/living/carbon/human/H) if(!H || !istype(H)) return @@ -639,12 +639,11 @@ sleep(20) thrallToRevive.visible_message("[thrallToRevive] slowly rises, no longer recognizable as human.", \ "You feel new power flow into you. You have been gifted by your masters. You now closely resemble them. You are empowered in \ - darkness but wither slowly in light. In addition, you now have glare, veil, and true shadow walk.") + darkness but wither slowly in light. In addition, you now have glare and true shadow walk.") thrallToRevive.set_species("Lesser Shadowling") thrallToRevive.mind.RemoveSpell(/obj/effect/proc_holder/spell/targeted/lesser_shadow_walk) thrallToRevive.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/glare(null)) thrallToRevive.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/shadow_walk(null)) - thrallToRevive.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/veil(null)) if("Revive") if(!is_thrall(thrallToRevive)) to_chat(usr, "[thrallToRevive] is not a thrall.") From 409d9ecdae43a66eaa66b871fdf1a96a8693d617 Mon Sep 17 00:00:00 2001 From: scrubmcnoob Date: Tue, 24 Jan 2017 06:53:32 -0500 Subject: [PATCH 5/5] Tweaks --- code/game/gamemodes/shadowling/shadowling.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm index 104026d5719..528d9396e51 100644 --- a/code/game/gamemodes/shadowling/shadowling.dm +++ b/code/game/gamemodes/shadowling/shadowling.dm @@ -98,9 +98,8 @@ Made by Xhuis shadow.restricted_roles = restricted_jobs shadowlings-- - var/num_players = num_players() - required_thralls = round(num_players / 3) - required_thralls = Clamp(required_thralls, 15, 25) + var/thrall_scaling = round(num_players() / 3) + required_thralls = Clamp(thrall_scaling, 15, 25) ..() return 1