Commit Graph
10 Commits
Author SHA1 Message Date
azazel d2d62eab50 Cleanup: implemented helper methods for manipulating percentage calculation and used it where appropriate (plus fixed some other warnings).
NOTE: Initially I just wanted to fix some warnings, but noticed that there is no common method for percentage calculation and various formulas are used many time in the code making it difficult to read and understand what the code actually does. So, I introduced several template methods for calculating percent values and adding those values to the original base. I replaced all the raw calculations throughout the code where found, but I could have missed something or could have made a mistake. So, please report any strange behaviour after this commit.
If you ask me why I did it: for the sake of consistency and exact understanding what code means. If you see CalculatePct method, you clearly understand, that it find the value of x percent of y. And you can easily express, for example, spell behviour "reduces smth by x%" by the means of a method instead of recalling school maths.

--HG--
branch : trunk
2010-12-11 20:37:38 +06:00
QAston 1760e42e2c Core/ScriptSystem: Add compile time type check of function assigned to hooks - prevents incorrect function calls. Since this rev you have to put PrepareSpellScript(<yourscriptclassnamehere>) at the beginning of every spell script. Yes, i know it's unhandy, but unfortunately C++ preprocessor is very limited, so you have to do that extra work each time you write a script:(.
--HG--
branch : trunk
2010-10-08 21:33:44 +02:00
azazel 341e6303ef Core:
* add helping methods for manipulating unit's health and use it where applicable
* fix some conversion warnings and cleanup code (formatting, CRLF, tabs to spaces)

--HG--
branch : trunk
2010-08-26 01:20:57 +06:00
QAston 07a3a1254b *Add AuraScript class for scripting aura objects - scripts are registered same way as SpellScripts, bound to SpellScriptNames table. For more details see example_spell.cpp and SpellScript.h
*Rename SpellHandlerScript to SpellScriptLoader, EffectHandlerFn to SpellEffectFn, HitHandlerFn to SpellHitFn, SpellScript::EffectHandlers to SpellScript::OnEffect, these changes were neccesary to prevent namespace collisions, happily you can solve these by simple find and replace
*Make spells 66244 and 5581 example scripts.

--HG--
branch : trunk
2010-08-24 00:10:49 +02:00
Spp 58e94dcb9d Core: Fix more warnings
--HG--
branch : trunk
2010-08-23 14:10:24 +02:00
azazel 66fcd52106 Add more methods to SpellScript.
Spells cleanup: move spells from the core to scripts.

* Shaman spells: 39610 Mana Tide Totem, 1535 Fire Nova (and ranks)
* Death Knight spells: 55090 Scourge Strike (and ranks), 49158 Corpse Explosion (and ranks), 50524 Runic Power Feed
* Druid spells: 54846 Glyph of Starfire
* Warlock spells: 6201 Create Healthstone (and ranks), 47422 Everlasting Affliction, 47193 Demonic Empowerment, 63521 Guarded by The Light
* Hunter spells: 37506 Scatter Shot, 53412 Invigoration, 53209 Chimera Shot
* Quest spells: 45449 Arcane Prisoner Rescue (quest 11587), 46023 The Ultrasonic Screwdriver (quest 11730). Closes issue #3068

Clean old code for hunter's Heart of the Phoenix, move script effect of hunter's Master's Call to corresponding script.
Move DK's Hungering Cold to spell_scripts table (needs DB support)

--HG--
branch : trunk
2010-08-18 00:20:23 +06:00
click 1f80c7b3c0 Sourcefile sleanups -> tabs to spaces, remove whitespace - also update the cleanupscripts very slightly
--HG--
branch : trunk
2010-08-08 19:45:53 +02:00
silinoron 14459bc467 Convert spell scripts to new system.
--HG--
branch : trunk
2010-08-06 11:35:39 -07:00
XTZGZoReX 7f6fe6394c * Converted hunter spell scripts to the new format (mostly for example purposes for the rest of the team).
--HG--
branch : trunk
2010-08-06 19:46:02 +02:00
silinoron 5977a76d96 Move spell scripts from src/server/scripts/World to src/server/scripts/Spells
--HG--
branch : trunk
rename : src/server/scripts/World/spell_dk.cpp => src/server/scripts/Spells/spell_dk.cpp
rename : src/server/scripts/World/spell_druid.cpp => src/server/scripts/Spells/spell_druid.cpp
rename : src/server/scripts/World/spell_generic.cpp => src/server/scripts/Spells/spell_generic.cpp
rename : src/server/scripts/World/spell_hunter.cpp => src/server/scripts/Spells/spell_hunter.cpp
rename : src/server/scripts/World/spell_mage.cpp => src/server/scripts/Spells/spell_mage.cpp
rename : src/server/scripts/World/spell_paladin.cpp => src/server/scripts/Spells/spell_paladin.cpp
rename : src/server/scripts/World/spell_priest.cpp => src/server/scripts/Spells/spell_priest.cpp
rename : src/server/scripts/World/spell_rogue.cpp => src/server/scripts/Spells/spell_rogue.cpp
rename : src/server/scripts/World/spell_shaman.cpp => src/server/scripts/Spells/spell_shaman.cpp
rename : src/server/scripts/World/spell_warlock.cpp => src/server/scripts/Spells/spell_warlock.cpp
rename : src/server/scripts/World/spell_warrior.cpp => src/server/scripts/Spells/spell_warrior.cpp
2010-07-26 15:40:08 -07:00