# Dragon game meeting notes
# 9/29
## Planned game structure
* 10 cycles
* 1 puzzle/date VN segment for cyle
* 3-5 dates to get ending with dragon
## What we have done
* Code
* Puzzle portion is just about feature complete
* Art
* Character concepts
* Story
* Basic concepts/outline/ideas
* other
* Set aspect ratio to 16:9 (going with 720p)
## What we want done
* Code
* Better visual indication of selected cookies during puzzle portion
* transitions between puzzle and VN portion
* puzzle start and end conditions
* Limited moves? a point goal?
* Art
* Ms paint backgrounds
* Story
* Script outline?
* other
# 9/27
## Writing Brainstorming
* Player character is dragon baker/hoarder of cookies/baked goods
* Showing off baking skills at cooking contest?? could be used for tutorial
* Sees a bunch of cool gay dragons at contest and decides to try and seduce them through gay cookies
* Maybe dragons are all from same "town"? with different caves or whatever
* same cave system/in the same mountain!
# 9/21
## Clicking cookies
Pseudo code
* setup states
* Clickable state
* Checks for clicks as described below
* Dragging state
* Checks for mouse movement and updates the relevant cookie objects as described below
* Scoring state
* Currently unused
* process() should check which state it is in and run the code for that state
* setup bounding box
* We need a north, south, east, and west border
* 64 * 10 by 64 * 10 box where we check if clicks are within
* Since our starting position is where the node is position wise, North and West can just be our global_position x and y
* Our South and East can just be that + 64 * 10 and there is our box
* check for click in cookie grid
* check if position is within our bounding box
* check if click position is between north and south and east and west
* if true, continue to the rest
* if false, return
* map click to cookie
* some math here
* divide mouse pos /64
* REMOVE THE +4's FROM COOKIE CLASS update_position
* this division should give the starting cookie gridx gridy
* STORE THIS FOR LATER
* Change state from clickable to dragging
* track mouse movement after in one axis
* use the delta from clicked position to calculate the offset
* apply offset to all cookies in row/column
* Create list of cookies in row and cookies in column
* Loop through each cookie in row/column, apply offset based on mouse
* make looping work somehow??
* if moving vertical make the dragging vertical, if horiz make it horiz, (the direction switches on diagonals)
* when the mouse is clicked/let go lock cookies back to grid at new spot (**you are here**)
* divide the new mouse pos /64 for the new cookie spot
* Remember if it was a vertical move or a horizontal move
* get the difference in gridx/gridy between cookie start and cookie end, rotate row/column to update correctly
* change state from dragging to clickable
* SET MOUSE_START AND MOUSE_END TO (-1,-1) TO NOT INFINITE LOOP
# 9/16
## Creating a 2D array of empty class
Pseudocode is this
* Initialize big array
* Initialize big loop (8 times) ()
* Initialize small array (this should also clear it out)
* initialize inner loop (8 times)
* fill small list with empty class
* place small list in big list
## Progress made:
* Learned to make 2d array, matrix
* Created cookie object
* Grid!!! grid real :D
# 9/14
## Listing out puzzle game fundamentals
* Tiles randomly places on a grid (8x8 able to be changed)
* matrix aka array made up of array
* array of columns
* Array[x][y]
* Array[row][colmn]
* row 1 column 4 cookie would be array[1][4]
* randomly filling the array
* Tiles have 5 different types + 1 wildcard
* Base tile (cookie) class with subtypes for each one
* cool, nerd, famous, wholesome, disaster, dragon(wildcard)
* use X, Y position to display sprite (for now use color square)
* A complete row or column of tiles of the same type will be cleared from the board
* Checking a 2D array for everything being the same
* Checking for effects of wildcard
* Can move a whole row or column (**YOU ARE HERE**)
* Shifting arrays horiz and vert
* completed rows and columns give a certain resource
* Keeping a count of completed types
* Combos give a wildcard tile in a random location
* Combo checking while inactive time
* replacing a cookie somewhere with a wildcard
* Maintaining actionable/inactionable states
* when cookies are redeemed/scored, combo time is inactive
* when you can move around cookies on the grid is active
* Animations
* sliding tiles and them dissapearing when redeemed
## Dating side fundamentals
* mostly Story/VN driven
* Text trees and decision boxes
* Script system? copy RenPy?
* resources gained during puzzle mode can be given to potential dates
* Balancing/using them
* dragon with most cookies is the "ending"
* Writing paths
## Story outline/concept??
* 5 dragons, each with thier own "path"
* Dragon with knives hoard (cool/edgy/goth)
* Dragon with board game hoard (nerd)
* Dragon with merch of self hoard (famous/celebrity)
* Dragon with plushie hoard (wholesome/soft/"uwu-core")
* sugar cookie
* Dragon with trash hoard (disaster/mess/scrimblo)
* scrungly
* dinosaur nugget cookie
* you are dragon baker, hoarder of cookies
* Dragon hoards as a basis for personality
* have to do a lot of baking for dragon event
* during the process encounter the 5 dragons
* "final date" event is the end path, decided on which dragon you made a cookie type of
# 9/13
## dragon game ideas
* yoshi's cookie but dragons dragon cookie
* Dragons are cookies? dragons are bakers
* Dating intermissions? minigames inbetween?
* Need to study yoshi's cookie gameplay particulars
## Git/Github
* using github desktop
### Common Procedure for github
1. Main branch is used for current working version of code
2. new branches are made when stuff is added
3. once something is finished that branch gets merged into main
4. cycle repeats
## Godot
* Using version 3.5
## Things to Get Done (Da Plan) (in terms of game design)
1. Puzzle game mechanics (**WE ARE HERE**)
2. Dating mechanics
3. Dragon designs/writing
4. Art (MS Paint masterpieces)
5. Menus/Options/QoL
6. Sound/Music creation/collaboration
https://gta5mobilez.com/