Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
FogNetwork
GitHub Repository: FogNetwork/Tsunami
Path: blob/main/public/games/files/garbage-collector/js/levels/level-02.js
1036 views
1
/*globals define*/
2
define(function( require ) {
3
'use strict';
4
5
var Utils = require( 'utils' );
6
var LevelUtils = require( 'levels/utils-level' );
7
8
var Door = require( 'entities/door' );
9
var Laser = require( 'entities/laser' );
10
var Emitter = require( 'entities/emitter' );
11
var Trigger = require( 'entities/trigger' );
12
var TriggerWire = require( 'effects/trigger-wire' );
13
14
var Material = require( 'config/material' );
15
16
var DEG_TO_RAD = Utils.DEG_TO_RAD;
17
18
var level02Data = require( 'text!../../json/level-02.json' );
19
var level03 = require( 'levels/level-03' );
20
21
return function( game ) {
22
game.clear();
23
24
game.player.x = 60;
25
game.player.y = -40;
26
game.material = Material.ANTIMATTER;
27
28
game.font = '16pt "Helvetica Neue", Helvetica, Arial, sans-serif';
29
var materialText = 'Press button or spacebar to change matter type.';
30
game.text = materialText;
31
32
var checkMaterial = setInterval(function() {
33
if ( game.player.material === Material.MATTER ) {
34
game.text = '';
35
clearInterval( checkMaterial );
36
}
37
38
if ( game.text !== materialText ) {
39
clearInterval( checkMaterial );
40
}
41
}, 200 );
42
43
LevelUtils.playerMaterialOn( game );
44
LevelUtils.addTrail( game );
45
LevelUtils.addBackground( game, 96, 75, 32, 1 );
46
LevelUtils.loadData( game, level02Data );
47
48
game.camera.setHeight( 36, {
49
maintainAspectRatio: true
50
});
51
52
// Emitters.
53
var trashM = LevelUtils.normalTrash( Material.MATTER );
54
55
var em0 = new Emitter( 70, -40 );
56
em0.spawnArea = LevelUtils.normalSpawnArea(4);
57
em0.rate = 0.1;
58
em0.lifeTime = 6;
59
em0.speed = 100;
60
em0.angle = -180 * DEG_TO_RAD;
61
62
em0.particle = trashM;
63
em0.properties = LevelUtils.normalTrashProperties( trashM, Material.MATTER );
64
em0.properties.body.linearDamping = 0;
65
66
em0.start();
67
game.add( em0 );
68
69
// Lasers.
70
var laser0 = new Laser( 44, -59, Material.MATTER );
71
laser0.angle = -90 * DEG_TO_RAD;
72
game.add( laser0 );
73
74
var laser1 = new Laser( 14, -59, Material.MATTER );
75
laser1.angle = -90 * DEG_TO_RAD;
76
game.add( laser1 );
77
78
var laser2 = new Laser( -16, -57, Material.MATTER );
79
laser2.angle = -90 * DEG_TO_RAD;
80
game.add( laser2 );
81
82
// Trigger.
83
var trig0 = new Trigger( -60, -40, 3, Material.MATTER );
84
game.add( trig0 );
85
86
// Door.
87
var door = new Door( -45, -17, 3, {
88
callback: function() {
89
level03( game );
90
}
91
});
92
93
door.triggers.push( trig0 );
94
game.add( door );
95
96
// Trigger wire.
97
var triggerWire = new TriggerWire( trig0, door, {
98
vertices: [
99
0.4, 0,
100
0.4, 0.5,
101
1, 0.5
102
],
103
sourceDirection: TriggerWire.Direction.RIGHT,
104
targetDirection: TriggerWire.Direction.TOP
105
});
106
game.add( triggerWire );
107
};
108
});
109
110