[client] add result styles
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package ru.m.tankz;
|
package ru.m.tankz;
|
||||||
|
|
||||||
|
import haxework.color.Color;
|
||||||
import haxework.view.utils.DrawUtil.FillType;
|
import haxework.view.utils.DrawUtil.FillType;
|
||||||
import flash.text.TextFormatAlign;
|
import flash.text.TextFormatAlign;
|
||||||
import haxework.color.Color;
|
import haxework.color.Color;
|
||||||
@@ -112,6 +113,23 @@ class AppTheme extends Theme {
|
|||||||
"skin.fillType" => FillType.DEFAULT,
|
"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("settings", "cog-solid.svg");
|
||||||
registerButton("close", "times-circle-solid.svg");
|
registerButton("close", "times-circle-solid.svg");
|
||||||
registerButton("next", "arrow-alt-circle-right-solid.svg");
|
registerButton("next", "arrow-alt-circle-right-solid.svg");
|
||||||
|
|||||||
@@ -33,9 +33,7 @@ using ru.m.tankz.view.ViewUtil;
|
|||||||
|
|
||||||
override public function onShow(data:Result):Void {
|
override public function onShow(data:Result):Void {
|
||||||
result = data;
|
result = data;
|
||||||
var players = result.state.humans;
|
resultView.data = result.state.humans;
|
||||||
players.sort(function(a, b) return a.id.compare(b.id));
|
|
||||||
resultView.data = players;
|
|
||||||
for (view in resultView.dataViews) {
|
for (view in resultView.dataViews) {
|
||||||
view.winner = view.data.id.team == data.winner;
|
view.winner = view.data.id.team == data.winner;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,13 +2,14 @@ package ru.m.tankz.view.result;
|
|||||||
|
|
||||||
import haxework.view.data.DataView;
|
import haxework.view.data.DataView;
|
||||||
import haxework.view.form.LabelView;
|
import haxework.view.form.LabelView;
|
||||||
|
import haxework.view.group.HGroupView;
|
||||||
import haxework.view.group.VGroupView;
|
import haxework.view.group.VGroupView;
|
||||||
import haxework.view.skin.SpriteSkin;
|
|
||||||
import ru.m.tankz.game.GameState;
|
import ru.m.tankz.game.GameState;
|
||||||
import ru.m.tankz.view.common.TankView;
|
import ru.m.tankz.view.common.TankView;
|
||||||
|
|
||||||
@:template class ResultPlayerView extends VGroupView {
|
@:template class ResultPlayerView extends VGroupView {
|
||||||
|
|
||||||
|
@:view("player") var playerView:HGroupView;
|
||||||
@:view("tank") var tankView:TankView;
|
@:view("tank") var tankView:TankView;
|
||||||
@:view("title") var titleView:LabelView;
|
@:view("title") var titleView:LabelView;
|
||||||
@:view("score") var scoreView:LabelView;
|
@:view("score") var scoreView:LabelView;
|
||||||
@@ -19,7 +20,7 @@ import ru.m.tankz.view.common.TankView;
|
|||||||
|
|
||||||
private function set_data(value:PlayerState):PlayerState {
|
private function set_data(value:PlayerState):PlayerState {
|
||||||
data = value;
|
data = value;
|
||||||
titleView.text = data.name;
|
titleView.text = data.name != null ? '${data.id.format()} * ${data.name}' : data.id.format();
|
||||||
scoreView.text = '${data.score}$';
|
scoreView.text = '${data.score}$';
|
||||||
tankView.color = value.color;
|
tankView.color = value.color;
|
||||||
fragsView.data = data.frags;
|
fragsView.data = data.frags;
|
||||||
@@ -29,7 +30,8 @@ import ru.m.tankz.view.common.TankView;
|
|||||||
|
|
||||||
private function set_winner(value:Bool):Bool {
|
private function set_winner(value:Bool):Bool {
|
||||||
winner = value;
|
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;
|
return winner;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ geometry.width: 50%
|
|||||||
geometry.height: 100%
|
geometry.height: 100%
|
||||||
layout.hAlign: center
|
layout.hAlign: center
|
||||||
views:
|
views:
|
||||||
- $type: haxework.view.group.HGroupView
|
- id: player
|
||||||
|
$type: haxework.view.group.HGroupView
|
||||||
geometry.width: 100%
|
geometry.width: 100%
|
||||||
layout.vAlign: middle
|
layout.vAlign: middle
|
||||||
views:
|
views:
|
||||||
|
|||||||
@@ -110,12 +110,17 @@ class GameState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function get_humans():Array<PlayerState> {
|
public function get_humans():Array<PlayerState> {
|
||||||
return controls.filter(function(control:PlayerControl):Bool {
|
var humanControls = controls.filter(function(control:PlayerControl):Bool {
|
||||||
return switch control.controller {
|
return switch control.controller {
|
||||||
case HUMAN(_): true;
|
case HUMAN(_): true;
|
||||||
case _: false;
|
case _: false;
|
||||||
}
|
}
|
||||||
}).map(function(control:PlayerControl):PlayerState {
|
});
|
||||||
|
humanControls.sort(function(a, b) return switch [a.controller, b.controller] {
|
||||||
|
case [HUMAN(i), HUMAN(j)]: i - j;
|
||||||
|
case _: 0;
|
||||||
|
});
|
||||||
|
return humanControls.map(function(control:PlayerControl):PlayerState {
|
||||||
return players.get(control.playerId);
|
return players.get(control.playerId);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user