Skip to content

Commit d21f6a7

Browse files
committed
Add health display update
1 parent fe4b7e0 commit d21f6a7

File tree

6 files changed

+15
-15
lines changed

6 files changed

+15
-15
lines changed

css/main.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@ gravity > celestial {
5454
}
5555

5656
/*----- Game Stats -----------------------------------------------------------*/
57-
div#lives,
57+
div#health,
5858
div#message {
5959
position: absolute;
6060
user-select: none;
6161
-webkit-user-select: none;
6262
-moz-user-select: none;
6363
z-index: 200;
6464
}
65-
div#lives {
65+
div#health {
6666
bottom: 20px;
6767
left: 50px;
6868
}

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<!-- Scripts -->
1313
<script type="module" src="./js/main.js"></script>
1414
<body>
15-
<div id="lives">x attempts remaining</div>
15+
<div id="health">x attempts remaining</div>
1616
<div id="message">loading...</div>
1717
<div id="repo">
1818
<a href="https://github.com/una-ada/gravity">source code</a>

js/main.js

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,10 @@ let saturn = new Celestial({
3333
size: 3.06e8,
3434
texture: "./img/celestial-saturn.svg",
3535
}),
36-
titan = new Celestial({
37-
name: "Titan",
38-
physical: true,
39-
mass: 1.35e23,
40-
position: new Point(0, -1.187e9),
41-
velocity: new Vector(5.57e3, 0),
42-
size: 0.54e8,
43-
}),
4436
target = new Area(new Point(1.0e9, -1e8), new Point(0.559e9, 2e8), {
4537
name: "Target",
4638
});
4739
model.scene.push(saturn);
48-
model.scene.push(titan);
4940
model.scene.push(target);
5041

5142
/*---- Start Game ------------------------------------------------------------*/

js/modules/DOMRenderer.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ export default class DOMRenderer extends Renderer {
2727
* @override
2828
*/
2929
render() {
30-
const scene = this.model.scene;
30+
const model = this.model,
31+
scene = model.scene;
3132
scene.forEach(
3233
/** @arg {Celestial} obj */
3334
(obj) => {
@@ -52,6 +53,10 @@ export default class DOMRenderer extends Renderer {
5253
];
5354
}
5455
);
56+
model.healthDisplay.textContent = `${Math.max(
57+
0,
58+
model.health
59+
)} lives remaining.`;
5560
}
5661
/**
5762
* Create an Element for a game object and append it to the container.

js/modules/GameData.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* @file Manages the game model.
33
* @author Una Ada <una@anarchy.website>
4-
* @version 2021.06.03
4+
* @version 2021.06.04
55
*/
66

77
/*----- Imports --------------------------------------------------------------*/
@@ -18,6 +18,10 @@ export default class GameData {
1818
this.id = Math.round(+new Date() / 1e3).toString(26);
1919
/** @var {Celestial[]} scene Array of game objects in current scene. */
2020
this.scene = [];
21+
/** @var {HTMLElement} healthDisplay Remaining attempts display element. */
22+
this.healthDisplay = document.querySelector("div#health");
23+
/** @var {HTMLElement} message Element displaying game message. */
24+
this.message = document.querySelector("div#message");
2125

2226
/*----- Default Level Data -----------------------------------------------*/
2327
/** @var {number} health Number of remaining attempts for current level. */

js/modules/Utils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ export class Vector extends Point {
147147
* @override
148148
*/
149149
scale(scalar) {
150-
this.magnitude = this.magnitude * scalar;
150+
this.magnitude > 0 && (this.magnitude = this.magnitude * scalar);
151151
return this;
152152
}
153153
/**

0 commit comments

Comments
 (0)