Releases: SimNine/Spybot
Releases · SimNine/Spybot
v2.7.0
2019/09/16
Custom programs, GUI overhaul
Massive delay due to refocusing on school
- Reorganized resources folder and respective paths in Data class
- Added three new programs: Teleporter, Transmitter, and Fragmenter
- Teleporter moves the head of the targeted program to a random grid square
- Transmitter moves the head of the targeted program to the location of another transmitter
- Fragmenter scatters the tiles of the targeted program onto random grid squares
- Added related program icons, action icons, and ACTION enums
- Added username prompt box when creating new campaign profiles
- Added GUIContainer "_fadeOverlay", just a global GUIContainer that has a black background to create whole-screen fade effects
- Added new class "TimedEvent" used to hold a generic anonymous function that is queued up to be executed later
- Added global LinkedList "_timedEvents" used to hold events
- Added a fade-out / fade-in transition when entering a campaign
- Added Credits panel on mainOverlay, displaying original team's names as well as my own (did not include Code, Process, QA, or Lego.com sections)
- Added BKGMODE enum, specifying the style in which the background overlay animates
- Added BKGMODE_RAINBOW mode for use on Credits panel
- Added BKGMODE_REDBLUE mode for use on Multiplayer lobby panel
- Complete redoing of ProgramInventoryDisplay
- It is now a paged display consisting of a row for each program type, displaying num owned, speed, size, etc
- Two arrows on the right side to page through
- "Minimize" button fades the display out and makes a tab appear, which can be clicked to reexpand the display
- Fixed the gameoverlay's PlayerDisplay not becoming appropriately translucent
- Added a tab for PlayerDisplay in exactly the same manner as the tab for ProgramInventoryDisplay
- Possibly other additions that I've forgotten
v2.6.1
2018/07/14
- Fixed bug causing client crash on second level entry
- Fixed bug causing crash on singleplayer game entry
- Fixed bug caused by pingSender thread trying to send messages to deleted clientList
- pingSender thread is now only run by non-local servers
- Fixed bug causing singleplayer dummy client mirror to appear in multiplayer lobby
- Message queue and ClientMirror list are now emptied on disconnect from a server
v2.0.0
2018/05/05
Game code separation, singleplayer reintroduction
- Separated and modularized Server class and server logic:
- Server is now included by default in the client
- A local instance of Server is created when the client opens a singleplayer game
- Added MSGTYPE_CHAT, which fills the entire contents of the message (including other fields), with text
- Separated CommandProcessor from Server
- Commands sent from external clients are now echoed back their responses
- Singleplayer is now functional again
v1.5.0
2018/05/01
Gamescreen animations
- Added a linkedlist of Animations to GameScreen class
- Added an Animation class to encapsulate animated effects and associated subclasses for animations
- AnimationAttack (on a successful use of ACTIONTYPE_DAMAGE)
- AnimationSelect (on selection of a grid tile)
- AnimationTileFade (representing eliminated program tiles as they fade out
- Added an AnimationParticle class and associated subclasses to encapsulate particles
- AnimationParticleSquareSpeck
- AnimationParticleSelectRing
- Changed GUITextbox to take a boolean indicating whether it is censored or not (i.e., passwords)
v1.0.0
2017/12/26
Multiplayer framework, IDE switch
TOO MUCH STUFF TO REMEMBER IT ALL - THIS MILESTONE IS A SANITY CHECK, NOT THE FINAL VERSION
- Now using Microsoft Visual Studio instead of Code::Blocks
- Began using WinSock API to pass messages over network (new DLL dependencies)
- Separated game into SpybotServer and SpybotClient
- Separated game logic:
- Client responds to user input by sending it to the Server
- Server confirms that messages received from Client are valid, then updates state, sends message back to Client
-Client updates view
- Some logical resources are shared, these are in SpybotShared
- Works on the basis of message passing: packets of fixed size, about 96 bytes
- Separated game logic:
- New "Multiplayer" button on main screen
- Singleplayer is broken
v0.6.0
2017/09/03
- Renamed/re-ripped some of the sound resources (NOT DONE)
- Added a map saving/loading system
- Nodes now keep a list of neighbors rather than children in order to allow unlocking levels in any order
- The player's programs are now separated by campaign
- GUI rework:
- GUIContainers are now click-and-draggable by default
- Moving a GUIContainer puts it on top of its parent's GUIObject stack
- Added support in GUIContainers for a color as a background
- Programs that are done for a turn now show a check mark next to their icon
- Consolidated lots of GUIButtons into GUIContainers (especially on the game screen)
- The default GUIContainer background color is now grey {120, 120, 120, 140}
- Added a GUIContainer "pause menu" to map and game screens
- Added display to GameScreen showing the beginning of the player's and the ai's turn
- The player can now pick up credits, and a sound is played
- Some GUIButtons no longer share common resources; dataContainer now contains strings containing URLs to the textures it represents
v0.1.0
2017/07/05
- Added title screen with fading title slides
- Began work on main menu:
- Added buttons for two campaigns, one freeform, options, achievs, quit
- Added procedurally animated background
- Began implementing sound engine using "SDL_mixer"
- Must remember to include application extensions
- Added icon
v0.0.0
2017/06/22
- First go at making a game in c++ as opposed to java
- Three main screens (MENU, MAP, GAME)
- Levels are represented as a grid with three layers
- Tile layer
- Program layer
- Item layer
- Programs have the same characteristics as in the original game
- Not all program moves have been ported yet