Tutorial Stack 19
1. Added FixSoundsForFullScreen as sounds were stopping if going into full screen, this is called from OptionsApplied
2. Fixed View sloppy typo that broke setting custom property for log file
3.Added GraphicsRestage to PlayerRepsawn so player didn't respawn in danger
4. Adjusted StageGraphics not to set things out at ridiculous distance
5. Moved FireMissile up in the PlayGame message path seems like something is blocking it sometimes
6. disabled logging in View handler, recent log was 14,000 lines YIKES
7. Added RandomizeEnemies to change enemy looks every level
8. Disabled UpdateListLabels in PlayGame trying to troubleshoot the firemissile bug
9. Enemies now send EnemyTravel to themselves only every 20 milliseconds instead of 2
10. Updated Changes_log stack custom property, seems I missed a few stacks

Tutorial Stack 18.
1. Changed Staged objects spawning at over 20,000 units off screen
2. Put a lot of view "handler" && the long time all over to watch times, will have to clea up
3. Added setting viewMessages custom property of stack in View handler to record messages
4. added ClearView handler to to clear the custom property and spit out a log filenames
5. Added conditions in enemies to disable them if they are beyond 3000 units positive or negative of the stackRect
6. Aded ClearActiveSoundPlayers to InactiveBullets handler
7. Changed return True in IsMissileInRect to return the name of the missile so it is sent DeactivateMissile
8. Reduced the max number of players for mosts sound to 10 and 4 for Warps and Explosions
9. Added minimum number of destinations for enemies to be 3+random(8)
10. Changed Sound folder "Weapons" to Bullet to match game properties , changed scripts to match 
11. Added ListAllPlayers function for all the times I have to iterate through media players
12. Added   ZeroFXPlayers aName to StageGraphics,
13. Disabled looping property of players in  ZeroFXPlayers 
14. Enabled ShapeShiftFunk effects in enemies, they have more personality now
15 Added WingDings characters to Enemy graphics, now they aren't empty shells
16. Added deleting Mgroup and Backgroup to DevExit
17. Added SoundPlayersAreLoaded to InitGame, for some reason game started without sounds...
18. Still have an issue with enemies traveling to 3000 or -3000 in space...what's their deal?

Tutorial Stack 17.
1. Gave Enemies a random number of destinations after they enter the screen
2. Added sounds effects to warps
3. Fix some bugs here and there
4. CheckCollisions is deprecated
5. IsMIssileInRect checks all 20 missiles for target rect penetration, returns true to target
6. ObjectInPlayerRect checks for objects in the player rect
7. IsMissileInRect and ObjectInRect added with conditions in Enemy Scripts
8. ObjectInPlayRect added to Bullet Scripts
9. Removed Script setting from StageGraphics so Bullets could stage themselves.
10. Added RectInRect function but not using it. checks all corners of a rect for penetration of another rect
11. Added CrashPlayer handler so Enemies and Bullets could set playerCrash to true
12. Aded StopAllSoundEffects to stop sounds during pause mode
13. Added PauseEnemySound to enemies so they stop looping during pause and restart on ResumeGame 
14. Set enemy playLoudness to a random level lower than currentFXVolume in PlaySoundEffects
15. Removed Mouseloc check to exit MIssileFly in bullets, it was causing bullets to get stuck on screen
16. Added Mouseloc check to exit fireMissile if mouse outside of stack rect
17. Added random sizing to missiles 
18. Added random graphic style  to Enemy Bullets.


