[client] add result styles

This commit is contained in:
2019-08-02 17:48:27 +03:00
parent 43a34cce39
commit f10da93a12
5 changed files with 33 additions and 9 deletions

View File

@@ -1,5 +1,6 @@
package ru.m.tankz;
import haxework.color.Color;
import haxework.view.utils.DrawUtil.FillType;
import flash.text.TextFormatAlign;
import haxework.color.Color;
@@ -112,6 +113,23 @@ class AppTheme extends Theme {
"skin.fillType" => FillType.DEFAULT,
]));
var green:Color = 0x00ff00;
var red:Color = 0xff0000;
register(new Style("result.winner", [
"skin.border.color" => green,
], ["light"]));
register(new Style("result.loser", [
"skin.border.color" => red,
], ["light"]));
register(new Style("player.winner", [
"skin.background.alpha" => 0.1,
"skin.background.color" => green,
]));
register(new Style("player.loser", [
"skin.background.alpha" => 0.1,
"skin.background.color" => red,
]));
registerButton("settings", "cog-solid.svg");
registerButton("close", "times-circle-solid.svg");
registerButton("next", "arrow-alt-circle-right-solid.svg");

View File

@@ -33,9 +33,7 @@ using ru.m.tankz.view.ViewUtil;
override public function onShow(data:Result):Void {
result = data;
var players = result.state.humans;
players.sort(function(a, b) return a.id.compare(b.id));
resultView.data = players;
resultView.data = result.state.humans;
for (view in resultView.dataViews) {
view.winner = view.data.id.team == data.winner;
}

View File

@@ -2,13 +2,14 @@ package ru.m.tankz.view.result;
import haxework.view.data.DataView;
import haxework.view.form.LabelView;
import haxework.view.group.HGroupView;
import haxework.view.group.VGroupView;
import haxework.view.skin.SpriteSkin;
import ru.m.tankz.game.GameState;
import ru.m.tankz.view.common.TankView;
@:template class ResultPlayerView extends VGroupView {
@:view("player") var playerView:HGroupView;
@:view("tank") var tankView:TankView;
@:view("title") var titleView:LabelView;
@:view("score") var scoreView:LabelView;
@@ -19,7 +20,7 @@ import ru.m.tankz.view.common.TankView;
private function set_data(value:PlayerState):PlayerState {
data = value;
titleView.text = data.name;
titleView.text = data.name != null ? '${data.id.format()} * ${data.name}' : data.id.format();
scoreView.text = '${data.score}$';
tankView.color = value.color;
fragsView.data = data.frags;
@@ -29,7 +30,8 @@ import ru.m.tankz.view.common.TankView;
private function set_winner(value:Bool):Bool {
winner = value;
cast(skin, SpriteSkin).border.color = value ? 0x00ff00 : 0xff0000;
style = winner ? "result.winner" : "result.loser";
playerView.style = winner ? "player.winner" : "player.loser";
return winner;
}

View File

@@ -6,7 +6,8 @@ geometry.width: 50%
geometry.height: 100%
layout.hAlign: center
views:
- $type: haxework.view.group.HGroupView
- id: player
$type: haxework.view.group.HGroupView
geometry.width: 100%
layout.vAlign: middle
views: