Skip to content

Commit 949b0d7

Browse files
committed
add tester bot
1 parent d92fc71 commit 949b0d7

File tree

9 files changed

+502
-44
lines changed

9 files changed

+502
-44
lines changed

adventure-composer/src/main/resources/versions.properties

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
version=0.7.2
2-
libgdxVersion=1.5.6
3-
roboVMVersion=1.0.0
4-
roboVMGradlePluginVersion=1.0.0
2+
libgdxVersion=1.6.0
3+
roboVMVersion=1.2.0
4+
roboVMGradlePluginVersion=1.2.0
55
buildToolsVersion=20.0.0
66
androidAPILevel=20
77
androidGradlePluginVersion=1.0.0

blade-engine/src/com/bladecoder/engine/model/Dialog.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ else if(next.equalsIgnoreCase("root"))
7575
currentOption = findSerOption(next);
7676
}
7777

78+
if (ended()) {
79+
World.getInstance().setCurrentDialog(null);
80+
}
7881
}
7982

8083
public void addOption(DialogOption o) {

blade-engine/src/com/bladecoder/engine/model/Verb.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,15 @@
2121
import com.bladecoder.engine.util.EngineLogger;
2222

2323
public class Verb implements VerbRunner {
24+
public static final String LOOKAT_VERB = "lookat";
25+
public static final String ACTION_VERB = "pickup";
26+
public static final String LEAVE_VERB = "leave";
27+
public static final String TALKTO_VERB = "talkto";
28+
public static final String USE_VERB = "use";
29+
public static final String GOTO_VERB = "goto";
30+
public static final String TEST_VERB = "test";
31+
public static final String INIT_VERB = "init";
32+
2433
private String id;
2534

2635
private ArrayList<Action> actions = new ArrayList <Action>();

blade-engine/src/com/bladecoder/engine/ui/DebugScreen.java

Lines changed: 153 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.badlogic.gdx.scenes.scene2d.InputEvent;
2424
import com.badlogic.gdx.scenes.scene2d.InputListener;
2525
import com.badlogic.gdx.scenes.scene2d.Stage;
26+
import com.badlogic.gdx.scenes.scene2d.ui.HorizontalGroup;
2627
import com.badlogic.gdx.scenes.scene2d.ui.Label;
2728
import com.badlogic.gdx.scenes.scene2d.ui.SelectBox;
2829
import com.badlogic.gdx.scenes.scene2d.ui.Table;
@@ -42,8 +43,12 @@ public class DebugScreen implements BladeScreen {
4243
private Stage stage;
4344

4445
private TextField speedText;
45-
SelectBox<String> recordings;
46-
SelectBox<String> scenes;
46+
private SelectBox<String> recordings;
47+
private SelectBox<String> scenes;
48+
49+
private TextField testerTimeConf;
50+
private TextField inSceneTimeConf;
51+
private TextField testerExcludeList;
4752

4853
public DebugScreen() {
4954
}
@@ -86,7 +91,7 @@ public void show() {
8691
@Override
8792
public boolean keyUp(InputEvent event, int keycode) {
8893
if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK)
89-
ui.setCurrentScreen(Screens.MENU_SCREEN);
94+
ui.setCurrentScreen(Screens.SCENE_SCREEN);
9095
return true;
9196
}
9297
});
@@ -95,7 +100,7 @@ public boolean keyUp(InputEvent event, int keycode) {
95100

96101
Label title = new Label("DEBUG SCREEN", ui.getSkin(), "title");
97102

98-
table.add(title).padBottom(DPIUtils.getMarginSize() * 2).colspan(3);
103+
table.add(title).padBottom(DPIUtils.getMarginSize() * 2).colspan(3).center();
99104

100105
// ------------- SPEED
101106
speedText = new TextField(Float.toString(((SceneScreen) ui.getScreen(Screens.SCENE_SCREEN)).getSpeed()),
@@ -108,12 +113,16 @@ public void clicked(InputEvent event, float x, float y) {
108113
scnScr.setSpeed(Float.parseFloat(speedText.getText()));
109114
}
110115
});
116+
117+
speedButton.pad(2, 3, 2, 3);
118+
HorizontalGroup sGroup = new HorizontalGroup();
119+
sGroup.space(10);
120+
sGroup.addActor(speedText);
121+
sGroup.addActor(speedButton);
111122

112-
speedButton.pad(2,3,2,3);
113123
table.row().pad(5).align(Align.left);
114124
table.add("Game Speed: ");
115-
table.add(speedText);
116-
table.add(speedButton);
125+
table.add(sGroup);
117126

118127
// ------------- RECORDING
119128

@@ -132,7 +141,7 @@ public void clicked(InputEvent event, float x, float y) {
132141
ui.setCurrentScreen(Screens.SCENE_SCREEN);
133142
} else {
134143
r.setPlaying(false);
135-
ui.setCurrentScreen(Screens.MENU_SCREEN);
144+
ui.setCurrentScreen(Screens.SCENE_SCREEN);
136145
}
137146
}
138147
});
@@ -152,24 +161,28 @@ public void clicked(InputEvent event, float x, float y) {
152161
});
153162

