Skip to content

Commit

Permalink
Completed basic documentation, corrected hero starting stats & slight…
Browse files Browse the repository at this point in the history
… rebalance.
  • Loading branch information
IMBurbank committed Jun 26, 2017
1 parent 84d1748 commit a52b5fb
Show file tree
Hide file tree
Showing 49 changed files with 573 additions and 140 deletions.
10 changes: 5 additions & 5 deletions app/scripts/es6/enemies/enemies-demon.es6
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ const enemyDemon = {
spawnQuant: {'6': 1},
boss: true,
aggression: 3,
levelRange: [8,8],
levelRange: [10,10],
baseStats: {
bHealth: 10,
bAttack: 4,
Expand Down Expand Up @@ -226,7 +226,7 @@ const enemyDemon = {
spawnQuant: {'7': 1},
boss: true,
aggression: 4,
levelRange: [9,9],
levelRange: [12,12],
baseStats: {
bHealth: 10,
bAttack: 4,
Expand Down Expand Up @@ -257,7 +257,7 @@ const enemyDemon = {
spawnQuant: {'8': 1},
boss: true,
aggression: 5,
levelRange: [10,10],
levelRange: [13,13],
baseStats: {
bHealth: 10,
bAttack: 4,
Expand Down Expand Up @@ -288,7 +288,7 @@ const enemyDemon = {
spawnQuant: {'9': 1},
boss: true,
aggression: 5,
levelRange: [12,12],
levelRange: [15,15],
baseStats: {
bHealth: 10,
bAttack: 4,
Expand Down Expand Up @@ -319,7 +319,7 @@ const enemyDemon = {
spawnQuant: {'10': 1},
boss: true,
aggression: 5,
levelRange: [13,13],
levelRange: [17,17],
baseStats: {
bHealth: 10,
bAttack: 4,
Expand Down
10 changes: 5 additions & 5 deletions app/scripts/es6/enemies/enemies-humanoid.es6
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const enemyHumanoid = {
spawnQuant: {'1': 1},
boss: true,
aggression: 3,
levelRange: [2,2],
levelRange: [3,3],
baseStats: {
bHealth: 10,
bAttack: 4,
Expand Down Expand Up @@ -40,7 +40,7 @@ const enemyHumanoid = {
spawnQuant: {'2': 1},
boss: true,
aggression: 3,
levelRange: [3,3],
levelRange: [5,5],
baseStats: {
bHealth: 10,
bAttack: 4,
Expand Down Expand Up @@ -71,7 +71,7 @@ const enemyHumanoid = {
spawnQuant: {'3': 1},
boss: true,
aggression: 3,
levelRange: [5,5],
levelRange: [6,6],
baseStats: {
bHealth: 10,
bAttack: 4,
Expand Down Expand Up @@ -102,7 +102,7 @@ const enemyHumanoid = {
spawnQuant: {'4': 1},
boss: true,
aggression: 4,
levelRange: [6,6],
levelRange: [8,8],
baseStats: {
bHealth: 10,
bAttack: 4,
Expand Down Expand Up @@ -133,7 +133,7 @@ const enemyHumanoid = {
spawnQuant: {'5': 1},
boss: true,
aggression: 4,
levelRange: [7,7],
levelRange: [9,9],
baseStats: {
bHealth: 10,
bAttack: 4,
Expand Down
16 changes: 15 additions & 1 deletion app/scripts/es6/game/_ActivityLog.es6
Original file line number Diff line number Diff line change
@@ -1,4 +1,18 @@
//props: gameLevel, levelUpCount, interactItem, increasedStat, exchangeAttacks, enemyDead
/**
* @desc Game component logs and displays game activity.
* @param {object} props - Component props.
* @param {number} props.gameLevel - Current game level.
* @param {number} props.levelUpCount - Current hero level.
* @param {object} props.interactItem - Hero/Item interaction details.
* @param {object} props.increasedStat - Updated when useStatPoint is successfull.
* @param {object} props.exchangeAttacks - Hero/Enemy attack details.
* @param {object} props.enemyDead - Most recent dead enemy details.
* @property {number} logLen - Max length of log array.
* @property {number} renderLen - Max umber of log items returned for render..
* @property {number} logArrayPadding - Index positions from end of log before recycling.
* @property {number} enemyDeadCount - Number of dead enemies processed by component.
* @returns Color-coded log of game activity.
*/

class ActivityLog extends React.Component {
constructor(props) {
Expand Down
9 changes: 8 additions & 1 deletion app/scripts/es6/game/_ActivityLogRow.es6
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
//props: type, message
/**
* @desc ActivityLog subcomponent renders each individual log row.
* @param {object} props - Component props.
* @param {string} props.key - React render property.
* @param {string} props.type - Log row activity type.
* @param {string} props.message - Displayed row message.
* @returns ActivityLog row.
*/

class ActivityLogRow extends React.Component {
render() {
Expand Down
13 changes: 10 additions & 3 deletions app/scripts/es6/game/_ConsumableItems.es6
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
/**
* @desc Game component to display QuickConsume consumable items.
* @param {object} props - Component props.
* @param {number} props.tileSize - Pixel dimension of rendered game tiles.
* @param {object} props.inventory - Current hero item inventory.
* @param {object} props.interactItem - Hero/Item interaction details.
* @param {object} props.itemPalettes - Item sprite sheets on canvas.
* @param {function} props.updateGameClassState - Update Game component state.
* @returns QuickConsume game component.
*/



//props: tileSize, inventory, itemPalettes, interactItem, quickConsume, updateGameClassState
class ConsumableItems extends React.Component {
constructor(props) {
super(props);
Expand Down
8 changes: 7 additions & 1 deletion app/scripts/es6/game/_CurrentObjective.es6
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
//props: enemyDead, gameLevel
/**
* @desc Game component displays current hero objective.
* @param {object} props - Component props.
* @param {number} props.gameLevel - Current game level.
* @param {object} props.enemyDead - Most recent dead enemy details.
* @returns Current objective Game component.
*/

class CurrentObjective extends React.Component {
constructor(props) {
Expand Down
32 changes: 27 additions & 5 deletions app/scripts/es6/game/_Enemy.es6
Original file line number Diff line number Diff line change
@@ -1,6 +1,31 @@
/**
* @desc EnemyManager subcomponents holds state for a individual enemy or merchant.
* @param {object} props - Component props.
* @param {string} props.key - React render property.
* @param {object} props.source - Pointer to default enemy object details.
* @param {array} props.spawnCoord - Location of Enemy spawn.
* @param {number} props.pollCount - Current number of Enemy components to send their round move.
* @param {number} props.roundCount - Number of move rounds initiated this game.
* @param {array} props.enemyTurn - Updated by Enemy subcomponents. Holds full round of enemy moves.
* @param {array} props.roundEnemyArr - Array of all Enemy components rendered on current level.
* @param {array} props.enemyDisplayArr - Display details for all enemies/merchants on level.
* @param {number} props.tileSize - Pixel dimension of rendered game tiles.
* @param {number} props.floor - First integer of floor value range in bgArr.
* @param {number} props.moveCount - Hero move counter.
* @param {array} props.playerArr - Hero's coordinates on the game board.
* @param {array} props.bgArr - Square array holds level background layer state.
* @param {array} props.enemyArr - Square array holds level enemy layer state.
* @param {object} props.exchangeAttacks - Hero/Enemy attack details.
* @param {object} props.enemyDead - Most recent dead enemy details.
* @param {object} props.enemyPalettes - Enemy sprite sheets on canvas.
* @param {function} props.incrementPollCount - Increment parent component pollCount.
* @param {function} props.updateEnemyTurn - Update parent enemyTurn array with chosen move.
* @param {function} props.updateEnemydisplayArr - Send details to parent enemyDisplayArr.
* @param {function} props.updateEnemyManager - Update selected EnemyManager state properties.
* @param {function} props.updateGameClassState - Update Game component state.
* @returns NA - Each instance represents an enemy or merchant.
*/

//tileSize, floor, source, spawnIndex, spawnCoord, bgArr, playerArr, moveCount, enemyArr, enemyDisplayArr, updateEnemyDisplayArr, updateEnemyManager,
//updateGameClassState, pollCount, incrementPollCount, enemyTurn, updateEnemyTurn, enemyDead, enemyPalettes, roundCount, roundEnemyArr, exchangeAttacks
class Enemy extends React.Component {
constructor(props) {
super(props);
Expand All @@ -15,9 +40,6 @@ class Enemy extends React.Component {
this.startTurn = this.startTurn.bind(this);
this.updateEnemyDisplay = this.updateEnemyDisplay.bind(this);

this.attemptMoveCoefficient = 19;
this.positionsTaken = [0,0,0,0];

this.state = ({
level: 0,
maxHealth: 0,
Expand Down
52 changes: 40 additions & 12 deletions app/scripts/es6/game/_EnemyManager.es6
Original file line number Diff line number Diff line change
@@ -1,5 +1,33 @@
//gameLevel, bgArr, floorCoords, playerArr, enemyArr, enemyAttack, exchangeAttacks, portalObjective
//moveCount, updateGameClassState, tileSize, floor, enemyPalettes, enemyDead, itemLevelProcessed
/**
* @desc Game component manages enemies/merchants, and displays enemy & objective details.
* @param {object} props - Component props.
* @param {number} props.tileSize - Pixel dimension of rendered game tiles.
* @param {number} props.floor - First integer of floor value range in bgArr.
* @param {number} props.gameLevel - Current game level.
* @param {number} props.itemLevelProcessed - Updated as LayerItem processes a level.
* @param {number} props.moveCount - Hero move counter.
* @param {array} props.playerArr - Hero's coordinates on the game board.
* @param {array} props.bgArr - Square array holds level background layer state.
* @param {array} props.enemyArr - Square array holds level enemy layer state.
* @param {array} props.floorCoords - Coords which haven't been take by hero/item/enemy.
* @param {object} props.portalObjective - Portal location and current discovery state.
* @param {object} props.enemyAttack - Enemy attack details. Prompts exchangeAttacks update.
* @param {object} props.exchangeAttacks - Hero/Enemy attack details.
* @param {object} props.enemyDead - Most recent dead enemy details.
* @param {object} props.enemyPalettes - Enemy sprite sheets on canvas.
* @param {function} props.updateGameClassState - Update Game component state.
* @property {number} pollCount - Enemies which have selected their round move.
* @property {number} enemyDeadCount - Number of dead enemies processed by component.
* @property {array} enemyTurn - Updated by Enemy subcomponents. Holds full round of enemy moves.
* @property {array} enemyDisplayArr - Display details for all enemies/merchants on level.
* @property {object} enemyDisplay - Current enemy/merchant details displayed in component.
* @property {boolean} bossDead - Whether level boss has been killed.
* @property {number} srcTileSize - Size of tiles in images uploaded to component.
* @property {boolean} renderSmoothing - Selection for canvas context imageSmoothingEnabled.
* @property {object} imgArrowCropDimensions - Properties for drawing arrows from img to canvas.
* @returns Level Enemies/merchants, and displays enemy & objective details.
*/

class EnemyManager extends React.Component {
constructor(props) {
super(props);
Expand Down Expand Up @@ -453,23 +481,23 @@ class EnemyManager extends React.Component {
source = {source}
spawnIndex = {enemies.length}
spawnCoord = {spawnCoord}
floor = {this.props.floor}
pollCount = {this.pollCount}
roundCount = {this.state.roundCount}
enemyTurn = {this.enemyTurn}
roundEnemyArr = {this.state.roundEnemyArr}
enemyDisplayArr = {this.enemyDisplayArr}
tileSize = {this.props.tileSize}
bgArr = {this.props.bgArr}
playerArr = {this.props.playerArr}
floor = {this.props.floor}
moveCount = {this.props.moveCount}
playerArr = {this.props.playerArr}
bgArr = {this.props.bgArr}
enemyArr = {this.props.enemyArr}
roundEnemyArr = {this.state.roundEnemyArr}
enemyPalettes = {this.props.enemyPalettes}
exchangeAttacks = {this.props.exchangeAttacks}
enemyDead = {this.props.enemyDead}
pollCount = {this.pollCount}
enemyPalettes = {this.props.enemyPalettes}
incrementPollCount = {this.incrementPollCount}
roundCount = {this.state.roundCount}
enemyTurn = {this.enemyTurn}
enemyDisplayArr = {this.enemyDisplayArr}
updateEnemyTurn = {this.updateEnemyTurn}
updateEnemyDisplayArr = {this.updateEnemyDisplayArr}
exchangeAttacks = {this.props.exchangeAttacks}
updateEnemyManager = {this.updateEnemyManager}
updateGameClassState = {this.props.updateGameClassState} />
);
Expand Down
14 changes: 7 additions & 7 deletions app/scripts/es6/game/_GameStage.es6
Original file line number Diff line number Diff line change
Expand Up @@ -82,19 +82,19 @@ class GameStage extends React.Component {
boardSize = {this.props.boardSize}
tileSize = {this.props.tileSize}
gameLevel = {this.props.gameLevel}
bgLevelProcessed = {this.props.bgLevelProcessed}
levels = {this.props.levels}
bgLevelProcessed = {this.props.bgLevelProcessed}
playerArr = {this.props.playerArr}
bgArr = {this.props.bgArr}
floorCoords = {this.props.floorCoords}
itemArr = {this.props.itemArr}
itemPalettes = {this.props.itemPalettes}
itemPaletteArrMap = {this.props.itemPaletteArrMap}
floorCoords = {this.props.floorCoords}
enemyDead = {this.props.enemyDead}
itemPaletteArrMap = {this.props.itemPaletteArrMap}
itemPalettes = {this.props.itemPalettes}
updateGameClassState = {this.props.updateGameClassState} />
<LayerEnemy
stageSize = {this.state.stageSize}
boardSize = {this.props.boardSize}
stageSize = {this.state.stageSize}
tileSize = {this.props.tileSize}
playerArr = {this.props.playerArr}
enemyArr = {this.props.enemyArr}
Expand All @@ -104,21 +104,21 @@ class GameStage extends React.Component {
stageSize = {this.state.stageSize}
tileSize = {this.props.tileSize} />
<LayerExploreFog
stageSize = {this.state.stageSize}
boardSize = {this.props.boardSize}
stageSize = {this.state.stageSize}
tileSize = {this.props.tileSize}
gameLevel = {this.props.gameLevel}
playerArr = {this.props.playerArr}
portalObjective = {this.props.portalObjective}
updateGameClassState = {this.props.updateGameClassState} />
<LayerOverlays
tileSize = {this.props.tileSize}
overlayMode = {this.props.overlayMode}
playerArr = {this.props.playerArr}
enemyArr = {this.props.enemyArr}
inventory = {this.props.inventory}
interactItem = {this.props.interactItem}
playerPalettes = {this.props.playerPalettes}
overlayMode = {this.props.overlayMode}
toggleMute = {this.props.toggleMute}
updateGameClassState = {this.props.updateGameClassState} />
</div>
Expand Down
5 changes: 4 additions & 1 deletion app/scripts/es6/game/_GameTips.es6
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@

/**
* @desc Game component provides basic game tips.
* @returns Basic game tips.
*/

class GameTips extends React.Component {
render() {
Expand Down
2 changes: 1 addition & 1 deletion app/scripts/es6/game/_Hero.es6
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class Hero extends React.Component {
experience: 0,
expToLevel: 0,
charLevel: 0,
gold: 200,
gold: 0,
curHealth: 0,
bHealth: 0,
bAttack: 0,
Expand Down
12 changes: 11 additions & 1 deletion app/scripts/es6/layers/_LayerDistanceFog.es6
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
//props: stageSize, tileSize,
/**
* @desc GameStage canvas layer responsible for distance fog rendering.
* @param {object} props - Component props.
* @param {number} props.stageSize - Pixel dimension of square GameStage.
* @param {number} props.tileSize - Pixel dimension of rendered game tiles.
* @property {array} renderPadArr - Additional inset padding for hero view range.
* @property {number} renderInset - Number of tiles inset or hero view range.
* @property {number} fogColor - Color of distance fog.
* @property {boolean} smoothingEnabled - Setting for canvas context imageSmoothingEnabled.
* @returns HTML canvas layer for distance fog.
*/

class LayerDistanceFog extends React.Component {
constructor(props) {
Expand Down
16 changes: 14 additions & 2 deletions app/scripts/es6/layers/_LayerEnemy.es6
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
/**
* @desc GameStage canvas layer responsible for enemy rendering.
* @param {object} props - Component props.
* @param {number} props.boardSize - Length of square game state arrays.
* @param {number} props.stageSize - Pixel dimension of square GameStage.
* @param {number} props.tileSize - Pixel dimension of rendered game tiles.
* @param {array} props.playerArr - Hero's coordinates on the game board.
* @param {array} props.enemyArr - Square array holds level enemy layer state.
* @param {object} props.enemyPalettes - Enemy sprite sheets on canvas.
* @param {function} props.updateGameClassState - Update Game component state.
* @property {number} lastRenderFrame - Last frame drawn. Either 1 or 0.
* @property {array} lastPlayerArr - Last processed playerArr coord.
* @returns HTML canvas layer for enemies.
*/

//stageSize, boardSize, tileSize, playerArr, enemyArr, enemyPalettes, updateGameClassState
//
class LayerEnemy extends React.Component {
constructor(props) {
super(props);
Expand Down
20 changes: 18 additions & 2 deletions app/scripts/es6/layers/_LayerExploreFog.es6
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
//props: stageSize, tileSize, boardSize, playerArr, gameLevel, portalObjective
//updateGameClassState
/**
* @desc GameStage canvas layer responsible for explore fog rendering.
* @param {object} props - Component props.
* @param {number} props.boardSize - Length of square game state arrays.
* @param {number} props.stageSize - Pixel dimension of square GameStage.
* @param {number} props.tileSize - Pixel dimension of rendered game tiles.
* @param {number} props.gameLevel - Current game level.
* @param {array} props.playerArr - Hero's coordinates on the game board.
* @param {object} props.portalObjective - Portal location and current discovery state.
* @param {function} props.updateGameClassState - Update Game component state.
* @property {array} lastPlayerArr - Last processed playerArr coord.
* @property {boolean} smoothingEnabled - Setting for canvas context imageSmoothingEnabled.
* @property {number} fogVal - Value in fogArr when explore fog is present at tile index.
* @property {number} sightRadius - Hero signt radius.
* @property {number} sightDecrement - Tile inset to sight radius.
* @returns HTML canvas layer for explore fog.
*/

class LayerExploreFog extends React.Component {
constructor(props) {
super(props);
Expand Down
Loading

0 comments on commit a52b5fb

Please sign in to comment.