[editor] game type select

This commit is contained in:
2018-02-07 10:57:23 +03:00
parent 5daf4fafc7
commit baf696a3e1
4 changed files with 41 additions and 105 deletions

View File

@@ -35,8 +35,8 @@ points:
- {team: human, type: tank, index: 0, direction: top, x: 8, y: 24} - {team: human, type: tank, index: 0, direction: top, x: 8, y: 24}
- {team: human, type: tank, index: 1, direction: top, x: 16, y: 24} - {team: human, type: tank, index: 1, direction: top, x: 16, y: 24}
- {team: bot, type: tank, index: -1, direction: bottom, x: 0, y: 0} - {team: bot, type: tank, index: -1, direction: bottom, x: 0, y: 0}
- {team: bot, type: tank, index: -1, direction: bottom, x: 12, y: 0} - {team: bot, type: tank, index: -2, direction: bottom, x: 12, y: 0}
- {team: bot, type: tank, index: -1, direction: bottom, x: 24, y: 0} - {team: bot, type: tank, index: -3, direction: bottom, x: 24, y: 0}
bullet: &bullet bullet: &bullet
width: 12 width: 12

View File

@@ -1,95 +0,0 @@
[keyboard]
reset = 27 ;Escape
pause = 80 ;P
[player0]
key_left = 37 ;Left
key_up = 38 ;Up
key_right = 39 ;Rigth
key_down = 40 ;Down
key_shot = 96 ;Num0
[player1]
key_left = 65 ;A
key_up = 87 ;W
key_right = 68 ;D
key_down = 83 ;S
key_shot = 32 ;Space
[bonus]
score = 500
freeztime = 10
eagletime = 20
protecttime = 15
[bots]
count = 20 ;количество ботов на уровне
respawntime = 2.5 ;задержка между появлением ботов в секундах
shotdelay = 1.0 ;задержка между выстрелами
turndelay = 0.3 ;задержка перед поворотом при столкновении
rndturndelay = 2.0 ;задержка перед случайным поворотом
turntoeagle = 0.75 ;вероятность поворота к Орлу
bonus = 0.25 ;вероятность появления бонусного танка
[tank_p0]
movespeed = 2.5 ;скорость передвижения
bulletspeed = 8.0 ;скорость полёта снаряда
bullettype = 0 ;тип снаряда (0 - обычный, 1 - бронебойный)
bulletcount = 1 ;количество снарядов
hits = 1 ;количество хитпойнтов
[tank_p1]
movespeed = 3.0
bulletspeed = 8.5
bullettype = 0
bulletcount = 1
hits = 1
[tank_p2]
movespeed = 3.0
bulletspeed = 9.0
bullettype = 0
bulletcount = 2
hits = 1
[tank_p3]
movespeed = 2.9
bulletspeed = 9.0
bullettype = 1
bulletcount = 2
hits = 2
[tank_b0]
movespeed = 2.0
bulletspeed = 7.0
bullettype = 0
bulletcount = 1
hits = 1
score = 100
[tank_b1]
movespeed = 4.0
bulletspeed = 7.0
bullettype = 0
bulletcount = 1
hits = 1
score = 200
[tank_b2]
movespeed = 2.0
bulletspeed = 9.0
bullettype = 0
bulletcount = 1
hits = 1
score = 300
[tank_b3]
movespeed = 1.8
bulletspeed = 8.0
bullettype = 0
bulletcount = 1
hits = 4
score = 400

View File

@@ -1,7 +1,8 @@
package ru.m.tankz.editor; package ru.m.tankz.editor;
import ru.m.tankz.editor.MapEditView.Brush; import ru.m.tankz.game.Game;
import ru.m.tankz.editor.MapEditView;
import ru.m.tankz.game.DotaGame; import ru.m.tankz.game.DotaGame;
import haxework.gui.list.ListView; import haxework.gui.list.ListView;
import haxework.gui.list.VListView; import haxework.gui.list.VListView;
@@ -25,6 +26,8 @@ import haxework.log.SocketLogger;
interface EditorViewLayout { interface EditorViewLayout {
var gameClassicButton(default, null):ButtonView;
var gameDotaButton(default, null):ButtonView;
var openButton(default, null):ButtonView; var openButton(default, null):ButtonView;
var saveButton(default, null):ButtonView; var saveButton(default, null):ButtonView;
var fileNameLabel(default, null):LabelView; var fileNameLabel(default, null):LabelView;
@@ -70,16 +73,11 @@ class Editor {
Root.bind(view); Root.bind(view);
view.content.stage.stageFocusRect = false; view.content.stage.stageFocusRect = false;
view.gameClassicButton.onPress = this;
view.gameDotaButton.onPress = this;
view.openButton.onPress = this; view.openButton.onPress = this;
view.saveButton.onPress = this; view.saveButton.onPress = this;
config = ConfigBundle.get(DotaGame.TYPE);
view.mapView.config = config;
view.mapView.data = LevelBundle.empty(config);
view.brickList.data = config.bricks.filter(function(brick) return brick.type > -1);
view.spawnPointList.data = config.points;
var resetSelected = function() { var resetSelected = function() {
for (v in view.brickList.items) { for (v in view.brickList.items) {
cast(v, BrickView).selected = false; cast(v, BrickView).selected = false;
@@ -104,12 +102,27 @@ class Editor {
} }
}); });
setGameType(ClassicGame.TYPE);
}
private function setGameType(type:GameType):Void {
config = ConfigBundle.get(type);
view.mapView.config = config;
view.mapView.data = LevelBundle.empty(config);
view.brickList.data = config.bricks.filter(function(brick) return brick.type > -1);
view.spawnPointList.data = config.points;
view.mapView.brush = Brush.BRICK(view.brickList.data[0]); view.mapView.brush = Brush.BRICK(view.brickList.data[0]);
cast(view.brickList.items[0], BrickView).selected = true; cast(view.brickList.items[0], BrickView).selected = true;
} }
public function onPress(v:ButtonView):Void { public function onPress(v:ButtonView):Void {
switch (v.id) { switch (v.id) {
case 'gameClassicButton':
setGameType(ClassicGame.TYPE);
case 'gameDotaButton':
setGameType(DotaGame.TYPE);
case 'openButton': case 'openButton':
L.d(TAG, 'OPEN'); L.d(TAG, 'OPEN');
FileUtil.browse().then(function(content:FileContent) { FileUtil.browse().then(function(content:FileContent) {

View File

@@ -6,6 +6,24 @@ views:
pWidth: 100 pWidth: 100
pHeight: 100 pHeight: 100
views: views:
- $type: haxework.gui.HGroupView
pWidth: 100
height: 20
views:
- id: gameClassicButton
$type: haxework.gui.ButtonView
text: Classic
contentSize: true
skin:
$type: haxework.gui.skin.ButtonColorSkin
color: 0xaaff00
- id: gameDotaButton
$type: haxework.gui.ButtonView
text: DotA
contentSize: true
skin:
$type: haxework.gui.skin.ButtonColorSkin
color: 0xaaff00
- $type: haxework.gui.HGroupView - $type: haxework.gui.HGroupView
pWidth: 100 pWidth: 100
height: 20 height: 20