154163
recordings = new SelectBox<String>(ui.getSkin());
155-
164+
156165
String[] testFiles = EngineAssetManager.getInstance().listAssetFiles("/tests");
157166
ArrayList<String> al = new ArrayList<String>();
158-
159-
for(String file:testFiles)
160-
if(file.endsWith(".verbs.rec"))
161-
al.add(file.substring(0,file.indexOf(".verbs.rec")));
162-
167+
168+
for (String file : testFiles)
169+
if (file.endsWith(".verbs.rec"))
170+
al.add(file.substring(0, file.indexOf(".verbs.rec")));
171+
163172
recordings.setItems(al.toArray(new String[al.size()]));
173+
174+
play.pad(2, 3, 2, 3);
175+
rec.pad(2, 3, 2, 3);
164176

165-
play.pad(2,3,2,3);
166-
rec.pad(2,3,2,3);
177+
HorizontalGroup rGroup = new HorizontalGroup();
178+
rGroup.space(10);
179+
rGroup.addActor(recordings);
180+
rGroup.addActor(play);
181+
rGroup.addActor(rec);
167182

168183
table.row().pad(5).align(Align.left);
169184
table.add("Game Recording: ");
170-
table.add(recordings);
171-
table.add(play);
172-
table.add(rec);
185+
table.add(rGroup);
173186

174187
// ------------- SCENES
175188
TextButton go = new TextButton("Go", ui.getSkin());
@@ -180,30 +193,142 @@ public void clicked(InputEvent event, float x, float y) {
180193
ui.setCurrentScreen(Screens.SCENE_SCREEN);
181194
}
182195
});
183-
184-
go.pad(2,3,2,3);
196+
197+
go.pad(2, 3, 2, 3);
185198

186199
scenes = new SelectBox<String>(ui.getSkin());
187-
scenes.setItems(World.getInstance().getScenes().keySet().toArray(new String[World.getInstance().getScenes().size()]));
200+
scenes.setItems(World.getInstance().getScenes().keySet()
201+
.toArray(new String[World.getInstance().getScenes().size()]));
202+
203+
HorizontalGroup scGroup = new HorizontalGroup();
204+
scGroup.space(10);
205+
scGroup.addActor(scenes);
206+
scGroup.addActor(go);
188207

189208
table.row().pad(5).align(Align.left);
190209
table.add("Go to Scene: ");
191-
table.add(scenes);
192-
table.add(go);
210+
table.add(scGroup);
211+
212+
// ------------- TESTERBOT
213+
TesterBot bot = ((SceneScreen) ui.getScreen(Screens.SCENE_SCREEN)).getTesterBot();
214+
215+
TextButton runBot = new TextButton(bot.isEnabled()?"Stop":"Run", ui.getSkin());
216+
runBot.addListener(new ClickListener() {
217+
218+
public void clicked(InputEvent event, float x, float y) {
219+
SceneScreen scnScr = (SceneScreen) ui.getScreen(Screens.SCENE_SCREEN);
220+
TesterBot bot = scnScr.getTesterBot();
221+
222+
bot.setMaxWaitInverval(Float.parseFloat(testerTimeConf.getText()));
223+
bot.setInSceneTime(Float.parseFloat(inSceneTimeConf.getText()));
224+
bot.setExcludeList(testerExcludeList.getText());
225+
bot.setEnabled(!bot.isEnabled());
226+
227+
ui.setCurrentScreen(Screens.SCENE_SCREEN);
228+
}
229+
});
230+
231+
runBot.pad(2, 3, 2, 3);
232+
233+
scenes = new SelectBox<String>(ui.getSkin());
234+
scenes.setItems(World.getInstance().getScenes().keySet()
235+
.toArray(new String[World.getInstance().getScenes().size()]));
236+
237+
testerTimeConf = new TextField(Float.toString(bot.getMaxWaitInverval()), ui.getSkin());
238+
inSceneTimeConf = new TextField(Float.toString(bot.getInSceneTime()), ui.getSkin());
239+
testerExcludeList = new TextField(bot.getExcludeList(), ui.getSkin());
240+
241+
TextButton testerLeaveConf = new TextButton("Leave", ui.getSkin(), "toggle");
242+
testerLeaveConf.addListener(new ClickListener() {
243+
244+
public void clicked(InputEvent event, float x, float y) {
245+
SceneScreen scnScr = (SceneScreen) ui.getScreen(Screens.SCENE_SCREEN);
246+
TesterBot bot = scnScr.getTesterBot();
247+
248+
bot.setRunLeaveVerbs(!bot.isRunLeaveVerbs());
249+
}
250+
});
251+
252+
testerLeaveConf.setChecked(bot.isRunLeaveVerbs());
253+
254+
TextButton testerGotoConf = new TextButton("Goto", ui.getSkin(), "toggle");
255+
testerGotoConf.addListener(new ClickListener() {
256+
257+
public void clicked(InputEvent event, float x, float y) {
258+
SceneScreen scnScr = (SceneScreen) ui.getScreen(Screens.SCENE_SCREEN);
259+
TesterBot bot = scnScr.getTesterBot();
260+
261+
bot.setRunGoto(!bot.isRunGoto());
262+
}
263+
});
264+
265+
testerGotoConf.setChecked(bot.isRunGoto());
266+
267+
TextButton testerPassText = new TextButton("Pass Texts", ui.getSkin(), "toggle");
268+
testerPassText.addListener(new ClickListener() {
269+
270+
public void clicked(InputEvent event, float x, float y) {
271+
SceneScreen scnScr = (SceneScreen) ui.getScreen(Screens.SCENE_SCREEN);
272+
TesterBot bot = scnScr.getTesterBot();
273+
274+
bot.setPassTexts(!bot.isPassTexts());
275+
}
276+
});
277+
278+
testerPassText.setChecked(bot.isPassTexts());
279+
280+
TextButton testerWaitWhenWalking = new TextButton("Wait When Walking", ui.getSkin(), "toggle");
281+
testerWaitWhenWalking.addListener(new ClickListener() {
282+
283+
public void clicked(InputEvent event, float x, float y) {
284+
SceneScreen scnScr = (SceneScreen) ui.getScreen(Screens.SCENE_SCREEN);
285+
TesterBot bot = scnScr.getTesterBot();
286+
287+
bot.setWaitWhenWalking(!bot.isWaitWhenWalking());
288+
}
289+
});
290+
291+
testerWaitWhenWalking.setChecked(bot.isWaitWhenWalking());
292+
293+
HorizontalGroup botGroup = new HorizontalGroup();
294+
botGroup.space(10);
295+
296+
botGroup.addActor(testerLeaveConf);
297+
botGroup.addActor(testerGotoConf);
298+
botGroup.addActor(testerPassText);
299+
botGroup.addActor(testerWaitWhenWalking);
300+
301+
HorizontalGroup botGroup2 = new HorizontalGroup();
302+
botGroup2.space(10);
303+
304+
botGroup2.addActor(new Label("Excl. List: ", ui.getSkin()));
305+
botGroup2.addActor(testerExcludeList);
306+
botGroup2.addActor(new Label("Interval: ", ui.getSkin()));
307+
botGroup2.addActor(testerTimeConf);
308+
botGroup2.addActor(new Label("Scn Time: ", ui.getSkin()));
309+
botGroup2.addActor(inSceneTimeConf);
310+
botGroup2.addActor(runBot);
311+
312+
table.row().pad(5).align(Align.left);
313+
table.add("Tester Bot: ");
314+
table.add(botGroup);
315+
table.row().pad(5).align(Align.left);
316+
table.add();
317+
table.add(botGroup2);
193318

