Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexLA99 committed May 18, 2020
2 parents ce0fbfb + 3a506b3 commit 7ccbee9
Show file tree
Hide file tree
Showing 20 changed files with 565 additions and 263 deletions.
181 changes: 90 additions & 91 deletions PaintWars_Source/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,68 +9,90 @@ In a world full of colour, a corruption spread, turning everything monochromatic

**DISCLAIMER:** This version is not the final one, so please do not mind bugs and lack of content. We are working on that!

*Current version: v0.5*
*Current version: v0.85*


## Key Features

- GENERAL
+ Logo for the team
+ Logo for the game
+ Logo for the team (animated)
+ Logo for the game (animated)
+ FX for the Game Logo and Team Logo
+ Social Media Updated
+ Animations
+ Game resoulution at 1280x720px@60fps (Window and Full Screen supported)
+ Automatic Continuous Integration and Deployment
+ Automatic Continuous Integration and Deployment (basic)
+ Save/Load
+ 3 different waves (needs improvement)
+ Fog of war
+ Tutorial, Dialogs and Quests
+ Particles
- UI and HUD
+ Basic UI, with Main Menu (Play and Exit, Settings -not all functional, only Full Screen-, Credits -link to repository- and Map selection -all take to Forest Map-) with background
+ Life Bars
+ HUD: Quests (drop-down menu), buttons on the right (in order: go to Town Hall, Shop, Pause, Start over -only "no" functional), resources
+ Minimap: can be made bigger/smaller with [M], shows where in the map you are
+ Visual and acustic feedback
+ UI, with Main Menu (Play and Exit, Settings -music, fx, full screen, reset-, Credits -link to repository- and Map selection -continue if saved game, forest, snow and volcano-) with background
+ Life Bars, Progress bars
+ Pause menu fully working. with owered volume
+ HUD: Quests (drop-down menu), buttons on the right (in order: go to Town Hall, Shop, Pause, Start over), resources bar (with all the resources, life timer)
+ Minimap: can be made bigger/smaller with [M], shows where in the map you are, has entities -in progress-
+ Visual and acustic feedback, all menus animated
- RESOURCES
+ 4 different resources working: paint, wood, max units, research (to improve units/buildings)
+ 3 resources not fully implemented: metal scrap, food, titanium
+ 6 different resources working: paint, wood, max units, research (to improve units/buildings), metal scrap, titanium
- ENTITIES: Allies, buildings and enemies
+ 2 different allied units: painter (collect paint from lakes) and warrior (attack spawners)
+ 4 allied buildings:
- Town Hall: Not buildable, if destroyed LOSE
+ 5 different allied units (full colour): painter (collect paint from lakes), warrior (attack spawners and enemies), explorer (big vision range), ranger (attacks from a distance), knight (very tanky)
+ 9 allied buildings (full colour):
- Town Hall: Not buildable, if destroyed LOSE, to create painters, explorers
- Paint Extractor: To get paint (only buildable on lakes)
- Wood Producer: To get wood
- Barracks: To create warriors
+ 1 enemy building: Spawner (5, if destroyed WIN)
- Barracks: To create warriors, rangers, knights
- House: To increase unit capacity
- Research: to get improvement on units and buildings
- Metal Gatherer: To get metal scrap
- Titanium Extractor: To get titanium
- Turret: defensive building (not fully working yet)
+ 1 enemy building (black and white): Spawner (5, if destroyed WIN)
+ 4 Enemies, with AI behaviour, (black and white):
- Slime: Melee enemy
- Explosive Blob: Kamikaze enemy
- Rider: similar to warrior, but enemy
- Chroma King: Boss, Town Hall target
- ACTIONS
+ Movement and group movement
+ Collect paint (with painters)
+ Collect wood
+ Destroy spawners (with warriors)
+ Pathfinding
+ Win/Lose conditions (Town Hall destroyed OR more than 15 min LOSE, 5 Spawners destroyed WIN) with victory/lose custom messages and font
+ Win/Lose conditions (Town Hall destroyed OR more than 15 min LOSE, 5 Spawners destroyed WIN) with victory/lose custom messages and font and animated
- MAPS
+ Forest Map implemented
- SCENE MANAGER
+ Different scenes for the game, menu, win/lose, start
+ Different scenes for the game, menu, win/lose, start, logos
+ Transitions (Slide for buttons, Fade for debug)
- CAMERA
+ Camera follows the mouse on the edges
+ Starts on the Town Hall
+ It can also move with the arrows
+ Culling
- AUDIO
+ Background music implemented for all the scenes
+ Background music implemented different for all the scenes
+ UI feedback
+ FX
1 - warrior attack
2 - spawner destroyed
3 - painter movement
4 - warrior movement
5 - buying from shop
5 - buying from shop (2 different ones
6 - timer (when 10 sec left, countdown every second)
7 - wood producer
8 - town hall when creating a painter
9 - barracks when creating a warrior
10 - birds
11 - crickets
12 - quests
13 - knight attack
14 - enemy death
15 - ranger attack
16 - explorer movement
17 - ranger movement
18 - knight movement
+ Positioning (further fx sound less)
- DEBUG
+ F1/F2/F3 Game Scene: Forest / Snow / Volcano
Expand All @@ -84,17 +106,16 @@ In a world full of colour, a corruption spread, turning everything monochromatic
resources
- 1 add 10 paint
- 2 add 10 wood
- 3 add 10 metal scrap -not implemented yet-
- 4 add 10 titanium -not implemented yet-
- 5 add 10 food -not implemented yet-
- 3 add 10 metal scrap
- 4 add 10 titanium
- 6 add 10 max housing
- 7 add 1 level of research (units will have the upgrades already)
units (on mouse position)
- KP 1 add painter
- KP 2 add warrior
- KP 3 add ranged -not implemented yet-
- KP 4 add tank -not implemented yet-
- KP 5 add explorer -not implemented yet-
- KP 3 add ranged
- KP 4 add special (knight)
- KP 5 add explorer
- KP 0 kill selected units
buildings (on mouse position)
- Crtl + KP 1 add paint extractor
Expand All @@ -104,8 +125,8 @@ In a world full of colour, a corruption spread, turning everything monochromatic
- Crtl + KP 0 kill selected buildings
+ H Go to Town Hall
+ P Pause
+ S/L Save/Load (only save implemented)
+ ESC exit game (not in game scene)
+ S/L Save/Load
+ ESC exit game
+ N/M/R Zoom In/Out/Reset
+ KP MINUS/KP PLUS Control Framerate (+/- 10)
+ UP/DOWN/LEFT/RIGHT Camera movement
Expand All @@ -125,53 +146,48 @@ Warriors are used to attack the spawners and destroy them to win the game.
- LEFT CLICK - select
- RIGHT CLICK - select destination / attack
- ESC - exit game (not on Game scene)
- RIGHT CLICK AND DRAG - multiple selection
- RIGHT CLICK AND DRAG - multiple selection -not working-
- CTR - multiple selection
- UI and HUD - each button is self-explanatory, right clicking to select and hover enabled
+ SHOP - to shop, click on the "Shop Button", and select what you want to build by dragging into the map, it will take a while to build (depending on research level)
- DEBUG
+ F2/F3 Game Scene
+ F4 Save
+ F5 Load (Load function not functional yet)
+ F6 Full Screen
+ F7 Direct Win
+ F8 Direct Lose
+ F9 Collisions
+ F10 God Mode (add resources, buildings and units, can't lose, collisions)
resources
- 1 add 10 paint
- 2 add 10 wood
- 3 add 10 metal scrap -not implemented yet-
- 4 add 10 titanium -not implemented yet-
- 5 add 10 food -not implemented yet-
- 6 add 10 max housing
- 7 add 1 level of research (units will have the upgrades already)
units (on mouse position)
- KP 1 add painter
- KP 2 add warrior
- KP 3 add ranged -not implemented yet-
- KP 4 add tank -not implemented yet-
- KP 5 add explorer -not implemented yet-
- KP 0 kill selected units
buildings (on mouse position)
- Crtl + KP 1 add paint extractor
- Crtl + KP 2 add wood producer
- Crtl + KP 3 add barracks
- Crtl + KP 4 add house
- Crtl + KP 0 kill selected buildings
+ H Go to Town Hall
+ P Pause
+ S/L Save/Load (only save implemented)
+ ESC exit game (not in game scene)
+ N/M/R Zoom In/Out/Reset
+ KP MINUS/KP PLUS Control Framerate (+/- 10)
+ UP/DOWN/LEFT/RIGHT Camera movement
+ F1/F2/F3 Game Scene: Forest / Snow / Volcano
+ F4 Save
+ F5 Load (Load function not functional yet)
+ F6 Full Screen
+ F7 Direct Win
+ F8 Direct Lose
+ F9 Collisions
+ F10 God Mode (add resources, buildings and units, can't lose, collisions)
resources
- 1 add 10 paint
- 2 add 10 wood
- 3 add 10 metal scrap
- 4 add 10 titanium
- 6 add 10 max housing
- 7 add 1 level of research (units will have the upgrades already)
units (on mouse position)
- KP 1 add painter
- KP 2 add warrior
- KP 3 add ranged
- KP 4 add special (knight)
- KP 5 add explorer
- KP 0 kill selected units
buildings (on mouse position)
- Crtl + KP 1 add paint extractor
- Crtl + KP 2 add wood producer
- Crtl + KP 3 add barracks
- Crtl + KP 4 add house
- Crtl + KP 0 kill selected buildings
+ H Go to Town Hall
+ P Pause
+ S/L Save/Load
+ ESC exit game
+ N/M/R Zoom In/Out/Reset
+ KP MINUS/KP PLUS Control Framerate (+/- 10)
+ UP/DOWN/LEFT/RIGHT Camera movement

## Developers

- Marc San José - Design, QA
+ [Github](https://github.com/marcsjm19)
+ [Linkedin](https://www.linkedin.com/in/marc-san-jos%C3%A9-mart%C3%ADnez-6239361a3/)
- Enric-G. Durán - Co-Lead UI Designer, Lead Artist
+ [Github](https://github.com/EnricGDV)
+ [Linkedin](https://www.linkedin.com/in/enric-guillem-dur%C3%A1n-vilar-9a1932138/)
Expand All @@ -188,39 +204,22 @@ Warriors are used to attack the spawners and destroy them to win the game.
+ [Github](https://github.com/Needlesslord)
+ [Linkedin](https://es.linkedin.com/in/needlesslord)

Special thanks to Marc San José, he helped us implement the Fx for the game.
+ [Github](https://github.com/marcsjm19)
+ [Linkedin](https://www.linkedin.com/in/marc-san-jos%C3%A9-mart%C3%ADnez-6239361a3/)

## License

Copyright (c) 2020 BrainDead Studios

BrainDead Studios' games are licensed under an unmodified MIT license, which is an OSI-certified license that allows static linking with closed source software. Check [LICENSE](https://github.com/Needlesslord/BrainDeadStudios/blob/master/LICENSE) for further details.

All the data used (sprites, music, fx, etc) will be credited or free to use as well.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


###Credits

All the data used (sprites, music, fx, etc), which are free to use, will be credited as well.

There are several Parts in the code (Basic Code Structure, Render System with blit queue and Fonts with Text Bliting) that have been forked from DOLIME CORPORATION.
ALL code inside the disclaimer parts indicated in the code (Render System, Text Bltiting & UI Structure (Highly modified) and core game structure belong to: [Dolime Corporation](https://github.com/Sanmopre/DOLIME-CORP-PROJECT-II)
They are also developing and RTS and we encourage you to check it out!
The base code from where we started our game (base code) was taken from [Dolime Corporation](https://github.com/Sanmopre/DOLIME-CORP-PROJECT-II). They are also developing and RTS and we encourage you to check it out!

### Disclaimer

Expand Down
10 changes: 5 additions & 5 deletions PaintWars_Source/Source/Motor2D/GameLogoScene.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,11 @@ bool GameLogoScene::Update(float dt)

CameraDebugMovement(dt);

if (App->input->GetKey(SDL_SCANCODE_SPACE) == KEY_DOWN)
{
App->audio->Click_Logo_Sound; /*Mix_VolumeChunk(Click_Logo_Sound, 50);*/
App->scenes->SwitchScene(SCENES::MENU_SCENE);
}
//if (App->input->GetKey(SDL_SCANCODE_SPACE) == KEY_DOWN)
//{
// App->audio->Click_Logo_Sound; /*Mix_VolumeChunk(Click_Logo_Sound, 50);*/
// App->scenes->SwitchScene(SCENES::MENU_SCENE);
//}
App->player->Mouse_Cursor();


Expand Down
39 changes: 32 additions & 7 deletions PaintWars_Source/Source/Motor2D/GameScene.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -411,10 +411,10 @@ bool GameScene::Start()
App->audio->PlayingMenuMusic = false;
}

if (App->audio->PlayingIngameAudio != true) {
App->audio->PlayMusic("audio/music/music_scene_inGame.ogg");
App->audio->PlayingIngameAudio = true;
}
//if (App->audio->PlayingIngameAudio != true) {
// App->audio->PlayMusic("audio/music/music_scene_inGame.ogg");
// App->audio->PlayingIngameAudio = true;
//}

App->player->gameTimer.Start();

Expand All @@ -438,7 +438,7 @@ bool GameScene::PreUpdate()
if (App->PAUSE_ACTIVE == true){

if (/*PaintRollerAnimation->map_position.y + App->render->camera.y < 0 + App->render->camera.y*/ AnimTime < 90 && App->transition_manager->is_transitioning == false) {
PaintRollerAnimation->map_position = PaintRollerAnimation->map_position = { PaintRollerAnimation->map_position.x ,PaintRollerAnimation->map_position.y + 15 };
PaintRollerAnimation->map_position = PaintRollerAnimation->map_position = { PaintRollerAnimation->map_position.x ,PaintRollerAnimation->map_position.y + 25 };
LOG("Position Roller Y %f",PaintRollerAnimation->map_position.y);
//LOG("Camera x at %d", App->render->camera.x);
++AnimTime;
Expand Down Expand Up @@ -973,8 +973,27 @@ void GameScene::GUI_Event_Manager(GUI_Event type, j1UIElement* element)

if (element == homeButton && type == GUI_Event::EVENT_ONCLICK)
{
//if (App->scenes->Map_Forest_Active) {
// App->render->camera.x = 575;
// App->render->camera.y = -1200;
// //MinimapCameraBufferX = 4;
// //MinimapCameraBufferY = -4;
//}
//if (App->scenes->Map_Snow_Active) {
// App->render->camera.x = 575;
// App->render->camera.y = -1200;
// //MinimapCameraBufferX = 4;
// //MinimapCameraBufferY = -4;
//}
//if (App->scenes->Map_Volcano_Active) {
// App->render->camera.x = 575;
// App->render->camera.y = -1200;
// //MinimapCameraBufferX = 4;
// //MinimapCameraBufferY = -4;
//}
App->render->camera.x = 575;
App->render->camera.y = -1200;

}


Expand Down Expand Up @@ -1258,6 +1277,7 @@ void GameScene::GUI_Event_Manager(GUI_Event type, j1UIElement* element)
App->scenes->saved_map = 3;
}
App->SaveGame("save_game.xml");
App->canContinue = true;
}

if (element == resumeButton && type == GUI_Event::EVENT_ONCLICK)
Expand Down Expand Up @@ -1455,11 +1475,16 @@ void GameScene::GUI_Event_Manager(GUI_Event type, j1UIElement* element)
App->entities->AddEntity(ENTITY_TYPE_SPAWNER, { 80, 75 }, App->entities, nullptr, 0, true);
App->transition_manager->CreateSlide(SCENES::GAME_SCENE, 0.5f, true, true);*/

if (App->PAUSE_ACTIVE == true) {
if (exitMenu) {
App->scenes->exit = true;
}
else if (mainMenu)
{
App->entities->CleanUp();
App->transition_manager->CreateSlide(SCENES::MENU_SCENE, 0.5f, true, true);
}
else {
else if (restartMenu)
{
if (App->scenes->Map_Forest_Active = true) {
App->scenes->Load_Map_Forest = true;
App->transition_manager->CreateFadeToColour(SCENES::GAME_SCENE);
Expand Down
4 changes: 2 additions & 2 deletions PaintWars_Source/Source/Motor2D/LoseScene.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@ bool LoseScene::Start()
TryAgain->click_rect = { 285, 97,712 ,62 };
Lose_Timer = App->gui->AddElement(TypeOfUI::GUI_LABEL, nullptr, { 300, 500 }, { 0, 0 }, false, true, { 0, 0, 0, 0 }, "Timer");

if (App->audio->PlayingLoseMusic != true) {
/*if (App->audio->PlayingLoseMusic != true) {
Mix_HaltMusic();
App->audio->PlayingMenuMusic = false;
App->audio->PlayMusic("audio/music/music_scene_lose.ogg");
App->audio->PlayingLoseMusic = true;
}
}*/



Expand Down
Loading

0 comments on commit 7ccbee9

Please sign in to comment.