mirror of
https://github.com/RandomityGuy/MBHaxe.git
synced 2025-10-30 08:11:25 +00:00
playgui and powerup names
This commit is contained in:
parent
ad0f5bfe67
commit
5b3da1277d
13 changed files with 249 additions and 81 deletions
|
|
@ -1865,7 +1865,7 @@ class Marble extends GameObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function useBlast() {
|
public function useBlast() {
|
||||||
if (this.level.blastAmount < 0.2 || this.level.game != "ultra")
|
if (this.level.blastAmount < 0.25 || this.level.game != "ultra")
|
||||||
return;
|
return;
|
||||||
var impulse = this.level.currentUp.multiply(Math.max(Math.sqrt(this.level.blastAmount), this.level.blastAmount) * 10);
|
var impulse = this.level.currentUp.multiply(Math.max(Math.sqrt(this.level.blastAmount), this.level.blastAmount) * 10);
|
||||||
this.applyImpulse(impulse);
|
this.applyImpulse(impulse);
|
||||||
|
|
|
||||||
|
|
@ -139,6 +139,8 @@ class MarbleWorld extends Scheduler {
|
||||||
public var gemCount:Int = 0;
|
public var gemCount:Int = 0;
|
||||||
public var blastAmount:Float = 0;
|
public var blastAmount:Float = 0;
|
||||||
|
|
||||||
|
var renderBlastAmount:Float = 0;
|
||||||
|
|
||||||
public var cursorLock:Bool = true;
|
public var cursorLock:Bool = true;
|
||||||
|
|
||||||
var timeTravelSound:Channel;
|
var timeTravelSound:Channel;
|
||||||
|
|
@ -446,6 +448,7 @@ class MarbleWorld extends Scheduler {
|
||||||
this.bonusTime = 0;
|
this.bonusTime = 0;
|
||||||
this.outOfBounds = false;
|
this.outOfBounds = false;
|
||||||
this.blastAmount = 0;
|
this.blastAmount = 0;
|
||||||
|
this.renderBlastAmount = 0;
|
||||||
this.outOfBoundsTime = null;
|
this.outOfBoundsTime = null;
|
||||||
this.finishTime = null;
|
this.finishTime = null;
|
||||||
|
|
||||||
|
|
@ -1173,9 +1176,12 @@ class MarbleWorld extends Scheduler {
|
||||||
function updateBlast(timestate:TimeState) {
|
function updateBlast(timestate:TimeState) {
|
||||||
if (this.game == "ultra") {
|
if (this.game == "ultra") {
|
||||||
if (this.blastAmount < 1) {
|
if (this.blastAmount < 1) {
|
||||||
this.blastAmount = Util.clamp(this.blastAmount + (timeState.dt / 25), 0, 1);
|
this.blastAmount = Util.clamp(this.blastAmount + (timeState.dt / 30), 0, 1);
|
||||||
|
this.renderBlastAmount = this.blastAmount;
|
||||||
|
} else {
|
||||||
|
this.renderBlastAmount = Math.min(this.blastAmount, timestate.dt * 0.75 + this.renderBlastAmount);
|
||||||
}
|
}
|
||||||
this.playGui.setBlastValue(this.blastAmount);
|
this.playGui.setBlastValue(this.renderBlastAmount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1245,7 +1251,7 @@ class MarbleWorld extends Scheduler {
|
||||||
|
|
||||||
// Show a notification (and play a sound) based on the gems remaining
|
// Show a notification (and play a sound) based on the gems remaining
|
||||||
if (this.gemCount == this.totalGems) {
|
if (this.gemCount == this.totalGems) {
|
||||||
string = "You have all the diamonds, head for the finish!";
|
string = "You have all the gems, head for the finish!";
|
||||||
// if (!this.rewinding)
|
// if (!this.rewinding)
|
||||||
AudioManager.playSound(ResourceLoader.getResource('data/sound/gem_all.wav', ResourceLoader.getAudio, this.soundResources));
|
AudioManager.playSound(ResourceLoader.getResource('data/sound/gem_all.wav', ResourceLoader.getAudio, this.soundResources));
|
||||||
|
|
||||||
|
|
@ -1256,13 +1262,13 @@ class MarbleWorld extends Scheduler {
|
||||||
// this.touchFinish(completionOfImpact);
|
// this.touchFinish(completionOfImpact);
|
||||||
// }
|
// }
|
||||||
} else {
|
} else {
|
||||||
string = "You picked up a diamond. ";
|
string = "You picked up a gem. ";
|
||||||
|
|
||||||
var remaining = this.totalGems - this.gemCount;
|
var remaining = this.totalGems - this.gemCount;
|
||||||
if (remaining == 1) {
|
if (remaining == 1) {
|
||||||
string += "Only one diamond to go!";
|
string += "Only one gem to go!";
|
||||||
} else {
|
} else {
|
||||||
string += '${remaining} diamonds to go!';
|
string += '${remaining} gems to go!';
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (!this.rewinding)
|
// if (!this.rewinding)
|
||||||
|
|
@ -1402,7 +1408,7 @@ class MarbleWorld extends Scheduler {
|
||||||
|
|
||||||
if (this.gemCount < this.totalGems) {
|
if (this.gemCount < this.totalGems) {
|
||||||
AudioManager.playSound(ResourceLoader.getResource('data/sound/missinggems.wav', ResourceLoader.getAudio, this.soundResources));
|
AudioManager.playSound(ResourceLoader.getResource('data/sound/missinggems.wav', ResourceLoader.getAudio, this.soundResources));
|
||||||
displayAlert("You can't finish without all the diamonds!!");
|
displayAlert("You can't finish without all the gems!");
|
||||||
} else {
|
} else {
|
||||||
this.endPad.spawnFirework(this.timeState);
|
this.endPad.spawnFirework(this.timeState);
|
||||||
this.finishTime = this.timeState.clone();
|
this.finishTime = this.timeState.clone();
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ enum HorizSizing {
|
||||||
Left;
|
Left;
|
||||||
Center;
|
Center;
|
||||||
Relative;
|
Relative;
|
||||||
|
Height;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum VertSizing {
|
enum VertSizing {
|
||||||
|
|
@ -26,6 +27,7 @@ enum VertSizing {
|
||||||
Top;
|
Top;
|
||||||
Center;
|
Center;
|
||||||
Relative;
|
Relative;
|
||||||
|
Width;
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef MouseState = {
|
typedef MouseState = {
|
||||||
|
|
@ -40,6 +42,8 @@ class GuiControl {
|
||||||
|
|
||||||
var position:Vector;
|
var position:Vector;
|
||||||
var extent:Vector;
|
var extent:Vector;
|
||||||
|
var xScale:Float = 1;
|
||||||
|
var yScale:Float = 1;
|
||||||
|
|
||||||
var children:Array<GuiControl> = [];
|
var children:Array<GuiControl> = [];
|
||||||
|
|
||||||
|
|
@ -130,7 +134,7 @@ class GuiControl {
|
||||||
|
|
||||||
if (this.parent != null) {
|
if (this.parent != null) {
|
||||||
parentRect = this.parent.getRenderRectangle();
|
parentRect = this.parent.getRenderRectangle();
|
||||||
rect.position = parentRect.position.add(this.position.multiply(uiScaleFactor));
|
rect.position = parentRect.position.add(new Vector(this.position.x * uiScaleFactor * xScale, this.position.y * uiScaleFactor * yScale));
|
||||||
}
|
}
|
||||||
|
|
||||||
var scaleFactor = 1.0 / Window.getInstance().windowToPixelRatio;
|
var scaleFactor = 1.0 / Window.getInstance().windowToPixelRatio;
|
||||||
|
|
@ -144,6 +148,14 @@ class GuiControl {
|
||||||
else
|
else
|
||||||
rect.extent.x = Window.getInstance().width * scaleFactor;
|
rect.extent.x = Window.getInstance().width * scaleFactor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.horizSizing == HorizSizing.Height) {
|
||||||
|
if (this.parent != null)
|
||||||
|
rect.extent.x = parentRect.extent.y * (this.extent.y / parent.extent.y);
|
||||||
|
else
|
||||||
|
rect.extent.x = Window.getInstance().height * scaleFactor;
|
||||||
|
}
|
||||||
|
|
||||||
if (this.vertSizing == VertSizing.Height) {
|
if (this.vertSizing == VertSizing.Height) {
|
||||||
if (this.parent != null)
|
if (this.parent != null)
|
||||||
rect.extent.y = parentRect.extent.y * (this.extent.y / parent.extent.y);
|
rect.extent.y = parentRect.extent.y * (this.extent.y / parent.extent.y);
|
||||||
|
|
@ -151,40 +163,47 @@ class GuiControl {
|
||||||
rect.extent.y = Window.getInstance().height * scaleFactor;
|
rect.extent.y = Window.getInstance().height * scaleFactor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.vertSizing == VertSizing.Width) {
|
||||||
|
if (this.parent != null)
|
||||||
|
rect.extent.y = parentRect.extent.x * (this.extent.x / parent.extent.x);
|
||||||
|
else
|
||||||
|
rect.extent.y = Window.getInstance().width * scaleFactor;
|
||||||
|
}
|
||||||
|
|
||||||
if (this.horizSizing == HorizSizing.Center) {
|
if (this.horizSizing == HorizSizing.Center) {
|
||||||
if (this.parent != null) {
|
if (this.parent != null) {
|
||||||
rect.position.x = parentRect.position.x + parentRect.extent.x / 2 - (rect.extent.x * uiScaleFactor) / 2;
|
rect.position.x = parentRect.position.x + parentRect.extent.x / 2 - (rect.extent.x * uiScaleFactor * xScale) / 2;
|
||||||
rect.extent.x *= uiScaleFactor;
|
rect.extent.x *= uiScaleFactor * xScale;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.vertSizing == VertSizing.Center) {
|
if (this.vertSizing == VertSizing.Center) {
|
||||||
if (this.parent != null) {
|
if (this.parent != null) {
|
||||||
rect.position.y = parentRect.position.y + parentRect.extent.y / 2 - (rect.extent.y * uiScaleFactor) / 2;
|
rect.position.y = parentRect.position.y + parentRect.extent.y / 2 - (rect.extent.y * uiScaleFactor * yScale) / 2;
|
||||||
rect.extent.y *= uiScaleFactor;
|
rect.extent.y *= uiScaleFactor * yScale;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.horizSizing == HorizSizing.Right) {
|
if (this.horizSizing == HorizSizing.Right) {
|
||||||
if (this.parent != null) {
|
if (this.parent != null) {
|
||||||
rect.position.x = parentRect.position.x + this.position.x * uiScaleFactor;
|
rect.position.x = parentRect.position.x + this.position.x * uiScaleFactor * xScale;
|
||||||
rect.extent.x *= uiScaleFactor;
|
rect.extent.x *= uiScaleFactor * xScale;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.vertSizing == VertSizing.Bottom) {
|
if (this.vertSizing == VertSizing.Bottom) {
|
||||||
if (this.parent != null) {
|
if (this.parent != null) {
|
||||||
rect.position.y = parentRect.position.y + this.position.y * uiScaleFactor;
|
rect.position.y = parentRect.position.y + this.position.y * uiScaleFactor * yScale;
|
||||||
rect.extent.y *= uiScaleFactor;
|
rect.extent.y *= uiScaleFactor * yScale;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.horizSizing == HorizSizing.Left) {
|
if (this.horizSizing == HorizSizing.Left) {
|
||||||
if (this.parent != null) {
|
if (this.parent != null) {
|
||||||
rect.position.x = parentRect.position.x + parentRect.extent.x - (parent.extent.x - this.position.x) * uiScaleFactor;
|
rect.position.x = parentRect.position.x + parentRect.extent.x - (parent.extent.x - this.position.x) * uiScaleFactor * xScale;
|
||||||
rect.extent.x *= uiScaleFactor;
|
rect.extent.x *= uiScaleFactor * xScale;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.vertSizing == VertSizing.Top) {
|
if (this.vertSizing == VertSizing.Top) {
|
||||||
if (this.parent != null) {
|
if (this.parent != null) {
|
||||||
rect.position.y = parentRect.position.y + parentRect.extent.y - (parent.extent.y - this.position.y) * uiScaleFactor;
|
rect.position.y = parentRect.position.y + parentRect.extent.y - (parent.extent.y - this.position.y) * uiScaleFactor * yScale;
|
||||||
rect.extent.y *= uiScaleFactor;
|
rect.extent.y *= uiScaleFactor * yScale;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.parent != null) {
|
if (this.parent != null) {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package gui;
|
package gui;
|
||||||
|
|
||||||
|
import h3d.Matrix;
|
||||||
import src.ProfilerUI;
|
import src.ProfilerUI;
|
||||||
import hxd.App;
|
import hxd.App;
|
||||||
import hxd.res.Image;
|
import hxd.res.Image;
|
||||||
|
|
@ -47,6 +48,7 @@ class PlayGui {
|
||||||
|
|
||||||
var gemCountNumbers:Array<GuiAnim> = [];
|
var gemCountNumbers:Array<GuiAnim> = [];
|
||||||
var gemCountSlash:GuiImage;
|
var gemCountSlash:GuiImage;
|
||||||
|
var gemHUD:GuiImage;
|
||||||
var powerupBox:GuiAnim;
|
var powerupBox:GuiAnim;
|
||||||
var RSGOCenterText:Anim;
|
var RSGOCenterText:Anim;
|
||||||
|
|
||||||
|
|
@ -57,12 +59,14 @@ class PlayGui {
|
||||||
|
|
||||||
var blastBar:GuiControl;
|
var blastBar:GuiControl;
|
||||||
var blastFill:GuiImage;
|
var blastFill:GuiImage;
|
||||||
|
var blastFillUltra:GuiImage;
|
||||||
var blastFrame:GuiImage;
|
var blastFrame:GuiImage;
|
||||||
|
|
||||||
var imageResources:Array<Resource<Image>> = [];
|
var imageResources:Array<Resource<Image>> = [];
|
||||||
var textureResources:Array<Resource<Texture>> = [];
|
var textureResources:Array<Resource<Texture>> = [];
|
||||||
var soundResources:Array<Resource<Sound>> = [];
|
var soundResources:Array<Resource<Sound>> = [];
|
||||||
|
|
||||||
|
var playGuiCtrlOuter:GuiControl;
|
||||||
var playGuiCtrl:GuiControl;
|
var playGuiCtrl:GuiControl;
|
||||||
|
|
||||||
var resizeEv:Void->Void;
|
var resizeEv:Void->Void;
|
||||||
|
|
@ -73,9 +77,11 @@ class PlayGui {
|
||||||
|
|
||||||
var middleMessages:Array<MiddleMessage> = [];
|
var middleMessages:Array<MiddleMessage> = [];
|
||||||
|
|
||||||
|
var totalGems:Int = 0;
|
||||||
|
|
||||||
public function dispose() {
|
public function dispose() {
|
||||||
if (_init) {
|
if (_init) {
|
||||||
playGuiCtrl.dispose();
|
playGuiCtrlOuter.dispose();
|
||||||
RSGOCenterText.remove();
|
RSGOCenterText.remove();
|
||||||
|
|
||||||
for (textureResource in textureResources) {
|
for (textureResource in textureResources) {
|
||||||
|
|
@ -95,12 +101,24 @@ class PlayGui {
|
||||||
public function init(scene2d:h2d.Scene, game:String) {
|
public function init(scene2d:h2d.Scene, game:String) {
|
||||||
this.scene2d = scene2d;
|
this.scene2d = scene2d;
|
||||||
this._init = true;
|
this._init = true;
|
||||||
|
// Settings.uiScale = 2.25;
|
||||||
|
|
||||||
|
playGuiCtrlOuter = new GuiControl();
|
||||||
|
playGuiCtrlOuter.position = new Vector();
|
||||||
|
playGuiCtrlOuter.extent = new Vector(640, 480);
|
||||||
|
playGuiCtrlOuter.horizSizing = Width;
|
||||||
|
playGuiCtrlOuter.vertSizing = Height;
|
||||||
|
|
||||||
playGuiCtrl = new GuiControl();
|
playGuiCtrl = new GuiControl();
|
||||||
playGuiCtrl.position = new Vector();
|
playGuiCtrl.position = new Vector(145, 82);
|
||||||
playGuiCtrl.extent = new Vector(640, 480);
|
|
||||||
|
var subX = 640 - (scene2d.width - 145 * 2) * 640 / scene2d.width;
|
||||||
|
var subY = 480 - (scene2d.height - 82 * 2) * 480 / scene2d.height;
|
||||||
|
|
||||||
|
playGuiCtrl.extent = new Vector(640 - subX, 480 - subY);
|
||||||
playGuiCtrl.horizSizing = Width;
|
playGuiCtrl.horizSizing = Width;
|
||||||
playGuiCtrl.vertSizing = Height;
|
playGuiCtrl.vertSizing = Height;
|
||||||
|
playGuiCtrlOuter.addChild(playGuiCtrl);
|
||||||
|
|
||||||
var numberTiles = [];
|
var numberTiles = [];
|
||||||
for (i in 0...10) {
|
for (i in 0...10) {
|
||||||
|
|
@ -137,11 +155,12 @@ class PlayGui {
|
||||||
MarbleGame.instance.touchInput.showControls(this.playGuiCtrl, game == 'ultra');
|
MarbleGame.instance.touchInput.showControls(this.playGuiCtrl, game == 'ultra');
|
||||||
}
|
}
|
||||||
|
|
||||||
playGuiCtrl.render(scene2d);
|
playGuiCtrlOuter.render(scene2d);
|
||||||
|
|
||||||
resizeEv = () -> {
|
resizeEv = () -> {
|
||||||
var wnd = Window.getInstance();
|
var wnd = Window.getInstance();
|
||||||
playGuiCtrl.render(MarbleGame.canvas.scene2d);
|
powerupBox.position.x = wnd.width * 469.0 / 640.0;
|
||||||
|
playGuiCtrlOuter.render(MarbleGame.canvas.scene2d);
|
||||||
};
|
};
|
||||||
|
|
||||||
Window.getInstance().addResizeEvent(resizeEv);
|
Window.getInstance().addResizeEvent(resizeEv);
|
||||||
|
|
@ -151,44 +170,64 @@ class PlayGui {
|
||||||
|
|
||||||
public function initTimer() {
|
public function initTimer() {
|
||||||
var timerCtrl = new GuiImage(ResourceLoader.getResource('data/ui/game/timebackdrop0.png', ResourceLoader.getImage, this.imageResources).toTile());
|
var timerCtrl = new GuiImage(ResourceLoader.getResource('data/ui/game/timebackdrop0.png', ResourceLoader.getImage, this.imageResources).toTile());
|
||||||
timerCtrl.horizSizing = HorizSizing.Center;
|
|
||||||
timerCtrl.position = new Vector(215, 0);
|
timerCtrl.position = new Vector(215, 0);
|
||||||
timerCtrl.extent = new Vector(256, 64);
|
timerCtrl.extent = new Vector(256, 64);
|
||||||
|
timerCtrl.horizSizing = Center;
|
||||||
|
timerCtrl.xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
timerCtrl.yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
var innerCtrl = new GuiControl();
|
var innerCtrl = new GuiControl();
|
||||||
innerCtrl.position = new Vector(26, 0);
|
innerCtrl.position = new Vector(26, 0);
|
||||||
innerCtrl.extent = new Vector(256, 64);
|
innerCtrl.extent = new Vector(256, 64);
|
||||||
|
innerCtrl.xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
innerCtrl.yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
timerCtrl.addChild(innerCtrl);
|
timerCtrl.addChild(innerCtrl);
|
||||||
|
|
||||||
timerNumbers[0].position = new Vector(20, 4);
|
timerNumbers[0].position = new Vector(20, 4);
|
||||||
timerNumbers[0].extent = new Vector(43, 55);
|
timerNumbers[0].extent = new Vector(43, 55);
|
||||||
|
timerNumbers[0].xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
timerNumbers[0].yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
timerNumbers[1].position = new Vector(40, 4);
|
timerNumbers[1].position = new Vector(40, 4);
|
||||||
timerNumbers[1].extent = new Vector(43, 55);
|
timerNumbers[1].extent = new Vector(43, 55);
|
||||||
|
timerNumbers[1].xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
timerNumbers[1].yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
var colonCols = ResourceLoader.getResource('data/ui/game/numbers/colon.png', ResourceLoader.getImage, this.imageResources).toTile();
|
var colonCols = ResourceLoader.getResource('data/ui/game/numbers/colon.png', ResourceLoader.getImage, this.imageResources).toTile();
|
||||||
|
|
||||||
timerColon = new GuiImage(colonCols);
|
timerColon = new GuiImage(colonCols);
|
||||||
timerColon.position = new Vector(55, 4);
|
timerColon.position = new Vector(55, 4);
|
||||||
timerColon.extent = new Vector(43, 55);
|
timerColon.extent = new Vector(43, 55);
|
||||||
|
timerColon.xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
timerColon.yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
timerNumbers[2].position = new Vector(70, 4);
|
timerNumbers[2].position = new Vector(70, 4);
|
||||||
timerNumbers[2].extent = new Vector(43, 55);
|
timerNumbers[2].extent = new Vector(43, 55);
|
||||||
|
timerNumbers[2].xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
timerNumbers[2].yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
timerNumbers[3].position = new Vector(90, 4);
|
timerNumbers[3].position = new Vector(90, 4);
|
||||||
timerNumbers[3].extent = new Vector(43, 55);
|
timerNumbers[3].extent = new Vector(43, 55);
|
||||||
|
timerNumbers[3].xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
timerNumbers[3].yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
var pointCols = ResourceLoader.getResource('data/ui/game/numbers/point.png', ResourceLoader.getImage, this.imageResources).toTile();
|
var pointCols = ResourceLoader.getResource('data/ui/game/numbers/point.png', ResourceLoader.getImage, this.imageResources).toTile();
|
||||||
|
|
||||||
timerPoint = new GuiImage(pointCols);
|
timerPoint = new GuiImage(pointCols);
|
||||||
timerPoint.position = new Vector(105, 4);
|
timerPoint.position = new Vector(105, 4);
|
||||||
timerPoint.extent = new Vector(43, 55);
|
timerPoint.extent = new Vector(43, 55);
|
||||||
|
timerPoint.xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
timerPoint.yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
timerNumbers[4].position = new Vector(120, 4);
|
timerNumbers[4].position = new Vector(120, 4);
|
||||||
timerNumbers[4].extent = new Vector(43, 55);
|
timerNumbers[4].extent = new Vector(43, 55);
|
||||||
|
timerNumbers[4].xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
timerNumbers[4].yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
timerNumbers[5].position = new Vector(140, 4);
|
timerNumbers[5].position = new Vector(140, 4);
|
||||||
timerNumbers[5].extent = new Vector(43, 55);
|
timerNumbers[5].extent = new Vector(43, 55);
|
||||||
|
timerNumbers[5].xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
timerNumbers[5].yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
timerNumbers[6].position = new Vector(191, 0);
|
timerNumbers[6].position = new Vector(191, 0);
|
||||||
timerNumbers[6].extent = new Vector(43, 55);
|
timerNumbers[6].extent = new Vector(43, 55);
|
||||||
|
|
@ -238,37 +277,57 @@ class PlayGui {
|
||||||
var gemBox = new GuiControl();
|
var gemBox = new GuiControl();
|
||||||
gemBox.position = new Vector(0, 0);
|
gemBox.position = new Vector(0, 0);
|
||||||
gemBox.extent = new Vector(300, 200);
|
gemBox.extent = new Vector(300, 200);
|
||||||
|
gemBox.xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
gemBox.yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
var innerCtrl = new GuiControl();
|
var innerCtrl = new GuiControl();
|
||||||
innerCtrl.position = new Vector(26, 0);
|
innerCtrl.position = new Vector(26, 0);
|
||||||
innerCtrl.extent = new Vector(256, 64);
|
innerCtrl.extent = new Vector(256, 64);
|
||||||
|
innerCtrl.xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
innerCtrl.yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
gemBox.addChild(innerCtrl);
|
gemBox.addChild(innerCtrl);
|
||||||
|
|
||||||
gemCountNumbers[0].position = new Vector(20, 4);
|
gemCountNumbers[0].position = new Vector(20, 4);
|
||||||
gemCountNumbers[0].extent = new Vector(43, 55);
|
gemCountNumbers[0].extent = new Vector(43, 55);
|
||||||
|
gemCountNumbers[0].xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
gemCountNumbers[0].yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
gemCountNumbers[1].position = new Vector(38, 4);
|
gemCountNumbers[1].position = new Vector(38, 4);
|
||||||
gemCountNumbers[1].extent = new Vector(43, 55);
|
gemCountNumbers[1].extent = new Vector(43, 55);
|
||||||
|
gemCountNumbers[1].xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
gemCountNumbers[1].yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
gemCountNumbers[2].position = new Vector(56, 4);
|
gemCountNumbers[2].position = new Vector(56, 4);
|
||||||
gemCountNumbers[2].extent = new Vector(43, 55);
|
gemCountNumbers[2].extent = new Vector(43, 55);
|
||||||
|
gemCountNumbers[2].xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
gemCountNumbers[2].yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
gemCountSlash = new GuiImage(ResourceLoader.getResource('data/ui/game/numbers/slash.png', ResourceLoader.getImage, this.imageResources).toTile());
|
gemCountSlash = new GuiImage(ResourceLoader.getResource('data/ui/game/numbers/slash.png', ResourceLoader.getImage, this.imageResources).toTile());
|
||||||
gemCountSlash.position = new Vector(73, 4);
|
gemCountSlash.position = new Vector(73, 4);
|
||||||
gemCountSlash.extent = new Vector(43, 55);
|
gemCountSlash.extent = new Vector(43, 55);
|
||||||
|
gemCountSlash.xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
gemCountSlash.yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
gemCountNumbers[3].position = new Vector(89, 4);
|
gemCountNumbers[3].position = new Vector(89, 4);
|
||||||
gemCountNumbers[3].extent = new Vector(43, 55);
|
gemCountNumbers[3].extent = new Vector(43, 55);
|
||||||
|
gemCountNumbers[3].xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
gemCountNumbers[3].yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
gemCountNumbers[4].position = new Vector(107, 4);
|
gemCountNumbers[4].position = new Vector(107, 4);
|
||||||
gemCountNumbers[4].extent = new Vector(43, 55);
|
gemCountNumbers[4].extent = new Vector(43, 55);
|
||||||
|
gemCountNumbers[4].xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
gemCountNumbers[4].yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
gemCountNumbers[5].position = new Vector(125, 4);
|
gemCountNumbers[5].position = new Vector(125, 4);
|
||||||
gemCountNumbers[5].extent = new Vector(43, 55);
|
gemCountNumbers[5].extent = new Vector(43, 55);
|
||||||
|
gemCountNumbers[5].xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
gemCountNumbers[5].yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
var gemHUD = new GuiImage(ResourceLoader.getResource('data/ui/game/gem.png', ResourceLoader.getImage, this.imageResources).toTile());
|
gemHUD = new GuiImage(ResourceLoader.getResource('data/ui/game/gem.png', ResourceLoader.getImage, this.imageResources).toTile());
|
||||||
gemHUD.position = new Vector(144, 2);
|
gemHUD.position = new Vector(144, 2);
|
||||||
gemHUD.extent = new Vector(64, 64);
|
gemHUD.extent = new Vector(64, 64);
|
||||||
|
gemHUD.xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
gemHUD.yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
innerCtrl.addChild(gemCountNumbers[0]);
|
innerCtrl.addChild(gemCountNumbers[0]);
|
||||||
innerCtrl.addChild(gemCountNumbers[1]);
|
innerCtrl.addChild(gemCountNumbers[1]);
|
||||||
|
|
@ -294,36 +353,39 @@ class PlayGui {
|
||||||
];
|
];
|
||||||
|
|
||||||
powerupBox = new GuiAnim(powerupImgs);
|
powerupBox = new GuiAnim(powerupImgs);
|
||||||
powerupBox.position = new Vector(469, 0);
|
// powerupBox.position = new Vector(469, 0);
|
||||||
|
powerupBox.position = new Vector(playGuiCtrl.extent.x - 171, 0);
|
||||||
powerupBox.extent = new Vector(170, 170);
|
powerupBox.extent = new Vector(170, 170);
|
||||||
powerupBox.horizSizing = Left;
|
powerupBox.horizSizing = Left;
|
||||||
powerupBox.vertSizing = Bottom;
|
powerupBox.vertSizing = Bottom;
|
||||||
|
powerupBox.xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
powerupBox.yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
|
||||||
playGuiCtrl.addChild(powerupBox);
|
playGuiCtrl.addChild(powerupBox);
|
||||||
}
|
}
|
||||||
|
|
||||||
function initTexts() {
|
function initTexts() {
|
||||||
var domcasual32fontdata = ResourceLoader.getFileEntry("data/font/DomCasualD.fnt");
|
var arial14fontdata = ResourceLoader.getFileEntry("data/font/Arial Bold.fnt");
|
||||||
var domcasual32b = new BitmapFont(domcasual32fontdata.entry);
|
var arial14b = new BitmapFont(arial14fontdata.entry);
|
||||||
@:privateAccess domcasual32b.loader = ResourceLoader.loader;
|
@:privateAccess arial14b.loader = ResourceLoader.loader;
|
||||||
var bfont = domcasual32b.toSdfFont(cast 26 * Settings.uiScale, MultiChannel);
|
var arial14 = arial14b.toSdfFont(cast 26 * Settings.uiScale, MultiChannel);
|
||||||
|
|
||||||
var helpTextCtrl = new GuiControl();
|
var helpTextCtrl = new GuiControl();
|
||||||
helpTextCtrl.position = new Vector(0, 210);
|
helpTextCtrl.position = new Vector(0, playGuiCtrl.extent.y * 190 / 480);
|
||||||
helpTextCtrl.extent = new Vector(640, 60);
|
helpTextCtrl.extent = new Vector(640, 60);
|
||||||
helpTextCtrl.vertSizing = Center;
|
helpTextCtrl.vertSizing = Center;
|
||||||
helpTextCtrl.horizSizing = Width;
|
helpTextCtrl.horizSizing = Width;
|
||||||
|
|
||||||
helpTextBackground = new GuiText(bfont);
|
helpTextBackground = new GuiText(arial14);
|
||||||
helpTextBackground.text.textColor = 0x777777;
|
helpTextBackground.text.textColor = 0x000000;
|
||||||
helpTextBackground.position = new Vector(1, 1);
|
helpTextBackground.position = new Vector(2, 2);
|
||||||
helpTextBackground.extent = new Vector(640, 14);
|
helpTextBackground.extent = new Vector(640, 14);
|
||||||
helpTextBackground.vertSizing = Height;
|
helpTextBackground.vertSizing = Height;
|
||||||
helpTextBackground.horizSizing = Width;
|
helpTextBackground.horizSizing = Width;
|
||||||
helpTextBackground.justify = Center;
|
helpTextBackground.justify = Center;
|
||||||
|
|
||||||
helpTextForeground = new GuiText(bfont);
|
helpTextForeground = new GuiText(arial14);
|
||||||
helpTextForeground.text.textColor = 0xFFFFFF;
|
helpTextForeground.text.textColor = 0xEBEBEB;
|
||||||
helpTextForeground.position = new Vector(0, 0);
|
helpTextForeground.position = new Vector(0, 0);
|
||||||
helpTextForeground.extent = new Vector(640, 16);
|
helpTextForeground.extent = new Vector(640, 16);
|
||||||
helpTextForeground.vertSizing = Height;
|
helpTextForeground.vertSizing = Height;
|
||||||
|
|
@ -334,21 +396,21 @@ class PlayGui {
|
||||||
helpTextCtrl.addChild(helpTextForeground);
|
helpTextCtrl.addChild(helpTextForeground);
|
||||||
|
|
||||||
var alertTextCtrl = new GuiControl();
|
var alertTextCtrl = new GuiControl();
|
||||||
alertTextCtrl.position = new Vector(0, 371);
|
alertTextCtrl.position = new Vector(0, playGuiCtrl.extent.y * 375 / 480);
|
||||||
alertTextCtrl.extent = new Vector(640, 105);
|
alertTextCtrl.extent = new Vector(640, 105);
|
||||||
alertTextCtrl.vertSizing = Top;
|
alertTextCtrl.vertSizing = Top;
|
||||||
alertTextCtrl.horizSizing = Width;
|
alertTextCtrl.horizSizing = Width;
|
||||||
|
|
||||||
alertTextBackground = new GuiText(bfont);
|
alertTextBackground = new GuiText(arial14);
|
||||||
alertTextBackground.text.textColor = 0x776622;
|
alertTextBackground.text.textColor = 0x000000;
|
||||||
alertTextBackground.position = new Vector(1, 1);
|
alertTextBackground.position = new Vector(2, 2);
|
||||||
alertTextBackground.extent = new Vector(640, 32);
|
alertTextBackground.extent = new Vector(640, 32);
|
||||||
alertTextBackground.vertSizing = Height;
|
alertTextBackground.vertSizing = Height;
|
||||||
alertTextBackground.horizSizing = Width;
|
alertTextBackground.horizSizing = Width;
|
||||||
alertTextBackground.justify = Center;
|
alertTextBackground.justify = Center;
|
||||||
|
|
||||||
alertTextForeground = new GuiText(bfont);
|
alertTextForeground = new GuiText(arial14);
|
||||||
alertTextForeground.text.textColor = 0xffEE99;
|
alertTextForeground.text.textColor = 0xEBEBEB;
|
||||||
alertTextForeground.position = new Vector(0, 0);
|
alertTextForeground.position = new Vector(0, 0);
|
||||||
alertTextForeground.extent = new Vector(640, 32);
|
alertTextForeground.extent = new Vector(640, 32);
|
||||||
alertTextForeground.vertSizing = Height;
|
alertTextForeground.vertSizing = Height;
|
||||||
|
|
@ -358,8 +420,8 @@ class PlayGui {
|
||||||
alertTextCtrl.addChild(alertTextBackground);
|
alertTextCtrl.addChild(alertTextBackground);
|
||||||
alertTextCtrl.addChild(alertTextForeground);
|
alertTextCtrl.addChild(alertTextForeground);
|
||||||
|
|
||||||
playGuiCtrl.addChild(helpTextCtrl);
|
playGuiCtrlOuter.addChild(helpTextCtrl);
|
||||||
playGuiCtrl.addChild(alertTextCtrl);
|
playGuiCtrlOuter.addChild(alertTextCtrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
function initFPSMeter() {
|
function initFPSMeter() {
|
||||||
|
|
@ -388,44 +450,72 @@ class PlayGui {
|
||||||
|
|
||||||
function initBlastBar() {
|
function initBlastBar() {
|
||||||
blastBar = new GuiControl();
|
blastBar = new GuiControl();
|
||||||
blastBar.position = new Vector(6, 445);
|
blastBar.position = new Vector(0, 400);
|
||||||
blastBar.extent = new Vector(120, 28);
|
blastBar.extent = new Vector(170, 83);
|
||||||
blastBar.vertSizing = Top;
|
blastBar.vertSizing = Bottom;
|
||||||
|
blastBar.xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
blastBar.yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
this.playGuiCtrl.addChild(blastBar);
|
this.playGuiCtrl.addChild(blastBar);
|
||||||
|
|
||||||
blastFill = new GuiImage(ResourceLoader.getResource("data/ui/game/blastbar_bargreen.png", ResourceLoader.getImage, this.imageResources).toTile());
|
blastFill = new GuiImage(ResourceLoader.getResource("data/ui/game/powerbarMask.png", ResourceLoader.getImage, this.imageResources).toTile());
|
||||||
blastFill.position = new Vector(5, 5);
|
blastFill.position = new Vector(36, 38);
|
||||||
blastFill.extent = new Vector(58, 17);
|
blastFill.extent = new Vector(100, 27);
|
||||||
blastFill.doClipping = false;
|
blastFill.xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
blastFill.yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
var colorMat = Matrix.I();
|
||||||
|
colorMat.colorSet(0x0080FF);
|
||||||
|
blastFill.bmp.filter = new h2d.filter.ColorMatrix(colorMat);
|
||||||
|
|
||||||
blastBar.addChild(blastFill);
|
blastBar.addChild(blastFill);
|
||||||
|
|
||||||
blastFrame = new GuiImage(ResourceLoader.getResource("data/ui/game/blastbar.png", ResourceLoader.getImage, this.imageResources).toTile());
|
blastFillUltra = new GuiImage(ResourceLoader.getResource("data/ui/game/powerbarMask.png", ResourceLoader.getImage, this.imageResources).toTile());
|
||||||
|
blastFillUltra.position = new Vector(36, 38);
|
||||||
|
blastFillUltra.extent = new Vector(100, 27);
|
||||||
|
blastFillUltra.xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
blastFillUltra.yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
var colorMat = Matrix.I();
|
||||||
|
colorMat.colorSet(0xC4FF00);
|
||||||
|
blastFillUltra.bmp.filter = new h2d.filter.ColorMatrix(colorMat);
|
||||||
|
|
||||||
|
blastBar.addChild(blastFillUltra);
|
||||||
|
|
||||||
|
blastFrame = new GuiImage(ResourceLoader.getResource("data/ui/game/powerbar.png", ResourceLoader.getImage, this.imageResources).toTile());
|
||||||
blastFrame.position = new Vector(0, 0);
|
blastFrame.position = new Vector(0, 0);
|
||||||
blastFrame.extent = new Vector(120, 28);
|
blastFrame.extent = new Vector(170, 83);
|
||||||
|
blastFrame.xScale = (scene2d.height - 82 * 2) / 480;
|
||||||
|
blastFrame.yScale = (scene2d.height - 82 * 2) / 480;
|
||||||
blastBar.addChild(blastFrame);
|
blastBar.addChild(blastFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var blastValue:Float = 0;
|
||||||
|
|
||||||
public function setBlastValue(value:Float) {
|
public function setBlastValue(value:Float) {
|
||||||
if (value <= 1) {
|
if (value <= 1) {
|
||||||
if (blastFill.extent.y == 16) { // Was previously charged
|
var oldVal = blastValue;
|
||||||
blastFrame.bmp.tile = ResourceLoader.getResource("data/ui/game/blastbar.png", ResourceLoader.getImage, this.imageResources).toTile();
|
blastValue = value;
|
||||||
}
|
blastFill.bmp.tile.setSize(Util.lerp(0, 75, value), 20);
|
||||||
var oldVal = blastFill.extent.x;
|
blastFill.bmp.scaleX = value;
|
||||||
blastFill.extent = new Vector(Util.lerp(0, 110, value), 17);
|
// blastFill.extent = new Vector(Util.lerp(0, 100, value), 27);
|
||||||
if (oldVal < 22 && blastFill.extent.x >= 22) {
|
if (oldVal < 0.25 && value >= 0.25) {
|
||||||
blastFill.bmp.tile = ResourceLoader.getResource("data/ui/game/blastbar_bargreen.png", ResourceLoader.getImage, this.imageResources).toTile();
|
var colorMat = cast(blastFill.bmp.filter, h2d.filter.ColorMatrix);
|
||||||
|
colorMat.matrix.colorSet(0x0080FF);
|
||||||
MarbleGame.instance.touchInput.blastbutton.setEnabled(true);
|
MarbleGame.instance.touchInput.blastbutton.setEnabled(true);
|
||||||
}
|
}
|
||||||
if (oldVal >= 22 && blastFill.extent.x < 22) {
|
if (oldVal >= 0.25 && value < 0.25) {
|
||||||
blastFill.bmp.tile = ResourceLoader.getResource("data/ui/game/blastbar_bargray.png", ResourceLoader.getImage, this.imageResources).toTile();
|
var colorMat = cast(blastFill.bmp.filter, h2d.filter.ColorMatrix);
|
||||||
|
colorMat.matrix.colorSet(0xCDD2D7);
|
||||||
MarbleGame.instance.touchInput.blastbutton.setEnabled(false);
|
MarbleGame.instance.touchInput.blastbutton.setEnabled(false);
|
||||||
}
|
}
|
||||||
|
blastFillUltra.bmp.visible = false;
|
||||||
} else {
|
} else {
|
||||||
blastFill.extent = new Vector(0, 16); // WE will just use this extra number to store whether it was previously charged or not
|
blastFillUltra.bmp.visible = true;
|
||||||
blastFrame.bmp.tile = ResourceLoader.getResource("data/ui/game/blastbar_charged.png", ResourceLoader.getImage, this.imageResources).toTile();
|
|
||||||
|
var fillPercent = (value - 1) * 6;
|
||||||
|
blastFillUltra.bmp.tile.setSize(Util.lerp(0, 75, fillPercent), 20);
|
||||||
|
blastFillUltra.bmp.scaleX = fillPercent;
|
||||||
|
|
||||||
MarbleGame.instance.touchInput.blastbutton.setEnabled(true);
|
MarbleGame.instance.touchInput.blastbutton.setEnabled(true);
|
||||||
}
|
}
|
||||||
this.blastBar.render(scene2d);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setHelpTextOpacity(value:Float) {
|
public function setHelpTextOpacity(value:Float) {
|
||||||
|
|
@ -472,17 +562,70 @@ class PlayGui {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function resizeGemCounter(total:Int) {
|
||||||
|
if (total >= 100) {
|
||||||
|
// 3 digits
|
||||||
|
gemCountNumbers[0].anim.visible = true;
|
||||||
|
gemCountNumbers[1].anim.visible = true;
|
||||||
|
gemCountNumbers[2].anim.visible = true;
|
||||||
|
gemCountNumbers[3].anim.visible = true;
|
||||||
|
gemCountNumbers[4].anim.visible = true;
|
||||||
|
gemCountNumbers[5].anim.visible = true;
|
||||||
|
|
||||||
|
gemCountNumbers[0].position.x = 20;
|
||||||
|
gemCountNumbers[1].position.x = 38;
|
||||||
|
gemCountNumbers[2].position.x = 56;
|
||||||
|
gemCountNumbers[3].position.x = 89;
|
||||||
|
gemCountNumbers[4].position.x = 107;
|
||||||
|
gemCountNumbers[5].position.x = 125;
|
||||||
|
gemCountSlash.position.x = 73;
|
||||||
|
gemHUD.position.x = 144;
|
||||||
|
} else if (total >= 10) {
|
||||||
|
// 2 digits
|
||||||
|
gemCountNumbers[0].anim.visible = false;
|
||||||
|
gemCountNumbers[1].anim.visible = true;
|
||||||
|
gemCountNumbers[2].anim.visible = true;
|
||||||
|
gemCountNumbers[3].anim.visible = false;
|
||||||
|
gemCountNumbers[4].anim.visible = true;
|
||||||
|
gemCountNumbers[5].anim.visible = true;
|
||||||
|
|
||||||
|
gemCountNumbers[2].position.x = 32;
|
||||||
|
gemCountNumbers[5].position.x = 83;
|
||||||
|
gemCountNumbers[1].position.x = 14;
|
||||||
|
gemCountNumbers[4].position.x = 65;
|
||||||
|
gemCountSlash.position.x = 49;
|
||||||
|
gemHUD.position.x = 101;
|
||||||
|
} else {
|
||||||
|
// 1 digit
|
||||||
|
gemCountNumbers[0].anim.visible = false;
|
||||||
|
gemCountNumbers[1].anim.visible = false;
|
||||||
|
gemCountNumbers[2].anim.visible = true;
|
||||||
|
gemCountNumbers[3].anim.visible = false;
|
||||||
|
gemCountNumbers[4].anim.visible = false;
|
||||||
|
gemCountNumbers[5].anim.visible = true;
|
||||||
|
|
||||||
|
gemCountNumbers[2].position.x = 8;
|
||||||
|
gemCountNumbers[5].position.x = 41;
|
||||||
|
gemCountSlash.position.x = 25;
|
||||||
|
gemHUD.position.x = 59;
|
||||||
|
}
|
||||||
|
gemHUD.parent.render(scene2d, @:privateAccess gemHUD.parent.parent._flow);
|
||||||
|
}
|
||||||
|
|
||||||
public function formatGemCounter(collected:Int, total:Int) {
|
public function formatGemCounter(collected:Int, total:Int) {
|
||||||
if (total == 0) {
|
if (total == 0) {
|
||||||
for (number in gemCountNumbers) {
|
for (number in gemCountNumbers) {
|
||||||
number.anim.visible = false;
|
number.anim.visible = false;
|
||||||
}
|
}
|
||||||
gemCountSlash.bmp.visible = false;
|
gemCountSlash.bmp.visible = false;
|
||||||
|
gemHUD.bmp.visible = false;
|
||||||
} else {
|
} else {
|
||||||
for (number in gemCountNumbers) {
|
if (totalGems != total) {
|
||||||
number.anim.visible = true;
|
resizeGemCounter(total);
|
||||||
|
totalGems = total;
|
||||||
}
|
}
|
||||||
gemCountSlash.bmp.visible = true;
|
gemCountSlash.bmp.visible = true;
|
||||||
|
gemHUD.bmp.visible = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var totalHundredths = Math.floor(total / 100);
|
var totalHundredths = Math.floor(total / 100);
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ class AntiGravity extends PowerUp {
|
||||||
this.isCollideable = false;
|
this.isCollideable = false;
|
||||||
this.isTSStatic = false;
|
this.isTSStatic = false;
|
||||||
this.identifier = "AntiGravity";
|
this.identifier = "AntiGravity";
|
||||||
this.pickUpName = "Gravity Defier";
|
this.pickUpName = "a Gravity Modifier";
|
||||||
this.autoUse = true;
|
this.autoUse = true;
|
||||||
this.useInstancing = true;
|
this.useInstancing = true;
|
||||||
this.animateSubObjectOpacities = true;
|
this.animateSubObjectOpacities = true;
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ class Blast extends PowerUp {
|
||||||
this.isTSStatic = false;
|
this.isTSStatic = false;
|
||||||
this.showSequences = true;
|
this.showSequences = true;
|
||||||
this.identifier = "Blast";
|
this.identifier = "Blast";
|
||||||
this.pickUpName = "Blast PowerUp";
|
this.pickUpName = "a Blast powerup";
|
||||||
this.ambientRotate = false;
|
this.ambientRotate = false;
|
||||||
this.autoUse = true;
|
this.autoUse = true;
|
||||||
}
|
}
|
||||||
|
|
@ -32,7 +32,7 @@ class Blast extends PowerUp {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function use(timeState:TimeState) {
|
public function use(timeState:TimeState) {
|
||||||
this.level.blastAmount = 1.03;
|
this.level.blastAmount = 1.2;
|
||||||
}
|
}
|
||||||
|
|
||||||
override function postProcessMaterial(matName:String, material:h3d.mat.Material) {
|
override function postProcessMaterial(matName:String, material:h3d.mat.Material) {
|
||||||
|
|
|
||||||
|
|
@ -23,10 +23,10 @@ class EasterEgg extends PowerUp {
|
||||||
if (!found) {
|
if (!found) {
|
||||||
Settings.easterEggs.set(this.level.mission.path, this.level.timeState.currentAttemptTime);
|
Settings.easterEggs.set(this.level.mission.path, this.level.timeState.currentAttemptTime);
|
||||||
this.pickupSound = ResourceLoader.getResource("data/sound/easter_egg.wav", ResourceLoader.getAudio, this.soundResources);
|
this.pickupSound = ResourceLoader.getResource("data/sound/easter_egg.wav", ResourceLoader.getAudio, this.soundResources);
|
||||||
this.customPickupMessage = "You found an Easter Egg!";
|
this.customPickupMessage = "You picked up an Easter Egg!";
|
||||||
} else {
|
} else {
|
||||||
this.pickupSound = ResourceLoader.getResource("data/sound/easterfound.wav", ResourceLoader.getAudio, this.soundResources);
|
this.pickupSound = ResourceLoader.getResource("data/sound/easterfound.wav", ResourceLoader.getAudio, this.soundResources);
|
||||||
this.customPickupMessage = "You already found this Easter Egg.";
|
this.customPickupMessage = "You picked up an Easter Egg!.";
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ class Helicopter extends PowerUp {
|
||||||
this.isTSStatic = false;
|
this.isTSStatic = false;
|
||||||
this.showSequences = false;
|
this.showSequences = false;
|
||||||
this.identifier = "Helicopter";
|
this.identifier = "Helicopter";
|
||||||
this.pickUpName = "Helicopter PowerUp";
|
this.pickUpName = "a Gyrocopter powerup";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override function init(level:MarbleWorld, onFinish:Void->Void) {
|
public override function init(level:MarbleWorld, onFinish:Void->Void) {
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ class MegaMarble extends PowerUp {
|
||||||
this.isTSStatic = false;
|
this.isTSStatic = false;
|
||||||
this.showSequences = true;
|
this.showSequences = true;
|
||||||
this.identifier = "MegaMarble";
|
this.identifier = "MegaMarble";
|
||||||
this.pickUpName = "Mega Marble PowerUp";
|
this.pickUpName = "a Mega-Marble powerup";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override function init(level:MarbleWorld, onFinish:Void->Void) {
|
public override function init(level:MarbleWorld, onFinish:Void->Void) {
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ abstract class PowerUp extends DtsObject {
|
||||||
if (customPickupMessage != null)
|
if (customPickupMessage != null)
|
||||||
this.level.displayAlert(customPickupMessage);
|
this.level.displayAlert(customPickupMessage);
|
||||||
else
|
else
|
||||||
this.level.displayAlert('You picked up a ${this.pickUpName}!');
|
this.level.displayAlert('You picked up ${this.pickUpName}!');
|
||||||
if (this.element.showhelponpickup == "1" && !this.autoUse)
|
if (this.element.showhelponpickup == "1" && !this.autoUse)
|
||||||
this.level.displayHelp('Press <func:bind mousefire> to use the ${this.pickUpName}!');
|
this.level.displayHelp('Press <func:bind mousefire> to use the ${this.pickUpName}!');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ class SuperJump extends PowerUp {
|
||||||
this.isCollideable = false;
|
this.isCollideable = false;
|
||||||
this.isTSStatic = false;
|
this.isTSStatic = false;
|
||||||
this.identifier = "SuperJump";
|
this.identifier = "SuperJump";
|
||||||
this.pickUpName = "Jump Boost PowerUp";
|
this.pickUpName = "a Super Jump powerup";
|
||||||
this.showSequences = false;
|
this.showSequences = false;
|
||||||
sjEmitterParticleData = new ParticleData();
|
sjEmitterParticleData = new ParticleData();
|
||||||
sjEmitterParticleData.identifier = "superJumpParticle";
|
sjEmitterParticleData.identifier = "superJumpParticle";
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ class SuperSpeed extends PowerUp {
|
||||||
this.isCollideable = false;
|
this.isCollideable = false;
|
||||||
this.isTSStatic = false;
|
this.isTSStatic = false;
|
||||||
this.identifier = "SuperSpeed";
|
this.identifier = "SuperSpeed";
|
||||||
this.pickUpName = "Speed Booster PowerUp";
|
this.pickUpName = "a Super Speed powerup";
|
||||||
this.useInstancing = true;
|
this.useInstancing = true;
|
||||||
ssEmitterParticleData = new ParticleData();
|
ssEmitterParticleData = new ParticleData();
|
||||||
ssEmitterParticleData.identifier = "superSpeedParticle";
|
ssEmitterParticleData.identifier = "superSpeedParticle";
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ class TimeTravel extends PowerUp {
|
||||||
this.timeBonus = -MisParser.parseNumber(element.timepenalty) / 1000;
|
this.timeBonus = -MisParser.parseNumber(element.timepenalty) / 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.pickUpName = '${this.timeBonus} second Time ${this.timeBonus >= 0 ? 'Modifier' : 'Penalty'}';
|
this.pickUpName = '${this.timeBonus} seconds of Time Travel ${this.timeBonus >= 0 ? 'bonus' : 'Penalty'}';
|
||||||
this.cooldownDuration = 1e8;
|
this.cooldownDuration = 1e8;
|
||||||
this.useInstancing = true;
|
this.useInstancing = true;
|
||||||
this.autoUse = true;
|
this.autoUse = true;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue