# Garbage Boy background: #0A0A0B color: #C6CA53 ## Assets To Create - [x] Street background - [x] Music - [x] Theme song - [x] Garbage pick up - [x] Rat collision - [x] Garbage can success - [x] Sprites - [x] Garbage Boy - [x] v.1 - [x] v.2 - [x] Garbage Can - [x] Garbage - [x] Rats - [x] 2nd Garbage ## Blockers - [x] Sometimes rats get stuck on traffic cone - [x] Sometimes waterbottle does not work - [x] Why doesn't water bottle stop Ben? - [x] MUSIC TOO LOUD - [x] Sometimes rats get stuck on an axis - [x] Garbage Boy's hitbox is too big - [x] Make each rat have it's own random Y - [x] Make rats move up and down independently - [x] Why are movement limits different at each boundary? - [x] Why is gameTick happening before start button is clicked - [x] Garbage spawns at same point on retry - [x] Add mins to random number gens ## Refactoring - [x] Combine rat stuff - [x] Create Rats array to contain rats - [x] refactor all rat stuff to loop over array ## Checklist - [x] CLI-like game screen - [x] start screen - [x] game-play instructions - [x] start button - [x] start music - [x] game screen - [x] canvas - [x] GB's health - [x] stage message - [x] Garbage Boy - [x] spawns at (X,Y) - [x] moves freely with WASD - [x] Garbage Can - [x] Spawns at X=0, Y=Y - [x] GB collision triggers `endStage` if garbage = true - [x] Rats - [x] Spawns at X=X, Y=random - [x] moves up and down Y axis - [x] GB collision triggers `endStage` - [x] Garbage - [x] Spawns at X=random, Y=random - [x] GB collision triggers `garbagePickup` - [x] disappears after picked up ### `startButton` - [x] hide start button and game instructions - [x] display game screen - [x] `gameTick` ### `gameTick` - [x] render GB - [x] render rats - [x] render garbage can - [x] render trash - [x] set rat movement - [x] set GB movement ### `endStage` - [x] stop `gameTick` ### `resetGame` - [x] reset ## Stretch Goals! - [x] Dear lord, add a mute button - [x] Add second piece of garbage - [x] declare variable as new img - [x] set img.src - [x] create function that returns either 0 or 1 - [x] declare asset creation - [x] `gameTick` - [x] if garbage is alive - [x] generate random - [x] if 0 spawn bottle - [x] else spawn choco - [x] `resetGame` - [x] garbage.alive = true - [x] Stages - [x] Display current stage on screen - [x] Each stage change makes rat movement speed +2 - [x] Picking up garbage effects - [x] display inventory on screen - [x] onclick will trigger item effect - [x] reset effect on reset - [x] reset effect on next stage - [x] make sure item remains in inventory after advancing stages - [x] picking up another piece of garbage will overwrite the current garbage in inventory - [x] Random rats! - [x] have rats spawn anywhere randomly - [x] have them move randomly - [x] Display win / loss messages on the canvas instead of at bottom - [x] Ben - [x] homing rat - [x] spawns every 5 levels - [x] collision - [x] reduce speed with water bottle - [x] reset speed at retry - [x] reset speed at next level - [x] reset spawn point at retry - [x] reset spawn chance at next stage - [x] add to readme - [x] Combine Mute / Unmute - [x] Obstacle - [x] create image - [x] render image - [x] collision w/ rats - [x] bouncing logic - [x] collision w/ GB - [x] edge of map logic - [x] new coords at next stage