Skip to content

Commit

Permalink
Remove various wands
Browse files Browse the repository at this point in the history
Cold, fire, frost, magic darts, and invisibility. Wands
of lightning, draining, fireball, and flame are
now more common. Random Effects still chooses from the old wand
effects, primarily because I'd be sad if it could no longer turn
enemies invisible; that means it's now open to being changed
further, of course.

The primary reasoning here is that, as we've added new evocables
and other items, we haven't made any compensating removals; this
means that players inventories are more cluttered (which presents
annoying UI issues) and have an excess of tactical options. The
current set of wands is at least a decade old (!), which makes it
low-hanging fruit for pruning.

Darts, frost, fire & cold are all quite bland; flame covers the
former two just fine, and draining, lightning & fireball, while
not quite as strong as fire/cold, make a more distinctive trio.
(If the latter two get used a little more, that'd be a bonus.)
Invisibility is still available on potions, randarts, and as a
spell; it also doesn't have the ally synergy that the other buff
wands have.
  • Loading branch information
PleasingFungus committed Jan 29, 2016
1 parent b7aa92a commit 6f661db
Show file tree
Hide file tree
Showing 35 changed files with 137 additions and 212 deletions.
16 changes: 6 additions & 10 deletions crawl-ref/source/acquire.cc
Expand Up @@ -764,29 +764,25 @@ static int _tele_wand_weight(bool divine)
*/
static int _acquirement_wand_subtype(bool divine, int & /*quantity*/)
{
// basic total: 140
vector<pair<wand_type, int>> weights = {
// normally 25
{ WAND_HEAL_WOUNDS, _hw_wand_weight(divine) },
{ WAND_HASTING, _haste_wand_weight(divine) },
// normally 15
{ WAND_TELEPORTATION, _tele_wand_weight(divine) },
{ WAND_FIRE, 8 },
{ WAND_COLD, 8 },
{ WAND_LIGHTNING, 8 },
{ WAND_DRAINING, 8 },
{ WAND_INVISIBILITY, 8 },
{ WAND_FIREBALL, 8 },
{ WAND_DIGGING, 5 },
{ WAND_LIGHTNING, 16 },
{ WAND_DRAINING, 16 },
{ WAND_FIREBALL, 16 },
{ WAND_DISINTEGRATION, 5 },
{ WAND_DIGGING, 5 },
{ WAND_POLYMORPH, 5 },
{ WAND_ENSLAVEMENT, player_mutation_level(MUT_NO_LOVE) ? 0 : 5 },
{ WAND_RANDOM_EFFECTS, 3 },
{ WAND_FLAME, 1 },
{ WAND_FROST, 1 },
{ WAND_CONFUSION, 1 },
{ WAND_PARALYSIS, 1 },
{ WAND_SLOWING, 1 },
{ WAND_MAGIC_DARTS, 1 },
{ WAND_RANDOM_EFFECTS, 1 },
};

// Unknown wands get a huge weight bonus.
Expand Down
7 changes: 3 additions & 4 deletions crawl-ref/source/dat/des/altar/lugonu_bribe.des
Expand Up @@ -31,8 +31,7 @@ function callback.tgw_lugonu_bribe_lugonu_item (data, triggerable,
Cheibriados="wand of hasting ident:type w:5 /\
potion of haste ident:type q:2-4 /\
good_item quick blade",
Dithmenos="wand of fire ident:type /\
lamp of fire w:5 / rod of ignition w:5 /\
Dithmenos="lamp of fire w:5 / rod of ignition w:5 /\
good_item " .. weapon .. " ego:flaming ident:type",
Elyvilon="lantern of shadows / book of Necromancy w:5 /\
book of Death w:5 / book of Unlife w:5",
Expand All @@ -55,8 +54,8 @@ function callback.tgw_lugonu_bribe_lugonu_item (data, triggerable,
Qazlal="no",
Ru="no",
["Sif Muna"]="no",
["the Shining One"]="wand of invisibility ident:type /\
book of Envenomations / Young Poisoner's Handbook /\
["the Shining One"]="book of Envenomations /\
Young Poisoner's Handbook /\
potion of invisibility ident:type q:3-6",
Trog="manual of Spellcasting / manual of Air Magic w:5 /\
manual of Earth Magic w:5 / manual of Fire Magic w:5 /\
Expand Down
22 changes: 10 additions & 12 deletions crawl-ref/source/dat/des/altar/overflow.des
Expand Up @@ -1581,11 +1581,11 @@ SHUFFLE: cvb
})
local corpse = mon .. ' corpse'
local wands = 'wand of flame charges:0 ident:pluses / ' ..
'wand of frost charges:0 ident:pluses / ' ..
'wand of magic darts charges:0 ident:pluses '
'wand of confusion charges:0 ident:pluses / ' ..
'wand of slowing charges:0 ident:pluses '

if (mon == 'kobold' and crawl.coinflip()) then
kmons("G = kobold; wand of flame | wand of frost | wand of magic darts")
kmons("G = kobold; wand of flame | wand of confusion | wand of slowing")
dgn.delayed_decay_extra(_G, 'h', 'troll corpse / ogre corpse' )
else
dgn.delayed_decay_extra(_G, 'G', corpse, wands )
Expand Down Expand Up @@ -1628,7 +1628,7 @@ MAP
ENDMAP

# P altar with gadget shop
# 90% basic wands (frost, flame, darts). ~150 to 250 gold
# 90% basic wands (frost, confusion, slowing). ~150 to 250 gold
# 10% any wand and will be expensive
NAME: johnstein_pakellas_shop
DEPTH: D:2-
Expand All @@ -1637,8 +1637,8 @@ KFEAT: _ = altar_pakellas
KFEAT: S = gadget shop name:Pakellas type:Prime suffix:Provisions \
greed:30 count:3 ;\
wand of flame charges:15 w:30 |\
wand of frost charges:15 w:30 |\
wand of magic darts charges:15 w:30 |\
wand of confusion charges:15 w:30 |\
wand of slowing charges:15 w:30 |\
any wand
: interest_check(_G)
MAP
Expand Down Expand Up @@ -2283,9 +2283,9 @@ TAGS: uniq_altar_vehumet temple_overflow_1 temple_overflow_vehumet
TAGS: transparent patrolling
DEPTH: D:3-9
KFEAT: _ = altar_vehumet
MONS: goblin; wand of flame | wand of frost | wand of magic darts /\
hobgoblin; wand of flame | wand of frost | wand of magic darts /\
kobold; wand of flame | wand of frost | wand of magic darts
MONS: goblin; wand of flame /\
hobgoblin; wand of flame /\
kobold; wand of flame
MAP
.......
...x...
Expand Down Expand Up @@ -2970,9 +2970,7 @@ TAGS: temple_overflow_2 temple_overflow_makhleb temple_overflow_vehumet
DEPTH: D:3-9
KFEAT: A = altar_makhleb
KFEAT: B = altar_vehumet
MONS: crimson imp ; wand of magic darts charges:1 | \
wand of flame charges:1 | \
wand of frost charges:1
MONS: crimson imp ; wand of flame charges:1
MAP
xxxxx
xxA.Bxx
Expand Down
12 changes: 5 additions & 7 deletions crawl-ref/source/dat/des/branches/abyss.des
Expand Up @@ -724,10 +724,9 @@ WEIGHT: 5
MONS: rakshasa, guardian serpent / great orb of eyes
ITEM: potion of might / potion of haste / potion of heal wounds w:12 / \
wand of lightning / wand of draining / wand of slowing w:5 / \
wand of confusion w:5 / wand of fire w:1 / wand of cold w:1 / \
ring mail good_item / chain mail good_item w:12 / shield / \
spear good_item / trident good_item / any weapon w:12 / \
any w:2
wand of confusion w:5 / ring mail good_item / \
chain mail good_item w:12 / shield / spear good_item / \
trident good_item / any weapon w:12 / any w:2
SUBST: x = ccccvbb
MAP
.x.x
Expand Down Expand Up @@ -1426,9 +1425,8 @@ KMONS: e = crystal guardian
KITEM: 24d = scroll of random uselessness w:15 q:1 / fruit q:1 w:5 / \
club w:5 / stone q:1 / needle q:1 ego:confusion / \
mundane animal skin / mundane ring mail / gold q:1
KITEM: 13e = wand of slowing / wand of confusion / wand of magic darts / \
wand of flame w:5 / wand of frost w:5 / plain deck w:5 / \
whip not_cursed w:2 / hat not_cursed mundane w:5
KITEM: 13e = wand of slowing / wand of confusion / wand of flame w:5 / \
plain deck w:5 / whip not_cursed w:2 / hat not_cursed mundane w:5
KITEM: f = abyssal rune of zot mimic
KITEM: g = abyssal rune of zot
SHUFFLE: 14 / 23
Expand Down
6 changes: 3 additions & 3 deletions crawl-ref/source/dat/des/branches/depths_encompass.des
Expand Up @@ -649,7 +649,7 @@ MONS: deep elf mage / deep elf knight w:7 / wizard / ogre mage / \
centaur warrior w:8 ; shortbow ego:flaming | shortbow ego:freezing . arrow / \
two-headed ogre w:5 ; great mace ego:freezing ident:type . \
great mace ego:flaming ident:type / efreet w:5 / \
rakshasa w:5 ; wand of flame | wand of frost . whip . robe
rakshasa w:5 ; wand of flame . whip . robe
MONS: ugly thing w:15 / shapeshifter / unseen horror w:15 / \
chaos spawn / fire elemental / water elemental w:5 / \
air elemental / earth elemental w:5 / mana viper w:5 / \
Expand All @@ -663,7 +663,7 @@ MONS: ugly thing w:15 / shapeshifter / unseen horror w:15 / \
MONS: frost giant w:5 / fire giant w:5 / naga mage w:15 / hell knight w:5 / \
salamander mystic w:5 / spriggan air mage / deep troll earth mage / \
yaktaur captain ; arbalest ego:flaming | arbalest ego:freezing . bolt / \
rakshasa w:5 ; robe . wand of fire | wand of cold . \
rakshasa w:5 ; robe . wand of draining | wand of lightning . \
glaive w:2 ego:flaming | glaive w:2 ego:freezing
MONS: lorocyproca w:5 / fire dragon perm_ench:shapeshifter w:12 / fire dragon w:3 / \
ice dragon perm_ench:shapeshifter w:12 / ice dragon w:3 / \
Expand All @@ -676,7 +676,7 @@ MONS: lorocyproca w:5 / fire dragon perm_ench:shapeshifter w:12 / fire dragon
great mace ego:flaming | great mace ego:freezing
KMONS: A = fire giant ; battleaxe ego:freezing ident:type
KMONS: B = frost giant ; great sword ego:flaming ident:type
KMONS: C = rakshasa ; robe good_item . wand of cold | wand of fire | \
KMONS: C = rakshasa ; robe good_item . wand of draining | \
wand of lightning . \
glaive ego:freezing | glaive ego:flaming . \
potion of heal wounds | potion of might | \
Expand Down
2 changes: 1 addition & 1 deletion crawl-ref/source/dat/des/branches/elf.des
Expand Up @@ -782,7 +782,7 @@ MONS: deep elf annihilator / deep elf death mage / deep elf demonologist
KFEAT: v = general shop type:Elven suffix:Fire count:7 ; \
w:10 ring of fire | w:5 scroll of immolation | w:10 ring of protection from fire | \
w:4 any weapon ego:flaming | w:4 shortbow ego:flaming | w:12 arrow ego:flame | \
w:7 wand of flame | w:5 wand of fire | w:3 wand of fireball | \
w:7 wand of flame | w:8 wand of fireball | \
w:4 staff of fire | w:17 randbook disc:fire | w:6 robe ego:fire_resistance | \
w:9 any armour ego:fire_resistance
SUBST: ? = .l1
Expand Down
4 changes: 2 additions & 2 deletions crawl-ref/source/dat/des/branches/hell.des
Expand Up @@ -77,7 +77,7 @@ MONS: crimson imp / red devil / hellwing / hell hound
MONS: hellion / balrug / soul eater / smoke demon
ITEM: good_item demon blade / good_item demon whip / \
good_item demon trident / wand of draining ident:type
ITEM: wand of fire ident:type / ring of fire ident:type / Necronomicon / \
ITEM: ring of fire ident:type / Necronomicon / \
grand grimoire / scroll of torment ident:type
SUBST: d=de, ?:?.l, ?=l.
: hell_entry_feature(_G, 'A')
Expand Down Expand Up @@ -113,7 +113,7 @@ MONS: crimson imp / red devil / hellwing / hell hound
MONS: hellion / balrug / soul eater w:20 / smoke demon w:20
ITEM: good_item demon blade / good_item demon whip /\
good_item demon trident / wand of draining ident:type
ITEM: wand of fire ident:type / ring of fire ident:type / Necronomicon / \
ITEM: ring of fire ident:type / Necronomicon / \
grand grimoire / scroll of torment ident:type
ITEM: good_item demon blade / good_item demon whip /\
good_item demon trident / w:30 nothing
Expand Down
5 changes: 3 additions & 2 deletions crawl-ref/source/dat/des/branches/zot.des
Expand Up @@ -971,7 +971,8 @@ KMONS: F = shard shrike
MARKER: F = lua:fog_machine { cloud_type = "freezing vapour", \
pow_min = 5, pow_max = 15, delay = 10, size = 2, \
walk_dist = 0, spread_rate= 0 }
ITEM: wand of cold, staff of cold, book of frost, book of ice
# dubious item here
ITEM: wand of draining, staff of cold, book of frost, book of ice
SUBST: w = l
SUBST: W = l..
: else
Expand All @@ -980,7 +981,7 @@ KMONS: F = salamander stormcaller
MARKER: F = lua:fog_machine { cloud_type = "flame", pow_min = 5, \
pow_max = 15, delay = 10, size = 2, walk_dist = 0, \
spread_rate= 0 }
ITEM: wand of fire, staff of fire, book of flames, book of fire
ITEM: wand of fireball, staff of fire, book of flames, book of fire
: end
SUBST: 1 = 112.
SUBST: 2 = 221.
Expand Down
10 changes: 5 additions & 5 deletions crawl-ref/source/dat/des/builder/alphashops.des
Expand Up @@ -68,7 +68,7 @@
elseif s == "C" then i = "book of callings | " ..
"book of cantrips | book of changes | book of conjurations | " ..
"centaur barding | chain mail | club | crystal ball of energy | " ..
"crystal plate armour | rod of clouds | wand of cold | " ..
"crystal plate armour | rod of clouds | " ..
"potion of cancellation | potion of cure mutation | " ..
"book of clouds | cloak | staff of cold | wand of confusion | " ..
"staff of conjuration | deck of changes | manual of crossbows | " ..
Expand All @@ -90,9 +90,9 @@

elseif s == "F" then i = "book of fire | book of flames | flail | " ..
"book of frost | falchion | fan of gales | fire dragon armour | " ..
"wand of fire | potion of flight | ring of fire | scroll of fear | " ..
"potion of flight | ring of fire | scroll of fear | " ..
"fen folio | ring of flight | scroll of fog | staff of fire | " ..
"wand of fireball | fruit | wand of flame | wand of frost | " ..
"wand of fireball | fruit | wand of flame | " ..
"manual of fighting | amulet of faith | manual of fire magic"

elseif s == "G" then i = "amulet of guardian spirit | giant club | " ..
Expand All @@ -108,7 +108,7 @@
elseif s == "I" then i = "amulet of inaccuracy | ring of ice | " ..
"scroll of immolation | ice dragon armour | book of ice | iron rod | " ..
"rod of ignition | potion of invisibility | ring of intelligence | " ..
"scroll of identify | wand of invisibility | " ..
"scroll of identify | " ..
"rod of inaccuracy | manual of ice magic | manual of invocations "

elseif s == "J" then i = "javelin"
Expand All @@ -123,7 +123,7 @@
elseif s == "M" then i = "manual of maces & flails | meat ration | " ..
"book of minor magic | morningstar | mottled dragon armour | mace | " ..
"potion of magic | ring of magical power | potion of mutation | " ..
"potion of might | scroll of magic mapping | wand of magic darts | " ..
"potion of might | scroll of magic mapping | " ..
"book of maledictions | amulet of magic regeneration"

elseif s == "N" then i = "book of necromancy | naga barding | " ..
Expand Down
2 changes: 1 addition & 1 deletion crawl-ref/source/dat/des/builder/food.des
Expand Up @@ -126,7 +126,7 @@ TAGS: uniq_second_food extra chance_second_food
SUBVAULT: X : fruiting_plant
SUBVAULT: W : fruiting_plant
KITEM: p = potion of poison w:5 / potion of ambrosia w:1 / nothing
MONS: big kobold ; wand of magic darts ident:type . short sword
MONS: big kobold ; wand of flame ident:type . short sword
MAP
XXXXX..WWWWW
XXXXX..WWWWW
Expand Down
13 changes: 7 additions & 6 deletions crawl-ref/source/dat/des/builder/shops.des
Expand Up @@ -478,11 +478,11 @@ MARKER: s = lua:fog_machine { cloud_type = "flame", \
KFEAT: s = general shop type:Demolitions suffix:Depot ; \
book of conjurations | book of power | book of annihilations | \
randbook disc:conjuration | book of the tempests | book of clouds | \
wand of fire | wand of fireball | wand of flame | wand of disintegration | \
wand of frost | wand of cold | wand of lightning | wand of magic darts | \
staff of conjuration | lightning rod | rod of inaccuracy | \
rod of destruction | iron rod | large rock ego:exploding | \
arrow ego:exploding | bolt ego:exploding | javelin ego:exploding | \
wand of fireball | wand of flame | wand of disintegration | \
wand of lightning | staff of conjuration | lightning rod | \
rod of inaccuracy | rod of destruction | iron rod | \
large rock ego:exploding | arrow ego:exploding | bolt ego:exploding | \
javelin ego:exploding | \
tomahawk ego:exploding | rod of ignition | fan of gales | disc of storms | \
lamp of fire | phial of floods | stone of tremors | rod of clouds | \
sling bullet ego:exploding | scroll of immolation | book of flames | \
Expand All @@ -502,6 +502,7 @@ ENDMAP
#####################################################
# Contains only four items: an evocable item, a staff, a randbook, and a wand,
# associated with one of each of the four elemental schools.
# XXX: very dubious choice for cold wand
NAME: nicolae_elemental_shop
TAGS: no_monster_gen no_trap_gen no_item_gen no_pool_fixup
DEPTH: D:4-, Depths
Expand All @@ -519,7 +520,7 @@ MARKER: a = lua:fog_machine { cloud_type = "thin mist", \
"staff of air","staff of earth"}
local randbooks = {"randbook disc:fire","randbook disc:ice",
"randbook disc:air","randbook disc:earth"}
local wands = {"wand of fire","wand of cold",
local wands = {"wand of fireball","wand of draining",
"wand of lightning","wand of digging"}
local choices = {1, 2, 3, 4}
local i, j, temp
Expand Down
8 changes: 4 additions & 4 deletions crawl-ref/source/dat/des/portals/icecave.des
Expand Up @@ -201,7 +201,7 @@ function ice_cave_caverns_undead_demon_loot(e)
e.item("book of ice / book of unlife / staff of cold / staff of death / \
randbook disc:ice disc2:necromancy numspells:6 w:2 / nothing w:30")
e.item("ring of ice / ring of protection from cold / \
ring of positive energy / wand of cold / wand of draining / \
ring of positive energy / wand of draining / \
any ring w:1 / any wand w:1 / nothing")
end

Expand All @@ -215,7 +215,7 @@ function ice_cave_caverns_natural_giant_loot(e)
e.item("book of ice / randbook disc:ice numspells:6 w:2 / \
arbalest ego:freezing good_item no_uniq ident:type / \
longbow ego:freezing good_item no_uniq ident:type / nothing w:20")
e.item("ring of ice / ring of protection from cold / wand of cold / \
e.item("ring of ice / ring of protection from cold / \
arrow ego:frost q:25 / bolt ego:frost q:20 / nothing")
end

Expand Down Expand Up @@ -640,12 +640,12 @@ MONS: freezing wraith
: mocking_simulacrum(_G)
: mons(mocking_ice)
: mons("necromancer / necromancer ; robe " .. coldres ..
: " / necromancer ; robe " .. coldres .. " . wand of cold " ..
: " / necromancer ; robe " .. coldres .. " . wand of lightning " ..
: " / necromancer ; robe " .. coldres .. " . wand of draining")
: savage_simulacrum(_G)
: mons(savage_ice)
MONS: ice statue
ITEM: wand of frost / wand of cold w:5
ITEM: wand of lightning
ITEM: ring of ice / staff of cold
: if crawl.coinflip() then
ITEM: manual of ice magic
Expand Down
2 changes: 1 addition & 1 deletion crawl-ref/source/dat/des/portals/wizlab.des
Expand Up @@ -1689,7 +1689,7 @@ kmons ("1 = patrolling Hellbinder dbname:Hellbinder name:" .. string.gsub(wi
KITEM: $ = gold / w:1 scroll of torment / w:1 scroll of summoning
KITEM: i = rod of shadows / ring of fire / ring of protection from fire /\
scroll of torment / scroll of summoning / demon blade w:1 /\
demon whip w:1 / demon trident w:1 / gold / wand of fire /\
demon whip w:1 / demon trident w:1 / gold / wand of fireball /\
wand of draining / staff of summoning / any book w:30 / any good_item w:15
KITEM: j = quarterstaff ego:vampirism ident:all unrand:majin-bo
KITEM: B = randbook disc:summoning
Expand Down
6 changes: 3 additions & 3 deletions crawl-ref/source/dat/des/sprint/arena_sprint.des
Expand Up @@ -1011,8 +1011,8 @@ KFEAT: r = altar_ru
KFEAT: s = altar_pakellas
KITEM: { = scroll of blinking q:3, scroll of fog q:3 ident:all, \
potion of heal wounds q:3, potion of haste q:3, \
wand of fire charges:5 ident:all, \
wand of cold charges:5 ident:all, \
wand of fireball charges:5 ident:all, \
wand of draining charges:5 ident:all, \
potion of resistance ident:all, gold q:200
KFEAT: { = {

Expand Down Expand Up @@ -1095,7 +1095,7 @@ KFEAT: R = general shop type:Premium suffix:Goods use_all count:11 greed:20 ; \
quad damage | quad damage | quad damage |\
wand of heal wounds charges:5 | wand of heal wounds charges:5 |\
wand of hasting charges:5 | wand of hasting charges:5 |\
wand of invisibility charges:5 | crystal ball of energy
crystal ball of energy
KFEAT: J = general shop type:Miscellaneous suffix:Merchandise count:14 greed:15 use_all ; \
fruit q:100 | potion of blood q:5 | potion of blood q:5 |\
potion of blood q:5 | potion of blood q:5 | ring of poison resistance |\
Expand Down
4 changes: 2 additions & 2 deletions crawl-ref/source/dat/des/sprint/linesprint.des
Expand Up @@ -221,8 +221,8 @@ KITEM: a = potion of curing q:4 ident:all, \
KITEM: b = scroll of blinking q:1 ident:all, \
scroll of amnesia q:2 ident:all, \
scroll of remove curse q:3 ident:all
KITEM: d = wand of fire charges:7 ident:all /\
wand of cold charges:7 ident:all /\
KITEM: d = wand of fireball charges:7 ident:all /\
wand of lightning charges:7 ident:all /\
wand of draining charges:7 ident:all, \
staff of energy not_cursed ident:all
KITEM: e = rapier plus:2 ego:electrocution ident:all not_cursed /\
Expand Down
6 changes: 3 additions & 3 deletions crawl-ref/source/dat/des/sprint/sprint_mu.des
Expand Up @@ -516,7 +516,7 @@ KMONS: q = electric eel
KFEAT: q = deep_water
KMONS: r = hydra simulacrum / fire dragon simulacrum / polar bear simulacrum /\
wolf simulacrum / black mamba simulacrum
KITEM: r = any, any, any, any, any, superb_item / w:1 wand of fire /\
KITEM: r = any, any, any, any, any, superb_item / w:1 wand of fireball /\
w:1 wand of disintegration
KITEM: % = fruit q:6
KFEAT: _ = altar_fedhas
Expand Down Expand Up @@ -947,8 +947,8 @@ NSUBST: . = 15:M / *:.
KMONS: M = ugly thing / slime creature / glowing shapeshifter
KITEM: % = silver rune of zot
KITEM: " = ring of flight ident:all, potion of flight ident:all q:3, \
scroll of acquirement q:1 ident:all, wand of disintegration / wand of fire, \
acquire gold, ring of protection from fire ident:all
scroll of acquirement q:1 ident:all, wand of disintegration / \
wand of fireball, acquire gold, ring of protection from fire ident:all

COLOUR: #~^ = yellow
KFEAT: # = closed_door
Expand Down

0 comments on commit 6f661db

Please sign in to comment.