Permalink
Browse files

Remove various wands

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 28, 2016
1 parent b7aa92a commit 6f661db7440e4ae78df8f093bdbdf8b46d2d12eb
Showing with 137 additions and 212 deletions.
  1. +6 −10 crawl-ref/source/acquire.cc
  2. +3 −4 crawl-ref/source/dat/des/altar/lugonu_bribe.des
  3. +10 −12 crawl-ref/source/dat/des/altar/overflow.des
  4. +5 −7 crawl-ref/source/dat/des/branches/abyss.des
  5. +3 −3 crawl-ref/source/dat/des/branches/depths_encompass.des
  6. +1 −1 crawl-ref/source/dat/des/branches/elf.des
  7. +2 −2 crawl-ref/source/dat/des/branches/hell.des
  8. +3 −2 crawl-ref/source/dat/des/branches/zot.des
  9. +5 −5 crawl-ref/source/dat/des/builder/alphashops.des
  10. +1 −1 crawl-ref/source/dat/des/builder/food.des
  11. +7 −6 crawl-ref/source/dat/des/builder/shops.des
  12. +4 −4 crawl-ref/source/dat/des/portals/icecave.des
  13. +1 −1 crawl-ref/source/dat/des/portals/wizlab.des
  14. +3 −3 crawl-ref/source/dat/des/sprint/arena_sprint.des
  15. +2 −2 crawl-ref/source/dat/des/sprint/linesprint.des
  16. +3 −3 crawl-ref/source/dat/des/sprint/sprint_mu.des
  17. +2 −2 crawl-ref/source/dat/des/sprint/zigsprint.des
  18. +1 −2 crawl-ref/source/dat/des/variable/float.des
  19. +1 −1 crawl-ref/source/dat/des/variable/grated_community.des
  20. +4 −3 crawl-ref/source/dat/des/variable/mini_monsters.des
  21. +0 −21 crawl-ref/source/dat/descript/items.txt
  22. +0 −20 crawl-ref/source/dat/descript/quotes.txt
  23. +1 −1 crawl-ref/source/enum.h
  24. +11 −10 crawl-ref/source/evoke.cc
  25. +1 −5 crawl-ref/source/goditem.cc
  26. +0 −4 crawl-ref/source/hints.cc
  27. +7 −12 crawl-ref/source/itemname.cc
  28. +13 −5 crawl-ref/source/itemprop-enum.h
  29. +5 −10 crawl-ref/source/itemprop.cc
  30. +18 −11 crawl-ref/source/items.cc
  31. +12 −18 crawl-ref/source/makeitem.cc
  32. +0 −12 crawl-ref/source/mon-act.cc
  33. +1 −2 crawl-ref/source/monster.cc
  34. +1 −2 crawl-ref/source/ng-wanderer.cc
  35. +0 −5 crawl-ref/source/shopping.cc
@@ -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.
@@ -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",
@@ -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 /\
@@ -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 )
@@ -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-
@@ -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
@@ -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...
@@ -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
@@ -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
@@ -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
@@ -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 / \
@@ -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 / \
@@ -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 | \
@@ -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
@@ -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')
@@ -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
@@ -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
@@ -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.
@@ -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 | " ..
@@ -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 | " ..
@@ -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"
@@ -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 | " ..
@@ -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
@@ -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 | \
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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: { = {
@@ -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 |\
@@ -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 /\
@@ -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
@@ -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
Oops, something went wrong.

0 comments on commit 6f661db

Please sign in to comment.