summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2010-07-15 08:45:41 +0200
committerBardur Arantsson <bardur@scientician.net>2010-07-15 08:48:12 +0200
commit2c04e5788424ad6e69115b4e439101f1a9895a04 (patch)
tree11e167f08c5e73e4fe548687e632e3733ea2c28d /src
parent1ef448df8ecf64e7dd28328ba230191df77f76fa (diff)
Applied fixes and tweaks to Thaumaturgy by Lord Estraven.
Diffstat (limited to 'src')
-rw-r--r--src/spells1.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/spells1.c b/src/spells1.c
index 4d088f6c..a7b0ad41 100644
--- a/src/spells1.c
+++ b/src/spells1.c
@@ -9237,20 +9237,18 @@ void generate_spell(int plev)
power = rand_int(15);
dice = plev / 5;
- sides = plev * 2;
+ sides = plev;
mana = plev;
/* Make the spell more or less powerful. */
- dice += power / 5;
- sides += power / 2;
- mana += (plev * power) / 8;
+ dice += power;
+ sides += power;
+ mana += (plev * power) / 15;
/* Stay within reasonable bounds. */
if (dice < 1) dice = 1;
- if (dice > 10) dice = 10;
if (sides < 5) sides = 5;
- if (sides > 100) sides = 100;
if (mana < 1) mana = 1;
@@ -9267,8 +9265,9 @@ void generate_spell(int plev)
if (plev == 1 || chance < 25)
{
rspell->proj_flags |= PROJECT_STOP;
- rspell->dam_dice = dice;
- rspell->dam_sides = sides;
+ /* Swap dice and sides for better damage */
+ rspell->dam_dice = sides;
+ rspell->dam_sides = dice;
rspell->radius = 0;
}
else if (chance < 50)
@@ -9281,9 +9280,9 @@ void generate_spell(int plev)
else if (chance < 76)
{
rspell->proj_flags |= PROJECT_STOP;
- rspell->radius = dice;
- rspell->dam_dice = sides;
- rspell->dam_sides = 1;
+ rspell->radius = dice / 3;
+ rspell->dam_dice = dice;
+ rspell->dam_sides = sides;
ball_desc = TRUE;
}
else if (chance < 83)
@@ -9299,8 +9298,9 @@ void generate_spell(int plev)
else if (chance < 90)
{
rspell->proj_flags |= PROJECT_METEOR_SHOWER;
- rspell->dam_dice = dice;
- rspell->dam_sides = sides;
+ /* Area effect spells do way less damage "per shot" */
+ rspell->dam_dice = dice / 5;
+ rspell->dam_sides = sides / 5;
rspell->radius = sides / 3;
if (rspell->radius < 4) rspell->radius = 4;
@@ -9309,8 +9309,9 @@ void generate_spell(int plev)
else
{
rspell->proj_flags |= PROJECT_VIEWABLE;
+ /* View spells do less damage */
rspell->dam_dice = dice;
- rspell->dam_sides = sides;
+ rspell->dam_sides = sides / 2;
}
/* Both a destructive and a simple spell requested --