[client] fixes
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package ru.m.tankz.local;
|
package ru.m.tankz.local;
|
||||||
|
|
||||||
|
import ru.m.tankz.control.HumanControl;
|
||||||
import ru.m.tankz.game.GameEvent;
|
import ru.m.tankz.game.GameEvent;
|
||||||
import ru.m.tankz.game.GameRunner;
|
import ru.m.tankz.game.GameRunner;
|
||||||
import ru.m.tankz.local.LocalControlFactory;
|
import ru.m.tankz.local.LocalControlFactory;
|
||||||
@@ -18,20 +19,20 @@ class LocalGame extends GameRunner {
|
|||||||
override public function onGameEvent(event:GameEvent):Void {
|
override public function onGameEvent(event:GameEvent):Void {
|
||||||
super.onGameEvent(event);
|
super.onGameEvent(event);
|
||||||
switch event {
|
switch event {
|
||||||
case COMPLETE(result):
|
case COMPLETE(result): updateProgress(result);
|
||||||
updateProgress(result);
|
|
||||||
case _:
|
case _:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function updateProgress(result:Result):Void {
|
private function updateProgress(result:Result):Void {
|
||||||
var complete = true;
|
var complete = false;
|
||||||
for (rule in result.state.config.game.complete) {
|
var humansTeams:Array<TeamId> = [];
|
||||||
if (rule.team != null && rule.team != result.winner) {
|
for (control in controls) {
|
||||||
complete = false;
|
if (Std.is(HumanControl, control) && humansTeams.indexOf(control.playerId.team) == -1) {
|
||||||
|
humansTeams.push(control.playerId.team);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (complete) {
|
if (humansTeams.length == 1 && result.winner == humansTeams[0]) {
|
||||||
var progress = gameStorage.get(new PackId(result.state.type));
|
var progress = gameStorage.get(new PackId(result.state.type));
|
||||||
progress.completeLevel(result.level.id, result.state.presetId);
|
progress.completeLevel(result.level.id, result.state.presetId);
|
||||||
gameStorage.set(progress);
|
gameStorage.set(progress);
|
||||||
|
|||||||
@@ -16,10 +16,15 @@ import ru.m.tankz.control.PlayerControl;
|
|||||||
private function set_control(value:PlayerControl):PlayerControl {
|
private function set_control(value:PlayerControl):PlayerControl {
|
||||||
control = value;
|
control = value;
|
||||||
slotLabel.text = '${control.playerId.team}(${control.playerId.index})';
|
slotLabel.text = '${control.playerId.team}(${control.playerId.index})';
|
||||||
// ToDo: style
|
slotLabel.font.color = value.color;
|
||||||
//slotLabel.skin = theme.textBox(value.color != null ? value.color : theme.colors.text);
|
|
||||||
select.selected = control.controller;
|
select.selected = control.controller;
|
||||||
return control;
|
return control;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function onControllerSelect(value:Controller):Void {
|
||||||
|
select.currentView.style = switch value {
|
||||||
|
case HUMAN(_): "button.active";
|
||||||
|
case _: "button";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ views:
|
|||||||
geometry.width: 150
|
geometry.width: 150
|
||||||
- id: select
|
- id: select
|
||||||
$type: haxework.view.form.SelectView<ru.m.tankz.control.Controller>
|
$type: haxework.view.form.SelectView<ru.m.tankz.control.Controller>
|
||||||
|
geometry.width: 150
|
||||||
labelBuilder: |
|
labelBuilder: |
|
||||||
~function(controller) {
|
~function(controller) {
|
||||||
var result = ControllerParser.defaultName(controller);
|
var result = ControllerParser.defaultName(controller);
|
||||||
@@ -20,3 +21,4 @@ views:
|
|||||||
- ~ru.m.tankz.control.Controller.HUMAN(0)
|
- ~ru.m.tankz.control.Controller.HUMAN(0)
|
||||||
- ~ru.m.tankz.control.Controller.HUMAN(1)
|
- ~ru.m.tankz.control.Controller.HUMAN(1)
|
||||||
selected: ~ru.m.tankz.control.Controller.NONE
|
selected: ~ru.m.tankz.control.Controller.NONE
|
||||||
|
+onSelect: ~onControllerSelect
|
||||||
|
|||||||
@@ -29,10 +29,7 @@ import ru.m.tankz.proto.room.RoomSlotProto;
|
|||||||
userView.style = (value.hasUser() && value.user.uuid == network.user.uuid) ? "text.box.active" : "text.box";
|
userView.style = (value.hasUser() && value.user.uuid == network.user.uuid) ? "text.box.active" : "text.box";
|
||||||
var config = configBundle.get(network.room.game.type);
|
var config = configBundle.get(network.room.game.type);
|
||||||
var color = config.getColor([value.slot.team, value.slot.index]);
|
var color = config.getColor([value.slot.team, value.slot.index]);
|
||||||
if (color != null) {
|
typeView.font.color = color;
|
||||||
// ToDo: style
|
|
||||||
//typeView.skin = theme.textBox(color);
|
|
||||||
}
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,10 @@ layout.vAlign: middle
|
|||||||
view:
|
view:
|
||||||
$type: haxework.view.group.VGroupView
|
$type: haxework.view.group.VGroupView
|
||||||
layout.hAlign: center
|
layout.hAlign: center
|
||||||
geometry.width: 400
|
geometry.width: 100%
|
||||||
geometry.height: 400
|
geometry.height: 100%
|
||||||
|
# geometry.width: 400
|
||||||
|
# geometry.height: 400
|
||||||
geometry.margin: 10
|
geometry.margin: 10
|
||||||
style: window
|
style: window
|
||||||
views:
|
views:
|
||||||
@@ -30,6 +32,8 @@ view:
|
|||||||
id: slots
|
id: slots
|
||||||
$type: haxework.view.data.DataView
|
$type: haxework.view.data.DataView
|
||||||
geometry.padding: 10
|
geometry.padding: 10
|
||||||
|
geometry.width: 100%
|
||||||
|
layout.hAlign: center
|
||||||
factory: ~slotViewFactory
|
factory: ~slotViewFactory
|
||||||
layout:
|
layout:
|
||||||
$type: haxework.view.layout.VerticalLayout
|
$type: haxework.view.layout.VerticalLayout
|
||||||
|
|||||||
@@ -4,14 +4,9 @@ import haxework.color.Color;
|
|||||||
import ru.m.tankz.control.Controller;
|
import ru.m.tankz.control.Controller;
|
||||||
import ru.m.tankz.Type;
|
import ru.m.tankz.Type;
|
||||||
|
|
||||||
typedef CompleteRule = {
|
|
||||||
@:optional var team:TeamId;
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef GameConfig = {
|
typedef GameConfig = {
|
||||||
var levels: Int;
|
var levels: Int;
|
||||||
var friendlyFire:Bool;
|
var friendlyFire:Bool;
|
||||||
var complete:Array<CompleteRule>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef SpawnPoint = {
|
typedef SpawnPoint = {
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
game:
|
game:
|
||||||
friendlyFire: false
|
friendlyFire: false
|
||||||
complete:
|
|
||||||
- team: human
|
|
||||||
|
|
||||||
map:
|
map:
|
||||||
cell:
|
cell:
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
game:
|
game:
|
||||||
friendlyFire: true
|
friendlyFire: true
|
||||||
complete:
|
|
||||||
- team: alpha
|
|
||||||
|
|
||||||
map:
|
map:
|
||||||
cell:
|
cell:
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
game:
|
game:
|
||||||
friendlyFire: true
|
friendlyFire: true
|
||||||
complete:
|
|
||||||
- team: radiant
|
|
||||||
|
|
||||||
map:
|
map:
|
||||||
cell:
|
cell:
|
||||||
|
|||||||
Reference in New Issue
Block a user