Path: blob/main/public/games/files/garbage-collector/js/levels/level-04.js
1036 views
/*globals define*/1define(function( require ) {2'use strict';34var Utils = require( 'utils' );5var LevelUtils = require( 'levels/utils-level' );67var Door = require( 'entities/door' );8var Laser = require( 'entities/laser' );9var Emitter = require( 'entities/emitter' );10var TractorBeam = require( 'entities/tractor-beam' );11var Trigger = require( 'entities/trigger' );12var TriggerWire = require( 'effects/trigger-wire' );1314var Material = require( 'config/material' );1516var DEG_TO_RAD = Utils.DEG_TO_RAD;1718var level04Data = require( 'text!../../json/level-04.json' );19var levelEnd = require( 'levels/level-end' );2021return function( game ) {22game.clear();2324game.player.x = -54;25game.player.y = -35;2627game.background.hueSpread = 10;28game.background.lightnessSpread = 15;2930LevelUtils.playerMaterialOn( game );31LevelUtils.addTrail( game );32LevelUtils.addBackground( game, 75, 34, 12, 1 );33LevelUtils.loadData( game, level04Data );3435game.camera.setHeight( 33, {36maintainAspectRatio: true37});3839// Lasers.40var laser0 = new Laser( -57, 7, Material.ANTIMATTER );41laser0.angle = -60 * DEG_TO_RAD;42game.add( laser0 );4344var laser1 = new Laser( -4, -18, Material.MATTER );45game.add( laser1 );4647// Tractor beam.48var tractorBeam = new TractorBeam( -55, 22, 20, 5 );49tractorBeam.angle = -80 * DEG_TO_RAD;50tractorBeam.force = 2000;51game.add( tractorBeam );5253// Trash.54var trashM = LevelUtils.normalTrash( Material.MATTER );55var trashAM = LevelUtils.normalTrash( Material.ANTIMATTER );5657// Emitters.58var em0 = new Emitter( -37, -9 );59em0.spawnArea = LevelUtils.normalSpawnArea(4);60em0.rate = 0.8;61em0.lifeTime = 9;62em0.speed = 200;63em0.angle = -90 * DEG_TO_RAD;6465em0.particle = trashAM;66em0.properties = LevelUtils.normalTrashProperties( trashAM, Material.ANTIMATTER );67em0.properties.fixture.restitution = 0.5;6869em0.start();70game.add( em0 );7172var em1 = new Emitter( 40, -36 );73em1.spawnArea = LevelUtils.normalSpawnArea(4);74em1.rate = 0.6;75em1.lifeTime = 2;76em1.speed = 200;77em1.angle = -90 * DEG_TO_RAD;7879em1.particle = trashM;80em1.properties = LevelUtils.normalTrashProperties( trashM, Material.MATTER );8182em1.start();83game.add( em1 );848586// Triggers.87var trig0 = new Trigger( -20, 35, 3, Material.ANTIMATTER );88game.add( trig0 );899091var trig1 = new Trigger( 43, -8, 3, Material.MATTER );92game.add( trig1 );9394// Door.95var door = new Door( 57, 25, 3, {96callback: function() {97levelEnd( game );98}99});100door.triggers.push( trig0 );101door.triggers.push( trig1 );102game.add( door );103104// Trigger wires.105var wire0 = new TriggerWire( trig0, door, {106vertices: [1070.5, 0,1080.5, 0.5,1090.5, 1110],111sourceDirection: TriggerWire.Direction.RIGHT,112targetDirection: TriggerWire.Direction.LEFT113});114game.add( wire0 );115116var wire1 = new TriggerWire( trig1, door, {117vertices: [1180, 0.5,1190.5, 0.5,1200.5, 1121],122sourceDirection: TriggerWire.Direction.BOTTOM,123targetDirection: TriggerWire.Direction.TOP124});125game.add( wire1 );126};127});128129130