Tutorial Stack 16.
1. Changed InactiveMissiles, InactiveBullets, InactiveEnemies to not be plural, so an enemy name can be used to send the message without much fuss
3. Added GraphicsRestage to stage all the graphics,
4. Added step in Stagegraphics to clear active object lists
5. Added ZeroFXPlayers to stop players of a type and set their currentTime to 0
6. Fixed typo in SoundEffectsARELoaded function name
7. Added SoundEffectsAreLoaded to ResumeGame to ensure the sounds work, not sure why variables zero out during pause
8. Added fxPlayersAvailable list variable to keep track of whats available
9. Removed Repeat loop from PlaySoundEffects, popping players on/off fxPlayersAvailable list keeps track
10. Added ClearActiveSoundPlayers to FireMissile to ensure a sound player is available when a missile is
11. Added InactiveFXPlayer to handle Enemy recycling of sound players, could be used for other objects that loop...
12. Added ClearActiveSoundPlayers "Explode" to explosions DeactiveExplosion handler to make sure their sound players get recycled
13 Removed send ClearActiveSoundPlayers in 2 seconds line from PlaySoundEffects
14 Removed some exttra conditions from PlaySoundEffects
15. Added EnemyCenterTargetLoc as first destination of enemies to be point near center screen, then they pick second target to exit screen
16. Moved StoreEffectStates out of InitGame and into the object "Make" commands as turning off effects and returning to title screen and back to game was clearing the effects entirely
17. Added MakeGraphicPlayer for making a player graphic with all it's effects on, since they kept getting reset
18. Added MakePlayerLives to create the player lives icons as their effects got lost, could have more than 3 lives now.
19. Added MakeAllGameGraphics to recreate all the graphics in the game, except the mountains
20. Added Effects Toggle for background mountains to Optionsgroup & UseBackMountainFX custom property t
21. Updated OptionsGroupSetup and OptionsGroupApplied to handle the new options choices
22. Added MountainGraphicEffects handler to manage turning on/off graphic effects for mountains
23. Added DevExit handler for cleaning out the players, recreating all the graphics with effects before save and quit
Tutorial Stack 15
1. Added sound effects for Enemies & Bullets
2. Restructured sounds folder for types of sound effects Enemies,PlayerLaser,Weapons,Explode,PlayerCrash
3. Added InitSoundEffects on ClearActiveSoundPlayers, PlaySoundEffects and SoundPlayersArdLoaded and MusicPlayersAreLoaded , the last two clean up the Init
4. Added local variables soundCount,  soundEffectPlayers, activeSoundPlayers, efectsRefreshDelay,currentFXVolume
5. Modified Enemy & Bullet scripts to activate their own sounds.
6. PlaySoundEffects stores FXplayer custom property in enemies to turn off looping sound in InactiveEnemies
7. Added Sound Effects Volume controls and scripts to OptionsGroup, OptionsGroupSetup and OptionsGroupApplied
8. OptionsGroup passes OptionsNewFXVolume custom property to the stack for  OptionsGroupApplied to adjust currentFXVolume
9. Card "Play" now sends InitFiles on open, Which does InitMusic, InitSounds, before InitGame is called
10. InitMusic & InitSoundEffects set bMusicInitPassed & bSoundsInitPassed to tell InitFiles they've suceeded.
11. InitFiles sets bInitFilesComplete to true, although not sure that's needed at all.
12.InitSoundEffects attempts to make 20 total players for each type of the files it finds regardless of the number of files.
13. Player crash into enemy bullet bypasses PlaySoundEffects to play a crash sound based on the number of player lives
14. Fixed LoadingScreen it was locking screen before it was showing it's messages.
15. Added activeSoundPlayers field to "Developer" group, added condition to UpdateListLabel to exit if "Developer" group not visible
16. Added condition to InactiveEnemies, InactiveBullets, InactiveMissiles to exit if not on card "Play"

Tutorial Stack 14
1. changed PlayerMove handling of the X mouse position, 20 pixel change  = change in ship direction
2. Warps now ping pong the player, flipping their direction on exit
3. Fixed OptionsApplied to work on Title Card without throwing a bug
4. Copied "Viewer" button to Title card
5. Extended the mountain length by 50 units per point to guarantee scroll space in the group
6. Fixed UpdateStackSize to run all the updates instead of skipping over them in some cases
7. Removed storing EffectStates in UpdateEffectStates
8. Added  StoreEffectStates  to InitGame
9. Fixed OptionsApplied  to hide/show the group "Backgroup" when bUseBackMountains  is set false in Title screen before it's made
10. Removed a bunch of 'unlock screens' PlayGame handles most of them
11. Hid OptionsGroup and PauseMenuGroup in via Play Card script
12. Moved PauseMenu out of LoadingScreen and into PauseGame
13. Added on RawkeyDown to try to capture the EscapeKey better but it's still sporadic
14. Added ExitTitleCard before it called TitleGlow when using OptionsGroup and/or PauseMenuGroup
15. Added DistToScreen to create the bullet speeds, replacing the random number generator
16. Removed Excessive lines of LERP code in enemy bullets, replace with simple vector calculation
17. Added Midpoint, Endpoint, and RotatePoints functions to stack script 

Tutorial Stack 13
1. Background mountains added to game
2. InitBackgroundMountains handler produces two mountains "MidGround" & "Background" a "BackFrame" graphic 
3. GroupMulti handler added to group multiple object takes arguments group name, object type and a string list of items
4. function Quoted added to avoid typine quote & thing & quote all the time
5. ResetBackgroundGroup was added to manage the background mountain group
6. All background group scrolling actions in ScrollLandscape are enabled
7. Setup of sizes of warp group  in InitWarpPoints has been extracted to WarpsToScreenHeight
8. WarpsToScreenHeight is called when the stack size is updated to resize the warp
9. changed the screen size step in OptionsGroupSetUp to .2 more screen size options while maintaining ratio
10. changed the absolute values of scrollSpeedMult in ScrollLanscape to floor(item  1 of stackDepth()/90)
11. Added subtle altiude adjustment viewpoint changes to background group
12 added bUseBackMountains variable and  USeBackMountains stack custom property to go with BackMountainsToggle button Options Group
13 Added condition to ScrollLandscape to skip parralax scroll of background if bUseBackMountains is false
14 Added condition in WarpJump  & UpDateStackSize to skip background mountain stuff if bool is false too
14. Added condition to exit CheckCollisions if cheatMode was true
15. Added statements to hide OptionsGroup and PauseMenuGroup to InitGame

Tutorial Stack 12
1. Added local variables bAntiAlias, bUseEffects, bEffectStatesStored
2. Added  button "AntiAliasToggle" & button "UseEffectsToggle" in OptionsGroup
3. Added commands in in OptionsGroupSetUp to match the buttons with the bool variables
4. Added UseAntialiasBool, UseEffectsBool  custom Property to hold the state of the OptionsGroup pick
5. OptionsApplied handler acts on above to set the boolean variables, then sends:
6. UpdateAntiAlias to toggle AntiAlias and UpdateEffectStates to toggle effects on graphics
7. Added StoreEffectStates to store the effect states of all objects as custom property EffectStates in the obj
8. Added IndexEffectsValues to sift through the objects properties for the effects and their keys
9. It works!



Tutorial Stack 11
1. Set loading screen to top layer to hide players creation
2. set the player object created to bottom layer
3. during music init set viewer button object to top layer to attemp to watch music loading
4. set timeOfInit variable to 0 in ResumeGame handler
5. added groups "PauseMenuGroup" and "OptionsGroup", added to both cards
6. added OptionsGroupSetUp and OptionspApplied handlers to set up the OptionsGroup and to apply the OptionsGroup
7. Updated UpdateStackSize to sort the mountains group and other screen things afte screen options are applied
8. added QuitStack stack to the stack for handling the Really want to quit Yes/No? user decision.
9. Added quitCommand make sure that stack is closed before closing the mainStack...just in case
11 Stack has custom proeprties "OptionsNewFullScreen", OptionsNewVolume, and NewResolution  for OptionspApplied to take action on them. 
12. EscapeKey on title card will show "Options" &  "Exit" buttons, with "OptionsGroup" shown if selected
13. Play mode will leave the options/pause screen and resume game if escape key is pressed as usual.
14. playLoudness of players is now set by variable currentMusicVolume

Tutorial 10 Music Fixed
1. initMusic encapsulated in conditions to skip processing files & making players if there is no Data/Music folder
2. filteredMusicFiles function added, stack was finding .pdfs etc in Livecode app folder
3. all music related handlers will exit if songCount < 1
4. songCount variable set to 0 by default in local variable definitions

Tutorial Stack 10
1. Moved card Script of Card "Title" to stack script only OpenCard and Play button  script remain
2. Added multi-items functionaity to 'view' handler for tracking multiple events
3. added lastViewItems variable so view can handle multiple items
4. Play card script now calls InitMusic which will then signal InitGame when it's done loading songs/filling players
5. Added a condition in Initusic to skip loading files if the filenames of players on the card are all filled already
6. Changed LoadingScreen to handle any message sent and display whatever text it is given
7. InitMusic now creates player objects if they don't exist so any number of songs can be used
8. added CycleMusic handler for moving through list of song sequentially back and forth
9. Added some conditions in on ArrowKey to try to use  CycleMusic  but there is MUCH keyboard delay
10. Added a condition to escapeKey and ArrowKey to send PlayButtonPressed and enter game mode from Title card, for now
11. Scripts in WarpPoints are now deprecated, the stack script handles the warps on its own
12. Added Variable scrollSpeedMult during warp area slow down to effect scrollspeed without effecting the player
13. modified InitWarp to resize the warp based on the stack window height,
14 Warps now use linesize instead of blendLevel and use player proximity instead change over time for effects
15. WarpJump now gives 1000 points and and a bonus life
16 Moved the playerLives object blendLevel setting up out of InitPlayer into PlayerLivesIcons handler
17. Removed some redudant DeactivateBullet/InactiveBullet calls
18. Modified CheckCollisions to only search for collisions among active bullets instead of all 20 of them
19 Modified CheckCollision not to exit if there are activeBullets but no activeEnemies
20. Still Fighting a HUGE slowdown from warps--Its the graphic effects, so they are turned off.
21. Okay I think that's it for this stack.


