For reference for anyone interested. This is my short term TODO list i.e. not including major new systems or content. Stuff that's on my plate right now. Order doesn't really mean anything, this is where I just sort of throw stuff as it occurs to me. I'll start cleaning this up and updating it over the course of dev.
- Enchanting a wand raises its max charges and fully recharges it
WANDS:
- Burst of Flame
- Shock
- Confusion
- Domination
MISC:
- Resistance as a number (acts just like defense)
- Physical Defense: Armor Class
- Soft cap on armor class past 25
- Multiplier on NPC damage so that elemental branches can be extra deadly w/o resistance
ATHLETICS:
- Dodge should scale so as to be 50% as effective of equivalent armor class
- This is because dodge is intrinsic i.e. does not require armor
- Characters should also use their dodge skill to determine if they can strafe dodge an attack
- Athletics includes the sprint talent
- Athletics includes the leap talent (jump over enemies or obsticles, tile simply must be visible)
- Athletics includes the strafe attack talent (applies to both ranged and melee attacks)
CHARMS:
- Charm of Freezing Wind
- Allow charms to be enchanted to increase max charges
- Allow charms to be acquired
- Add charms to equipment drop chests such as zoo's
- Enchanting a charm will recharge it fully
CLASS DIFFERENTIATION:
- Barbarian uses rage as mana (cannot use magic spells)
- Rangers have unlimited basic dart
- Necros: skeletons, blood for mana
- Rogues: no exp from kills
- Assassins: all exp from kills + some bonus killing skills
ABILITIES:
- Disease
- Icy Emanation: summons clouds around player
- Freezing wind: knocks back enemies in a cone (higher damage closer)
- Freeze: freezes a single enemy in a block of ice
- All cold abilities will create ice over waterS
- Give lightning bolt a 3 wide starting AoE to make it just as effective as fireball at close range CC
- Make sure healers, hasters etc cast on their allies (should work on player as well)
s
REFACTOR:
- Merge ballista and slow projectile chooseAction
- Dark elf mages summon imps along w/ their elemental attacks
- Mana viper: summon mana vortex
- Fire Statue: Fire Cage ability (summon wall of fire around player)
- Ice Statue: Summon wall of cold
- Fire Elemental: Flame Cloud Bolt
- Ice Elemental: Freezing Cloud Bolt
WANDS:
- Disease
- Freeze
- MDII: Flags on walls
- MDII: standing flags
- Don't allow spawners, statues etc to regenerate health
- Undead don't regenerate health
MAIN_DUNGEON_III + TIER_II AND TIER_III BRANCHES:
- Pit room dressing type
- Remove islands and turn them into pits
REFACTORING:
- Finish toData/fromData for inventories
- SCALE_FACTOR set by default
- Don't popup rest text if enemies in view
- Hunger isn't dealing any damage
- Merge isRay[x]
- Scroll of blinking needs to show targeting box
SPECIAL_FEATURE_GENERATOR:
- Set minDL on rooms i.e. dropWall rooms
NEW_SPECIAL_ROOMS:
- Floating drop wall rooms (more critical moments + more chests)
- Temple at end of branch I (w/ at least 3 alters)
MAIN_DUNGEON_III_DRESSING:
- Circle rooms used here for first time
- Start using pits here
MISC:
- Fountain of Attribute: str, dex, int (raises groupings of base stats)
- Drop wall rooms placed in open
- Tome of weapon mastary: contains talents that provide bonus w/ particular weapons
- Tome of Fortitude: provides talents for all resists (provides alternative way to get resists)
- Tome of Spell Mastary: provides the old attunement talents
- Range skill: accuracy - allows player to target through enemies
- Keep track of numKeys and numTreasure rooms and spawn keys if its getting out of hand (reduce drop chance of keys)
SUBMERGED_ADVANCED:
- Use submerged instead of hidden
- An enemy can resubmerge itself when low on health or if it cannot reach the player
- An enemy will resubmerge itself when it loses agro
- The player can see submerged enemies if he is in the same water as it
POISON_VIPER:
- Standardized poison mechanic pulled from old code
CORROSIVE_SLIME:
- Damages modded weapons when meleeing
- Damages modded armor when attacking
- Will not reduce mods below 0
- Corrosive Slime: to provide a corroding enemy
FROGS:
- leap ability
UNIQUE_NPCS:
- The Ice Caves Unique: Pack Leader - throws nets and summons wolves
- Main Dungeon II: Warlord - Casts AoE berserk on all allies, can summon orc warriors
THE_SEWERS:
- Static level: The Sewers: All water w/ islands and bridges
- Enemy type that raises shield to counterattack
- Enemy type with heavy damage shield
- Enemy type that reflects projectiles
THE_SWAMP:
- Corroding slimes
THE_UNDER_GROVE:
- Giant Boar: slow charger
LOGGING:
- Extended rest used
- Spotted merchant
- Player moving w/ enemies in view while out of energy
- Log using consumable and fountains
- Log deaths
MISC:
- stop exploring upon spotting friendly NPC
- things that can't run cant be feared
- Fire mages need LoS with player to cast wall of fire
UNIQUE_NPCS:
- The Under Grove: Druid - can summon vines under player, heals allies and hastes
- The Core: Efreeti Lord - high HP caster that leaves a trail of flaming clouds when moving
UNIQUE_LEVEL_FEATURES:
- Ice Caves / Core Rift generator:
- A zig-zagging rift w/ surrounding cave of random width is generated across the map
- Additional rooms are then placed to the sides and connected
- The Core: fire drake cave
- The Core: Orc fortress spawned in cave
- The Ice Caves: Orc fortess spawned in cave
- The Under Grove: rare chance to spawn trees on level
MAIN_DUNGEON_III:
- New Tileset
- Circle and Diamond room generators
- Place pits by removing islands
- Remove islands to create extra open space
- Locked stairs w/ switch (stops people from just skipping these levels)
- New Generator: open design
- Zig zag outter wall with rooms placed randomly within open spaces
- Static Level: temple w/ alter
FUTURE:
- Once sound is implemented, sentinals should have a powerful shout
- Charm of blinking will allow player to bypass all gates
- Make the tiles unblinkable?
- This removes a neat emergent property though
- Slow closing gates could be made non transparent so player can't blink in
- Normal gates could remove switches so player would have to spend 250 turns inside waiting for recharge
CYCLES_GENERATOR:
- Let cycles generator pick from random set of room sizes
TODO:
- Confusion: confuses all enemies on screen causing them to attack one another (or the player)
- Howling Wind: knocks all visible enemies in the direction of effect (useful for making space / knocking into traps)
- Iron Shot: provides a reusable physical attack
CHARM_TYPES:
- Tunneling: tunnels through several tiles, useful for escaping or creating a good fighting position
- Entrancement: causes enemies to mirror your movements in reverse (useful for making space, activating traps, infighting)
REFACTORING:
- Clean NPC abilities
MISC_TODO:
- Never grab an item (and end turn) when the tile could be moved to
- This could fuck people up in combat
- Fire should always destroy shrooms
BALANCE_CHANGES:
- Walls of fire should destroy darts (neat mechanic)
MAIN_DUNGEON_II: (TIER I)
- Move poison spiders, corrosive slimes and centaurs into MDII
- Remember that main dungeon branch can contain enemies from the related side branch or lower as they are similar level
MAIN_DUNGEON_IV: (TIER III)
- Elemental demons
FAIRNESS:
- Extend safe zone around level entrances to 5x5 box
MISC_TODO:
- Use custom stairs for branches
- +2 cloth gloves give +2EP ?
- Make sure spider nests spawn on spider webs (so can burn them)
METRIC:
- Create a list of zone order and run it to determine player level over time
ORC_STORM_MAGE:
- Moving tornado that sucks characters in if 1 tile away and flings them into a wall
OGRE:
- Can shatter the ground creating rubble
- Think about shape so he doesn't just screw himself
WALL_OF_FIRE_ADVANCED:
- Wall of fire can ignite oil (generalize startFire code)
- Fire on water creates steam
- Vines and grass create flaming walls
- Oil and Poison gas create explosion
HASTE_ADVANCED:
- Haste and slow should just negate each other
KNOCK_BACK_ADVANCED:
- Deal extra damage based on how many tiles are remaining when hitting a wall
- Can knock enemies into enemies (split the damage and move them)
NPC_TODO:
- Orc Ice Mage
- Orc Storm Mage (whirlwind attack)
MECHANICS_NOTES:
- Allow armor to partially block elemental damage (not internal poison)
- Gives tanks an advantage in all areas
- Find a way to make the armor penalty stick across all levels
- Needs to simply cut players total casting skill by % (multiply not add)
TODO_MECHANICS:
- Projectile: acid vs acid arrow?
- Slime onHit
- Poison damage needs to scale with NPC level
- Tanks should hit harder than medium
- Nukers have 5 coolDown giving them lower damage than archers
- Get nearest attack index: should flood for efficiency and simply test clear LoS
- Kiters should not move forward into bad range if they still have LoS with player
- Error on trying to enchant staff of fire w/ +1 mod already
- Introduce noise in order to increase chance of player becoming surrounded (only when enemies should for help)
TODO_GENERATION:
- Post process create loops
TODO_POLISH:
- Flash white on hit
MECHANICS TWEAKS:
- Staves use energy
- Running enemies should eventually stop running
- Make sure cave enemies are spawning as deep into their caves as possible
- Goblin bomber needs a simple grenade attack
- Constricted doesn't wear off when attacker is dead
NEW LAYOUT:
- Make sure goblet spawns on the correct layout
- Use metric.js to make sure that exp gain puts the player close to 20 by level 20
VAULTS:
- ARCANE_TOWER: Fire turrent pit
- ARCANE_TOWER: Summoning ritual
- THE_CRYPT: Graveyard
- gravestones spawn skeletons when player gets close
- THE_CRYPT
- Dark alter
- THE_SEWERS: Poison pipe + switch
- Arcane tower rare dressing:
- Pit room w/ platform in middle that player teleports to and narrow bridges leading to edges
STATIC_LEVELS:
- THE_SEWERS: all water level w/ islands and bridges
- ARCANE_TOWER: first level as cave w/ tower top raising above
- THE_CORE: volcano w/ islands connected by bridges
- THE_UNDER_GROVE: big rift
NPC_TYPES:
- GEOMANCER:
- shatter walls
- heal golems
- A auto level function would be very nice in order to test difficulty
- Sets players levels and grants all skill points
- Grants all talent points
- Adds items as if the player had played up until that point
ROOM_GENERATOR:
- Add back some of the oddly shaped room vaults (common vaults for now)
- Circle rooms in MDIII and beyond
- Circle rooms pillars and water
- Need to use better area code that sets the bounds dynamically
- Only includes floor tiles and wall tiles
- Side rooms (renamed feature rooms) are essentially an entirely different system
- Feature rooms could take the place of a standard room by forcing its way down a generator
- or using generic generator type like cycles
- Restrict random room selection based on zoneType
- Restrict dressing type based on zoneType
- Can remove a lot of stuff from baseGenerator
CYCLES_GENERATOR:
- Many generators can use the cycles generator pattern by simply placing something interesting first and then generating additional rooms
- Long hallways
- Big rifts
- Crosses
- Hall patterns
- Circular pattern
- 4 Corners
SPECIAL_FEATURES_TODO:
- Spawn features in the open
- Set a preference and fallback for feature types (some random percent)
- Place rooms in purely solid areas and connect to nearest
- Use this to rewrite the cave functions
- Generate some additional side rooms for mobs, chests, fountains etc to spawn in
- These should be of a special type that can place doors on all their overlaps
- Can be trimmed later if its a dead end and empty (or just leave them)
NOTES:
- Its actually possible to use featureGenerator code for a levelGenerator i.e. it just keeps overlapping rooms
- Roguelike levels are going to look shitty, but they were shitty anyways
- Side rooms are not an excuse for a shitty levelGenerator
- At the very least it needs a lot more variety in its room sizes and shapes
ROGUE_LIKE_GENERATOR:
- Should be able to create much more variably sized and shaped rooms
- The placement is more of a suggestion as to size and location
- Must use the cycles-generator code to actually determine if something can fit
- Allow rooms to be almost double the size of a 'grid' location
- Therefore it will create much more varied rooms but keep them in the rough grid
- A few passes of standard cycles could create some floating rooms if needed
- Or else a few passed of featureGenerator to place some side rooms and connecting rooms
ROOM_POST_PROCESSING:
- Decay room: rots tables, broken columns, broken floors, adds grass
- Cave in room: same idea as above but crates stalagmites, broken walls etc.
- Need a replace tile function that correctly places walls, floors, cave walls, cave walls, based on previous tile
END_GAME_MAGIC:
- Dark Elf Wizard: Fire and Storm Magic
- Thunder Storm: caster walks forward a wall of lightning each turn (uses smite targeting)
- Moving wall of fire: caster walks forward flaming clouds each turn