TODO List — Vessel −−>


2020 - May 29th todo

OTS todo list

Consider a palette refresh. No hard greys, always a colour tint.
Consider swapping out palettes for different areas of the game.
Consider swapping out game palette as owl gets more vicious.

Glitchy outsides when resizing game on main menu.

On Reset, wrong door can be picked.

- Can pick up coins
- Can get money from doing book requests
- After leaving a room (i.e. when room contents are saved), add total picked up coins to thief total coins. Any completed requests also add to thief total completed requests.
- When returning to the overworld, there will be coins on the ground (sent by the guys paying you), number of coins will depend on how many requests were done since last return.
- Thief can walk over to coin area. Any money in inventory is thrown into the pit and the counter goes up.

- Might need to think about what money is used for. Originally was just going to be a number that goes up (total score).

* Features
- Owl behaviour rework
--- Leave current owl code alone - these could be "minion" owls, or anything
--- This is a completely different enemy so makes sense to keep it separ-
    ate. The work has already been done to make the current owl
    behaviour work correctly.

--- Behaviours
----- 1. Random searching of rooms
----- 2. Search for thief in current room. If found, start pursuing through rooms
----- 3. Give up search and check a different room
----- 4. If thief enters owl's room, chance to see and start chasing
----- 5. Chase thief. Try to get close
----- 6. If catches thief, does damage and thief gets thrown away
----- 7. Thief can escape by finding a hiding spot or taking a doorway
----- 8. If chasing thief and they take a door, play owl animation trying to get through door but not fitting
----- 9. After seeing thief enter door, owl will know which room to head to. Start heading towards that room
----- 10. If thief activates a shrine, owl is alerted and will start heading towards the room
----- 11. If owl hasn't seen the thief for X time, force an encounter and get owl to appear in current room

--- Aware of the available connections, and how to get from current room to thief's room
--- Timer keeps track of how long it would take the owl to move 1 room closer to the thief

Main menu area
- Outer house graphic
- Cavern vault entrance graphic
- Cavern inner graphic
- Show total money in vault
- Teleporter (just the shrine, on a pedestal?) graphic
- Starry night graphics

- Save game file: Need another one just for: thief money, position in overworld, current library
--- Save every X seconds, and save on "exit game".
- Open choose endless properly on teleport

- Don't pause the game when reading a book.

- Could add a room with internal walls. The only way into the centre is via a doorway.
- Horizontal blocker (can't jump through / duck through)
- Vertical blocker

- Locked ladders
--- Only fall when the padlock is hit by a throwable and breaks. Ladder falls to pre-determined shelf
and bounces a couple of times before settling.

- Add another type of throwable.
--- Something to scare the owl? Light related?
--- Food on a stick to ride mini owl?

- More decorative content for rooms
--- Already have grey books on shelves
--- Already have candles
--- Optimise background graphic drawing
--- Add wall decorations that show in lit areas
----- Gargoyle faces
----- Language runes in a row
----- owl glyphs
--- Cobwebs between shelves, and between shelves and floor
----- Disappear when thief walks past them
----- On level load, check last time level was visited. If it was X time ago, spawn Y cobwebs.
----- Cobweb locations are pre-determined (like e.g. candle positions), but may or may not contain a cobweb currently

- Openable books can contain extra content
--- Collectable lore in the form of ancient pages, and picture fragments
--- Extra pebbles (not strawberries. But functionally identical)
--- Extra seeds (for growing beanstalks)

- Rework game modes
--- Remove "Start Game" and "Start Endless"
--- Add "Play tutorial library"
--- Add "Play library / Choose library"

- Add boss owl information to save file

- Make the background lighting adhere to the game palette (currently too many shades of grey)
- Include background lighting in GIF recording
- Update scoreboard save file. Don't use .NET binary formatter, just use JSON or a custom binary format.

* Bug fixes
- Can enter a shrine to overworld over and over again
- If screen is letterboxed and thief leaves level horizontally, they will appear outside the level for a few frames. Should be hidden.
- Potential memory leak in Owl.cs code. DodgedPebbles may be holding onto old throwable references.
- Shrine circling glyphs are scaled poorly - looked better before recent drawing refactoring
- Very 1st GIF frame created when game first loads is black (maybe only in IMMEDIATE_MODE). Should not create frame until game is rendering.
- If pick up throwable as leaving level, disappears from inventory after loading next level.

- Win10 -> 11 remove appdata? check
- data/libraries wasn't there after playing endless. Played 1 level, hit by owl, moved to next level, died to owl, exited.

- Collision of throwables to create piles of e.g. strawberries?

* Improvements
- GIF recording
--- auto-save when between levels?
--- on save, show a saving... screen (instead of lagging).
--- detect taking too long and split work onto next frame
----- or use a thread
--- Need to test - does the game record as expected when the palette is swapped out with a cheat code?
--- If a replay system was added, there would be no need to save screen data each frame. Could instead use the replay
data to recreate the screen during down-time. Would be more satisfying technically speaking, and less resource-intensive during gameplay.

- Update sound effects
--- Still want the 8-bit sound for sounds?

- Update lighting effect: don't light up through a shelf (shelves should block light)

TODO List — Vessel −−>