Tutorial Stack 9
1. added outsideStackTime, bPaused, bWithinInit variables
2. added pBaused handler to all game objects but the player
3. added CheckMouseInWindow handler to Fix mouse exit window causing game stop
4. expanded escapeKey handler to handle game pause and to switch to pointer tool when mouse outside window
5. added PauseGame handler, and PauseAcitivity handlers to all objects except player
6. added ResumeActivity handlers to all objects and expaned ResumeGame to handle game resumption
7. Added a little glow to the loadingScreen graphic text but it only shows when opaque is false
8. Removed unneccsary if...then check for enemies& bullets in PlayerRespawn
 
Tutorial Stack 8
1. merged Enemy & Missile Factory objects , scripts and variables to game
2. renamed playerCrash variable to playerCrashed
3. made playerCrash & playerRespawn handlers
4. expanded ability of LoadsScreen handler to handle "GameOver" state
5. Added InitGame to handle game init sequence
6. Added GameOver handle Game Over State
7. Updated CheckCollissions to exit if no enemies are active..this may cause a bug with stray bullets?
8. Added InitMusic, RandomSong, 
9. Added PlayGame handler as Game Controller that controls the game play
10. Replaced PlayTest and other handlers like GetEnemies for more efficient handlers like "GetGraphics aName"
11 Replaced RecycleBullets with InactiveBullets
12.Probably more but I forget now, was a long night

Tutorial Stack 7
1. added 20 graphics called "Missile" & a number
2. added Missile scripting handlers to stack script
3. created PlayTest handler, set card script to run it on OpenCard 
4. added button "MissileScript" to stack
5. bumped the blendLevel of sMultBox & playerHitbox graphics
6. removed the "MH',"MV", and uh...border  graphics
7. removed script lines of PlayerMove setting those graphics
8. placed PlayerMove, ScrollLandscape & FireMissile calls into PlayTest loop
9. found redundancy of sMult setting in PlayerMove handler and removed it
10. discovered crazy timing issue with FireMissile, moved the missileDelay to PlayTest Handler
11. moved check for WarpPointSource to trigger FadeWarpPoint into PlayTest, much faster
12. BUG: Experiencing weird speed issues, PC fan is running crazy. <<< was being probed by 8 IP addresses

Tutorial Stack 6
1. Changed FlightTest handler to PlayerMove
2. Removed Test flight button to match above change
3. Added script ot card "Play" to call InitForeground & PlayerMove on OpenCard
4. Added virtual Borders, and virtual mouseLocTargetH and mouselocTargetV variables to PlayerMove
5. Added MouseEnter enter PlayerMove call to Card "Play" script
6. Added temporary "MV","MH","PlayerStage" graphics to visualize the scripted elements of PlayerMove
7. changed shorthand variables pXY in PlayerMove to playerXY, used playerX and playerY instead of 'item 1 of" etc
8. added View handler and "viewer" button for troubleshooting variables without sending to message box

Tutorial Stack 5
1. changed FlightTest handler to :
a) have MouseTargetLocV & H rects virtually assigned
b) check mouseloc Y coordinates and change Y position and Angle of Player


Tutorial Stack 4
1. Added WarpPointSource graphics, Group and Group Script
2. Added InitWarp, WarpJump, FadeWarp handlers to main stack
3. Added graphic "Player"
4. Added graphic "sMultBox"
5. Added FlightTest & CheckWarp handlers to stack
6.Changed "Test Flight" button to "Flight Test" Inits FlightTest handler
7. Changed "Make Mountains" button to "Init Foreground"

Tutorial Stack 03
1. Added InitForeground, InitMountains & ResetForegroundGroup handlers to stack script
2. Added Make Mountain button to test the Init
3. Added Test Flight button to test the mountain scrolling

Tutorial Stack 02
1. added script of card "Title"
2. added "edit card script" button
3.added "ThemeSong" player object
4. set the stack backgroundColor to black
5. added Outer Glow to text fields
6. added Outer Glow & Color Overlay To Play Button
7. added script to Play Button
8. grouped Title,Play,Instructions elements into group called "Title"
9. changed the stack dimensions to loosely represent standard screen ratio
10. added card "Play" to the stack.
