Reworked the equation so that you gain a constant cooldown reduction per rank

Additionally all spells can now use all 5 spell points now (though the functionality to have spells that don't follow this rule is still there).
The new variable "cooldown_min" defines (in deciseconds) what the cooldown should be if all 5 spell points are used on it.
For example if you had a 100 charge_max and a 60 cooldown_min, every rank used on that spell would reduce charge_max by 10
Specifics of how the cooldown is affected for each spell has been commented in
This commit is contained in:
Incoming
2013-09-14 17:50:34 -04:00
parent e6af82a2e5
commit 6cf018d5a2
7 changed files with 24 additions and 21 deletions
+3 -2
View File
@@ -26,8 +26,9 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
var/range = 7 //the range of the spell; outer radius for aoe spells
var/message = "" //whatever it says to the guy affected by it
var/selection_type = "view" //can be "range" or "view"
var/spell_level = 1 //if a spell can be taken multiple times, this raises
var/level_max = 1 //The max possible level_max is 5, but most spells cap lower for balancing reasons
var/spell_level = 0 //if a spell can be taken multiple times, this raises
var/level_max = 4 //The max possible level_max is 4
var/cooldown_min = 0 //This defines what spell quickened four timeshas as a cooldown. Make sure to set this for every spell
var/overlay = 0
var/overlay_icon = 'icons/obj/wizard.dmi'
+1 -1
View File
@@ -8,7 +8,7 @@
invocation = "none"
invocation_type = "none"
range = -1
level_max = 3
cooldown_min = 100 //50 deciseconds reduction per rank
include_user = 1
centcom_cancast = 0 //Prevent people from getting to centcom
+1 -1
View File
@@ -10,7 +10,7 @@
invocation = "KN'A FTAGHU, PUCK 'BTHNK!"
invocation_type = "shout"
range = 7
level_max = 5
cooldown_min = 30 //30 deciseconds reduction per rank
selection_type = "range"
var/list/compatible_mobs = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
+1 -1
View File
@@ -8,7 +8,7 @@
invocation = "AULIE OXIN FIERA"
invocation_type = "whisper"
range = 3
level_max = 2
cooldown_min = 20 //20 deciseconds reduction per rank
/obj/effect/proc_holder/spell/aoe_turf/knock/cast(list/targets)
for(var/turf/T in targets)
+1 -1
View File
@@ -8,7 +8,7 @@
invocation = "GIN'YU CAPAN"
invocation_type = "whisper"
range = 1
level_max = 3
cooldown_min = 200 //100 deciseconds reduction per rank
var/list/protected_roles = list("Wizard","Changeling","Cultist") //which roles are immune to the spell
var/list/compatible_mobs = list(/mob/living/carbon/human,/mob/living/carbon/monkey) //which types of mobs are affected by the spell. NOTE: change at your own risk
var/base_spell_loss_chance = 20 //base probability of the wizard losing a spell in the process
+12 -10
View File
@@ -8,7 +8,7 @@
invocation = "FORTI GY AMA"
invocation_type = "shout"
range = 7
level_max = 2
cooldown_min = 75 //19 deciseconds reduction per rank
max_targets = 0
@@ -43,6 +43,7 @@
mutations = list(LASER, HULK)
duration = 300
cooldown_min = 300 //25 deciseconds reduction per rank
/obj/effect/proc_holder/spell/targeted/inflict_handler/disintegrate
name = "Disintegrate"
@@ -54,7 +55,7 @@
invocation = "EI NATH"
invocation_type = "shout"
range = 1
level_max = 3
cooldown_min = 200 //100 deciseconds reduction per rank
destroys = "gib_brain"
@@ -72,7 +73,7 @@
invocation_type = "none"
range = -1
include_user = 1
level_max = 5
cooldown_min = 20 //25 deciseconds reduction per rank
smoke_spread = 2
smoke_amt = 10
@@ -86,7 +87,7 @@
invocation_type = "shout"
range = -1
include_user = 1
level_max = 4
cooldown_min = 200 //50 deciseconds reduction per rank
emp_heavy = 6
emp_light = 10
@@ -102,7 +103,8 @@
invocation_type = "none"
range = -1
include_user = 1
level_max = 5
cooldown_min = 5 //4 deciseconds reduction per rank
smoke_spread = 1
smoke_amt = 10
@@ -123,7 +125,7 @@
invocation_type = "shout"
range = -1
include_user = 1
level_max = 3
cooldown_min = 200 //100 deciseconds reduction per rank
smoke_spread = 1
smoke_amt = 5
@@ -138,7 +140,7 @@
invocation = "TARCOL MINTI ZHERI"
invocation_type = "whisper"
range = 0
level_max = 5
cooldown_min = 50 //12 deciseconds reduction per rank
summon_type = list("/obj/effect/forcefield")
summon_lifespan = 300
@@ -196,7 +198,7 @@
invocation = "STI KALY"
invocation_type = "whisper"
message = "\blue Your eyes cry out in pain!"
level_max = 5
cooldown_min = 50 //12 deciseconds reduction per rank
starting_spells = list("/obj/effect/proc_holder/spell/targeted/inflict_handler/blind","/obj/effect/proc_holder/spell/targeted/genetic/blind")
@@ -219,7 +221,7 @@
invocation = "STAUN EI"
invocation_type = "shout"
amt_stunned = 2//just exists to make sure the statue "catches" them
level_max = 4
cooldown_min = 100 //125 deciseconds reduction per rank
summon_type = "/obj/structure/closet/statue"
@@ -233,7 +235,7 @@
invocation = "ONI SOMA"
invocation_type = "shout"
range = 20
level_max = 3
cooldown_min = 20 //10 deciseconds reduction per rank
proj_icon_state = "fireball"
proj_name = "a fireball"
+5 -5
View File
@@ -162,20 +162,20 @@
else
aspell.name = initial(aspell.name)
aspell.spell_level++
aspell.charge_max = initial(aspell.charge_max) / aspell.spell_level
aspell.charge_max = round(initial(aspell.charge_max) - aspell.spell_level * (initial(aspell.charge_max) - aspell.cooldown_min)/ aspell.level_max)
if(aspell.charge_max < aspell.charge_counter)
aspell.charge_counter = aspell.charge_max
switch(aspell.spell_level)
if(2)
if(1)
temp = "You have improved [aspell.name] into Efficient [aspell.name]."
aspell.name = "Efficient [aspell.name]"
if(3)
if(2)
temp = "You have further improved [aspell.name] into Quickened [aspell.name]."
aspell.name = "Quickened [aspell.name]"
if(4)
if(3)
temp = "You have further improved [aspell.name] into Free [aspell.name]."
aspell.name = "Free [aspell.name]"
if(5)
if(4)
temp = "You have further improved [aspell.name] into Instant [aspell.name]."
aspell.name = "Instant [aspell.name]"
if(aspell.spell_level >= aspell.level_max)