(function(){ var _this = this; // Life value in seconds var balloonLifeAfterDrop = 20; var isAlive = false; _this.preload = function(entityID){ this.entityID = entityID; }; _this.startKillBalloon = function(entityID) { Script.setTimeout(function(){ Entities.deleteEntity(entityID); print("Kill balloon"); }, balloonLifeAfterDrop * 1000); }; _this.drop = function(entityID){ var newProperties = { gravity: {x: 0, y: -0.25, z: 0}, velocity: {x: Math.random() - Math.random(), y: Math.random() * -1, z: Math.random() - Math.random()} }; isAlive = true; Entities.editEntity(entityID, newProperties); print("drop balloon"); this.startKillBalloon(this.entityID); }; _this.clickDownOnEntity = function(entityID, event){ print("clicked on balloon"); print(entityID); // If the balloon is in play the player can make it hop with another click // This is a cheap way to let the user "play" with the balloon sans collision if (isAlive){ Entities.callEntityMethod(this.entityID, "drop", entityID); } }; Entities.clearingEntities.connect(function(){ // Clean up any existing balloons when we shut down. They shouldn't be there when we come back. print("cleanup!"); Entities.deleteEntity(_this.entityID); }); });