diff options
-rw-r--r-- | changes.txt | 8 | ||||
-rw-r--r-- | src/spells1.c | 29 |
2 files changed, 23 insertions, 14 deletions
diff --git a/changes.txt b/changes.txt index 9e90e2ec..6bd3d630 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,11 @@ +T.o.M.E 2.3.9 (ah) + +Game: + +- Fixes and tweaks for Thaumaturgy to make view/area spells less + overpowered and to make bolt/ball spells more useful. (Credit + goes to Lord Estraven.) + T.o.M.E 2.3.8 (ah) Game: 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 -- |