Updated game manual. Limited number of HUD messages. Tweaked fighters and missions.

This commit is contained in:
Steve 2015-10-25 19:22:05 +00:00
parent cffc584d15
commit 37a0c77284
6 changed files with 99 additions and 34 deletions

View File

@ -1,9 +1,9 @@
{
"name" : "ATAF",
"health" : 50,
"shield" : 9999,
"shield" : 1250,
"speed" : 2.5,
"reloadTime" : 6,
"reloadTime" : 9,
"shieldRechargeRate" : 5,
"textureName" : "gfx/fighters/ataf.png",
"guns" : [

View File

@ -2,7 +2,7 @@
"name" : "Nymph",
"health" : 30,
"shield" : 25,
"speed" : 2.5,
"speed" : 2.1,
"reloadTime" : 14,
"shieldRechargeRate" : 30,
"textureName" : "gfx/fighters/nymph.png",

View File

@ -13,19 +13,13 @@
"targetType" : "TT_DESTROY"
},
{
"description" : "Do not lose any of the ATAFs",
"description" : "Do not lose any team mates",
"targetName" : "ATAF",
"targetValue" : 1,
"targetType" : "TT_DESTROY",
"isCondition" : 1
}
],
"challenges" : [
{
"type" : "CHALLENGE_NO_LOSSES",
"targetValue" : 0
}
],
"player" : {
"type" : "ATAF",
"side" : "SIDE_ALLIES",
@ -33,6 +27,14 @@
"squadron" : "White Knights"
},
"fighterGroups" : [
{
"name" : "ATAF",
"types" : "ATAF",
"number" : 4,
"side" : "SIDE_ALLIES",
"x" : 0,
"y" : 0
},
{
"name" : "Pandoran",
"types" : "Jackal;Sphinx;Nymph",

View File

@ -1,22 +1,44 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<style>
body {background-color:#000; color: #fff; font-family: "sans"}
h3 {background-color:#47c; padding:0.25em; color:#fff; margin-top:3em;}
a {color: #0af}
table.controls {border:1px solid #fff; padding: 0.5em; width:30em;}
table.controls td:first-child {width: 50%; color:#8cf;}
table.controls td:nth-child(2) {font-weight: bold;}
</style>
<title>TBFTSS - The Pandoran War</title>
</head>
<body>
<h1>The Battle for the Solar System</h1>
<h2>The Pandoran War</h2>
<h3>Introduction</h3>
<p>
The Battle for the Solar System - The Pandoran War is a 2D space shooter, based on the space opera novels by Stephen J Sweeney.
The Battle for the Solar System - The Pandoran War is a 2D space shooter, based on the space opera novels by <a href="http://www.twitter.com/stephenjsweeney">Stephen J Sweeney</a>.
</p>
<p>Note: this game is still under heavy development and will feature bugs, incomplete sections, and a numerous other issues until it reaches v1.0. Likewise, this gameplay manually will evolve over time, to become more detailed and helpful.</p>
<h3>Galactic Map</h3>
<h3>Title Screen</h3>
<p>
This is the main mission select screen. Here, you can move around and select star systems in which to undertake missions. Star Systems that have missions will emit red circles at regular intervals. Yellow circles will be emitted by star systems that have no active missions, but still have challenges that can be attempted.
This is the first screen that you will see upon starting the game. You may select from the following options:
<ul>
<li>New Game - Start a new game (note: this will overight any game that is currently in progress)</li>
<li>Continue - Continue the current game. This will be the default option if a save file is found.</li>
<li>Options - Configure various configuration option. See the options section for more information.</li>
<li>Quit - Exit the game</li>
</ul>
</p>
<p>Controls</p>
<table style="border:1px solid #000; width:20em;">
<h3>Galactic Map</h3>
<p>
This is the main mission select screen. Here, you can move around and select star systems in which to undertake missions. Star Systems that have missions will emit red circles at regular intervals. Yellow circles will be emitted by star systems that have no active missions, but still have challenges that can be attempted. Green circles will emit from system that have missions and changes that are 100% completed. You may replay any of these missions, at any time.
</p>
<h4>Controls</h4>
<table class="controls">
<tr><td>Arrow keys</td><td>Scroll galactic map</td></tr>
<tr><td>Return</td><td>Select Star System</td></tr>
<tr><td>Escape</td><td>Menu</td></tr>
@ -28,7 +50,7 @@ The Star System view shows a list of missions available for that star system. Mi
</p>
<p>Controls</p>
<table style="border:1px solid #000; width:20em;">
<table class="controls">
<tr><td>Arrow keys</td><td>Scroll galactic map</td></tr>
<tr><td>Return</td><td>Select Star System</td></tr>
<tr><td>Escape</td><td>Menu</td></tr>
@ -40,17 +62,41 @@ Each mission has various objectives that the player must finish in order to comp
</p>
<p>Controls</p>
<table style="border:1px solid #000; width:20em;">
<table class="controls">
<tr><td>Left arrow</td><td>Rotate anti-clockwise</td></tr>
<tr><td>Right arrow</td><td>Rotate clockwise</td></tr>
<tr><td>Up arrow</td><td>Accelerate</td></tr>
<tr><td>Down arrow</td><td>Decelerate</td></tr>
<tr><td>Left control</td><td>Fire main cannons</td></tr>
<tr><td>Left shift</td><td>Switch main cannons</td></tr>
<tr><td>Return</td><td>Launch missile</td></tr>
<tr><td>Tab</td><td>Display objectives</td></tr>
<tr><td>Escape</td><td>Menu</td></tr>
</table>
<p>
Most craft are equipped with offensive weaponry, with some fighters featuring more than one type of gun.
<ul>
<li>Plasma: a standard offensive weapon, that deals heavy levels of damage to shields and armour.</li>
<li>Particle: a low-power weapon that deal small amounts of damage to shields and armour. Favoured mostly be pirates and insurgents.</li>
<li>Mag: delivers an electro-magnetic charge to the target, draining its system power and rendering it helpless. Can be used to disable vessels.</li>
<li>Missile: home in on target vessels, to deliver tremendous amounts of damage.</li>
</ul>
</p>
<h3>Options</h3>
<p>
Various game options can be changed:
<ul>
<li>Window Size - change the size of the window the game is played in. Note that the game interally renders a resolution of 1280x720, and any changes to the window size will result in the game being scaled up or down.<sup>[1]</sup></li>
<li>Sound Volume - Change the volume of the sounds effects in the game, from 0 (no sound) to 10 (loudest).</li>
<li>Music Volume - Change the volume of the music in the game, from 0 (no sound) to 10 (loudest).</li>
<li>Fullscreen - Whether or not to start the game in fullscreen mode. Note that changes to this option will take effect next time you start the game.<sup>[1]</sup></li>
<li>VSync - Whether or not to enable VSync, to reduce screen tearing. Note that changes to this option will take effect next time you start the game.<sup>[1]</sup></li>
</ul>
<p style="font-size:8pt">[1] - changes to this option will take effect next time you start the game.</p>
</p>
<h3>About</h3>
<p>
This game is based on the Battle for the Solar System novel trilogy by Stephen J Sweeney. You can learn more about the trilogy by visiting:
@ -58,7 +104,13 @@ This game is based on the Battle for the Solar System novel trilogy by Stephen J
<p><a href="http://www.battleforthesolarsystem.com/">www.battleforthesolarsystem.com</a></p>
<p>The Battle for the Solar System and related related materials are Copyright ©2009-2015, Stephen J Sweeney. All Rights Reserved.</p>
<p>The Battle for the Solar System and related related materials are Copyright &copy;2009-2015, Stephen J Sweeney. All Rights Reserved.</p>
<h3>License</h3>
<p>
See the LICENSE and README.md files that came with this game for information on the various copyrights of the source code, graphics, sound, and data. Additionally, you may visit <a href="https://github.com/stephenjsweeney/tbftss">https://github.com/stephenjsweeney/tbftss</a> to get the source code itself, and view the files there.
</p>
</body>
</html>

View File

@ -22,8 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
static void drawHealthShieldBar(int current, int max, int x, int y, int r, int g, int b);
static void drawPlayerTargeter(void);
static void drawNumAllies(void);
static void drawNumEnemies(void);
static void drawNumFighters(void);
static void drawHealthBars(void);
static void drawWeaponInfo(void);
static void drawObjectives(void);
@ -35,7 +34,7 @@ static HudMessage *hudMessageTail;
static SDL_Texture *targetPointer;
static SDL_Texture *targetCircle;
static SDL_Texture *smallFighter;
static int numMessages;
static int healthWarning;
static char *gunName[] = {"", "Particle Cannon", "Plasma Cannon", "Laser Cannon", "Mag Cannon"};
@ -58,12 +57,16 @@ void doHud(void)
healthWarning++;
healthWarning %= FPS;
numMessages = 0;
prev = &hudMessageHead;
for (hudMessage = hudMessageHead.next ; hudMessage != NULL ; hudMessage = hudMessage->next)
{
hudMessage->life--;
numMessages++;
if (hudMessage->life <= 0)
{
if (hudMessage == hudMessageTail)
@ -74,6 +77,8 @@ void doHud(void)
prev->next = hudMessage->next;
free(hudMessage);
hudMessage = prev;
numMessages--;
}
prev = hudMessage;
@ -95,6 +100,17 @@ void addHudMessage(SDL_Color c, char *format, ...)
hudMessage->color = c;
hudMessage->life = FPS * 5;
numMessages++;
while (numMessages > MAX_HUD_MESSAGES)
{
hudMessage = hudMessageHead.next;
hudMessageHead.next = hudMessage->next;
free(hudMessage);
numMessages--;
}
}
void drawHud(void)
@ -105,9 +121,7 @@ void drawHud(void)
drawWeaponInfo();
drawNumAllies();
drawNumEnemies();
drawNumFighters();
drawObjectives();
@ -231,22 +245,17 @@ static void drawPlayerTargeter(void)
}
}
static void drawNumAllies(void)
static void drawNumFighters(void)
{
/* Allies */
SDL_SetTextureColorMod(smallFighter, 150, 200, 255);
blit(smallFighter, 400, 15, 0);
drawText(425, 11, 14, TA_LEFT, colors.white, "(%d)", battle.numAllies);
drawText(435, 11, 14, TA_CENTER, colors.white, "(%d)", battle.numAllies);
}
static void drawNumEnemies(void)
{
/* Enemies */
SDL_SetTextureColorMod(smallFighter, 255, 100, 100);
blit(smallFighter, SCREEN_WIDTH - 410, 15, 0);
drawText(SCREEN_WIDTH - 430, 11, 14, TA_CENTER, colors.white, "(%d)", battle.numEnemies);
drawText(SCREEN_WIDTH - 420, 11, 14, TA_RIGHT, colors.white, "(%d)", battle.numEnemies);
}
static void drawObjectives(void)

View File

@ -23,6 +23,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "../defs.h"
#include "../structs.h"
#define MAX_HUD_MESSAGES 6
extern SDL_Texture *getTexture(char *filename);
extern void blitRotated(SDL_Texture *texture, int x, int y, int angle);
extern void blit(SDL_Texture *texture, int x, int y, int center);