194319
// ------------- BACK BUTTON
195320

196321
TextButton back = new TextButton("Back", ui.getSkin(), "menu");
197322
back.addListener(new ClickListener() {
198323
public void clicked(InputEvent event, float x, float y) {
199-
ui.setCurrentScreen(Screens.MENU_SCREEN);
324+
ui.setCurrentScreen(Screens.SCENE_SCREEN);
200325
}
201326
});
202-
203-
back.pad(4,4,4,4);
327+
328+
back.pad(4, 4, 4, 4);
204329

205330
table.row().pad(5);
206-
table.add(back).colspan(3);
331+
table.add(back).colspan(3).center();
207332

208333
table.pack();
209334

blade-engine/src/com/bladecoder/engine/ui/DialogUI.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ public void act(float delta) {
8989

9090
@Override
9191
public void draw(Batch batch, float alpha) {
92+
if(World.getInstance().getCurrentDialog() == null || World.getInstance().inCutMode())
93+
return;
9294

9395
ArrayList<DialogOption> options = World.getInstance()
9496
.getCurrentDialog().getVisibleOptions();
@@ -132,6 +134,9 @@ else if (options.size() == 1) { // If only has one option,
132134
}
133135

134136
private int getOption(float x, float y) {
137+
if(World.getInstance().getCurrentDialog() == null)
138+
return -1;
139+
135140
float lineHeight = style.font.getLineHeight();
136141

137142
int selectedLine = (int) (y / lineHeight);
@@ -150,11 +155,10 @@ private void select(int i) {
150155

151156
d.selectOption(i);
152157

153-
if (World.getInstance().getCurrentDialog().ended()) {
154-
World.getInstance().setCurrentDialog(null);
155-
selected = -1;
156-
setVisible(false);
157-
}
158+
// if (World.getInstance().getCurrentDialog().ended()) {
159+
// selected = -1;
160+
// setVisible(false);
161+
// }
158162
}
159163

160164
/** The style for the DialogUI */

blade-engine/src/com/bladecoder/engine/ui/Recorder.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ public void update(float delta) {
7878
if (v.pos == null) { // DIALOG OPTION
7979
Dialog d = World.getInstance().getCurrentDialog();
8080
d.selectOption(v.dialogOption);
81+
82+
if (World.getInstance().getCurrentDialog().ended()) {
83+
World.getInstance().setCurrentDialog(null);
84+
}
8185

8286
stringBuilder.append(" SELECT DIALOG OPTION: ").append(v.dialogOption);
8387
} else { // GOTO

0 commit comments

Comments
 (0)