1
0
Fork 0
spacetac/src/ui/battle/ActionTooltip.ts

62 lines
2.6 KiB
TypeScript
Raw Normal View History

2017-02-09 00:00:35 +00:00
module TS.SpaceTac.UI {
2015-03-03 00:00:00 +00:00
// Tooltip to display action information
export class ActionTooltip extends Phaser.Sprite {
2017-01-08 22:42:53 +00:00
icon: Phaser.Image | null;
main_title: Phaser.Text;
sub_title: Phaser.Text;
cost: Phaser.Text;
description: Phaser.Text;
2015-03-03 00:00:00 +00:00
constructor(parent: ActionBar) {
super(parent.game, 0, 0, "battle-action-tooltip");
this.visible = false;
2017-01-08 22:42:53 +00:00
this.icon = null;
2017-01-11 00:38:08 +00:00
this.main_title = new Phaser.Text(this.game, 325, 20, "", { font: "24pt Arial", fill: "#ffffff" });
2017-01-08 22:42:53 +00:00
this.main_title.anchor.set(0.5, 0);
this.addChild(this.main_title);
2017-01-11 00:38:08 +00:00
this.sub_title = new Phaser.Text(this.game, 325, 60, "", { font: "22pt Arial", fill: "#ffffff" });
2017-01-08 22:42:53 +00:00
this.sub_title.anchor.set(0.5, 0);
this.addChild(this.sub_title);
2017-01-11 00:38:08 +00:00
this.cost = new Phaser.Text(this.game, 325, 100, "", { font: "20pt Arial", fill: "#ffff00" });
2017-01-08 22:42:53 +00:00
this.cost.anchor.set(0.5, 0);
this.addChild(this.cost);
this.description = new Phaser.Text(this.game, 21, 144, "", { font: "14pt Arial", fill: "#ffffff" });
this.description.wordWrap = true;
this.description.wordWrapWidth = 476;
this.addChild(this.description);
2015-03-03 00:00:00 +00:00
}
// Set current action to display, null to hide
setAction(action: ActionIcon): void {
if (action) {
2017-01-08 22:42:53 +00:00
if (this.icon) {
this.icon.destroy(true);
}
this.icon = new Phaser.Image(this.game, 76, 72, "battle-actions-" + action.action.code);
this.icon.anchor.set(0.5, 0.5);
this.icon.scale.set(0.44, 0.44);
2017-01-08 22:42:53 +00:00
this.addChild(this.icon);
this.position.set(action.x, action.y + action.height + 44);
2017-01-08 22:42:53 +00:00
this.main_title.setText(action.action.equipment ? action.action.equipment.name : action.action.name);
this.sub_title.setText(action.action.equipment ? action.action.name : "");
let cost = action.action.equipment ? `Cost: ${action.action.equipment.ap_usage} power` : "";
2017-02-09 00:00:35 +00:00
if (action.action instanceof MoveAction) {
cost += ` per ${action.action.equipment.distance}km`;
}
this.cost.setText(cost);
this.description.setText(action.action.equipment ? action.action.equipment.getActionDescription() : "");
2017-01-08 22:42:53 +00:00
Animation.fadeIn(this.game, this, 200, 0.9);
2015-03-03 00:00:00 +00:00
} else {
Animation.fadeOut(this.game, this, 200);
}
}
}
}