diff options
| author | Rubén Beltrán del Río <ben@nsovocal.com> | 2018-05-29 02:34:38 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-05-29 02:34:38 -0500 |
| commit | 3100e0533cb89a185ea021dfb83c4f364750180f (patch) | |
| tree | a957c7efc0b1d1e5f1ddafd69e2bfd39c70b50df /lib/nodes | |
| parent | 43413defcb854c8706a84a6a54a61c7977b52614 (diff) | |
Add Naive Game Rules (#11)
* Add components for tracking points
* Add methods to create new entities
* Adds nodes for points
* Add system to detect points
* Adds system to detect a winner
* Add system to render points and winner
* Add points required to win to config
* Add it all to the engine
* Add mention of points to changelog
Diffstat (limited to 'lib/nodes')
| -rw-r--r-- | lib/nodes/points.js | 25 | ||||
| -rw-r--r-- | lib/nodes/points_collider.js | 29 | ||||
| -rw-r--r-- | lib/nodes/winner.js | 24 |
3 files changed, 78 insertions, 0 deletions
diff --git a/lib/nodes/points.js b/lib/nodes/points.js new file mode 100644 index 0000000..40404b4 --- /dev/null +++ b/lib/nodes/points.js @@ -0,0 +1,25 @@ +import { Node } from '@serpentity/serpentity'; + +import PointsComponent from '../components/points'; + +/** + * Node identifying an entity that stores points + * + * @extends {external:Serpentity.Node} + * @class PointsNode + */ +export default class PointsNode extends Node { + +}; + +/** + * Holds the types that are used to identify a points keeping entity + * + * @property {object} types + * @name types + * @memberof PointsNode + */ +PointsNode.types = { + points: PointsComponent +}; + diff --git a/lib/nodes/points_collider.js b/lib/nodes/points_collider.js new file mode 100644 index 0000000..4b8fe92 --- /dev/null +++ b/lib/nodes/points_collider.js @@ -0,0 +1,29 @@ +import { Node } from '@serpentity/serpentity'; + +import BodyComponent from '../components/body'; +import PointsColliderComponent from '../components/points_collider'; + +/** + * Node identifying an entity that can identify a collision and give out + * points + * + * @extends {external:Serpentity.Node} + * @class PointsColliderNode + */ +export default class PointsColliderNode extends Node { + +}; + +/** + * Holds the types that are used to identify an entity that can give out + * points on collision + * + * @property {object} types + * @name types + * @memberof PhysicalWithAttributesNode + */ +PointsColliderNode.types = { + body: BodyComponent, + pointsCollider: PointsColliderComponent +}; + diff --git a/lib/nodes/winner.js b/lib/nodes/winner.js new file mode 100644 index 0000000..8c5a448 --- /dev/null +++ b/lib/nodes/winner.js @@ -0,0 +1,24 @@ +import { Node } from '@serpentity/serpentity'; + +import WinnerComponent from '../components/winner'; + +/** + * Node identifying an entity that stores winner + * + * @extends {external:Serpentity.Node} + * @class WinnerNode + */ +export default class WinnerNode extends Node { + +}; + +/** + * Holds the types that are used to identify a winner keeping entity + * + * @property {object} types + * @name types + * @memberof WinnerNode + */ +WinnerNode.types = { + winner: WinnerComponent +}; |