diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e43b0f9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.DS_Store
diff --git a/adventure-test-project/android/AndroidManifest.xml b/adventure-test-project/android/AndroidManifest.xml
deleted file mode 100644
index 62b95ca..0000000
--- a/adventure-test-project/android/AndroidManifest.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/adventure-test-project/android/build.gradle b/adventure-test-project/android/build.gradle
deleted file mode 100644
index 2245cb2..0000000
--- a/adventure-test-project/android/build.gradle
+++ /dev/null
@@ -1,251 +0,0 @@
-apply plugin: 'android'
-
-android {
- compileSdkVersion highestSdkAvailable("android-27")
-
- defaultConfig {
- applicationId "com.bladecoder.advtest"
- minSdkVersion 15
- targetSdkVersion '27'
- versionName version
-
- if(project.hasProperty('versionCode'))
- versionCode project.versionCode.toInteger()
- else
- versionCode 1
-
- buildConfigField "int", "EXPANSION_FILE_VERSION", "0"
- }
-
- flavorDimensions "default"
-
- productFlavors {
- full {
- }
-
- expansion {
- buildConfigField "int", "EXPANSION_FILE_VERSION", String.valueOf(android.defaultConfig.versionCode)
- }
- }
-
- sourceSets {
- main {
- manifest.srcFile 'AndroidManifest.xml'
- java.srcDirs = ['src/main/java']
- aidl.srcDirs = ['src/main/java']
- renderscript.srcDirs = ['src/main/java']
- res.srcDirs = ['res']
- jniLibs.srcDirs = ['libs']
- }
-
- full.assets.srcDirs = ['../assets']
- expansion.assets.srcDirs = ['../base-assets']
- }
-
- packagingOptions {
- // Preventing from license violations (more or less):
- pickFirst 'META-INF/LICENSE.txt'
- pickFirst 'META-INF/LICENSE'
- pickFirst 'META-INF/license.txt'
- pickFirst 'META-INF/LGPL2.1'
- pickFirst 'META-INF/NOTICE.txt'
- pickFirst 'META-INF/NOTICE'
- pickFirst 'META-INF/notice.txt'
- // Excluding unnecessary meta-data:
- exclude 'META-INF/robovm/ios/robovm.xml'
- exclude 'META-INF/DEPENDENCIES.txt'
- exclude 'META-INF/DEPENDENCIES'
- exclude 'META-INF/dependencies.txt'
- }
-
- if(project.hasProperty('keystore')) {
- signingConfigs {
- release {
- storeFile file(project.keystore)
- storePassword project.storePassword
- keyAlias project.alias
- keyPassword project.keyPassword
- }
- }
-
- buildTypes {
- release {
- signingConfig signingConfigs.release
- }
- }
- }
-
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
-}
-
-configurations { natives }
-
-dependencies {
- api project(":core")
- api "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
- natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
- natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
- natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
- natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
- natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
- natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi"
- natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a"
- natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a"
- natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"
- natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64"
-
- // TO QUERY PERMISSIONS
- implementation "com.android.support:support-v4:23.0.0"
-}
-
-// called every time gradle gets executed, takes the native dependencies of
-// the natives configuration, and extracts them to the proper libs/ folders
-// so they get packed with the APK.
-task copyAndroidNatives() {
- file("libs/armeabi/").mkdirs();
- file("libs/armeabi-v7a/").mkdirs();
- file("libs/arm64-v8a/").mkdirs();
- file("libs/x86_64/").mkdirs();
- file("libs/x86/").mkdirs();
-
- configurations.natives.files.each { jar ->
- def outputDir = null
- if(jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
- if(jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
- if(jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")
- if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
- if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
- if(outputDir != null) {
- copy {
- from zipTree(jar)
- into outputDir
- include "*.so"
- }
- }
- }
-}
-
-task run(type: Exec) {
- def path
- def localProperties = project.file("../local.properties")
- if (localProperties.exists()) {
- Properties properties = new Properties()
- localProperties.withInputStream { instr ->
- properties.load(instr)
- }
- def sdkDir = properties.getProperty('sdk.dir')
- if (sdkDir) {
- path = sdkDir
- } else {
- path = "$System.env.ANDROID_HOME"
- }
- } else {
- path = "$System.env.ANDROID_HOME"
- }
-
- def adb = path + "/platform-tools/adb"
- commandLine "$adb", 'shell', 'am', 'start', '-n', android.defaultConfig.applicationId + '/' + android.defaultConfig.applicationId + '.AndroidLauncher'
-}
-
-task('packageMainExpansionFile', type: Zip) {
-
- FileTree tree = fileTree(dir: '../assets')
-
- from tree
- //into 'assets'
-
- // Expansion file name format: main.versionCode.packageName.obb
- entryCompression = ZipEntryCompression.STORED
- archiveName = 'main.' + android.defaultConfig.versionCode + "." + android.defaultConfig.applicationId + ".obb"
-
- doLast {
- println "Generating expansion file:" + archiveName
- }
-
-}
-
-tasks.whenTaskAdded { task ->
- if(task.name == 'generateExpansionReleaseBuildConfig') {
- task.dependsOn packageMainExpansionFile
- }
-}
-
-// sets up the Android Eclipse project, using the old Ant based build.
-eclipse {
- // need to specify Java source sets explicitely, SpringSource Gradle Eclipse plugin
- // ignores any nodes added in classpath.file.withXml
- sourceSets {
- main {
- java.srcDirs "src/main/java", 'gen'
- }
- }
-
- jdt {
- sourceCompatibility=1.7
- targetCompatibility=1.7
- }
-
- classpath {
- plusConfigurations += [ project.configurations.compile ]
- containers 'com.android.ide.eclipse.adt.ANDROID_FRAMEWORK', 'com.android.ide.eclipse.adt.LIBRARIES'
- }
-
- project {
- name = appName + "-android"
- natures 'com.android.ide.eclipse.adt.AndroidNature'
- buildCommands.clear();
- buildCommand "com.android.ide.eclipse.adt.ResourceManagerBuilder"
- buildCommand "com.android.ide.eclipse.adt.PreCompilerBuilder"
- buildCommand "org.eclipse.jdt.core.javabuilder"
- buildCommand "com.android.ide.eclipse.adt.ApkBuilder"
- }
-}
-
-// sets up the Android Idea project, using the old Ant based build.
-idea {
- module {
- sourceDirs += file("src");
- scopes = [ COMPILE: [plus:[project.configurations.compile]]]
-
- iml {
- withXml {
- def node = it.asNode()
- def builder = NodeBuilder.newInstance();
- builder.current = node;
- builder.component(name: "FacetManager") {
- facet(type: "android", name: "Android") {
- configuration {
- option(name: "UPDATE_PROPERTY_FILES", value:"true")
- }
- }
- }
- }
- }
- }
-}
-
-
-String highestSdkAvailable(String defaultSdk) {
- try {
- def buildToolsDir = new File(android.getSdkDirectory().toString(), "platforms")
- def sdks = buildToolsDir.list([accept:{ d, f-> f.startsWith("android-") && new File(d, f).isDirectory() }] as FilenameFilter).sort { a, b -> b <=> a }
- def highestSdk = sdks[0]
- if (highestSdk != null) {
- println "Using highest found SDK: " + highestSdk
- highestSdk
- } else {
- println "No installed SDKs found. Using default SDK: " + defaultSdk
-
- defaultSdk
- }
- } catch (any) {
- println "Exception while determining highest SDK. Using default SDK: " + defaultSdk
-
- defaultSdk
- }
-}
diff --git a/adventure-test-project/android/libs/arm64-v8a/libgdx-freetype.so b/adventure-test-project/android/libs/arm64-v8a/libgdx-freetype.so
deleted file mode 100644
index 2b7f8ca..0000000
Binary files a/adventure-test-project/android/libs/arm64-v8a/libgdx-freetype.so and /dev/null differ
diff --git a/adventure-test-project/android/libs/arm64-v8a/libgdx.so b/adventure-test-project/android/libs/arm64-v8a/libgdx.so
deleted file mode 100644
index 24f4c99..0000000
Binary files a/adventure-test-project/android/libs/arm64-v8a/libgdx.so and /dev/null differ
diff --git a/adventure-test-project/android/libs/x86_64/libgdx-freetype.so b/adventure-test-project/android/libs/x86_64/libgdx-freetype.so
deleted file mode 100644
index 3b05cfc..0000000
Binary files a/adventure-test-project/android/libs/x86_64/libgdx-freetype.so and /dev/null differ
diff --git a/adventure-test-project/android/libs/x86_64/libgdx.so b/adventure-test-project/android/libs/x86_64/libgdx.so
deleted file mode 100644
index 358f77c..0000000
Binary files a/adventure-test-project/android/libs/x86_64/libgdx.so and /dev/null differ
diff --git a/adventure-test-project/assets/model/test-story.ink.json b/adventure-test-project/assets/model/test-story.ink.json
deleted file mode 100644
index 501954e..0000000
--- a/adventure-test-project/assets/model/test-story.ink.json
+++ /dev/null
@@ -1 +0,0 @@
-{"inkVersion":19,"root":[["\n","\n","ev","str","^> Scene 1","/str","/ev",{"*":"0.c-0","flg":4},"ev","str","^> Scene 2","/str","/ev",{"*":"0.c-1","flg":4},{"c-0":["\n",{"->":"scene1"},{"->":"0.g-0"},null],"c-1":["\n",{"->":"scene2"},{"->":"0.g-0"},null],"g-0":["done",null]}],"done",{"scene1":[{"->":".^.init"},{"init":[["^> Goto: actor=RED, target=target","\n","^> Animation: animation= GREEN.stand.left, wait=false","\n","^GREEN> Hi! This is a scene written with Ink!","\n","^GREEN> Ink is a narrative language developed by Inkle.","\n","^GREEN> Can you drive your game and story throught the Ink language?","\n",["ev",{"^->":"scene1.init.0.10.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-0","flg":18},{"s":["^RED> Yes, I can do everything with Ink.",{"->":"$r","var":true},null]}],["ev",{"^->":"scene1.init.0.11.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-1","flg":18},{"s":["^RED> I don't think so.",{"->":"$r","var":true},null]}],["ev",{"^->":"scene1.init.0.12.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-2","flg":18},{"s":["^RED> I know nothing about Ink.",{"->":"$r","var":true},null]}],{"c-0":["ev",{"^->":"scene1.init.0.c-0.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.10.s"},[{"#n":"$r2"}],"\n",{"->":".^.^.g-0"},{"#f":5}],"c-1":["ev",{"^->":"scene1.init.0.c-1.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.11.s"},[{"#n":"$r2"}],"\n",{"->":".^.^.g-0"},{"#f":5}],"c-2":["ev",{"^->":"scene1.init.0.c-2.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.12.s"},[{"#n":"$r2"}],"\n",{"->":".^.^.g-0"},{"#f":5}],"g-0":["^GREEN> Well, you did it!","\n","end",null]}],{"#f":3}],"green":[["^$PLAYER> Hi!","\n","^GREEN> I don't want to speak with you.","\n",["ev",{"^->":"scene1.green.0.4.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-0","flg":18},{"s":["^$PLAYER > Why?",{"->":"$r","var":true},null]}],["ev",{"^->":"scene1.green.0.5.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-1","flg":18},{"s":["^$PLAYER > Ok. No problemo.",{"->":"$r","var":true},null]}],{"c-0":["ev",{"^->":"scene1.green.0.c-0.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.4.s"},[{"#n":"$r2"}],"\n","^GREEN> Because.","\n","^$PLAYER> Well. I don't understand, but ok.","\n","end",{"#f":5}],"c-1":["ev",{"^->":"scene1.green.0.c-1.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.5.s"},[{"#n":"$r2"}],"\n","end",{"#f":5}]}],{"#f":3}],"#f":3}],"scene2":[{"->":".^.d1"},{"d1":[["^PLAYER> Hi!","\n","^PLAYER> How are you?","\n","^GREEN> Fine, thanks!","\n","^GREEN> Are you hungry?","\n",["ev",{"^->":"scene2.d1.0.8.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","str","^.","/str","/ev",{"*":".^.^.c-0","flg":22},{"s":["^PLAYER> No",{"->":"$r","var":true},null]}],["ev",{"^->":"scene2.d1.0.9.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-1","flg":18},{"s":["^PLAYER> Yes.",{"->":"$r","var":true},null]}],{"c-0":["ev",{"^->":"scene2.d1.0.c-0.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.8.s"},[{"#n":"$r2"}],"^, I don't.","\n","^GREEN> Ok, let me know when you want some food.","\n",{"->":".^.^.g-0"},{"#f":5}],"c-1":["ev",{"^->":"scene2.d1.0.c-1.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.9.s"},[{"#n":"$r2"}],"\n","^GREEN> Would you like a hamburger?","\n",[["ev",{"^->":"scene2.d1.0.c-1.9.0.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-0","flg":18},{"s":["^PLAYER> Yes.",{"->":"$r","var":true},null]}],["ev",{"^->":"scene2.d1.0.c-1.9.1.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-1","flg":18},{"s":["^PLAYER> No.",{"->":"$r","var":true},null]}],{"c-0":["ev",{"^->":"scene2.d1.0.c-1.9.c-0.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.0.s"},[{"#n":"$r2"}],"\n","^GREEN> Maybe you are too fat, here you have a banana.","\n",{"->":".^.^.^.^.g-0"},{"#f":5}],"c-1":["ev",{"^->":"scene2.d1.0.c-1.9.c-1.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.1.s"},[{"#n":"$r2"}],"\n","^GREEN> Well, here you have a banana.","\n",{"->":".^.^.^.^.g-0"},{"#f":5}]}],{"#f":5}],"g-0":["^PLAYER> Bye.","\n","end",null]}],{"#f":3}],"#f":3}],"#f":3}],"listDefs":{}}
\ No newline at end of file
diff --git a/adventure-test-project/assets/model/test2.ink.json b/adventure-test-project/assets/model/test2.ink.json
deleted file mode 100644
index b1f0747..0000000
--- a/adventure-test-project/assets/model/test2.ink.json
+++ /dev/null
@@ -1 +0,0 @@
-{"inkVersion":18,"root":[[["done",{"#f":7,"#n":"g-0"}],null],"done",{"d1":[["^PLAYER> Hi!","\n","^PLAYER> How are you?","\n","^GREEN> Fine, thanks!","\n","^GREEN> Are you hungry?","\n",["ev",{"^->":"d1.0.8.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","str","^.","/str","/ev",{"*":"d1.0.c-0","flg":22},{"s":["^PLAYER> No",{"->":"$r","var":true},null]}],["ev",{"^->":"d1.0.9.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":"d1.0.c-1","flg":18},{"s":["^PLAYER> Yes.",{"->":"$r","var":true},null]}],{"c-0":["ev",{"^->":"d1.0.c-0.$r2"},"/ev",{"temp=":"$r"},{"->":"d1.0.8.s"},[{"#n":"$r2"}],"^, I don't.","\n","^GREEN> Ok, let me know when you want some food.","\n",{"->":"d1.0.g-0"},{"#f":7}],"c-1":["ev",{"^->":"d1.0.c-1.$r2"},"/ev",{"temp=":"$r"},{"->":"d1.0.9.s"},[{"#n":"$r2"}],"\n","^GREEN> Would you like a hamburger?","\n",[["ev",{"^->":"d1.0.c-1.9.0.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-0","flg":18},{"s":["^PLAYER> Yes.",{"->":"$r","var":true},null]}],["ev",{"^->":"d1.0.c-1.9.1.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-1","flg":18},{"s":["^PLAYER> No.",{"->":"$r","var":true},null]}],{"c-0":["ev",{"^->":"d1.0.c-1.9.c-0.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.0.s"},[{"#n":"$r2"}],"\n","^GREEN> Maybe you are too fat, here you have a banana.","\n",{"->":"d1.0.g-0"},{"#f":7}],"c-1":["ev",{"^->":"d1.0.c-1.9.c-1.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.1.s"},[{"#n":"$r2"}],"\n","^GREEN> Well, here you have a banana.","\n",{"->":"d1.0.g-0"},{"#f":7}]}],{"#f":7}],"g-0":["^PLAYER> Bye.","\n","end",{"#f":7}]}],{"#f":3}],"#f":3}],"listDefs":{}}
\ No newline at end of file
diff --git a/adventure-test-project/build.gradle b/adventure-test-project/build.gradle
deleted file mode 100644
index a6e0ad8..0000000
--- a/adventure-test-project/build.gradle
+++ /dev/null
@@ -1,46 +0,0 @@
-buildscript {
- repositories {
- mavenCentral()
- jcenter()
- google()
- }
- dependencies {
- classpath "com.badlogicgames.gdx:gdx-tools:$gdxVersion"
- classpath "com.mobidevelop.robovm:robovm-gradle-plugin:$roboVMGradlePluginVersion"
- classpath "com.android.tools.build:gradle:$androidGradlePluginVersion"
- }
-}
-
-allprojects {
- apply plugin: 'eclipse'
- apply plugin: 'idea'
-}
-
-subprojects {
- repositories {
- mavenCentral()
- google()
- jcenter()
- maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
- maven { url "https://oss.sonatype.org/content/repositories/releases/" }
- }
-}
-
-tasks.eclipse.doLast {
- delete ".project"
- delete '.classpath'
- delete '.settings/'
-}
-
-// Run `gradle pack` task to generate skin.atlas file at assets/ui.
-import com.badlogic.gdx.tools.texturepacker.TexturePacker
-task pack << {
- // Note that if you need multiple atlases, you can duplicate the
- // TexturePacker.process invocation and change paths to generate
- // additional atlases with this task.
- TexturePacker.process(
- 'raw/ui', // Raw assets path.
- 'assets/ui/1/', // Output directory.
- 'ui' // Name of the generated atlas (without extension).
- )
-}
diff --git a/adventure-test-project/core/build.gradle b/adventure-test-project/core/build.gradle
deleted file mode 100644
index d8dcf99..0000000
--- a/adventure-test-project/core/build.gradle
+++ /dev/null
@@ -1,44 +0,0 @@
-apply plugin: 'java'
-apply plugin: 'java-library'
-
-sourceCompatibility = 1.7
-targetCompatibility=1.7
-
-[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
-eclipse.project.name = appName + '-core'
-
-dependencies {
- api "com.badlogicgames.gdx:gdx:$gdxVersion"
- api fileTree(dir: '../libs', include: '*.jar')
- api "com.bladecoder.engine:blade-engine:$bladeEngineVersion"
- api "com.bladecoder.ink:blade-ink:$bladeInkVersion"
- api "org.minimalcode:minimalcode-beans:0.5.1"
- api "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
-
- if(project.hasProperty("spinePlugin") && project.spinePlugin.equals("true")) {
- println "Using Spine Plugin..."
- api "com.bladecoder.engine:blade-engine-spine-plugin:$bladeEngineVersion"
- }
-}
-
-
-task setVersion(type: WriteProperties) {
-
- def props = new Properties()
- def propFile = project.file("../assets/BladeEngine.properties");
- props.load(new FileReader(propFile))
-
- props."version" = version
- props."bladeEngineVersion" = bladeEngineVersion
- props."gdxVersion" = gdxVersion
- props."roboVMVersion" = roboVMVersion
-
- setProperties(props);
- setOutputFile(propFile);
-
- doLast {
- println "Set version info in versions.properties"
- }
-}
-
-processResources.finalizedBy(setVersion)
diff --git a/adventure-test-project/desktop/build.gradle b/adventure-test-project/desktop/build.gradle
deleted file mode 100644
index 371fc22..0000000
--- a/adventure-test-project/desktop/build.gradle
+++ /dev/null
@@ -1,50 +0,0 @@
-apply plugin: 'java'
-apply plugin: 'java-library'
-apply plugin: 'application'
-
-sourceCompatibility = 1.7
-targetCompatibility=1.7
-
-sourceSets.main.resources.srcDirs += [ rootProject.file('assets').absolutePath ]
-mainClassName = "com.bladecoder.advtest.desktop.DesktopLauncher"
-eclipse.project.name = appName + '-desktop'
-
-dependencies {
- api project(":core")
- api "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
- api "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
- api "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
-}
-
-jar {
- archiveName "${appName}-${version}.jar"
- from { configurations.compile.collect { zipTree(it) } }
- manifest {
- attributes 'Main-Class': project.mainClassName
- }
-}
-
-
-run {
- standardInput = System.in
- ignoreExitValue = true
-
- if (project.hasProperty("appArgs") ) {
- args Eval.me(appArgs)
- }
-}
-
-
-task dist(type: Jar) {
- baseName = appName + "-desktop"
-
- from files(sourceSets.main.output.classesDirs)
- from files(sourceSets.main.output.resourcesDir)
- from {configurations.runtimeClasspath.collect {zipTree(it)}}
-
- manifest {
- attributes 'Main-Class': project.mainClassName
- }
-}
-
-dist.dependsOn classes
diff --git a/adventure-test-project/desktop/src/main/java/com/bladecoder/advtest/desktop/DesktopLauncher.java b/adventure-test-project/desktop/src/main/java/com/bladecoder/advtest/desktop/DesktopLauncher.java
deleted file mode 100644
index 46ee6a2..0000000
--- a/adventure-test-project/desktop/src/main/java/com/bladecoder/advtest/desktop/DesktopLauncher.java
+++ /dev/null
@@ -1,171 +0,0 @@
-package com.bladecoder.advtest.desktop;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.IntBuffer;
-import java.util.Properties;
-
-import com.bladecoder.engine.BladeEngine;
-import com.bladecoder.engine.util.Config;
-import org.lwjgl.BufferUtils;
-import org.lwjgl.LWJGLException;
-import org.lwjgl.input.Cursor;
-import org.lwjgl.input.Mouse;
-
-import com.badlogic.gdx.Files.FileType;
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
-import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
-
-public class DesktopLauncher extends BladeEngine {
-
- private boolean fullscreen = true;
- private LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
-
- DesktopLauncher() {
- Properties p = new Properties();
-
- try {
- InputStream s = DesktopLauncher.class.getResourceAsStream("/" + Config.PROPERTIES_FILENAME);
- if(s!=null)
- p.load(s);
- } catch (IOException e) {
- System.out.println("Could not load properties file.");
- }
-
- cfg.title = p.getProperty(Config.TITLE_PROP, "Blade Engine Adventure") + " " + p.getProperty(Config.VERSION_PROP, "");
-// cfg.useGL30 = true;
-
- cfg.width = 1920 / 2;
- cfg.height = 1080 / 2;
-
- cfg.resizable = true;
- //cfg.samples = 2;
- cfg.vSyncEnabled = true;
- }
-
- public void run() {
- if(DesktopLauncher.class.getResource("/icons/icon128.png")!=null)
- cfg.addIcon("icons/icon128.png", FileType.Internal);
-
- if(DesktopLauncher.class.getResource("/icons/icon32.png")!=null)
- cfg.addIcon("icons/icon32.png", FileType.Internal);
-
- if(DesktopLauncher.class.getResource("/icons/icon16.png")!=null)
- cfg.addIcon("icons/icon16.png", FileType.Internal);
-
- new LwjglApplication(this, cfg);
- }
-
- public void parseParams(String[] args) {
- for (int i = 0; i < args.length; i++) {
- String s = args[i];
- if (s.equals("-t")) {
- if (i + 1 < args.length) {
- i++;
- setTestMode(args[i]);
- }
- } else if (s.equals("-p")) {
- if (i + 1 < args.length) {
- i++;
- setPlayMode(args[i]);
- }
- } else if (s.equals("-chapter")) {
- if (i + 1 < args.length) {
- i++;
- setChapter(args[i]);
- }
- } else if (s.equals("-f")) {
- fullscreen = true;
- } else if (s.equals("-d")) {
- setDebugMode();
- } else if (s.equals("-r")) {
- setRestart();
- } else if (s.equals("-res")) {
- if (i + 1 < args.length) {
- i++;
- forceResolution(args[i]);
- }
- } else if (s.equals("-aspect")) {
- if (i + 1 < args.length) {
- i++;
- String aspect = args[i];
-
- if(aspect.equals("16:9")) {
- cfg.height = cfg.width * 9/16;
- } else if(aspect.equals("4:3")) {
- cfg.height = cfg.width * 3/4;
- } else if(aspect.equals("16:10") ||
- aspect.equals("8:5") ) {
- cfg.height = cfg.width * 10/16;
- }
- }
- } else if (s.equals("-w")) {
- fullscreen = false;
- } else if (s.equals("-l")) {
- if (i + 1 < args.length) {
- i++;
- loadGameState(args[i]);
- }
- } else if (s.equals("-h")) {
- usage();
- } else {
- if(i == 0 && !s.startsWith("-")) continue; // When embeded JRE the 0 parameter is the app name
- System.out.println("Unrecognized parameter: " + s);
- usage();
- }
- }
- }
-
-
- public void usage() {
- System.out.println(
- "Usage:\n" +
- "-chapter chapter\tLoads the selected chapter\n" +
- "-t scene_name\tStart test mode for the scene\n" +
- "-p record_name\tPlay previusly recorded games\n" +
- "-f\tSet fullscreen mode\n" +
- "-w\tSet windowed mode\n" +
- "-d\tShow debug messages\n" +
- "-res width\tForce the resolution width\n" +
- "-l game_state\tLoad the previusly saved game state\n" +
- "-r\tRun the game from the begining\n" +
- "-aspect aspect_ratio\tSets the specified screen aspect (16:9, 4:3, 16:10)\n"
- );
-
- System.exit(0);
- }
-
- @Override
- public void create() {
- // Gdx.input.setCursorCatched(false);
- if (fullscreen)
- Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode());
-
- hideCursor();
-
- super.create();
- }
-
- private void hideCursor() {
- Cursor emptyCursor;
-
- int min = org.lwjgl.input.Cursor.getMinCursorSize();
- IntBuffer tmp = BufferUtils.createIntBuffer(min * min);
- try {
- emptyCursor = new org.lwjgl.input.Cursor(min, min, min / 2,
- min / 2, 1, tmp, null);
-
- Mouse.setNativeCursor(emptyCursor);
- } catch (LWJGLException e) {
- e.printStackTrace();
- }
-
- }
-
- public static void main(String[] args) {
- DesktopLauncher game = new DesktopLauncher();
- game.parseParams(args);
- game.run();
- }
-}
diff --git a/adventure-test-project/gradle.properties b/adventure-test-project/gradle.properties
deleted file mode 100644
index 02db4dd..0000000
--- a/adventure-test-project/gradle.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-android.injected.testOnly=false
-androidGradlePluginVersion=3.4.1
-appName=adventure-test-project
-bladeEngineVersion=3.2.3
-bladeInkVersion=0.7.3
-gdxVersion=1.9.10
-org.gradle.configureondemand=false
-org.gradle.daemon=true
-org.gradle.jvmargs=-Xms128m -Xmx1536m
-roboVMGradlePluginVersion=2.3.7
-roboVMVersion=2.3.8
-spinePlugin=false
-version=19
diff --git a/adventure-test-project/ios/Info.plist.xml b/adventure-test-project/ios/Info.plist.xml
deleted file mode 100644
index 7b4e115..0000000
--- a/adventure-test-project/ios/Info.plist.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
- UIRequiresFullScreen
- yes
- MinimumOSVersion
- 7.0
-
- CFBundleDevelopmentRegion
- en
- CFBundleDisplayName
- ${app.name}
- CFBundleExecutable
- ${app.executable}
- CFBundleIdentifier
- ${app.id}
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- ${app.name}
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- ${app.version}
- CFBundleSignature
- ????
- CFBundleVersion
- ${app.build}
- LSRequiresIPhoneOS
-
- UIViewControllerBasedStatusBarAppearance
-
- UIStatusBarHidden
-
- UIDeviceFamily
-
- 1
- 2
-
- UIRequiredDeviceCapabilities
-
- armv7
- opengles-2
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- CFBundleIconName
- AppIcon
-
-
diff --git a/adventure-test-project/ios/build.gradle b/adventure-test-project/ios/build.gradle
deleted file mode 100644
index 995d7d2..0000000
--- a/adventure-test-project/ios/build.gradle
+++ /dev/null
@@ -1,30 +0,0 @@
-apply plugin: 'java'
-apply plugin: 'java-library'
-apply plugin: 'robovm'
-
-[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
-sourceCompatibility = 1.7
-targetCompatibility=1.7
-
-ext {
- mainClassName = "com.bladecoder.advtest.IOSLauncher"
-}
-
-launchIPhoneSimulator.dependsOn build
-launchIPadSimulator.dependsOn build
-launchIOSDevice.dependsOn build
-createIPA.dependsOn build
-
-eclipse.project {
- name = appName + "-ios"
- natures 'org.robovm.eclipse.RoboVMNature'
-}
-
-dependencies {
- api project(':core')
- api "com.mobidevelop.robovm:robovm-rt:$roboVMVersion"
- api "com.mobidevelop.robovm:robovm-cocoatouch:$roboVMVersion"
- api "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion"
- api "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios"
- api "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-ios"
-}
diff --git a/adventure-test-project/ios/robovm.xml b/adventure-test-project/ios/robovm.xml
deleted file mode 100644
index 7ad5cc7..0000000
--- a/adventure-test-project/ios/robovm.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
- ${app.executable}
- ${app.mainclass}
- ios
-
- ios
- Info.plist.xml
-
-
- ../assets
-
- **
-
- true
-
-
- data
-
-
-
- com.bladecoder.engine.**
- com.badlogic.gdx.scenes.scene2d.ui.*
- com.badlogic.gdx.scenes.scene2d.ui.*
- com.badlogic.gdx.graphics.g3d.particles.**
- com.android.okhttp.HttpHandler
- com.android.okhttp.HttpsHandler
- com.android.org.conscrypt.**
- com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
- com.android.org.bouncycastle.jcajce.provider.keystore.BC$Mappings
- com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi
- com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$Std
- com.android.org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi
- com.android.org.bouncycastle.crypto.digests.AndroidDigestFactoryOpenSSL
- org.apache.harmony.security.provider.cert.DRLCertFactory
- org.apache.harmony.security.provider.crypto.CryptoProvider
-
-
- z
-
-
- UIKit
- OpenGLES
- QuartzCore
- CoreGraphics
- OpenAL
- AudioToolbox
- AVFoundation
-
-
-
diff --git a/adventure-test-spine/assets/spine/john_back.skel b/adventure-test-spine/assets/spine/john_back.skel
deleted file mode 100644
index 8ba2a6c..0000000
Binary files a/adventure-test-spine/assets/spine/john_back.skel and /dev/null differ
diff --git a/adventure-test-spine/assets/spine/john_front.skel b/adventure-test-spine/assets/spine/john_front.skel
deleted file mode 100644
index 2e64c52..0000000
Binary files a/adventure-test-spine/assets/spine/john_front.skel and /dev/null differ
diff --git a/adventure-test-spine/assets/spine/john_left.skel b/adventure-test-spine/assets/spine/john_left.skel
deleted file mode 100644
index 6776455..0000000
Binary files a/adventure-test-spine/assets/spine/john_left.skel and /dev/null differ
diff --git a/adventure-test-spine/core/build.gradle b/adventure-test-spine/core/build.gradle
deleted file mode 100644
index d8dcf99..0000000
--- a/adventure-test-spine/core/build.gradle
+++ /dev/null
@@ -1,44 +0,0 @@
-apply plugin: 'java'
-apply plugin: 'java-library'
-
-sourceCompatibility = 1.7
-targetCompatibility=1.7
-
-[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
-eclipse.project.name = appName + '-core'
-
-dependencies {
- api "com.badlogicgames.gdx:gdx:$gdxVersion"
- api fileTree(dir: '../libs', include: '*.jar')
- api "com.bladecoder.engine:blade-engine:$bladeEngineVersion"
- api "com.bladecoder.ink:blade-ink:$bladeInkVersion"
- api "org.minimalcode:minimalcode-beans:0.5.1"
- api "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
-
- if(project.hasProperty("spinePlugin") && project.spinePlugin.equals("true")) {
- println "Using Spine Plugin..."
- api "com.bladecoder.engine:blade-engine-spine-plugin:$bladeEngineVersion"
- }
-}
-
-
-task setVersion(type: WriteProperties) {
-
- def props = new Properties()
- def propFile = project.file("../assets/BladeEngine.properties");
- props.load(new FileReader(propFile))
-
- props."version" = version
- props."bladeEngineVersion" = bladeEngineVersion
- props."gdxVersion" = gdxVersion
- props."roboVMVersion" = roboVMVersion
-
- setProperties(props);
- setOutputFile(propFile);
-
- doLast {
- println "Set version info in versions.properties"
- }
-}
-
-processResources.finalizedBy(setVersion)
diff --git a/adventure-test-spine/desktop/build.gradle b/adventure-test-spine/desktop/build.gradle
deleted file mode 100644
index 08b58af..0000000
--- a/adventure-test-spine/desktop/build.gradle
+++ /dev/null
@@ -1,50 +0,0 @@
-apply plugin: 'java'
-apply plugin: 'java-library'
-apply plugin: 'application'
-
-sourceCompatibility = 1.7
-targetCompatibility=1.7
-
-sourceSets.main.resources.srcDirs += [ rootProject.file('assets').absolutePath ]
-mainClassName = "com.bladecoder.advtestspine.desktop.DesktopLauncher"
-eclipse.project.name = appName + '-desktop'
-
-dependencies {
- api project(":core")
- api "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
- api "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
- api "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
-}
-
-jar {
- archiveName "${appName}-${version}.jar"
- from { configurations.compile.collect { zipTree(it) } }
- manifest {
- attributes 'Main-Class': project.mainClassName
- }
-}
-
-
-run {
- standardInput = System.in
- ignoreExitValue = true
-
- if (project.hasProperty("appArgs") ) {
- args Eval.me(appArgs)
- }
-}
-
-
-task dist(type: Jar) {
- baseName = appName + "-desktop"
-
- from files(sourceSets.main.output.classesDirs)
- from files(sourceSets.main.output.resourcesDir)
- from {configurations.runtimeClasspath.collect {zipTree(it)}}
-
- manifest {
- attributes 'Main-Class': project.mainClassName
- }
-}
-
-dist.dependsOn classes
diff --git a/adventure-test-spine/desktop/src/main/java/com/bladecoder/advtestspine/desktop/DesktopLauncher.java b/adventure-test-spine/desktop/src/main/java/com/bladecoder/advtestspine/desktop/DesktopLauncher.java
deleted file mode 100644
index bbac93a..0000000
--- a/adventure-test-spine/desktop/src/main/java/com/bladecoder/advtestspine/desktop/DesktopLauncher.java
+++ /dev/null
@@ -1,159 +0,0 @@
-package com.bladecoder.advtestspine.desktop;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.IntBuffer;
-import java.util.Properties;
-
-import com.bladecoder.engine.BladeEngine;
-import com.bladecoder.engine.util.Config;
-import org.lwjgl.BufferUtils;
-import org.lwjgl.LWJGLException;
-import org.lwjgl.input.Cursor;
-import org.lwjgl.input.Mouse;
-
-import com.badlogic.gdx.Files.FileType;
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
-import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
-
-public class DesktopLauncher extends BladeEngine {
-
- private boolean fullscreen = true;
- private LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
-
- DesktopLauncher() {
- Properties p = new Properties();
-
- try {
- InputStream s = DesktopLauncher.class.getResourceAsStream(Config.PROPERTIES_FILENAME);
- if(s!=null)
- p.load(s);
- } catch (IOException e) {
- }
-
- cfg.title = p.getProperty(Config.TITLE_PROP, "Blade Engine Adventure");
-// cfg.useGL30 = true;
-
- // cfg.width = World.getInstance().getWidth();
- // cfg.height = World.getInstance().getHeight();
-
- cfg.width = 1920 / 2;
- cfg.height = 1080 / 2;
-
- cfg.resizable = true;
- cfg.samples = 2;
- }
-
- public void run() {
- if(DesktopLauncher.class.getResource("/icons/icon128.png")!=null)
- cfg.addIcon("icons/icon128.png", FileType.Internal);
-
- if(DesktopLauncher.class.getResource("/icons/icon32.png")!=null)
- cfg.addIcon("icons/icon32.png", FileType.Internal);
-
- if(DesktopLauncher.class.getResource("/icons/icon16.png")!=null)
- cfg.addIcon("icons/icon16.png", FileType.Internal);
-
- new LwjglApplication(this, cfg);
- }
-
- public void parseParams(String[] args) {
- for (int i = 0; i < args.length; i++) {
- String s = args[i];
- if (s.equals("-t")) {
- if (i + 1 < args.length) {
- i++;
- setTestMode(args[i]);
- }
- } else if (s.equals("-p")) {
- if (i + 1 < args.length) {
- i++;
- setPlayMode(args[i]);
- }
- } else if (s.equals("-chapter")) {
- if (i + 1 < args.length) {
- i++;
- setChapter(args[i]);
- }
- } else if (s.equals("-f")) {
- fullscreen = true;
-
- //cfg.fullscreen = true;
- } else if (s.equals("-d")) {
- setDebugMode();
- } else if (s.equals("-r")) {
- setRestart();
- } else if (s.equals("-res")) {
- if (i + 1 < args.length) {
- i++;
- forceResolution(args[i]);
- }
- } else if (s.equals("-w")) {
- fullscreen = false;
- } else if (s.equals("-l")) {
- if (i + 1 < args.length) {
- i++;
- loadGameState(args[i]);
- }
- } else if (s.equals("-h")) {
- usage();
- } else {
- if(i == 0 && !s.startsWith("-")) continue; // When embeded JRE the 0 parameter is the app name
- System.out.println("Unrecognized parameter: " + s);
- usage();
- }
- }
- }
-
-
- public void usage() {
- System.out.println(
- "Usage:\n" +
- "-chapter chapter\tLoads the selected chapter\n" +
- "-t scene_name\tStart test mode for the scene\n" +
- "-p record_name\tPlay previusly recorded games\n" +
- "-f\tSet fullscreen mode\n" +
- "-w\tSet windowed mode\n" +
- "-d\tShow debug messages\n" +
- "-res width\tForce the resolution width\n" +
- "-l game_state\tLoad the previusly saved game state\n" +
- "-r\tRun the game from the begining\n"
- );
-
- System.exit(0);
- }
-
- @Override
- public void create() {
- // Gdx.input.setCursorCatched(false);
- if (fullscreen)
- Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode());
-
- hideCursor();
-
- super.create();
- }
-
- private void hideCursor() {
- Cursor emptyCursor;
-
- int min = org.lwjgl.input.Cursor.getMinCursorSize();
- IntBuffer tmp = BufferUtils.createIntBuffer(min * min);
- try {
- emptyCursor = new org.lwjgl.input.Cursor(min, min, min / 2,
- min / 2, 1, tmp, null);
-
- Mouse.setNativeCursor(emptyCursor);
- } catch (LWJGLException e) {
- e.printStackTrace();
- }
-
- }
-
- public static void main(String[] args) {
- DesktopLauncher game = new DesktopLauncher();
- game.parseParams(args);
- game.run();
- }
-}
diff --git a/adventure-test-spine/gradle.properties b/adventure-test-spine/gradle.properties
deleted file mode 100644
index e7796af..0000000
--- a/adventure-test-spine/gradle.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-android.injected.testOnly=false
-androidGradlePluginVersion=3.4.1
-appName=adventure-test-spine
-bladeEngineVersion=3.2.3
-bladeInkVersion=0.7.3
-gdxVersion=1.9.10
-org.gradle.configureondemand=false
-org.gradle.daemon=true
-org.gradle.jvmargs=-Xms128m -Xmx1500m
-roboVMGradlePluginVersion=2.3.7
-roboVMVersion=2.3.8
-spinePlugin=true
diff --git a/adventure-test-spine/images-raw/spine/john.spine b/adventure-test-spine/images-raw/spine/john.spine
deleted file mode 100644
index bc49043..0000000
Binary files a/adventure-test-spine/images-raw/spine/john.spine and /dev/null differ
diff --git a/adventure-test-project/.gitignore b/test-prj/.gitignore
similarity index 100%
rename from adventure-test-project/.gitignore
rename to test-prj/.gitignore
diff --git a/test-prj/android/AndroidManifest.xml b/test-prj/android/AndroidManifest.xml
new file mode 100644
index 0000000..37c6f8f
--- /dev/null
+++ b/test-prj/android/AndroidManifest.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test-prj/android/build.gradle b/test-prj/android/build.gradle
new file mode 100644
index 0000000..75284d4
--- /dev/null
+++ b/test-prj/android/build.gradle
@@ -0,0 +1,206 @@
+apply plugin: 'android'
+
+android {
+ compileSdkVersion highestSdkAvailable("android-32")
+
+ defaultConfig {
+ applicationId "com.bladecoder.advtest"
+ minSdkVersion 21
+ targetSdkVersion 32
+ versionName version
+
+ if (project.hasProperty('versionCode'))
+ versionCode project.versionCode.toInteger()
+ else
+ versionCode 1
+
+ buildConfigField "int", "EXPANSION_FILE_VERSION", "0"
+ }
+
+ flavorDimensions "default"
+
+ productFlavors {
+ full {
+ }
+
+ expansion {
+ buildConfigField "int", "EXPANSION_FILE_VERSION", String.valueOf(android.defaultConfig.versionCode)
+ }
+ }
+
+ sourceSets {
+ main {
+ manifest.srcFile 'AndroidManifest.xml'
+ java.srcDirs = ['src/main/java']
+ aidl.srcDirs = ['src/main/java']
+ renderscript.srcDirs = ['src/main/java']
+ res.srcDirs = ['res']
+ jniLibs.srcDirs = ['libs']
+ }
+
+ full.assets.srcDirs = ['../assets']
+ expansion.assets.srcDirs = ['../base-assets']
+ }
+
+ packagingOptions {
+ // Preventing from license violations (more or less):
+ pickFirst 'META-INF/LICENSE.txt'
+ pickFirst 'META-INF/LICENSE'
+ pickFirst 'META-INF/license.txt'
+ pickFirst 'META-INF/LGPL2.1'
+ pickFirst 'META-INF/NOTICE.txt'
+ pickFirst 'META-INF/NOTICE'
+ pickFirst 'META-INF/notice.txt'
+ // Excluding unnecessary meta-data:
+ exclude 'META-INF/robovm/ios/robovm.xml'
+ exclude 'META-INF/DEPENDENCIES.txt'
+ exclude 'META-INF/DEPENDENCIES'
+ exclude 'META-INF/dependencies.txt'
+ }
+
+ if (project.hasProperty('keystore')) {
+ signingConfigs {
+ release {
+ storeFile file(project.keystore)
+ storePassword project.storePassword
+ keyAlias project.alias
+ keyPassword project.keyPassword
+ }
+ }
+
+ buildTypes {
+ release {
+ signingConfig signingConfigs.release
+ }
+ }
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+configurations { natives }
+
+dependencies {
+ implementation project(":core")
+ implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
+ natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
+ natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
+ natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
+ natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
+ implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
+ natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a"
+ natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a"
+ natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"
+ natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64"
+
+ // TO QUERY PERMISSIONS
+ implementation "com.android.support:support-v4:23.0.0"
+
+ implementation "com.badlogicgames.gdx-controllers:gdx-controllers-android:$gdxControllersVersion"
+}
+
+// called every time gradle gets executed, takes the native dependencies of
+// the natives configuration, and extracts them to the proper libs/ folders
+// so they get packed with the APK.
+task copyAndroidNatives() {
+ file("libs/armeabi-v7a/").mkdirs();
+ file("libs/arm64-v8a/").mkdirs();
+ file("libs/x86_64/").mkdirs();
+ file("libs/x86/").mkdirs();
+
+ configurations.natives.files.each { jar ->
+ def outputDir = null
+ if (jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
+ if (jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
+ if (jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
+ if (jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
+ if (outputDir != null) {
+ copy {
+ from zipTree(jar)
+ into outputDir
+ include "*.so"
+ }
+ }
+ }
+}
+
+tasks.matching { it.name.contains("merge") && it.name.contains("JniLibFolders") }.configureEach { packageTask ->
+ packageTask.dependsOn 'copyAndroidNatives'
+}
+
+task run(type: Exec) {
+ def path = getSdkFolder()
+
+ def adb = path + "/platform-tools/adb"
+ commandLine "$adb", 'shell', 'am', 'start', '-n', android.defaultConfig.applicationId + '/' + 'com.bladecoder.engine.AndroidLauncher'
+}
+
+task('packageMainExpansionFile', type: Zip) {
+
+ FileTree tree = fileTree(dir: '../assets')
+
+ from tree
+ //into 'assets'
+
+ // Expansion file name format: main.versionCode.packageName.obb
+ entryCompression = ZipEntryCompression.STORED
+ archiveName = 'main.' + android.defaultConfig.versionCode + "." + android.defaultConfig.applicationId + ".obb"
+
+ doLast {
+ println "Generating expansion file:" + archiveName
+ }
+
+}
+
+tasks.whenTaskAdded { task ->
+ if (task.name == 'generateExpansionReleaseBuildConfig') {
+ task.dependsOn packageMainExpansionFile
+ }
+}
+
+String getSdkFolder() {
+ def path
+ def localProperties = project.file("../local.properties")
+ if (localProperties.exists()) {
+ Properties properties = new Properties()
+ localProperties.withInputStream { instr ->
+ properties.load(instr)
+ }
+ def sdkDir = properties.getProperty('sdk.dir')
+ if (sdkDir) {
+ path = sdkDir
+ } else {
+ path = "$System.env.ANDROID_HOME"
+ }
+ } else {
+ path = "$System.env.ANDROID_HOME"
+ }
+
+ return path
+}
+
+String highestSdkAvailable(String defaultSdk) {
+ try {
+ def buildToolsDir = new File(getSdkFolder(), "platforms")
+ def sdks = buildToolsDir.list([accept: { d, f -> f.startsWith("android-") && new File(d, f).isDirectory() }] as FilenameFilter).sort { a, b -> b <=> a }
+ def highestSdk = sdks[0]
+ if (highestSdk != null) {
+ println "Using highest found SDK: " + highestSdk
+ highestSdk
+ } else {
+ println "No installed SDKs found. Using default SDK: " + defaultSdk
+
+ defaultSdk
+ }
+ } catch (any) {
+ println "Exception while determining highest SDK. Using default SDK: " + defaultSdk
+
+ defaultSdk
+ }
+}
+
diff --git a/adventure-test-project/android/ic_launcher-web.png b/test-prj/android/ic_launcher-web.png
similarity index 100%
rename from adventure-test-project/android/ic_launcher-web.png
rename to test-prj/android/ic_launcher-web.png
diff --git a/test-prj/android/libs/arm64-v8a/libgdx-freetype.so b/test-prj/android/libs/arm64-v8a/libgdx-freetype.so
new file mode 100755
index 0000000..41a2e45
Binary files /dev/null and b/test-prj/android/libs/arm64-v8a/libgdx-freetype.so differ
diff --git a/test-prj/android/libs/arm64-v8a/libgdx.so b/test-prj/android/libs/arm64-v8a/libgdx.so
new file mode 100755
index 0000000..875c307
Binary files /dev/null and b/test-prj/android/libs/arm64-v8a/libgdx.so differ
diff --git a/test-prj/android/libs/x86_64/libgdx-freetype.so b/test-prj/android/libs/x86_64/libgdx-freetype.so
new file mode 100755
index 0000000..d7acdd8
Binary files /dev/null and b/test-prj/android/libs/x86_64/libgdx-freetype.so differ
diff --git a/test-prj/android/libs/x86_64/libgdx.so b/test-prj/android/libs/x86_64/libgdx.so
new file mode 100755
index 0000000..15d6b8f
Binary files /dev/null and b/test-prj/android/libs/x86_64/libgdx.so differ
diff --git a/adventure-test-project/android/proguard-rules.pro b/test-prj/android/proguard-rules.pro
similarity index 100%
rename from adventure-test-project/android/proguard-rules.pro
rename to test-prj/android/proguard-rules.pro
diff --git a/adventure-test-project/android/project.properties b/test-prj/android/project.properties
similarity index 100%
rename from adventure-test-project/android/project.properties
rename to test-prj/android/project.properties
diff --git a/adventure-test-project/android/res/drawable-hdpi/ic_launcher.png b/test-prj/android/res/drawable-hdpi/ic_launcher.png
similarity index 100%
rename from adventure-test-project/android/res/drawable-hdpi/ic_launcher.png
rename to test-prj/android/res/drawable-hdpi/ic_launcher.png
diff --git a/adventure-test-project/android/res/drawable-mdpi/ic_launcher.png b/test-prj/android/res/drawable-mdpi/ic_launcher.png
similarity index 100%
rename from adventure-test-project/android/res/drawable-mdpi/ic_launcher.png
rename to test-prj/android/res/drawable-mdpi/ic_launcher.png
diff --git a/adventure-test-project/android/res/drawable-xhdpi/ic_launcher.png b/test-prj/android/res/drawable-xhdpi/ic_launcher.png
similarity index 100%
rename from adventure-test-project/android/res/drawable-xhdpi/ic_launcher.png
rename to test-prj/android/res/drawable-xhdpi/ic_launcher.png
diff --git a/adventure-test-project/android/res/drawable-xxhdpi/ic_launcher.png b/test-prj/android/res/drawable-xxhdpi/ic_launcher.png
similarity index 100%
rename from adventure-test-project/android/res/drawable-xxhdpi/ic_launcher.png
rename to test-prj/android/res/drawable-xxhdpi/ic_launcher.png
diff --git a/adventure-test-project/android/res/drawable-xxxhdpi/ic_launcher.png b/test-prj/android/res/drawable-xxxhdpi/ic_launcher.png
similarity index 100%
rename from adventure-test-project/android/res/drawable-xxxhdpi/ic_launcher.png
rename to test-prj/android/res/drawable-xxxhdpi/ic_launcher.png
diff --git a/adventure-test-project/android/res/values/strings.xml b/test-prj/android/res/values/strings.xml
similarity index 100%
rename from adventure-test-project/android/res/values/strings.xml
rename to test-prj/android/res/values/strings.xml
diff --git a/adventure-test-project/android/res/values/styles.xml b/test-prj/android/res/values/styles.xml
similarity index 100%
rename from adventure-test-project/android/res/values/styles.xml
rename to test-prj/android/res/values/styles.xml
diff --git a/adventure-test-project/android/src/main/java/com/bladecoder/advtest/AndroidLauncher.java b/test-prj/android/src/main/java/com/bladecoder/advtest/AndroidLauncher.java
similarity index 100%
rename from adventure-test-project/android/src/main/java/com/bladecoder/advtest/AndroidLauncher.java
rename to test-prj/android/src/main/java/com/bladecoder/advtest/AndroidLauncher.java
diff --git a/adventure-test-project/assets/3d/Robie.g3db b/test-prj/assets/3d/Robie.g3db
similarity index 100%
rename from adventure-test-project/assets/3d/Robie.g3db
rename to test-prj/assets/3d/Robie.g3db
diff --git a/adventure-test-project/assets/3d/RobieTEX.png b/test-prj/assets/3d/RobieTEX.png
similarity index 100%
rename from adventure-test-project/assets/3d/RobieTEX.png
rename to test-prj/assets/3d/RobieTEX.png
diff --git a/adventure-test-project/assets/BladeEngine.properties b/test-prj/assets/BladeEngine.properties
similarity index 58%
rename from adventure-test-project/assets/BladeEngine.properties
rename to test-prj/assets/BladeEngine.properties
index 4de2936..103dc16 100644
--- a/adventure-test-project/assets/BladeEngine.properties
+++ b/test-prj/assets/BladeEngine.properties
@@ -1,11 +1,12 @@
-bladeEngineVersion=3.2.2
+bladeEngineVersion=4.3.0
+character_icon_atlas=char-icons
debug=false
fast_leave=true
-gdxVersion=1.9.10
+gdxVersion=1.12.0
inventory_pos=down
pie_mode.desktop=false
resolutions=1
-roboVMVersion=2.3.7
+roboVMVersion=2.3.20
title=Blade Engine Adventure
ui_mode=PIE
version=19
diff --git a/adventure-test-project/assets/atlases/1/00.atlas b/test-prj/assets/atlases/1/00.atlas
similarity index 100%
rename from adventure-test-project/assets/atlases/1/00.atlas
rename to test-prj/assets/atlases/1/00.atlas
diff --git a/adventure-test-project/assets/atlases/1/00.png b/test-prj/assets/atlases/1/00.png
similarity index 100%
rename from adventure-test-project/assets/atlases/1/00.png
rename to test-prj/assets/atlases/1/00.png
diff --git a/test-prj/assets/atlases/1/char-icons.atlas b/test-prj/assets/atlases/1/char-icons.atlas
new file mode 100644
index 0000000..27f6a78
--- /dev/null
+++ b/test-prj/assets/atlases/1/char-icons.atlas
@@ -0,0 +1,20 @@
+
+char-icons.png
+size: 202, 117
+format: RGBA8888
+filter: Linear, Linear
+repeat: none
+Green
+ rotate: false
+ xy: 1, 1
+ size: 101, 115
+ orig: 101, 115
+ offset: 0, 0
+ index: -1
+Red
+ rotate: false
+ xy: 104, 3
+ size: 97, 113
+ orig: 97, 113
+ offset: 0, 0
+ index: -1
diff --git a/test-prj/assets/atlases/1/char-icons.png b/test-prj/assets/atlases/1/char-icons.png
new file mode 100644
index 0000000..ba5fbec
Binary files /dev/null and b/test-prj/assets/atlases/1/char-icons.png differ
diff --git a/adventure-test-project/assets/atlases/1/char.atlas b/test-prj/assets/atlases/1/char.atlas
similarity index 100%
rename from adventure-test-project/assets/atlases/1/char.atlas
rename to test-prj/assets/atlases/1/char.atlas
diff --git a/adventure-test-project/assets/atlases/1/char.png b/test-prj/assets/atlases/1/char.png
similarity index 100%
rename from adventure-test-project/assets/atlases/1/char.png
rename to test-prj/assets/atlases/1/char.png
diff --git a/adventure-test-project/assets/atlases/1/parallax.atlas b/test-prj/assets/atlases/1/parallax.atlas
similarity index 100%
rename from adventure-test-project/assets/atlases/1/parallax.atlas
rename to test-prj/assets/atlases/1/parallax.atlas
diff --git a/adventure-test-project/assets/atlases/1/parallax.png b/test-prj/assets/atlases/1/parallax.png
similarity index 100%
rename from adventure-test-project/assets/atlases/1/parallax.png
rename to test-prj/assets/atlases/1/parallax.png
diff --git a/adventure-test-project/assets/atlases/1/particles.atlas b/test-prj/assets/atlases/1/particles.atlas
similarity index 100%
rename from adventure-test-project/assets/atlases/1/particles.atlas
rename to test-prj/assets/atlases/1/particles.atlas
diff --git a/adventure-test-project/assets/atlases/1/particles.png b/test-prj/assets/atlases/1/particles.png
similarity index 100%
rename from adventure-test-project/assets/atlases/1/particles.png
rename to test-prj/assets/atlases/1/particles.png
diff --git a/adventure-test-project/assets/atlases/1/scene1.atlas b/test-prj/assets/atlases/1/scene1.atlas
similarity index 100%
rename from adventure-test-project/assets/atlases/1/scene1.atlas
rename to test-prj/assets/atlases/1/scene1.atlas
diff --git a/adventure-test-project/assets/atlases/1/scene1.png b/test-prj/assets/atlases/1/scene1.png
similarity index 100%
rename from adventure-test-project/assets/atlases/1/scene1.png
rename to test-prj/assets/atlases/1/scene1.png
diff --git a/adventure-test-project/assets/atlases/1/scene2.atlas b/test-prj/assets/atlases/1/scene2.atlas
similarity index 100%
rename from adventure-test-project/assets/atlases/1/scene2.atlas
rename to test-prj/assets/atlases/1/scene2.atlas
diff --git a/adventure-test-project/assets/atlases/1/scene2.png b/test-prj/assets/atlases/1/scene2.png
similarity index 100%
rename from adventure-test-project/assets/atlases/1/scene2.png
rename to test-prj/assets/atlases/1/scene2.png
diff --git a/adventure-test-project/assets/atlases/1/scene3.atlas b/test-prj/assets/atlases/1/scene3.atlas
similarity index 100%
rename from adventure-test-project/assets/atlases/1/scene3.atlas
rename to test-prj/assets/atlases/1/scene3.atlas
diff --git a/adventure-test-project/assets/atlases/1/scene3.png b/test-prj/assets/atlases/1/scene3.png
similarity index 100%
rename from adventure-test-project/assets/atlases/1/scene3.png
rename to test-prj/assets/atlases/1/scene3.png
diff --git a/adventure-test-project/assets/atlases/1/testbutton.atlas b/test-prj/assets/atlases/1/testbutton.atlas
similarity index 100%
rename from adventure-test-project/assets/atlases/1/testbutton.atlas
rename to test-prj/assets/atlases/1/testbutton.atlas
diff --git a/adventure-test-project/assets/atlases/1/testbutton.png b/test-prj/assets/atlases/1/testbutton.png
similarity index 100%
rename from adventure-test-project/assets/atlases/1/testbutton.png
rename to test-prj/assets/atlases/1/testbutton.png
diff --git a/adventure-test-project/assets/images/1/text.png b/test-prj/assets/images/1/text.png
similarity index 100%
rename from adventure-test-project/assets/images/1/text.png
rename to test-prj/assets/images/1/text.png
diff --git a/adventure-test-project/assets/images/1/text_es.png b/test-prj/assets/images/1/text_es.png
similarity index 100%
rename from adventure-test-project/assets/images/1/text_es.png
rename to test-prj/assets/images/1/text_es.png
diff --git a/adventure-test-project/assets/images/1/text_fr.png b/test-prj/assets/images/1/text_fr.png
similarity index 100%
rename from adventure-test-project/assets/images/1/text_fr.png
rename to test-prj/assets/images/1/text_fr.png
diff --git a/adventure-test-project/assets/model/00.chapter.json b/test-prj/assets/model/00.chapter.json
similarity index 71%
rename from adventure-test-project/assets/model/00.chapter.json
rename to test-prj/assets/model/00.chapter.json
index 0698185..d686faa 100644
--- a/adventure-test-project/assets/model/00.chapter.json
+++ b/test-prj/assets/model/00.chapter.json
@@ -1,9 +1,9 @@
{
-bladeEngineVersion: "3.1.0-SNAPSHOT",
+bladeEngineVersion: "4.1.1-SNAPSHOT",
sounds: {},
scenes: {
- basic3: {
- id: "basic3",
+ "basic-prop-states": {
+ id: "basic-prop-states",
layers: [
{
name: "foreground"
@@ -17,143 +17,368 @@ scenes: {
}
],
actors: {
- exit: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "exit",
- bbox: [ 38.740845, -302.1791, 37.191406, 172.10663, 237.19135, 160.69553, 225.35773, -344.01953 ],
+ ko: {
+ class: "SpriteActor",
+ id: "ko",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1644.7837,
- y: 578.7209
+ x: 956.2496,
+ y: 477.18317
},
- visible: true,
- refPoint: {
- x: 5.774414,
- y: -326.25568
+ visible: false,
+ refPoint: {},
+ verbs: {},
+ interaction: false,
+ zIndex: 0,
+ layer: "foreground",
+ renderer: {
+ class: "TextRenderer",
+ text: "@basic-prop-states.ko.text",
+ fontName: "PaytoneOne",
+ fontSize: 100,
+ borderWidth: 0,
+ borderColor: {
+ a: 1
+ },
+ borderStraight: true,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0,
+ shadowColor: {
+ a: 1
+ },
+ align: 8,
+ orgAlign: 0,
+ maxWidth: 0
+ },
+ tint: {
+ r: 1,
+ b: 0.015686275,
+ a: 1
+ },
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
+ },
+ ok: {
+ class: "SpriteActor",
+ id: "ok",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 956.2496,
+ y: 477.18317
+ },
+ visible: false,
+ refPoint: {},
+ verbs: {},
+ interaction: false,
+ zIndex: 0,
+ layer: "foreground",
+ renderer: {
+ class: "TextRenderer",
+ text: "@basic-prop-states.ok.text__",
+ fontName: "PaytoneOne",
+ fontSize: 100,
+ borderWidth: 0,
+ borderColor: {
+ a: 1
+ },
+ borderStraight: true,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0,
+ shadowColor: {
+ a: 1
+ },
+ align: 8,
+ orgAlign: 0,
+ maxWidth: 0
+ },
+ tint: {
+ r: 0.28235295,
+ g: 1,
+ a: 1
+ },
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
+ },
+ state: {
+ class: "SpriteActor",
+ id: "state",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 978.9769,
+ y: 198.59222
},
+ visible: true,
+ desc: "@basic-prop-states.state.desc_",
+ refPoint: {},
verbs: {
- leave: {
- id: "leave",
+ lookat: {
+ id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "IfActorAttr",
+ actor: "state",
+ attr: "STATE",
+ value: "BLUE",
+ caID: "301582167"
+ },
+ {
+ class: "Say",
actor: "$PLAYER",
- target: "exit",
- ignoreWalkZone: false,
+ text: "@basic-prop-states.state.lookat.1.text",
+ type: "SUBTITLE",
+ queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.PositionAction",
- actor: "$PLAYER",
- target: "basic1#door_left"
+ class: "End",
+ caID: "301582167"
+ },
+ {
+ class: "IfActorAttr",
+ actor: "state",
+ attr: "STATE",
+ value: "YELLOW",
+ caID: "602667286"
},
{
- class: "com.bladecoder.engine.actions.MoveToSceneAction",
+ class: "Say",
actor: "$PLAYER",
- scene: "basic1"
+ text: "@basic-prop-states.state.lookat.4.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.IfSceneAttrAction",
- attr: "PLAYER",
- value: "char",
- caID: "1348253093"
+ class: "End",
+ caID: "602667286"
},
{
- class: "com.bladecoder.engine.actions.SetPlayerAction",
- actor: "basic1#char"
+ class: "Say",
+ actor: "$PLAYER",
+ text: "@basic-prop-states.state.lookat.6.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1348253093"
+ class: "End",
+ caID: "602667286"
},
{
- class: "com.bladecoder.engine.actions.SetPlayerAction",
- actor: "basic1#red"
+ class: "End",
+ caID: "301582167"
+ }
+ ]
+ },
+ pickup: {
+ id: "pickup",
+ actions: [
+ {
+ class: "ActorState",
+ actor: "state",
+ state: "YELLOW"
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1348253093"
+ class: "SetActorAttr",
+ actor: "state",
+ tint: "ffee00ff"
+ }
+ ]
+ },
+ "pickup.YELLOW": {
+ id: "pickup",
+ state: "YELLOW",
+ actions: [
+ {
+ class: "ActorState",
+ actor: "state",
+ state: "BLUE"
},
{
- class: "com.bladecoder.engine.actions.LeaveAction",
- scene: "basic1",
- init: true
+ class: "SetActorAttr",
+ actor: "state",
+ tint: "00f7ffff"
}
]
}
},
interaction: true,
zIndex: 0,
- layer: "background"
- },
- walkzone: {
- class: "com.bladecoder.engine.model.WalkZoneActor",
- id: "walkzone",
- bbox: [ 157.48462, 39.371155, 398.08618, 257.5802, 965.618, 80.41797, 1203.7566, 93.22626, 1226.6244, 304.53226, 1530.6631, 318.8243, 1885.0032, 157.48468, 1786.2855, 74.84706 ],
- pos: {},
- visible: true
+ layer: "foreground",
+ renderer: {
+ class: "TextRenderer",
+ text: "@basic-prop-states.state.text_",
+ fontName: "PaytoneOne",
+ fontSize: 100,
+ borderWidth: 0,
+ borderColor: {
+ a: 1
+ },
+ borderStraight: true,
+ shadowOffsetX: 0,
+ shadowOffsetY: 0,
+ shadowColor: {
+ a: 1
+ },
+ align: 8,
+ orgAlign: 0,
+ maxWidth: 0
+ },
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
}
},
- backgroundAtlas: "scene3",
- backgroundRegionId: "bg3",
musicDesc: null,
- depthVector: {
- x: 613.83704,
- y: -631.38477
- },
verbs: {
init: {
id: "init",
actions: [
{
- class: "com.bladecoder.engine.actions.IfSceneAttrAction",
- scene: "basic1",
- attr: "PLAYER",
- value: "char",
- caID: "742759885"
+ class: "Property",
+ prop: "TEST-PROP",
+ value: "test"
},
{
- class: "com.bladecoder.engine.actions.MoveToSceneAction",
- actor: "basic1#char"
+ class: "IfProperty",
+ name: "TEST-PROP",
+ value: "test",
+ caID: "1751840606"
},
{
- class: "com.bladecoder.engine.actions.SetPlayerAction",
- actor: "char"
+ class: "End",
+ caID: "1751840606"
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "742759885"
+ class: "SetActorAttr",
+ actor: "ko",
+ visible: true
},
{
- class: "com.bladecoder.engine.actions.MoveToSceneAction",
- actor: "basic1#red"
+ class: "CancelVerb"
},
{
- class: "com.bladecoder.engine.actions.SetPlayerAction",
- actor: "red"
+ class: "End",
+ caID: "1751840606"
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "742759885"
+ class: "Comment",
+ comment: "Property from the BladeEngine.properties file.",
+ debug: false
},
{
- class: "com.bladecoder.engine.actions.PositionAction",
- actor: "$PLAYER",
- target: "exit"
+ class: "IfProperty",
+ name: "title",
+ value: "Blade Engine Adventure",
+ caID: "1094711013"
+ },
+ {
+ class: "End",
+ caID: "1094711013"
+ },
+ {
+ class: "SetActorAttr",
+ actor: "ko",
+ visible: true
+ },
+ {
+ class: "CancelVerb"
+ },
+ {
+ class: "End",
+ caID: "1094711013"
+ },
+ {
+ class: "Comment",
+ comment: "PLATFORM property.",
+ debug: false
+ },
+ {
+ class: "IfProperty",
+ name: "PLATFORM",
+ value: "Desktop",
+ caID: "1143890192"
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "Say",
actor: "$PLAYER",
- pos: "1501.0,251.0",
- ignoreWalkZone: false,
+ text: "@basic-prop-states.init.18.text",
+ type: "SUBTITLE",
+ queue: false,
wait: true
+ },
+ {
+ class: "End",
+ caID: "1143890192"
+ },
+ {
+ class: "IfProperty",
+ name: "PLATFORM",
+ value: "Android",
+ caID: "1726514584"
+ },
+ {
+ class: "Say",
+ actor: "$PLAYER",
+ text: "@basic-prop-states.init.20.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: true
+ },
+ {
+ class: "End",
+ caID: "1726514584"
+ },
+ {
+ class: "IfProperty",
+ name: "PLATFORM",
+ value: "iOS",
+ caID: "363902178"
+ },
+ {
+ class: "Say",
+ actor: "$PLAYER",
+ text: "@basic-prop-states.init.23.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: true
+ },
+ {
+ class: "End",
+ caID: "363902178"
+ },
+ {
+ class: "End",
+ caID: "363902178"
+ },
+ {
+ class: "End",
+ caID: "1726514584"
+ },
+ {
+ class: "End",
+ caID: "1143890192"
+ },
+ {
+ class: "SetActorAttr",
+ actor: "ok",
+ visible: true
}
]
}
},
- walkZone: "walkzone"
+ walkZone: null
},
- basic2: {
- id: "basic2",
+ basic1: {
+ id: "basic1",
layers: [
{
name: "foreground"
@@ -167,97 +392,118 @@ scenes: {
}
],
actors: {
- exit: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "exit",
- bbox: [ -570.5481, -21.131287, -408.54053, 171.8248, 1172.0449, 214.08759, 1263.6143, -14.0876465 ],
+ ball: {
+ class: "SpriteActor",
+ id: "ball",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 405.07428,
- y: -48.177734
+ x: 1833.4604,
+ y: 317.79987
},
visible: true,
- refPoint: {},
+ desc: "@01.ball.desc_",
+ refPoint: {
+ x: -85.5614,
+ y: 8.148743
+ },
verbs: {
- leave: {
- id: "leave",
+ "pickup.PICKED": {
+ id: "pickup",
+ state: "PICKED",
actions: [
{
- class: "com.bladecoder.engine.actions.LeaveAction",
- scene: "basic1",
- init: true
+ class: "Say",
+ actor: "$PLAYER",
+ text: "@basic1.ball.pickup.PICKED.0.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: true
+ }
+ ]
+ },
+ pickup: {
+ id: "pickup",
+ actions: [
+ {
+ class: "ActorState",
+ actor: "ball",
+ state: "PICKED"
+ },
+ {
+ class: "Goto",
+ actor: "$PLAYER",
+ target: "ball",
+ ignoreWalkZone: false,
+ wait: true
+ },
+ {
+ class: "LookAt",
+ direction: "RIGHT",
+ wait: false
+ },
+ {
+ class: "PickUp",
+ actor: "ball"
+ },
+ {
+ class: "AlphaAnim",
+ actor: "ball",
+ alpha: 0,
+ speed: 1,
+ count: -1,
+ wait: true,
+ repeat: "YOYO",
+ interpolation: "FADE"
+ }
+ ]
+ },
+ lookat: {
+ id: "lookat",
+ actions: [
+ {
+ class: "AlphaAnim",
+ actor: "ball",
+ alpha: 0,
+ speed: 1,
+ count: 2,
+ wait: true,
+ repeat: "YOYO"
}
]
}
},
interaction: true,
zIndex: 0,
- layer: "background"
- },
- i18ntext: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "i18ntext",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 451.26367,
- y: 448.4259
- },
- visible: true,
- refPoint: {},
- verbs: {},
- interaction: true,
- zIndex: 0,
- layer: "foreground",
+ layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.ImageRenderer",
+ class: "AtlasRenderer",
fanims: {
- text: {
- class: "com.bladecoder.engine.anim.AnimationDesc",
- id: "text",
- source: "@text.png",
+ ball: {
+ class: "AtlasAnimationDesc",
+ id: "ball",
+ source: "scene1",
duration: 1,
animationType: "NO_REPEAT",
count: -1,
preload: true
}
},
- initAnimation: "text",
+ initAnimation: "ball",
orgAlign: 4
},
scaleX: 1,
scaleY: 1,
- rot: 0,
+ rot: 45,
fakeDepth: false,
bboxFromRenderer: true
- }
- },
- backgroundAtlas: "scene2",
- backgroundRegionId: "bg2",
- musicDesc: null,
- verbs: {},
- walkZone: null
- },
- basic1: {
- id: "basic1",
- layers: [
- {
- name: "foreground"
},
- {
- name: "dynamic",
- dynamic: true
- },
- {
- name: "background"
- }
- ],
- actors: {
- green: {
- class: "com.bladecoder.engine.model.CharacterActor",
- id: "green",
+ blue: {
+ class: "CharacterActor",
+ id: "blue",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1688.2659,
- y: 308.31876
+ x: 1738.8356,
+ y: 394.27005
},
visible: true,
refPoint: {},
@@ -266,29 +512,29 @@ scenes: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
+ class: "SetActorAttr",
actor: "$PLAYER",
interaction: true
},
{
- class: "com.bladecoder.engine.actions.SetPlayerAction",
- actor: "green",
- inventory: "green"
+ class: "SetPlayer",
+ actor: "blue",
+ inventory: "blue"
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "$PLAYER",
- text: "@01.char3.pickup.3.text",
+ text: "@01.char4.pickup.3.text",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
@@ -298,411 +544,302 @@ scenes: {
zIndex: 1,
layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- "walk.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "walk.right",
- source: "char",
- duration: 0.5,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
"stand.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "stand.right",
source: "char",
duration: 1,
animationType: "NO_REPEAT",
count: -1,
preload: true
+ },
+ "walk.right": {
+ class: "AtlasAnimationDesc",
+ id: "walk.right",
+ source: "char",
+ duration: 0.5,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
}
},
initAnimation: "stand.left",
orgAlign: 4
},
- scaleX: 0.19001375,
- scaleY: 0.19001375,
- rot: 0,
tint: {
r: 0.53333336,
- g: 1,
- b: 0.53333336,
+ g: 0.53333336,
+ b: 1,
a: 1
},
+ scaleX: 0.13639663,
+ scaleY: 0.13639663,
+ rot: 0,
fakeDepth: true,
bboxFromRenderer: true,
walkingSpeed: 2000
},
- walkzone: {
- class: "com.bladecoder.engine.model.WalkZoneActor",
- id: "walkzone",
- bbox: [ 297.42737, 284.14938, 568.29877, 434.68887, 719.6436, 446.8797, 650.82916, 341.34033, 1368.244, 372.9064, 1353.6876, 407.92526, 1922.6555, 410.7885, 1934.324, 311.18817, 1543.7379, 296.05563, 1514.5264, 349.16766, 624.51056, 318.71033, 589.1026, 283.30228 ],
- pos: {},
- visible: true
- },
- tint: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "tint",
- bbox: [ -416.72354, -2.1842957, -100, 200, 69.4198, 193.44711, -133.72015, 0 ],
+ char: {
+ class: "CharacterActor",
+ id: "char",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 657.4744,
- y: 255.56323
+ x: 751.04297,
+ y: 331.6653
},
visible: true,
- refPoint: {},
+ refPoint: {
+ x: 105.383484,
+ y: 4.3308105
+ },
verbs: {
- exit: {
- id: "exit",
+ pickup: {
+ id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.IfSceneAttrAction",
- attr: "PLAYER",
- value: "char",
- caID: "1640548163"
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
+ class: "SetActorAttr",
actor: "$PLAYER",
- tint: "ffffffff"
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1640548163"
+ interaction: true
},
{
- class: "com.bladecoder.engine.actions.IfSceneAttrAction",
- attr: "PLAYER",
- value: "red",
- caID: "1070630759"
+ class: "SetPlayer",
+ actor: "char",
+ inventory: "white"
},
{
- class: "com.bladecoder.engine.actions.DisableActionAction",
- serializedAction: "{class:com.bladecoder.engine.actions.SetActorAttrAction,actor:$PLAYER,tint:ff6666ff}"
+ class: "Say",
+ actor: "$PLAYER",
+ text: "@01.char.pickup.4.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.TintAnimAction",
- actor: "$PLAYER",
- color: "ff6666ff",
- speed: 0.2,
- count: 1,
- wait: true,
- repeat: "REPEAT"
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1070630759"
- },
- {
- class: "com.bladecoder.engine.actions.IfSceneAttrAction",
- attr: "PLAYER",
- value: "green",
- caID: "1006819085"
- },
- {
- class: "com.bladecoder.engine.actions.CameraAction",
- zoom: 1,
- duration: 1,
- interpolation: "FADE",
- wait: false
- },
- {
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "$PLAYER",
- tint: "66ff66ff"
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1006819085"
- },
- {
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "$PLAYER",
- tint: "6666ffff"
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1006819085"
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1070630759"
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1640548163"
+ class: "Cutmode",
+ value: false
}
]
+ }
+ },
+ interaction: false,
+ zIndex: 1,
+ layer: "dynamic",
+ renderer: {
+ class: "AtlasRenderer",
+ fanims: {
+ "stand.right": {
+ class: "AtlasAnimationDesc",
+ id: "stand.right",
+ source: "char",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true
+ },
+ "walk.right": {
+ class: "AtlasAnimationDesc",
+ id: "walk.right",
+ source: "char",
+ duration: 0.5,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ }
},
- enter: {
- id: "enter",
+ initAnimation: "stand.right",
+ orgAlign: 4
+ },
+ scaleX: 0.17544998,
+ scaleY: 0.17544998,
+ rot: 0,
+ fakeDepth: true,
+ bboxFromRenderer: true,
+ walkingSpeed: 2000
+ },
+ cube: {
+ class: "SpriteActor",
+ id: "cube",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 521.5177,
+ y: 362.6178
+ },
+ visible: true,
+ desc: "@01.cube.desc",
+ refPoint: {
+ x: 93.710205,
+ y: 20.371826
+ },
+ verbs: {
+ pickup: {
+ id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.IfSceneAttrAction",
- attr: "PLAYER",
- value: "char",
- caID: "602572309"
- },
- {
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "$PLAYER",
- tint: "666666ff"
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "602572309"
- },
- {
- class: "com.bladecoder.engine.actions.IfSceneAttrAction",
- attr: "PLAYER",
- value: "red",
- caID: "1331490757"
- },
- {
- class: "com.bladecoder.engine.actions.DisableActionAction",
- serializedAction: "{class:com.bladecoder.engine.actions.SetActorAttrAction,actor:$PLAYER,tint:660000ff}"
- },
- {
- class: "com.bladecoder.engine.actions.TintAnimAction",
- actor: "$PLAYER",
- color: "660000ff",
- speed: 0.2,
- count: 1,
- wait: true,
- repeat: "REPEAT"
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1331490757"
- },
- {
- class: "com.bladecoder.engine.actions.IfSceneAttrAction",
- attr: "PLAYER",
- value: "green",
- caID: "1522226691"
+ class: "IfActorAttr",
+ actor: "cube",
+ attr: "IN_INVENTORY",
+ value: "true",
+ caID: "619527093"
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
+ class: "Say",
actor: "$PLAYER",
- tint: "006600ff"
- },
- {
- class: "com.bladecoder.engine.actions.CameraAction",
- pos: "0.0,0.0",
- interpolation: "FADE",
- wait: false
- },
- {
- class: "com.bladecoder.engine.actions.CameraAction",
- zoom: 0.5,
- duration: 1,
- interpolation: "FADE",
+ text: "@basic1.cube.pickup.1.text",
+ type: "SUBTITLE",
+ queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1522226691"
+ class: "End",
+ caID: "619527093"
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
+ class: "Goto",
actor: "$PLAYER",
- tint: "000066ff"
+ target: "cube",
+ ignoreWalkZone: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1522226691"
+ class: "LookAt",
+ direction: "LEFT",
+ wait: false
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1331490757"
+ class: "PickUp",
+ actor: "cube"
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "602572309"
+ class: "End",
+ caID: "619527093"
}
]
- }
- },
- interaction: false,
- zIndex: 0,
- layer: "foreground"
- },
- red: {
- class: "com.bladecoder.engine.model.CharacterActor",
- id: "red",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 1298.4912,
- y: 349.08066
- },
- visible: true,
- refPoint: {
- x: -118.37598,
- y: 1.443634
- },
- verbs: {
- pickup: {
- id: "pickup",
+ },
+ lookat: {
+ id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "com.bladecoder.engine.actions.AddValueToProperty",
+ prop: "COUNTER",
+ value: 1
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
+ class: "IfProperty",
+ name: "COUNTER",
+ value: "3",
+ caID: "1198688830"
+ },
+ {
+ class: "Say",
actor: "$PLAYER",
- interaction: true
+ text: "@01.cube.lookat.2.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetPlayerAction",
- actor: "red",
- inventory: "red"
+ class: "End",
+ caID: "1198688830"
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "$PLAYER",
- text: "@01.char2.pickup.4.text",
+ text: "@01.cube.lookat.4.text",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
+ class: "End",
+ caID: "1198688830"
}
]
}
},
interaction: true,
- zIndex: 1,
+ zIndex: 0,
layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- "walk.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "walk.right",
- source: "char",
- duration: 0.5,
- animationType: "REPEAT",
+ ball: {
+ class: "AtlasAnimationDesc",
+ id: "cube",
+ source: "scene1",
+ duration: 1,
+ animationType: "NO_REPEAT",
count: -1,
preload: true
},
- "stand.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "stand.right",
- source: "char",
+ cube: {
+ class: "AtlasAnimationDesc",
+ id: "cube",
+ source: "scene1",
duration: 1,
animationType: "NO_REPEAT",
count: -1,
preload: true
}
},
- initAnimation: "stand.left",
+ initAnimation: "ball",
orgAlign: 4
},
- scaleX: 0.16458614,
- scaleY: 0.16458614,
- rot: 0,
tint: {
- r: 1,
- g: 0.53333336,
- b: 0.53333336,
+ r: 0.4,
+ g: 0.4,
+ b: 0.4,
a: 1
},
- fakeDepth: true,
- bboxFromRenderer: true,
- walkingSpeed: 2000
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
},
- ball: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "ball",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ door_left: {
+ class: "InteractiveActor",
+ id: "door_left",
+ bbox: [ 6.1985474, -71.283264, 0, 200, 72.92984, 215.49634, 93.07495, -27.893463 ],
pos: {
- x: 1833.4604,
- y: 317.79987
+ x: 251.04129,
+ y: 339.37048
},
visible: true,
- desc: "@01.ball.desc_",
refPoint: {
- x: -85.5614,
- y: 8.148743
+ x: 103.024414,
+ y: -49.89804
},
verbs: {
- pickup: {
- id: "pickup",
+ leave: {
+ id: "leave",
actions: [
{
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "Goto",
actor: "$PLAYER",
- target: "ball",
+ target: "door_left",
ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- direction: "RIGHT",
- wait: false
- },
- {
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "ball"
- },
- {
- class: "com.bladecoder.engine.actions.AlphaAnimAction",
- actor: "ball",
- alpha: 0,
- speed: 1,
- count: -1,
- wait: true,
- repeat: "YOYO",
- interpolation: "FADE"
- }
- ]
- },
- lookat: {
- id: "lookat",
- actions: [
- {
- class: "com.bladecoder.engine.actions.AlphaAnimAction",
- actor: "ball",
- alpha: 0,
- speed: 1,
- count: 2,
- wait: true,
- repeat: "YOYO"
+ class: "Leave",
+ scene: "basic3",
+ init: true
}
]
}
},
interaction: true,
zIndex: 0,
- layer: "dynamic",
- renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
- fanims: {
- ball: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "ball",
- source: "scene1",
- duration: 1,
- animationType: "NO_REPEAT",
- count: -1,
- preload: true
- }
- },
- initAnimation: "ball",
- orgAlign: 4
- },
- scaleX: 1,
- scaleY: 1,
- rot: 45,
- fakeDepth: false,
- bboxFromRenderer: true
+ layer: "background"
},
door_right: {
- class: "com.bladecoder.engine.model.InteractiveActor",
+ class: "InteractiveActor",
id: "door_right",
bbox: [ 1.1622314, 20.920135, 0, 200, 98.88623, 203.48676, 102.3728, 18.595642 ],
pos: {
@@ -720,14 +857,14 @@ scenes: {
icon: "up",
actions: [
{
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "Goto",
actor: "$PLAYER",
target: "door_right",
ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.LeaveAction",
+ class: "Leave",
scene: "basic2",
init: true
}
@@ -738,13 +875,13 @@ scenes: {
zIndex: 0,
layer: "background"
},
- blue: {
- class: "com.bladecoder.engine.model.CharacterActor",
- id: "blue",
+ green: {
+ class: "CharacterActor",
+ id: "green",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1738.8356,
- y: 394.27005
+ x: 1688.2659,
+ y: 308.31876
},
visible: true,
refPoint: {},
@@ -753,29 +890,29 @@ scenes: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
+ class: "SetActorAttr",
actor: "$PLAYER",
interaction: true
},
{
- class: "com.bladecoder.engine.actions.SetPlayerAction",
- actor: "blue",
- inventory: "blue"
+ class: "SetPlayer",
+ actor: "green",
+ inventory: "green"
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "$PLAYER",
- text: "@01.char4.pickup.3.text",
+ text: "@01.char3.pickup.3.text",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
@@ -785,126 +922,184 @@ scenes: {
zIndex: 1,
layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- "walk.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "walk.right",
- source: "char",
- duration: 0.5,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
"stand.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "stand.right",
source: "char",
duration: 1,
animationType: "NO_REPEAT",
count: -1,
preload: true
+ },
+ "walk.right": {
+ class: "AtlasAnimationDesc",
+ id: "walk.right",
+ source: "char",
+ duration: 0.5,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
}
},
initAnimation: "stand.left",
orgAlign: 4
},
- scaleX: 0.13639663,
- scaleY: 0.13639663,
- rot: 0,
tint: {
r: 0.53333336,
- g: 0.53333336,
- b: 1,
+ g: 1,
+ b: 0.53333336,
a: 1
},
+ scaleX: 0.19001375,
+ scaleY: 0.19001375,
+ rot: 0,
fakeDepth: true,
bboxFromRenderer: true,
walkingSpeed: 2000
},
- char: {
- class: "com.bladecoder.engine.model.CharacterActor",
- id: "char",
+ particle: {
+ class: "SpriteActor",
+ id: "particle",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 751.04297,
- y: 331.6653
+ x: 1016.0442,
+ y: 333.25787
+ },
+ visible: true,
+ refPoint: {},
+ verbs: {},
+ interaction: true,
+ zIndex: 0,
+ layer: "foreground",
+ renderer: {
+ class: "ParticleRenderer",
+ atlasName: "particles",
+ particleName: "bigFire",
+ orgAlign: 4
+ },
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
+ },
+ particle2: {
+ class: "SpriteActor",
+ id: "particle2",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 1551.1857,
+ y: 19.144714
+ },
+ visible: true,
+ refPoint: {},
+ verbs: {},
+ interaction: true,
+ zIndex: 0,
+ layer: "foreground",
+ renderer: {
+ class: "ParticleRenderer",
+ atlasName: "particles",
+ particleName: "firefly",
+ orgAlign: 4
+ },
+ scaleX: 2,
+ scaleY: 2,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
+ },
+ red: {
+ class: "CharacterActor",
+ id: "red",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 1298.4912,
+ y: 349.08066
},
visible: true,
refPoint: {
- x: 105.383484,
- y: 4.3308105
+ x: -118.37598,
+ y: 1.443634
},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
+ class: "SetActorAttr",
actor: "$PLAYER",
interaction: true
},
{
- class: "com.bladecoder.engine.actions.SetPlayerAction",
- actor: "char",
- inventory: "white"
+ class: "SetPlayer",
+ actor: "red",
+ inventory: "red"
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "$PLAYER",
- text: "@01.char.pickup.4.text",
+ text: "@01.char2.pickup.4.text",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
}
},
- interaction: false,
+ interaction: true,
zIndex: 1,
layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- "walk.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "walk.right",
- source: "char",
- duration: 0.5,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
"stand.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "stand.right",
source: "char",
duration: 1,
animationType: "NO_REPEAT",
count: -1,
preload: true
+ },
+ "walk.right": {
+ class: "AtlasAnimationDesc",
+ id: "walk.right",
+ source: "char",
+ duration: 0.5,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
}
},
- initAnimation: "stand.right",
+ initAnimation: "stand.left",
orgAlign: 4
},
- scaleX: 0.17544998,
- scaleY: 0.17544998,
+ tint: {
+ r: 1,
+ g: 0.53333336,
+ b: 0.53333336,
+ a: 1
+ },
+ scaleX: 0.16458614,
+ scaleY: 0.16458614,
rot: 0,
fakeDepth: true,
bboxFromRenderer: true,
walkingSpeed: 2000
},
test_actions: {
- class: "com.bladecoder.engine.model.SpriteActor",
+ class: "SpriteActor",
id: "test_actions",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
@@ -919,8 +1114,8 @@ scenes: {
id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "test_actions",
+ class: "Say",
+ actor: "$PLAYER",
text: "@01.test_actions.lookat.0.text",
type: "SUBTITLE",
queue: false,
@@ -932,43 +1127,43 @@ scenes: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.SetStateAction",
+ class: "ActorState",
actor: "test_actions",
state: "1"
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.IfAttrAction",
+ class: "IfActorAttr",
actor: "test_actions",
attr: "STATE",
value: "1",
caID: "else123"
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "test_actions",
+ class: "Say",
+ actor: "$PLAYER",
text: "@01.test_actions.pickup.2.text",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "End",
caID: "else123"
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "test_actions",
+ class: "Say",
+ actor: "$PLAYER",
text: "@01.test_actions.pickup.5.text_",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
+ class: "Animation",
animation: "test_actions#error",
count: 1,
wait: false,
@@ -976,30 +1171,30 @@ scenes: {
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.CancelVerbAction",
+ class: "CancelVerb",
actor: "test_actions"
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "End",
caID: "else123"
},
{
- class: "com.bladecoder.engine.actions.IfAttrAction",
+ class: "IfActorAttr",
actor: "test_actions",
attr: "STATE",
value: "2",
caID: "else1234"
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "test_actions",
+ class: "Say",
+ actor: "$PLAYER",
text: "@01.test_actions.pickup.10.text_",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
+ class: "Animation",
animation: "test_actions#error",
count: 1,
wait: false,
@@ -1007,93 +1202,93 @@ scenes: {
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.CancelVerbAction",
+ class: "CancelVerb",
actor: "test_actions"
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "End",
caID: "else1234"
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "test_actions",
+ class: "Say",
+ actor: "$PLAYER",
text: "@01.test_actions.pickup.11.text",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "End",
caID: "else1234"
},
{
- class: "com.bladecoder.engine.actions.RepeatAction",
+ class: "Repeat",
repeat: 3,
caID: "repeat123"
},
{
- class: "com.bladecoder.engine.actions.ChooseAction",
+ class: "Choose",
chooseCriteria: "CYCLE",
caID: "choose123"
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "test_actions",
+ class: "Say",
+ actor: "$PLAYER",
text: "@01.test_actions.pickup.18.text",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "test_actions",
+ class: "Say",
+ actor: "$PLAYER",
text: "@01.test_actions.pickup.16.text_",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
+ class: "ActorState",
actor: "test_actions",
state: "3"
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "End",
caID: "choose123"
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "End",
caID: "repeat123"
},
{
- class: "com.bladecoder.engine.actions.IfAttrAction",
+ class: "IfActorAttr",
actor: "test_actions",
attr: "STATE",
value: "3",
caID: "else12345"
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "test_actions",
+ class: "Say",
+ actor: "$PLAYER",
text: "@01.test_actions.pickup.21.text_",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "End",
caID: "else12345"
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "test_actions",
+ class: "Say",
+ actor: "$PLAYER",
text: "@01.test_actions.pickup.24.text__",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
+ class: "Animation",
animation: "test_actions#error",
count: 1,
wait: false,
@@ -1101,15 +1296,15 @@ scenes: {
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.CancelVerbAction",
+ class: "CancelVerb",
actor: "test_actions"
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "End",
caID: "else12345"
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
+ class: "Animation",
animation: "test_actions#ok",
count: 1,
wait: false,
@@ -1117,7 +1312,7 @@ scenes: {
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
@@ -1127,20 +1322,20 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- go: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "go",
+ error: {
+ class: "AtlasAnimationDesc",
+ id: "error",
source: "testbutton",
duration: 1,
animationType: "NO_REPEAT",
count: -1,
preload: true
},
- error: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "error",
+ go: {
+ class: "AtlasAnimationDesc",
+ id: "go",
source: "testbutton",
duration: 1,
animationType: "NO_REPEAT",
@@ -1148,7 +1343,7 @@ scenes: {
preload: true
},
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -1166,151 +1361,74 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- particle: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "particle",
+ test_inventory: {
+ class: "SpriteActor",
+ id: "test_inventory",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1016.0442,
- y: 333.25787
+ x: 372.02625,
+ y: 768.19934
},
visible: true,
+ desc: "@01.test_inventory.desc_",
refPoint: {},
- verbs: {},
+ verbs: {
+ leave: {
+ id: "leave",
+ actions: [
+ {
+ class: "Leave",
+ scene: "inventory",
+ init: true
+ }
+ ]
+ }
+ },
interaction: true,
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.ParticleRenderer",
- atlasName: "particles",
- particleName: "bigFire",
- orgAlign: 4
- },
- scaleX: 1,
- scaleY: 1,
- rot: 0,
- fakeDepth: false,
- bboxFromRenderer: true
- },
- cube: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "cube",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 521.5177,
- y: 362.6178
- },
- visible: true,
- desc: "@01.cube.desc",
- refPoint: {
- x: 93.710205,
- y: 20.371826
- },
- verbs: {
- pickup: {
- id: "pickup",
- actions: [
- {
- class: "com.bladecoder.engine.actions.GotoAction",
- actor: "$PLAYER",
- target: "cube",
- ignoreWalkZone: false,
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.LookAtAction",
- direction: "LEFT",
- wait: false
- },
- {
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "cube"
- }
- ]
- },
- lookat: {
- id: "lookat",
- actions: [
- {
- class: "com.bladecoder.engine.actions.AddValueToProperty",
- prop: "COUNTER",
- value: 1
- },
- {
- class: "com.bladecoder.engine.actions.IfPropertyAction",
- name: "COUNTER",
- value: "3",
- caID: "1198688830"
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "$PLAYER",
- text: "@01.cube.lookat.2.text",
- type: "SUBTITLE",
- queue: false,
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1198688830"
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "$PLAYER",
- text: "@01.cube.lookat.4.text",
- type: "SUBTITLE",
- queue: false,
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1198688830"
- }
- ]
- }
- },
- interaction: true,
- zIndex: 0,
- layer: "dynamic",
- renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- ball: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "cube",
- source: "scene1",
+ error: {
+ class: "AtlasAnimationDesc",
+ id: "error",
+ source: "testbutton",
duration: 1,
animationType: "NO_REPEAT",
count: -1,
preload: true
},
- cube: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "cube",
- source: "scene1",
+ go: {
+ class: "AtlasAnimationDesc",
+ id: "go",
+ source: "testbutton",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true
+ },
+ ok: {
+ class: "AtlasAnimationDesc",
+ id: "ok",
+ source: "testbutton",
duration: 1,
animationType: "NO_REPEAT",
count: -1,
preload: true
}
},
- initAnimation: "ball",
+ initAnimation: "go",
orgAlign: 4
},
scaleX: 1,
scaleY: 1,
rot: 0,
- tint: {
- r: 0.4,
- g: 0.4,
- b: 0.4,
- a: 1
- },
fakeDepth: false,
bboxFromRenderer: true
},
text: {
- class: "com.bladecoder.engine.model.SpriteActor",
+ class: "SpriteActor",
id: "text",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
@@ -1324,7 +1442,7 @@ scenes: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.AlphaAnimAction",
+ class: "AlphaAnim",
actor: "text",
alpha: 0,
speed: 0.5,
@@ -1333,7 +1451,7 @@ scenes: {
repeat: "NO_REPEAT"
},
{
- class: "com.bladecoder.engine.actions.AlphaAnimAction",
+ class: "AlphaAnim",
actor: "text",
alpha: 1,
speed: 0.5,
@@ -1348,7 +1466,7 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.TextRenderer",
+ class: "TextRenderer",
text: "text",
fontName: "ArchitectsDaughter",
fontSize: 100,
@@ -1363,7 +1481,8 @@ scenes: {
a: 1
},
align: 8,
- orgAlign: 4
+ orgAlign: 4,
+ maxWidth: 0
},
scaleX: 2,
scaleY: 2,
@@ -1371,8 +1490,194 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
+ tint: {
+ class: "InteractiveActor",
+ id: "tint",
+ bbox: [ -416.72354, -2.1842957, -100, 200, 69.4198, 193.44711, -133.72015, 0 ],
+ pos: {
+ x: 657.4744,
+ y: 255.56323
+ },
+ visible: true,
+ refPoint: {},
+ verbs: {
+ exit: {
+ id: "exit",
+ actions: [
+ {
+ class: "IfSceneAttr",
+ attr: "PLAYER",
+ value: "char",
+ caID: "1640548163"
+ },
+ {
+ class: "SetActorAttr",
+ actor: "$PLAYER",
+ tint: "ffffffff"
+ },
+ {
+ class: "End",
+ caID: "1640548163"
+ },
+ {
+ class: "IfSceneAttr",
+ attr: "PLAYER",
+ value: "red",
+ caID: "1070630759"
+ },
+ {
+ class: "DisableAction",
+ serializedAction: "{class:com.bladecoder.engine.actions.SetActorAttrAction,actor:$PLAYER,tint:ff6666ff}"
+ },
+ {
+ class: "TintAnim",
+ actor: "$PLAYER",
+ color: "ff6666ff",
+ speed: 0.2,
+ count: 1,
+ wait: true,
+ repeat: "REPEAT"
+ },
+ {
+ class: "End",
+ caID: "1070630759"
+ },
+ {
+ class: "IfSceneAttr",
+ attr: "PLAYER",
+ value: "green",
+ caID: "1006819085"
+ },
+ {
+ class: "Camera",
+ zoom: 1,
+ duration: 1,
+ interpolation: "FADE",
+ wait: false
+ },
+ {
+ class: "SetActorAttr",
+ actor: "$PLAYER",
+ tint: "66ff66ff"
+ },
+ {
+ class: "End",
+ caID: "1006819085"
+ },
+ {
+ class: "SetActorAttr",
+ actor: "$PLAYER",
+ tint: "6666ffff"
+ },
+ {
+ class: "End",
+ caID: "1006819085"
+ },
+ {
+ class: "End",
+ caID: "1070630759"
+ },
+ {
+ class: "End",
+ caID: "1640548163"
+ }
+ ]
+ },
+ enter: {
+ id: "enter",
+ actions: [
+ {
+ class: "IfSceneAttr",
+ attr: "PLAYER",
+ value: "char",
+ caID: "602572309"
+ },
+ {
+ class: "SetActorAttr",
+ actor: "$PLAYER",
+ tint: "666666ff"
+ },
+ {
+ class: "End",
+ caID: "602572309"
+ },
+ {
+ class: "IfSceneAttr",
+ attr: "PLAYER",
+ value: "red",
+ caID: "1331490757"
+ },
+ {
+ class: "DisableAction",
+ serializedAction: "{class:com.bladecoder.engine.actions.SetActorAttrAction,actor:$PLAYER,tint:660000ff}"
+ },
+ {
+ class: "TintAnim",
+ actor: "$PLAYER",
+ color: "660000ff",
+ speed: 0.2,
+ count: 1,
+ wait: true,
+ repeat: "REPEAT"
+ },
+ {
+ class: "End",
+ caID: "1331490757"
+ },
+ {
+ class: "IfSceneAttr",
+ attr: "PLAYER",
+ value: "green",
+ caID: "1522226691"
+ },
+ {
+ class: "SetActorAttr",
+ actor: "$PLAYER",
+ tint: "006600ff"
+ },
+ {
+ class: "Camera",
+ pos: "0.0,0.0",
+ interpolation: "FADE",
+ wait: false
+ },
+ {
+ class: "Camera",
+ zoom: 0.5,
+ duration: 1,
+ interpolation: "FADE",
+ wait: true
+ },
+ {
+ class: "End",
+ caID: "1522226691"
+ },
+ {
+ class: "SetActorAttr",
+ actor: "$PLAYER",
+ tint: "000066ff"
+ },
+ {
+ class: "End",
+ caID: "1522226691"
+ },
+ {
+ class: "End",
+ caID: "1331490757"
+ },
+ {
+ class: "End",
+ caID: "602572309"
+ }
+ ]
+ }
+ },
+ interaction: false,
+ zIndex: 0,
+ layer: "foreground"
+ },
"ui-actor": {
- class: "com.bladecoder.engine.model.SpriteActor",
+ class: "SpriteActor",
id: "ui-actor",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
@@ -1386,7 +1691,7 @@ scenes: {
id: "leave",
actions: [
{
- class: "com.bladecoder.engine.actions.TextAction",
+ class: "Text",
text: "@01.ui-actor.leave.0.text",
style: "default",
type: "SUBTITLE",
@@ -1394,7 +1699,7 @@ scenes: {
wait: true
},
{
- class: "com.bladecoder.engine.actions.TextAction",
+ class: "Text",
text: "@01.ui-actor.leave.1.text",
style: "default",
type: "SUBTITLE",
@@ -1408,20 +1713,20 @@ scenes: {
zIndex: 100,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- go: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "go",
+ error: {
+ class: "AtlasAnimationDesc",
+ id: "error",
source: "testbutton",
duration: 1,
animationType: "NO_REPEAT",
count: -1,
preload: true
},
- error: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "error",
+ go: {
+ class: "AtlasAnimationDesc",
+ id: "go",
source: "testbutton",
duration: 1,
animationType: "NO_REPEAT",
@@ -1429,7 +1734,7 @@ scenes: {
preload: true
},
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -1447,133 +1752,12 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- particle2: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "particle2",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 1551.1857,
- y: 19.144714
- },
- visible: true,
- refPoint: {},
- verbs: {},
- interaction: true,
- zIndex: 0,
- layer: "foreground",
- renderer: {
- class: "com.bladecoder.engine.model.ParticleRenderer",
- atlasName: "particles",
- particleName: "firefly",
- orgAlign: 4
- },
- scaleX: 2,
- scaleY: 2,
- rot: 0,
- fakeDepth: false,
- bboxFromRenderer: true
- },
- door_left: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "door_left",
- bbox: [ 6.1985474, -71.283264, 0, 200, 72.92984, 215.49634, 93.07495, -27.893463 ],
- pos: {
- x: 251.04129,
- y: 339.37048
- },
- visible: true,
- refPoint: {
- x: 103.024414,
- y: -49.89804
- },
- verbs: {
- leave: {
- id: "leave",
- actions: [
- {
- class: "com.bladecoder.engine.actions.GotoAction",
- actor: "$PLAYER",
- target: "door_left",
- ignoreWalkZone: false,
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.LeaveAction",
- scene: "basic3",
- init: true
- }
- ]
- }
- },
- interaction: true,
- zIndex: 0,
- layer: "background"
- },
- test_inventory: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "test_inventory",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 372.02625,
- y: 768.19934
- },
- visible: true,
- desc: "@01.test_inventory.desc_",
- refPoint: {},
- verbs: {
- leave: {
- id: "leave",
- actions: [
- {
- class: "com.bladecoder.engine.actions.LeaveAction",
- scene: "inventory",
- init: true
- }
- ]
- }
- },
- interaction: true,
- zIndex: 0,
- layer: "foreground",
- renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
- fanims: {
- go: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "go",
- source: "testbutton",
- duration: 1,
- animationType: "NO_REPEAT",
- count: -1,
- preload: true
- },
- error: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "error",
- source: "testbutton",
- duration: 1,
- animationType: "NO_REPEAT",
- count: -1,
- preload: true
- },
- ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "ok",
- source: "testbutton",
- duration: 1,
- animationType: "NO_REPEAT",
- count: -1,
- preload: true
- }
- },
- initAnimation: "go",
- orgAlign: 4
- },
- scaleX: 1,
- scaleY: 1,
- rot: 0,
- fakeDepth: false,
- bboxFromRenderer: true
+ walkzone: {
+ class: "WalkZoneActor",
+ id: "walkzone",
+ bbox: [ 297.42737, 284.14938, 568.29877, 434.68887, 719.6436, 446.8797, 650.82916, 341.34033, 1368.244, 372.9064, 1353.6876, 407.92526, 1922.6555, 410.7885, 1934.324, 311.18817, 1543.7379, 296.05563, 1514.5264, 349.16766, 624.51056, 318.71033, 589.1026, 283.30228 ],
+ pos: {},
+ visible: true
}
},
backgroundAtlas: "scene1",
@@ -1588,21 +1772,21 @@ scenes: {
id: "init",
actions: [
{
- class: "com.bladecoder.engine.actions.RunOnceAction",
+ class: "RunOnce",
caID: "930473402"
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
+ class: "SetActorAttr",
actor: "ui-actor",
uiActor: true
},
{
- class: "com.bladecoder.engine.actions.SetPlayerAction",
+ class: "SetPlayer",
actor: "char",
inventory: "white"
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "$PLAYER",
text: "@01.init.0.text",
type: "SUBTITLE",
@@ -1610,49 +1794,49 @@ scenes: {
wait: false
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "End",
caID: "930473402"
},
{
- class: "com.bladecoder.engine.actions.IfPropertyAction",
+ class: "IfProperty",
name: "PREVIOUS_SCENE",
value: "basic3",
caID: "1891188477"
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "Goto",
actor: "$PLAYER",
pos: "749.0,330.0",
ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "End",
caID: "1891188477"
},
{
- class: "com.bladecoder.engine.actions.IfPropertyAction",
+ class: "IfProperty",
name: "PREVIOUS_SCENE",
value: "basic2",
caID: "1421587304"
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "Goto",
actor: "$PLAYER",
pos: "1517.0,374.0",
ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "End",
caID: "1421587304"
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "End",
caID: "1421587304"
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "End",
caID: "1891188477"
}
]
@@ -1661,29 +1845,28 @@ scenes: {
player: "char",
walkZone: "walkzone"
},
- parallax: {
- id: "parallax",
+ basic2: {
+ id: "basic2",
layers: [
{
- name: "foreground",
- parallax: 3.5
+ name: "foreground"
},
{
- name: "dynamic"
+ name: "dynamic",
+ dynamic: true
},
{
- name: "background",
- parallax: 0
+ name: "background"
}
],
actors: {
- goto01: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "goto01",
- bbox: [ -69.81134, 53.333344, -68.80505, 182.89307, 34.591248, 181.88678, 46.666687, 58.364746 ],
+ exit: {
+ class: "InteractiveActor",
+ id: "exit",
+ bbox: [ -570.5481, -21.131287, -408.54053, 171.8248, 1172.0449, 214.08759, 1263.6143, -14.0876465 ],
pos: {
- x: 801.9821,
- y: 207.3566
+ x: 405.07428,
+ y: -48.177734
},
visible: true,
refPoint: {},
@@ -1692,14 +1875,7 @@ scenes: {
id: "leave",
actions: [
{
- class: "com.bladecoder.engine.actions.GotoAction",
- actor: "char",
- target: "goto01",
- ignoreWalkZone: false,
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.LeaveAction",
+ class: "Leave",
scene: "basic1",
init: true
}
@@ -1708,35 +1884,36 @@ scenes: {
},
interaction: true,
zIndex: 0,
- layer: "foreground"
+ layer: "background"
},
- middleground: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "middleground",
+ i18ntext: {
+ class: "SpriteActor",
+ id: "i18ntext",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1554
+ x: 451.26367,
+ y: 448.4259
},
visible: true,
refPoint: {},
verbs: {},
- interaction: false,
- zIndex: -1,
- layer: "dynamic",
+ interaction: true,
+ zIndex: 0,
+ layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "ImageRenderer",
fanims: {
- background: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "middleground",
- source: "parallax",
+ text: {
+ class: "com.bladecoder.engine.anim.AnimationDesc",
+ id: "text",
+ source: "@text.png",
duration: 1,
animationType: "NO_REPEAT",
count: -1,
preload: true
}
},
- initAnimation: "background",
+ initAnimation: "text",
orgAlign: 4
},
scaleX: 1,
@@ -1744,207 +1921,166 @@ scenes: {
rot: 0,
fakeDepth: false,
bboxFromRenderer: true
+ }
+ },
+ backgroundAtlas: "scene2",
+ backgroundRegionId: "bg2",
+ musicDesc: null,
+ verbs: {},
+ walkZone: null
+ },
+ basic3: {
+ id: "basic3",
+ layers: [
+ {
+ name: "foreground"
},
- walkzone: {
- class: "com.bladecoder.engine.model.WalkZoneActor",
- id: "walkzone",
- bbox: [ 18.73169, 37.46341, 37.46338, 209.79524, 3008.312, 247.25824, 3064.5073, 52.448776 ],
- pos: {},
- visible: true
+ {
+ name: "dynamic",
+ dynamic: true
},
- background: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "background",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ {
+ name: "background"
+ }
+ ],
+ actors: {
+ exit: {
+ class: "InteractiveActor",
+ id: "exit",
+ bbox: [ 38.740845, -302.1791, 37.191406, 172.10663, 237.19135, 160.69553, 225.35773, -344.01953 ],
pos: {
- x: 1551
+ x: 1644.7837,
+ y: 578.7209
},
visible: true,
- refPoint: {},
- verbs: {},
- interaction: false,
- zIndex: 0,
- layer: "background",
- renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
- fanims: {
- background: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "background",
- source: "parallax",
- duration: 1,
- animationType: "NO_REPEAT",
- count: -1,
- preload: true
- }
- },
- initAnimation: "background",
- orgAlign: 4
- },
- scaleX: 1,
- scaleY: 1,
- rot: 0,
- fakeDepth: false,
- bboxFromRenderer: true
- },
- char: {
- class: "com.bladecoder.engine.model.CharacterActor",
- id: "char",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 1793.2177,
- y: 65.78964
+ refPoint: {
+ x: 5.774414,
+ y: -326.25568
},
- visible: true,
- refPoint: {},
- verbs: {},
- interaction: false,
- zIndex: 1,
- layer: "dynamic",
- renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
- fanims: {
- "walk.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "walk.right",
- source: "char",
- duration: 0.5,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
- "stand.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "stand.right",
- source: "char",
- duration: 1,
- animationType: "NO_REPEAT",
- count: -1,
- preload: true
- }
- },
- initAnimation: "stand.right",
- orgAlign: 4
- },
- scaleX: 0.3110584,
- scaleY: 0.3110584,
- rot: 0,
- fakeDepth: true,
- bboxFromRenderer: true,
- walkingSpeed: 2000
- },
- foreground: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "foreground",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 177.10706
- },
- visible: true,
- refPoint: {},
- verbs: {},
- interaction: false,
- zIndex: 0,
- layer: "foreground",
- renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
- fanims: {
- foreground1: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "foreground1",
- source: "parallax",
- duration: 1,
- animationType: "NO_REPEAT",
- count: -1,
- preload: true
- }
- },
- initAnimation: "foreground1",
- orgAlign: 4
- },
- scaleX: 1,
- scaleY: 1,
- rot: 0,
- fakeDepth: false,
- bboxFromRenderer: true
- },
- foreground2: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "foreground2",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 3084.321
+ verbs: {
+ leave: {
+ id: "leave",
+ actions: [
+ {
+ class: "Goto",
+ actor: "$PLAYER",
+ target: "exit",
+ ignoreWalkZone: false,
+ wait: true
+ },
+ {
+ class: "Position",
+ actor: "$PLAYER",
+ target: "basic1#door_left"
+ },
+ {
+ class: "MoveToScene",
+ actor: "$PLAYER",
+ scene: "basic1"
+ },
+ {
+ class: "IfSceneAttr",
+ attr: "PLAYER",
+ value: "char",
+ caID: "1348253093"
+ },
+ {
+ class: "SetPlayer",
+ actor: "basic1#char"
+ },
+ {
+ class: "End",
+ caID: "1348253093"
+ },
+ {
+ class: "SetPlayer",
+ actor: "basic1#red"
+ },
+ {
+ class: "End",
+ caID: "1348253093"
+ },
+ {
+ class: "Leave",
+ scene: "basic1",
+ init: true
+ }
+ ]
+ }
},
- visible: true,
- refPoint: {},
- verbs: {},
- interaction: false,
+ interaction: true,
zIndex: 0,
- layer: "foreground",
- renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
- fanims: {
- foreground1: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "foreground2",
- source: "parallax",
- duration: 1,
- animationType: "NO_REPEAT",
- count: -1,
- preload: true
- }
- },
- initAnimation: "foreground1",
- orgAlign: 4
- },
- scaleX: 1,
- scaleY: 1,
- rot: 0,
- fakeDepth: false,
- bboxFromRenderer: true
+ layer: "background"
},
- particle3: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "particle3",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: -26.70813,
- y: 1129.6176
- },
- visible: true,
- refPoint: {},
- verbs: {},
- interaction: true,
- zIndex: 1,
- layer: "dynamic",
- renderer: {
- class: "com.bladecoder.engine.model.ParticleRenderer",
- atlasName: "particles",
- particleName: "rain",
- orgAlign: 0
- },
- scaleX: 1,
- scaleY: 1,
- rot: 0,
- fakeDepth: false,
- bboxFromRenderer: true
+ walkzone: {
+ class: "WalkZoneActor",
+ id: "walkzone",
+ bbox: [ 157.48462, 39.371155, 398.08618, 257.5802, 965.618, 80.41797, 1203.7566, 93.22626, 1226.6244, 304.53226, 1530.6631, 318.8243, 1885.0032, 157.48468, 1786.2855, 74.84706 ],
+ pos: {},
+ visible: true
}
},
+ backgroundAtlas: "scene3",
+ backgroundRegionId: "bg3",
musicDesc: null,
depthVector: {
- x: 344.45578,
- y: -551.40857
+ x: 613.83704,
+ y: -631.38477
},
- sceneSize: {
- x: 3103,
- y: 1080
+ verbs: {
+ init: {
+ id: "init",
+ actions: [
+ {
+ class: "IfSceneAttr",
+ scene: "basic1",
+ attr: "PLAYER",
+ value: "char",
+ caID: "742759885"
+ },
+ {
+ class: "MoveToScene",
+ actor: "basic1#char"
+ },
+ {
+ class: "SetPlayer",
+ actor: "char"
+ },
+ {
+ class: "End",
+ caID: "742759885"
+ },
+ {
+ class: "MoveToScene",
+ actor: "basic1#red"
+ },
+ {
+ class: "SetPlayer",
+ actor: "red"
+ },
+ {
+ class: "End",
+ caID: "742759885"
+ },
+ {
+ class: "Position",
+ actor: "$PLAYER",
+ target: "exit"
+ },
+ {
+ class: "Goto",
+ actor: "$PLAYER",
+ pos: "1501.0,251.0",
+ ignoreWalkZone: false,
+ wait: true
+ }
+ ]
+ }
},
- verbs: {},
- player: "char",
walkZone: "walkzone"
},
- actor3d: {
- id: "actor3d",
+ "ink-multiflow": {
+ id: "ink-multiflow",
layers: [
{
name: "foreground"
@@ -1958,93 +2094,75 @@ scenes: {
}
],
actors: {
- fg2: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "fg2",
+ GREEN: {
+ class: "CharacterActor",
+ id: "GREEN",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 2727.407
+ x: 1698.7587,
+ y: 262.90308
},
visible: true,
- refPoint: {},
+ refPoint: {
+ x: -493.8849,
+ y: 8.514374
+ },
verbs: {},
- interaction: false,
+ interaction: true,
zIndex: 0,
- layer: "foreground",
+ layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- head_fg: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "head_fg",
- source: "00",
+ "stand.right": {
+ class: "AtlasAnimationDesc",
+ id: "stand.right",
+ source: "char",
duration: 1,
animationType: "NO_REPEAT",
count: -1,
preload: true
- }
- },
- initAnimation: "head_fg",
- orgAlign: 4
- },
- scaleX: 1,
- scaleY: 1,
- rot: 0,
- fakeDepth: false,
- bboxFromRenderer: true
- },
- fg1: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "fg1",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 158.68916
- },
- visible: true,
- refPoint: {},
- verbs: {},
- interaction: false,
- zIndex: 0,
- layer: "foreground",
- renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
- fanims: {
- column_fg: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "column_fg",
- source: "00",
- duration: 1,
- animationType: "NO_REPEAT",
+ },
+ "talk.right": {
+ class: "AtlasAnimationDesc",
+ id: "talk.right",
+ source: "char",
+ duration: 0.4,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ },
+ "walk.right": {
+ class: "AtlasAnimationDesc",
+ id: "walk.right",
+ source: "char",
+ duration: 0.7,
+ animationType: "REPEAT",
count: -1,
preload: true
}
},
- initAnimation: "column_fg",
- orgAlign: 4
+ initAnimation: "stand.left",
+ orgAlign: 0
},
- scaleX: 1,
- scaleY: 1,
- rot: 0,
- fakeDepth: false,
- bboxFromRenderer: true
- },
- walkzone: {
- class: "com.bladecoder.engine.model.WalkZoneActor",
- id: "walkzone",
- bbox: [ 108.911804, -40.125336, 627.953, 441.84213, 668.9139, 407.532, 533.09656, 221.31633, 907.7121, 111.8475, 1196.9875, 214.7468, 1176.444, 387.23248, 1793.0767, 449.25903, 1853.1136, 514.7108, 2497.128, 520.0789, 2869.7212, -0.8026047 ],
- pos: {
- x: 18.916138,
- y: 3.7832947
+ tint: {
+ g: 1,
+ a: 1
},
- visible: true
+ scaleX: 0.41882372,
+ scaleY: 0.41882372,
+ rot: 0,
+ fakeDepth: true,
+ bboxFromRenderer: true,
+ walkingSpeed: 1000
},
- player: {
- class: "com.bladecoder.engine.model.CharacterActor",
- id: "player",
+ PLAYER: {
+ class: "CharacterActor",
+ id: "PLAYER",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 2174.0637,
- y: 45.82788
+ x: 381.1529,
+ y: 120.9249
},
visible: true,
refPoint: {},
@@ -2053,86 +2171,93 @@ scenes: {
zIndex: 0,
layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.Sprite3DRenderer",
+ class: "AtlasRenderer",
fanims: {
- talk: {
- class: "com.bladecoder.engine.anim.AnimationDesc",
- id: "talk",
- source: "Robie",
+ "stand.right": {
+ class: "AtlasAnimationDesc",
+ id: "stand.right",
+ source: "char",
duration: 1,
- animationType: "REPEAT",
+ animationType: "NO_REPEAT",
count: -1,
preload: true
},
- stand: {
- class: "com.bladecoder.engine.anim.AnimationDesc",
- id: "stand",
- source: "Robie",
- duration: 1,
- animationType: "NO_REPEAT",
+ "talk.right": {
+ class: "AtlasAnimationDesc",
+ id: "talk.right",
+ source: "char",
+ duration: 0.4,
+ animationType: "REPEAT",
count: -1,
preload: true
},
- walk: {
- class: "com.bladecoder.engine.anim.AnimationDesc",
- id: "walk",
- source: "Robie",
- duration: 1,
+ "walk.right": {
+ class: "AtlasAnimationDesc",
+ id: "walk.right",
+ source: "char",
+ duration: 0.7,
animationType: "REPEAT",
count: -1,
preload: true
}
},
- initAnimation: "stand",
- orgAlign: 4,
- width: 700,
- height: 700,
- cameraPos: {
- x: -3.06087E-8,
- y: 1.5016524,
- z: 2.325469
- },
- cameraRot: {
- x: -14.617197,
- y: -8.823316E-7,
- z: 1.5707963
- },
- cameraName: "Camera",
- cameraFOV: 49.3,
- renderShadow: true,
- modelRotation: 0
- },
- scaleX: 0.9786623,
- scaleY: 0.9786623,
+ initAnimation: "stand.right",
+ orgAlign: 0
+ },
+ scaleX: 0.58708954,
+ scaleY: 0.58708954,
rot: 0,
fakeDepth: true,
bboxFromRenderer: true,
- walkingSpeed: 700
+ walkingSpeed: 1000
+ },
+ target: {
+ class: "AnchorActor",
+ id: "target",
+ bbox: [],
+ pos: {
+ x: 734.9283,
+ y: 104.98978
+ },
+ visible: true
+ },
+ walkzone: {
+ class: "WalkZoneActor",
+ id: "walkzone",
+ bbox: [ 34.580566, 38.903107, 64.83856, 483.48502, 1850.839, 500.77533, 1885.4194, 30.257996 ],
+ pos: {},
+ visible: true
}
},
- backgroundAtlas: "00",
- backgroundRegionId: "bg1",
musicDesc: null,
depthVector: {
- x: 2673.551,
- y: -11.464233
+ x: 616.2952,
+ y: -227.47778
},
verbs: {
init: {
id: "init",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "$PLAYER",
- text: "@actor3d.init.0.text",
- type: "SUBTITLE",
- queue: false,
- wait: true
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "InkRun",
+ path: "multiflow.flow1",
+ flow: "flow1",
+ wait: false
+ },
+ {
+ class: "InkRun",
+ path: "multiflow.flow2",
+ flow: "flow2",
+ wait: false
}
]
}
},
- player: "player",
+ player: "PLAYER",
walkZone: "walkzone"
},
ink1: {
@@ -2150,34 +2275,120 @@ scenes: {
}
],
actors: {
- RED: {
- class: "com.bladecoder.engine.model.CharacterActor",
- id: "RED",
+ GREEN: {
+ class: "CharacterActor",
+ id: "GREEN",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 360.37726,
- y: 357.57773
+ x: 1386.7396,
+ y: 87.49176
},
visible: true,
- refPoint: {},
- verbs: {},
- interaction: false,
+ refPoint: {
+ x: 8.069885
+ },
+ verbs: {
+ talkto: {
+ id: "talkto",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "Goto",
+ actor: "$PLAYER",
+ target: "target",
+ ignoreWalkZone: false,
+ wait: true
+ },
+ {
+ class: "Animation",
+ animation: "$PLAYER#stand.right",
+ count: -1,
+ wait: false,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
+ },
+ {
+ class: "InkRun",
+ path: "scene1.green",
+ wait: true
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ }
+ },
+ interaction: true,
zIndex: 0,
layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
+ "stand.right": {
+ class: "AtlasAnimationDesc",
+ id: "stand.right",
+ source: "char",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true
+ },
+ "talk.right": {
+ class: "AtlasAnimationDesc",
+ id: "talk.right",
+ source: "char",
+ duration: 0.4,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ },
"walk.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "walk.right",
source: "char",
duration: 0.7,
animationType: "REPEAT",
count: -1,
preload: true
- },
+ }
+ },
+ initAnimation: "stand.right",
+ orgAlign: 0
+ },
+ tint: {
+ g: 1,
+ a: 1
+ },
+ scaleX: 0.6267129,
+ scaleY: 0.6267129,
+ rot: 0,
+ fakeDepth: true,
+ bboxFromRenderer: true,
+ walkingSpeed: 1000
+ },
+ RED: {
+ class: "CharacterActor",
+ id: "RED",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 360.37726,
+ y: 357.57773
+ },
+ visible: true,
+ refPoint: {},
+ verbs: {},
+ interaction: false,
+ zIndex: 0,
+ layer: "dynamic",
+ renderer: {
+ class: "AtlasRenderer",
+ fanims: {
"stand.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "stand.right",
source: "char",
duration: 1,
@@ -2186,31 +2397,40 @@ scenes: {
preload: true
},
"talk.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "talk.right",
source: "char",
duration: 0.4,
animationType: "REPEAT",
count: -1,
preload: true
+ },
+ "walk.right": {
+ class: "AtlasAnimationDesc",
+ id: "walk.right",
+ source: "char",
+ duration: 0.7,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
}
},
initAnimation: "stand.right",
orgAlign: 0
},
- scaleX: 0.3066198,
- scaleY: 0.3066198,
- rot: 0,
tint: {
r: 1,
a: 1
},
+ scaleX: 0.3066198,
+ scaleY: 0.3066198,
+ rot: 0,
fakeDepth: true,
bboxFromRenderer: true,
walkingSpeed: 1000
},
example2: {
- class: "com.bladecoder.engine.model.SpriteActor",
+ class: "SpriteActor",
id: "example2",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
@@ -2225,7 +2445,7 @@ scenes: {
icon: "right",
actions: [
{
- class: "com.bladecoder.engine.actions.LeaveAction",
+ class: "Leave",
scene: "ink2",
init: true
}
@@ -2236,7 +2456,7 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.TextRenderer",
+ class: "TextRenderer",
text: "@ink1.example2.text",
fontName: "Ubuntu-M",
fontSize: 100,
@@ -2251,28 +2471,22 @@ scenes: {
a: 1
},
align: 8,
- orgAlign: 0
+ orgAlign: 0,
+ maxWidth: 0
},
- scaleX: 1,
- scaleY: 1,
- rot: 0,
tint: {
r: 1,
g: 1,
a: 1
},
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
fakeDepth: false,
bboxFromRenderer: true
},
- walkzone: {
- class: "com.bladecoder.engine.model.WalkZoneActor",
- id: "walkzone",
- bbox: [ 34.580566, 38.903107, 64.83856, 483.48502, 1850.839, 500.77533, 1885.4194, 30.257996 ],
- pos: {},
- visible: true
- },
link: {
- class: "com.bladecoder.engine.model.SpriteActor",
+ class: "SpriteActor",
id: "link",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
@@ -2287,7 +2501,7 @@ scenes: {
icon: "right",
actions: [
{
- class: "com.bladecoder.engine.actions.OpenURLAction",
+ class: "OpenURL",
url: "https://github.com/inkle/ink/blob/master/Documentation/WritingWithInk.md"
}
]
@@ -2297,7 +2511,7 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.TextRenderer",
+ class: "TextRenderer",
text: "@ink1.link.text",
fontName: "Ubuntu-M",
fontSize: 100,
@@ -2312,48 +2526,111 @@ scenes: {
a: 1
},
align: 8,
- orgAlign: 0
+ orgAlign: 0,
+ maxWidth: 0
},
- scaleX: 1,
- scaleY: 1,
- rot: 0,
tint: {
r: 1,
g: 1,
a: 1
},
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
fakeDepth: false,
bboxFromRenderer: true
},
+ target: {
+ class: "AnchorActor",
+ id: "target",
+ bbox: [],
+ pos: {
+ x: 734.9283,
+ y: 104.98978
+ },
+ visible: true
+ },
+ walkzone: {
+ class: "WalkZoneActor",
+ id: "walkzone",
+ bbox: [ 34.580566, 38.903107, 64.83856, 483.48502, 1850.839, 500.77533, 1885.4194, 30.257996 ],
+ pos: {},
+ visible: true
+ }
+ },
+ musicDesc: null,
+ depthVector: {
+ x: 616.2952,
+ y: -227.47778
+ },
+ verbs: {
+ init: {
+ id: "init",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "InkRun",
+ path: "scene1.init",
+ wait: true
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ }
+ },
+ player: "RED",
+ walkZone: "walkzone"
+ },
+ ink2: {
+ id: "ink2",
+ layers: [
+ {
+ name: "foreground"
+ },
+ {
+ name: "dynamic",
+ dynamic: true
+ },
+ {
+ name: "background"
+ }
+ ],
+ actors: {
GREEN: {
- class: "com.bladecoder.engine.model.CharacterActor",
+ class: "CharacterActor",
id: "GREEN",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1386.7396,
- y: 87.49176
+ x: 1222.1278,
+ y: 90.329895
},
visible: true,
refPoint: {
- x: 8.069885
+ x: -493.8849,
+ y: 8.514374
},
verbs: {
talkto: {
id: "talkto",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "Goto",
actor: "$PLAYER",
- target: "target",
+ target: "GREEN",
ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
+ class: "Animation",
animation: "$PLAYER#stand.right",
count: -1,
wait: false,
@@ -2361,12 +2638,12 @@ scenes: {
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.InkRunAction",
- path: "scene1.green",
+ class: "InkRun",
+ path: "scene2.d1",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
@@ -2376,19 +2653,69 @@ scenes: {
zIndex: 0,
layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
+ "stand.right": {
+ class: "AtlasAnimationDesc",
+ id: "stand.right",
+ source: "char",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true
+ },
+ "talk.right": {
+ class: "AtlasAnimationDesc",
+ id: "talk.right",
+ source: "char",
+ duration: 0.4,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ },
"walk.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "walk.right",
source: "char",
duration: 0.7,
animationType: "REPEAT",
count: -1,
preload: true
- },
+ }
+ },
+ initAnimation: "stand.left",
+ orgAlign: 0
+ },
+ tint: {
+ g: 1,
+ a: 1
+ },
+ scaleX: 0.6233493,
+ scaleY: 0.6233493,
+ rot: 0,
+ fakeDepth: true,
+ bboxFromRenderer: true,
+ walkingSpeed: 1000
+ },
+ PLAYER: {
+ class: "CharacterActor",
+ id: "PLAYER",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 720.8208,
+ y: 90.79294
+ },
+ visible: true,
+ refPoint: {},
+ verbs: {},
+ interaction: false,
+ zIndex: 0,
+ layer: "dynamic",
+ renderer: {
+ class: "AtlasRenderer",
+ fanims: {
"stand.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "stand.right",
source: "char",
duration: 1,
@@ -2397,31 +2724,36 @@ scenes: {
preload: true
},
"talk.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "talk.right",
source: "char",
duration: 0.4,
animationType: "REPEAT",
count: -1,
preload: true
+ },
+ "walk.right": {
+ class: "AtlasAnimationDesc",
+ id: "walk.right",
+ source: "char",
+ duration: 0.7,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
}
},
initAnimation: "stand.right",
orgAlign: 0
},
- scaleX: 0.6267129,
- scaleY: 0.6267129,
+ scaleX: 0.6228006,
+ scaleY: 0.6228006,
rot: 0,
- tint: {
- g: 1,
- a: 1
- },
fakeDepth: true,
bboxFromRenderer: true,
walkingSpeed: 1000
},
target: {
- class: "com.bladecoder.engine.model.AnchorActor",
+ class: "AnchorActor",
id: "target",
bbox: [],
pos: {
@@ -2429,6 +2761,13 @@ scenes: {
y: 104.98978
},
visible: true
+ },
+ walkzone: {
+ class: "WalkZoneActor",
+ id: "walkzone",
+ bbox: [ 34.580566, 38.903107, 64.83856, 483.48502, 1850.839, 500.77533, 1885.4194, 30.257996 ],
+ pos: {},
+ visible: true
}
},
musicDesc: null,
@@ -2436,27 +2775,8 @@ scenes: {
x: 616.2952,
y: -227.47778
},
- verbs: {
- init: {
- id: "init",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.InkRunAction",
- path: "scene1.init",
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- }
- },
- player: "RED",
+ verbs: {},
+ player: "PLAYER",
walkZone: "walkzone"
},
inventory: {
@@ -2474,28 +2794,28 @@ scenes: {
}
],
actors: {
- a02: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "a02",
+ a0: {
+ class: "SpriteActor",
+ id: "a0",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1064.3015,
- y: 754.9446
+ x: 227.05096,
+ y: 760.6208
},
visible: true,
- desc: "@inventory.a02.desc",
+ desc: "@inventory.a0.desc_",
refPoint: {},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "a02"
+ class: "PickUp",
+ actor: "a0"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "a02",
+ class: "ActorState",
+ actor: "a0",
state: "INVENTORY"
}
]
@@ -2505,9 +2825,9 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
- text: "@inventory.a02.pickup.INVENTORY.0.text",
+ text: "@inventory.a0.pickup.INVENTORY.0.text",
type: "SUBTITLE",
queue: false,
wait: true
@@ -2519,10 +2839,10 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -2541,7 +2861,7 @@ scenes: {
bboxFromRenderer: true
},
a010: {
- class: "com.bladecoder.engine.model.SpriteActor",
+ class: "SpriteActor",
id: "a010",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
@@ -2556,11 +2876,11 @@ scenes: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
+ class: "PickUp",
actor: "a010"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
+ class: "ActorState",
actor: "a010",
state: "INVENTORY"
}
@@ -2571,7 +2891,7 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
text: "@inventory.a010.pickup.INVENTORY.0.text",
type: "SUBTITLE",
@@ -2585,10 +2905,10 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -2607,7 +2927,7 @@ scenes: {
bboxFromRenderer: true
},
a011: {
- class: "com.bladecoder.engine.model.SpriteActor",
+ class: "SpriteActor",
id: "a011",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
@@ -2622,11 +2942,11 @@ scenes: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
+ class: "PickUp",
actor: "a011"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
+ class: "ActorState",
actor: "a011",
state: "INVENTORY"
}
@@ -2637,7 +2957,7 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
text: "@inventory.a011.pickup.INVENTORY.0.text",
type: "SUBTITLE",
@@ -2651,10 +2971,10 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
go: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "go",
source: "testbutton",
duration: 1,
@@ -2663,7 +2983,7 @@ scenes: {
preload: true
},
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -2681,28 +3001,28 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- a04: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "a04",
+ a0112: {
+ class: "SpriteActor",
+ id: "a0112",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 777.64966,
- y: 471.13092
+ x: 1575.1663,
+ y: 479.64502
},
visible: true,
- desc: "@inventory.a04.desc",
+ desc: "@inventory.a0112.desc",
refPoint: {},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "a04"
+ class: "PickUp",
+ actor: "a0112"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "a04",
+ class: "ActorState",
+ actor: "a0112",
state: "INVENTORY"
}
]
@@ -2712,9 +3032,9 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
- text: "@inventory.a04.pickup.INVENTORY.0.text",
+ text: "@inventory.a0112.pickup.INVENTORY.0.text",
type: "SUBTITLE",
queue: false,
wait: true
@@ -2726,10 +3046,19 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
+ go: {
+ class: "AtlasAnimationDesc",
+ id: "go",
+ source: "testbutton",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true
+ },
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -2738,7 +3067,7 @@ scenes: {
preload: true
}
},
- initAnimation: "ok",
+ initAnimation: "go",
orgAlign: 4
},
scaleX: 1,
@@ -2747,28 +3076,28 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- a03: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "a03",
+ a0113: {
+ class: "SpriteActor",
+ id: "a0113",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 780.4877,
- y: 210.02228
+ x: 1316.8959,
+ y: 488.15967
},
visible: true,
- desc: "@inventory.a03.desc",
+ desc: "@inventory.a0113.desc",
refPoint: {},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "a03"
+ class: "PickUp",
+ actor: "a0113"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "a03",
+ class: "ActorState",
+ actor: "a0113",
state: "INVENTORY"
}
]
@@ -2778,9 +3107,9 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
- text: "@inventory.a03.pickup.INVENTORY.0.text",
+ text: "@inventory.a0113.pickup.INVENTORY.0.text",
type: "SUBTITLE",
queue: false,
wait: true
@@ -2792,10 +3121,19 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
+ go: {
+ class: "AtlasAnimationDesc",
+ id: "go",
+ source: "testbutton",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true
+ },
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -2804,7 +3142,7 @@ scenes: {
preload: true
}
},
- initAnimation: "ok",
+ initAnimation: "go",
orgAlign: 4
},
scaleX: 1,
@@ -2813,28 +3151,29 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- a06: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "a06",
+ a01132: {
+ class: "SpriteActor",
+ id: "a01132",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 508.0266,
- y: 212.86035
+ x: 1314.0577,
+ y: 227.05109
},
visible: true,
- desc: "@inventory.a06.desc",
+ desc: "@inventory.a01132.desc",
refPoint: {},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "a06"
+ class: "PickUp",
+ actor: "a01132",
+ animation: "error"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "a06",
+ class: "ActorState",
+ actor: "a01132",
state: "INVENTORY"
}
]
@@ -2844,9 +3183,9 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
- text: "@inventory.a06.pickup.INVENTORY.0.text",
+ text: "@inventory.a01132.pickup.INVENTORY.0.text",
type: "SUBTITLE",
queue: false,
wait: true
@@ -2858,10 +3197,28 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
+ error: {
+ class: "AtlasAnimationDesc",
+ id: "error",
+ source: "testbutton",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true
+ },
+ go: {
+ class: "AtlasAnimationDesc",
+ id: "go",
+ source: "testbutton",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true
+ },
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -2870,7 +3227,7 @@ scenes: {
preload: true
}
},
- initAnimation: "ok",
+ initAnimation: "go",
orgAlign: 4
},
scaleX: 1,
@@ -2879,28 +3236,28 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- a05: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "a05",
+ a0114: {
+ class: "SpriteActor",
+ id: "a0114",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 797.5166,
- y: 752.1063
+ x: 1569.49,
+ y: 752.1064
},
visible: true,
- desc: "@inventory.a05.desc",
+ desc: "@inventory.a0114.desc",
refPoint: {},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "a05"
+ class: "PickUp",
+ actor: "a0114"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "a05",
+ class: "ActorState",
+ actor: "a0114",
state: "INVENTORY"
}
]
@@ -2910,9 +3267,9 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
- text: "@inventory.a05.pickup.INVENTORY.0.text",
+ text: "@inventory.a0114.pickup.INVENTORY.0.text",
type: "SUBTITLE",
queue: false,
wait: true
@@ -2924,10 +3281,19 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
+ go: {
+ class: "AtlasAnimationDesc",
+ id: "go",
+ source: "testbutton",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true
+ },
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -2936,7 +3302,7 @@ scenes: {
preload: true
}
},
- initAnimation: "ok",
+ initAnimation: "go",
orgAlign: 4
},
scaleX: 1,
@@ -2945,28 +3311,28 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- a08: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "a08",
+ a012: {
+ class: "SpriteActor",
+ id: "a012",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 508.0266,
- y: 752.1063
+ x: 1064.3018,
+ y: 210.02216
},
visible: true,
- desc: "@inventory.a08.desc",
+ desc: "@inventory.a012.desc",
refPoint: {},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "a08"
+ class: "PickUp",
+ actor: "a012"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "a08",
+ class: "ActorState",
+ actor: "a012",
state: "INVENTORY"
}
]
@@ -2976,9 +3342,9 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
- text: "@inventory.a08.pickup.INVENTORY.0.text",
+ text: "@inventory.a012.pickup.INVENTORY.0.text",
type: "SUBTITLE",
queue: false,
wait: true
@@ -2990,10 +3356,10 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -3011,28 +3377,28 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- a0114: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "a0114",
+ a013: {
+ class: "SpriteActor",
+ id: "a013",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1569.49,
- y: 752.1064
+ x: 1064.3018,
+ y: 476.80713
},
visible: true,
- desc: "@inventory.a0114.desc",
+ desc: "@inventory.a013.desc",
refPoint: {},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "a0114"
+ class: "PickUp",
+ actor: "a013"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "a0114",
+ class: "ActorState",
+ actor: "a013",
state: "INVENTORY"
}
]
@@ -3042,9 +3408,9 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
- text: "@inventory.a0114.pickup.INVENTORY.0.text",
+ text: "@inventory.a013.pickup.INVENTORY.0.text",
type: "SUBTITLE",
queue: false,
wait: true
@@ -3056,19 +3422,10 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- go: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "go",
- source: "testbutton",
- duration: 1,
- animationType: "NO_REPEAT",
- count: -1,
- preload: true
- },
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -3077,7 +3434,7 @@ scenes: {
preload: true
}
},
- initAnimation: "go",
+ initAnimation: "ok",
orgAlign: 4
},
scaleX: 1,
@@ -3086,28 +3443,28 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- a07: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "a07",
+ a02: {
+ class: "SpriteActor",
+ id: "a02",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 508.02658,
- y: 479.64514
+ x: 1064.3015,
+ y: 754.9446
},
visible: true,
- desc: "@inventory.a07.desc",
+ desc: "@inventory.a02.desc",
refPoint: {},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "a07"
+ class: "PickUp",
+ actor: "a02"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "a07",
+ class: "ActorState",
+ actor: "a02",
state: "INVENTORY"
}
]
@@ -3117,9 +3474,9 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
- text: "@inventory.a07.pickup.INVENTORY.0.text",
+ text: "@inventory.a02.pickup.INVENTORY.0.text",
type: "SUBTITLE",
queue: false,
wait: true
@@ -3131,10 +3488,10 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -3152,28 +3509,28 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- a0113: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "a0113",
+ a03: {
+ class: "SpriteActor",
+ id: "a03",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1316.8959,
- y: 488.15967
+ x: 780.4877,
+ y: 210.02228
},
visible: true,
- desc: "@inventory.a0113.desc",
+ desc: "@inventory.a03.desc",
refPoint: {},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "a0113"
+ class: "PickUp",
+ actor: "a03"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "a0113",
+ class: "ActorState",
+ actor: "a03",
state: "INVENTORY"
}
]
@@ -3183,9 +3540,9 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
- text: "@inventory.a0113.pickup.INVENTORY.0.text",
+ text: "@inventory.a03.pickup.INVENTORY.0.text",
type: "SUBTITLE",
queue: false,
wait: true
@@ -3197,19 +3554,10 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- go: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "go",
- source: "testbutton",
- duration: 1,
- animationType: "NO_REPEAT",
- count: -1,
- preload: true
- },
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -3218,7 +3566,7 @@ scenes: {
preload: true
}
},
- initAnimation: "go",
+ initAnimation: "ok",
orgAlign: 4
},
scaleX: 1,
@@ -3227,28 +3575,28 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- a09: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "a09",
+ a04: {
+ class: "SpriteActor",
+ id: "a04",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 207.18402,
- y: 198.66962
+ x: 777.64966,
+ y: 471.13092
},
visible: true,
- desc: "@inventory.a09.desc",
+ desc: "@inventory.a04.desc",
refPoint: {},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "a09"
+ class: "PickUp",
+ actor: "a04"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "a09",
+ class: "ActorState",
+ actor: "a04",
state: "INVENTORY"
}
]
@@ -3258,9 +3606,9 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
- text: "@inventory.a09.pickup.INVENTORY.0.text",
+ text: "@inventory.a04.pickup.INVENTORY.0.text",
type: "SUBTITLE",
queue: false,
wait: true
@@ -3272,10 +3620,10 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -3293,28 +3641,28 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- a0112: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "a0112",
+ a05: {
+ class: "SpriteActor",
+ id: "a05",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1575.1663,
- y: 479.64502
+ x: 797.5166,
+ y: 752.1063
},
visible: true,
- desc: "@inventory.a0112.desc",
+ desc: "@inventory.a05.desc",
refPoint: {},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "a0112"
+ class: "PickUp",
+ actor: "a05"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "a0112",
+ class: "ActorState",
+ actor: "a05",
state: "INVENTORY"
}
]
@@ -3324,9 +3672,9 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
- text: "@inventory.a0112.pickup.INVENTORY.0.text",
+ text: "@inventory.a05.pickup.INVENTORY.0.text",
type: "SUBTITLE",
queue: false,
wait: true
@@ -3338,19 +3686,10 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- go: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "go",
- source: "testbutton",
- duration: 1,
- animationType: "NO_REPEAT",
- count: -1,
- preload: true
- },
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -3359,7 +3698,7 @@ scenes: {
preload: true
}
},
- initAnimation: "go",
+ initAnimation: "ok",
orgAlign: 4
},
scaleX: 1,
@@ -3368,28 +3707,28 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- a0: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "a0",
+ a06: {
+ class: "SpriteActor",
+ id: "a06",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 227.05096,
- y: 760.6208
+ x: 508.0266,
+ y: 212.86035
},
visible: true,
- desc: "@inventory.a0.desc_",
+ desc: "@inventory.a06.desc",
refPoint: {},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "a0"
+ class: "PickUp",
+ actor: "a06"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "a0",
+ class: "ActorState",
+ actor: "a06",
state: "INVENTORY"
}
]
@@ -3399,9 +3738,9 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
- text: "@inventory.a0.pickup.INVENTORY.0.text",
+ text: "@inventory.a06.pickup.INVENTORY.0.text",
type: "SUBTITLE",
queue: false,
wait: true
@@ -3413,10 +3752,10 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -3434,29 +3773,28 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- a01132: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "a01132",
+ a07: {
+ class: "SpriteActor",
+ id: "a07",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1314.0577,
- y: 227.05109
+ x: 508.02658,
+ y: 479.64514
},
visible: true,
- desc: "@inventory.a01132.desc",
+ desc: "@inventory.a07.desc",
refPoint: {},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "a01132",
- animation: "error"
+ class: "PickUp",
+ actor: "a07"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "a01132",
+ class: "ActorState",
+ actor: "a07",
state: "INVENTORY"
}
]
@@ -3466,9 +3804,9 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
- text: "@inventory.a01132.pickup.INVENTORY.0.text",
+ text: "@inventory.a07.pickup.INVENTORY.0.text",
type: "SUBTITLE",
queue: false,
wait: true
@@ -3480,37 +3818,19 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- go: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "go",
- source: "testbutton",
- duration: 1,
- animationType: "NO_REPEAT",
- count: -1,
- preload: true
- },
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
animationType: "NO_REPEAT",
count: -1,
preload: true
- },
- error: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "error",
- source: "testbutton",
- duration: 1,
- animationType: "NO_REPEAT",
- count: -1,
- preload: true
}
},
- initAnimation: "go",
+ initAnimation: "ok",
orgAlign: 4
},
scaleX: 1,
@@ -3519,28 +3839,28 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- a012: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "a012",
+ a08: {
+ class: "SpriteActor",
+ id: "a08",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1064.3018,
- y: 210.02216
+ x: 508.0266,
+ y: 752.1063
},
visible: true,
- desc: "@inventory.a012.desc",
+ desc: "@inventory.a08.desc",
refPoint: {},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "a012"
+ class: "PickUp",
+ actor: "a08"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "a012",
+ class: "ActorState",
+ actor: "a08",
state: "INVENTORY"
}
]
@@ -3550,9 +3870,9 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
- text: "@inventory.a012.pickup.INVENTORY.0.text",
+ text: "@inventory.a08.pickup.INVENTORY.0.text",
type: "SUBTITLE",
queue: false,
wait: true
@@ -3564,10 +3884,10 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -3585,28 +3905,28 @@ scenes: {
fakeDepth: false,
bboxFromRenderer: true
},
- a013: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "a013",
+ a09: {
+ class: "SpriteActor",
+ id: "a09",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1064.3018,
- y: 476.80713
+ x: 207.18402,
+ y: 198.66962
},
visible: true,
- desc: "@inventory.a013.desc",
+ desc: "@inventory.a09.desc",
refPoint: {},
verbs: {
pickup: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "a013"
+ class: "PickUp",
+ actor: "a09"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "a013",
+ class: "ActorState",
+ actor: "a09",
state: "INVENTORY"
}
]
@@ -3616,9 +3936,9 @@ scenes: {
state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "a0",
- text: "@inventory.a013.pickup.INVENTORY.0.text",
+ text: "@inventory.a09.pickup.INVENTORY.0.text",
type: "SUBTITLE",
queue: false,
wait: true
@@ -3630,10 +3950,10 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
ok: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "ok",
source: "testbutton",
duration: 1,
@@ -3671,13 +3991,13 @@ scenes: {
}
],
actors: {
- parallax: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "parallax",
+ actor3d: {
+ class: "SpriteActor",
+ id: "actor3d",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 357.49203,
- y: 523.80634
+ x: 533.11487,
+ y: 166.59274
},
visible: true,
refPoint: {},
@@ -3686,8 +4006,12 @@ scenes: {
id: "leave",
actions: [
{
- class: "com.bladecoder.engine.actions.LeaveAction",
- scene: "parallax",
+ class: "ShowInventory",
+ value: true
+ },
+ {
+ class: "Leave",
+ scene: "actor3d",
init: true
}
]
@@ -3697,8 +4021,8 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.TextRenderer",
- text: "@menu.parallax.text",
+ class: "TextRenderer",
+ text: "@menu.actor3d.text",
fontName: "Ubuntu-M",
fontSize: 100,
borderWidth: 0,
@@ -3712,26 +4036,27 @@ scenes: {
a: 1
},
align: 8,
- orgAlign: 0
+ orgAlign: 0,
+ maxWidth: 0
},
- scaleX: 1,
- scaleY: 1,
- rot: 0,
tint: {
r: 1,
g: 1,
a: 1
},
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
fakeDepth: false,
bboxFromRenderer: true
},
- actor3d: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "actor3d",
+ basic: {
+ class: "SpriteActor",
+ id: "basic",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 533.11487,
- y: 166.59274
+ x: 291.93097,
+ y: 633.7561
},
visible: true,
refPoint: {},
@@ -3740,8 +4065,12 @@ scenes: {
id: "leave",
actions: [
{
- class: "com.bladecoder.engine.actions.LeaveAction",
- scene: "actor3d",
+ class: "ShowInventory",
+ value: true
+ },
+ {
+ class: "Leave",
+ scene: "basic1",
init: true
}
]
@@ -3751,8 +4080,8 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.TextRenderer",
- text: "@menu.actor3d.text",
+ class: "TextRenderer",
+ text: "@menu.basic.text_",
fontName: "Ubuntu-M",
fontSize: 100,
borderWidth: 0,
@@ -3766,21 +4095,22 @@ scenes: {
a: 1
},
align: 8,
- orgAlign: 0
+ orgAlign: 0,
+ maxWidth: 0
},
- scaleX: 1,
- scaleY: 1,
- rot: 0,
tint: {
r: 1,
g: 1,
a: 1
},
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
fakeDepth: false,
bboxFromRenderer: true
},
ink: {
- class: "com.bladecoder.engine.model.SpriteActor",
+ class: "SpriteActor",
id: "ink",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
@@ -3794,7 +4124,11 @@ scenes: {
id: "leave",
actions: [
{
- class: "com.bladecoder.engine.actions.LeaveAction",
+ class: "ShowInventory",
+ value: true
+ },
+ {
+ class: "Leave",
scene: "ink1",
init: true
}
@@ -3805,7 +4139,7 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.TextRenderer",
+ class: "TextRenderer",
text: "@menu.ink.text_",
fontName: "Ubuntu-M",
fontSize: 100,
@@ -3820,26 +4154,27 @@ scenes: {
a: 1
},
align: 8,
- orgAlign: 0
+ orgAlign: 0,
+ maxWidth: 0
},
- scaleX: 1,
- scaleY: 1,
- rot: 0,
tint: {
r: 1,
g: 1,
a: 1
},
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
fakeDepth: false,
bboxFromRenderer: true
},
- title: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "title",
+ inventory: {
+ class: "SpriteActor",
+ id: "inventory",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 291.47675,
- y: 906.1603
+ x: 393.7634,
+ y: 410.7918
},
visible: true,
refPoint: {},
@@ -3848,20 +4183,24 @@ scenes: {
id: "leave",
actions: [
{
- class: "com.bladecoder.engine.actions.LeaveAction",
+ class: "ShowInventory",
+ value: true
+ },
+ {
+ class: "Leave",
scene: "inventory",
init: true
}
]
}
},
- interaction: false,
+ interaction: true,
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.TextRenderer",
- text: "@menu.title.text_",
- fontName: "PaytoneOne",
+ class: "TextRenderer",
+ text: "@menu.inventory.text_",
+ fontName: "Ubuntu-M",
fontSize: 100,
borderWidth: 0,
borderColor: {
@@ -3874,26 +4213,27 @@ scenes: {
a: 1
},
align: 8,
- orgAlign: 0
+ orgAlign: 0,
+ maxWidth: 0
},
- scaleX: 1,
- scaleY: 1,
- rot: 0,
tint: {
+ r: 1,
g: 1,
- b: 0.2,
a: 1
},
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
fakeDepth: false,
bboxFromRenderer: true
},
- basic: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "basic",
+ parallax: {
+ class: "SpriteActor",
+ id: "parallax",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 291.93097,
- y: 633.7561
+ x: 357.49203,
+ y: 523.80634
},
visible: true,
refPoint: {},
@@ -3902,8 +4242,12 @@ scenes: {
id: "leave",
actions: [
{
- class: "com.bladecoder.engine.actions.LeaveAction",
- scene: "basic1",
+ class: "ShowInventory",
+ value: true
+ },
+ {
+ class: "Leave",
+ scene: "parallax",
init: true
}
]
@@ -3913,8 +4257,8 @@ scenes: {
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.TextRenderer",
- text: "@menu.basic.text_",
+ class: "TextRenderer",
+ text: "@menu.parallax.text",
fontName: "Ubuntu-M",
fontSize: 100,
borderWidth: 0,
@@ -3928,26 +4272,27 @@ scenes: {
a: 1
},
align: 8,
- orgAlign: 0
+ orgAlign: 0,
+ maxWidth: 0
},
- scaleX: 1,
- scaleY: 1,
- rot: 0,
tint: {
r: 1,
g: 1,
a: 1
},
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
fakeDepth: false,
bboxFromRenderer: true
},
- inventory: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "inventory",
+ title: {
+ class: "SpriteActor",
+ id: "title",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 393.7634,
- y: 410.7918
+ x: 291.47675,
+ y: 906.1603
},
visible: true,
refPoint: {},
@@ -3956,20 +4301,20 @@ scenes: {
id: "leave",
actions: [
{
- class: "com.bladecoder.engine.actions.LeaveAction",
+ class: "Leave",
scene: "inventory",
init: true
}
]
}
},
- interaction: true,
+ interaction: false,
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.TextRenderer",
- text: "@menu.inventory.text_",
- fontName: "Ubuntu-M",
+ class: "TextRenderer",
+ text: "@menu.title.text_",
+ fontName: "PaytoneOne",
fontSize: 100,
borderWidth: 0,
borderColor: {
@@ -3982,16 +4327,17 @@ scenes: {
a: 1
},
align: 8,
- orgAlign: 0
+ orgAlign: 0,
+ maxWidth: 0
},
- scaleX: 1,
- scaleY: 1,
- rot: 0,
tint: {
- r: 1,
g: 1,
+ b: 0.2,
a: 1
},
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
fakeDepth: false,
bboxFromRenderer: true
}
@@ -4002,211 +4348,304 @@ scenes: {
id: "init",
actions: [
{
- class: "com.bladecoder.engine.actions.ScreenPositionAction",
+ class: "ScreenPosition",
actor: "title",
position: "0.0,-200.0",
anchor: "TOP"
+ },
+ {
+ class: "ShowInventory",
+ value: false
}
]
}
},
walkZone: null
},
- ink2: {
- id: "ink2",
+ parallax: {
+ id: "parallax",
layers: [
{
- name: "foreground"
+ name: "foreground",
+ parallax: 3.5
},
{
- name: "dynamic",
- dynamic: true
+ name: "dynamic"
},
{
- name: "background"
+ name: "background",
+ parallax: 0
}
],
actors: {
- PLAYER: {
- class: "com.bladecoder.engine.model.CharacterActor",
- id: "PLAYER",
+ background: {
+ class: "SpriteActor",
+ id: "background",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 720.8208,
- y: 90.79294
+ x: 1551
},
visible: true,
refPoint: {},
verbs: {},
interaction: false,
zIndex: 0,
+ layer: "background",
+ renderer: {
+ class: "AtlasRenderer",
+ fanims: {
+ background: {
+ class: "AtlasAnimationDesc",
+ id: "background",
+ source: "parallax",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true
+ }
+ },
+ initAnimation: "background",
+ orgAlign: 4
+ },
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
+ },
+ char: {
+ class: "CharacterActor",
+ id: "char",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 1793.2177,
+ y: 65.78964
+ },
+ visible: true,
+ refPoint: {},
+ verbs: {},
+ interaction: false,
+ zIndex: 1,
layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
+ "stand.right": {
+ class: "AtlasAnimationDesc",
+ id: "stand.right",
+ source: "char",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true
+ },
"walk.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "walk.right",
source: "char",
- duration: 0.7,
+ duration: 0.5,
animationType: "REPEAT",
count: -1,
preload: true
- },
- "stand.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "stand.right",
- source: "char",
+ }
+ },
+ initAnimation: "stand.right",
+ orgAlign: 4
+ },
+ scaleX: 0.3110584,
+ scaleY: 0.3110584,
+ rot: 0,
+ fakeDepth: true,
+ bboxFromRenderer: true,
+ walkingSpeed: 2000
+ },
+ foreground: {
+ class: "SpriteActor",
+ id: "foreground",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 177.10706
+ },
+ visible: true,
+ refPoint: {},
+ verbs: {},
+ interaction: false,
+ zIndex: 0,
+ layer: "foreground",
+ renderer: {
+ class: "AtlasRenderer",
+ fanims: {
+ foreground1: {
+ class: "AtlasAnimationDesc",
+ id: "foreground1",
+ source: "parallax",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true
+ }
+ },
+ initAnimation: "foreground1",
+ orgAlign: 4
+ },
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
+ },
+ foreground2: {
+ class: "SpriteActor",
+ id: "foreground2",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 3084.321
+ },
+ visible: true,
+ refPoint: {},
+ verbs: {},
+ interaction: false,
+ zIndex: 0,
+ layer: "foreground",
+ renderer: {
+ class: "AtlasRenderer",
+ fanims: {
+ foreground1: {
+ class: "AtlasAnimationDesc",
+ id: "foreground2",
+ source: "parallax",
duration: 1,
animationType: "NO_REPEAT",
count: -1,
preload: true
- },
- "talk.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "talk.right",
- source: "char",
- duration: 0.4,
- animationType: "REPEAT",
- count: -1,
- preload: true
}
},
- initAnimation: "stand.right",
- orgAlign: 0
+ initAnimation: "foreground1",
+ orgAlign: 4
},
- scaleX: 0.6228006,
- scaleY: 0.6228006,
+ scaleX: 1,
+ scaleY: 1,
rot: 0,
- fakeDepth: true,
- bboxFromRenderer: true,
- walkingSpeed: 1000
- },
- walkzone: {
- class: "com.bladecoder.engine.model.WalkZoneActor",
- id: "walkzone",
- bbox: [ 34.580566, 38.903107, 64.83856, 483.48502, 1850.839, 500.77533, 1885.4194, 30.257996 ],
- pos: {},
- visible: true
+ fakeDepth: false,
+ bboxFromRenderer: true
},
- GREEN: {
- class: "com.bladecoder.engine.model.CharacterActor",
- id: "GREEN",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ goto01: {
+ class: "InteractiveActor",
+ id: "goto01",
+ bbox: [ -69.81134, 53.333344, -68.80505, 182.89307, 34.591248, 181.88678, 46.666687, 58.364746 ],
pos: {
- x: 1222.1278,
- y: 90.329895
+ x: 801.9821,
+ y: 207.3566
},
visible: true,
- refPoint: {
- x: -493.8849,
- y: 8.514374
- },
+ refPoint: {},
verbs: {
- talkto: {
- id: "talkto",
+ leave: {
+ id: "leave",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.GotoAction",
- actor: "$PLAYER",
- target: "GREEN",
+ class: "Goto",
+ actor: "char",
+ target: "goto01",
ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "$PLAYER#stand.right",
- count: -1,
- wait: false,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.InkRunAction",
- path: "scene2.d1",
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
+ class: "Leave",
+ scene: "basic1",
+ init: true
}
]
}
},
interaction: true,
zIndex: 0,
+ layer: "foreground"
+ },
+ middleground: {
+ class: "SpriteActor",
+ id: "middleground",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 1554
+ },
+ visible: true,
+ refPoint: {},
+ verbs: {},
+ interaction: false,
+ zIndex: -1,
layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- "walk.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "walk.right",
- source: "char",
- duration: 0.7,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
- "stand.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "stand.right",
- source: "char",
+ background: {
+ class: "AtlasAnimationDesc",
+ id: "middleground",
+ source: "parallax",
duration: 1,
animationType: "NO_REPEAT",
count: -1,
preload: true
- },
- "talk.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "talk.right",
- source: "char",
- duration: 0.4,
- animationType: "REPEAT",
- count: -1,
- preload: true
}
},
- initAnimation: "stand.left",
- orgAlign: 0
+ initAnimation: "background",
+ orgAlign: 4
},
- scaleX: 0.6233493,
- scaleY: 0.6233493,
+ scaleX: 1,
+ scaleY: 1,
rot: 0,
- tint: {
- g: 1,
- a: 1
- },
- fakeDepth: true,
- bboxFromRenderer: true,
- walkingSpeed: 1000
+ fakeDepth: false,
+ bboxFromRenderer: true
},
- target: {
- class: "com.bladecoder.engine.model.AnchorActor",
- id: "target",
- bbox: [],
+ particle3: {
+ class: "SpriteActor",
+ id: "particle3",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 734.9283,
- y: 104.98978
+ x: -26.70813,
+ y: 1129.6176
+ },
+ visible: true,
+ refPoint: {},
+ verbs: {},
+ interaction: true,
+ zIndex: 1,
+ layer: "dynamic",
+ renderer: {
+ class: "ParticleRenderer",
+ atlasName: "particles",
+ particleName: "rain",
+ orgAlign: 0
},
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
+ },
+ walkzone: {
+ class: "WalkZoneActor",
+ id: "walkzone",
+ bbox: [ 18.73169, 37.46341, 37.46338, 209.79524, 3008.312, 247.25824, 3064.5073, 52.448776 ],
+ pos: {},
visible: true
}
},
musicDesc: null,
depthVector: {
- x: 616.2952,
- y: -227.47778
+ x: 344.45578,
+ y: -551.40857
+ },
+ sceneSize: {
+ x: 3103,
+ y: 1080
},
verbs: {},
- player: "PLAYER",
+ player: "char",
walkZone: "walkzone"
},
- "basic-prop-states": {
- id: "basic-prop-states",
+ "test-char-images": {
+ id: "test-char-images",
layers: [
{
name: "foreground"
@@ -4220,362 +4659,318 @@ scenes: {
}
],
actors: {
- ko: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "ko",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 956.2496,
- y: 477.18317
- },
- visible: false,
- refPoint: {},
- verbs: {},
- interaction: false,
- zIndex: 0,
- layer: "foreground",
- renderer: {
- class: "com.bladecoder.engine.model.TextRenderer",
- text: "@basic-prop-states.ko.text",
- fontName: "PaytoneOne",
- fontSize: 100,
- borderWidth: 0,
- borderColor: {
- a: 1
- },
- borderStraight: true,
- shadowOffsetX: 0,
- shadowOffsetY: 0,
- shadowColor: {
- a: 1
- },
- align: 8,
- orgAlign: 0
- },
- scaleX: 1,
- scaleY: 1,
- rot: 0,
- tint: {
- r: 1,
- b: 0.015686275,
- a: 1
- },
- fakeDepth: false,
- bboxFromRenderer: true
- },
- state: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "state",
+ Green: {
+ class: "CharacterActor",
+ id: "Green",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 978.9769,
- y: 198.59222
+ x: 1380.641,
+ y: 87.49176
},
visible: true,
- desc: "@basic-prop-states.state.desc_",
- refPoint: {},
+ refPoint: {
+ x: -641.4441,
+ y: -3.049347
+ },
verbs: {
- lookat: {
- id: "lookat",
+ option3: {
+ id: "option3",
actions: [
{
- class: "com.bladecoder.engine.actions.IfAttrAction",
- actor: "state",
- attr: "STATE",
- value: "BLUE",
- caID: "301582167"
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "$PLAYER",
- text: "@basic-prop-states.state.lookat.1.text",
+ text: "@test-char-images.Green.option13.0.text",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "301582167"
+ class: "Say",
+ actor: "Green",
+ text: "@test-char-images.Green.option13.1.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.IfAttrAction",
- actor: "state",
- attr: "STATE",
- value: "YELLOW",
- caID: "602667286"
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ option1: {
+ id: "option1",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "$PLAYER",
- text: "@basic-prop-states.state.lookat.4.text",
+ text: "@test-char-images.Green.option1.0.text",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "602667286"
+ class: "Say",
+ actor: "Green",
+ text: "@test-char-images.Green.option1.1.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: true
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ option2: {
+ id: "option2",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "$PLAYER",
- text: "@basic-prop-states.state.lookat.6.text",
+ text: "@test-char-images.Green.option12.0.text",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "602667286"
+ class: "Say",
+ actor: "Green",
+ text: "@test-char-images.Green.option12.1.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "301582167"
+ class: "Cutmode",
+ value: false
}
]
},
- pickup: {
- id: "pickup",
+ talkto: {
+ id: "talkto",
actions: [
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "state",
- state: "YELLOW"
+ class: "Goto",
+ actor: "$PLAYER",
+ target: "Green",
+ ignoreWalkZone: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "state",
- tint: "ffee00ff"
- }
- ]
- },
- "pickup.YELLOW": {
- id: "pickup",
- state: "YELLOW",
- actions: [
+ class: "Cutmode",
+ value: true
+ },
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "state",
- state: "BLUE"
+ class: "Talkto",
+ actor: "Green",
+ dialog: "d"
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "state",
- tint: "00f7ffff"
+ class: "Cutmode",
+ value: false
}
]
}
},
interaction: true,
zIndex: 0,
- layer: "foreground",
+ layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.TextRenderer",
- text: "@basic-prop-states.state.text_",
- fontName: "PaytoneOne",
- fontSize: 100,
- borderWidth: 0,
- borderColor: {
- a: 1
- },
- borderStraight: true,
- shadowOffsetX: 0,
- shadowOffsetY: 0,
- shadowColor: {
- a: 1
+ class: "AtlasRenderer",
+ fanims: {
+ "stand.right": {
+ class: "AtlasAnimationDesc",
+ id: "stand.right",
+ source: "char",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true
+ },
+ "talk.right": {
+ class: "AtlasAnimationDesc",
+ id: "talk.right",
+ source: "char",
+ duration: 0.4,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ },
+ "walk.right": {
+ class: "AtlasAnimationDesc",
+ id: "walk.right",
+ source: "char",
+ duration: 0.7,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ }
},
- align: 8,
- orgAlign: 0
+ initAnimation: "stand.left",
+ orgAlign: 4
},
- scaleX: 1,
- scaleY: 1,
+ tint: {
+ g: 1,
+ a: 1
+ },
+ scaleX: 0.4875236,
+ scaleY: 0.4875236,
rot: 0,
- fakeDepth: false,
- bboxFromRenderer: true
+ fakeDepth: true,
+ bboxFromRenderer: true,
+ dialogs: {
+ d: {
+ id: "d",
+ options: [
+ {
+ text: "@test-char-images.Green.d.0.text",
+ responseText: null,
+ verbId: "option1",
+ next: "this",
+ once: false,
+ soundId: null,
+ responseSoundId: null,
+ visible: true
+ },
+ {
+ text: "@test-char-images.Green.d.1.text",
+ responseText: null,
+ verbId: "option2",
+ next: "this",
+ once: false,
+ soundId: null,
+ responseSoundId: null,
+ visible: true
+ },
+ {
+ text: "@test-char-images.Green.d.2.text",
+ responseText: null,
+ verbId: "option3",
+ next: null,
+ once: false,
+ soundId: null,
+ responseSoundId: null,
+ visible: true
+ }
+ ]
+ }
+ },
+ walkingSpeed: 1000
},
- ok: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "ok",
+ Red: {
+ class: "CharacterActor",
+ id: "Red",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 956.2496,
- y: 477.18317
+ x: 718.86035,
+ y: 81.915375
},
- visible: false,
+ visible: true,
refPoint: {},
verbs: {},
interaction: false,
zIndex: 0,
- layer: "foreground",
+ layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.TextRenderer",
- text: "@basic-prop-states.ok.text__",
- fontName: "PaytoneOne",
- fontSize: 100,
- borderWidth: 0,
- borderColor: {
- a: 1
- },
- borderStraight: true,
- shadowOffsetX: 0,
- shadowOffsetY: 0,
- shadowColor: {
- a: 1
+ class: "AtlasRenderer",
+ fanims: {
+ "stand.right": {
+ class: "AtlasAnimationDesc",
+ id: "stand.right",
+ source: "char",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true
+ },
+ "talk.right": {
+ class: "AtlasAnimationDesc",
+ id: "talk.right",
+ source: "char",
+ duration: 0.4,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ },
+ "walk.right": {
+ class: "AtlasAnimationDesc",
+ id: "walk.right",
+ source: "char",
+ duration: 0.7,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ }
},
- align: 8,
- orgAlign: 0
+ initAnimation: "stand.right",
+ orgAlign: 4
},
- scaleX: 1,
- scaleY: 1,
- rot: 0,
tint: {
- r: 0.28235295,
- g: 1,
+ r: 1,
a: 1
},
- fakeDepth: false,
- bboxFromRenderer: true
+ scaleX: 0.49266466,
+ scaleY: 0.49266466,
+ rot: 0,
+ fakeDepth: true,
+ bboxFromRenderer: true,
+ walkingSpeed: 1000
+ },
+ walkzone: {
+ class: "WalkZoneActor",
+ id: "walkzone",
+ bbox: [ 34.580566, 38.903107, 64.83856, 483.48502, 1850.839, 500.77533, 1885.4194, 30.257996 ],
+ pos: {
+ x: -24.151001,
+ y: 4.0252075
+ },
+ visible: true
}
},
musicDesc: null,
+ depthVector: {
+ x: 616.2952,
+ y: -468.37732
+ },
verbs: {
init: {
id: "init",
actions: [
{
- class: "com.bladecoder.engine.actions.PropertyAction",
- prop: "TEST-PROP",
- value: "test"
- },
- {
- class: "com.bladecoder.engine.actions.IfPropertyAction",
- name: "TEST-PROP",
- value: "test",
- caID: "1751840606"
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1751840606"
- },
- {
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "ko",
- visible: true
- },
- {
- class: "com.bladecoder.engine.actions.CancelVerbAction"
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1751840606"
- },
- {
- class: "com.bladecoder.engine.actions.CommentAction",
- comment: "Property from the BladeEngine.properties file.",
- debug: false
- },
- {
- class: "com.bladecoder.engine.actions.IfPropertyAction",
- name: "title",
- value: "Blade Engine Adventure",
- caID: "1094711013"
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1094711013"
- },
- {
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "ko",
- visible: true
- },
- {
- class: "com.bladecoder.engine.actions.CancelVerbAction"
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1094711013"
- },
- {
- class: "com.bladecoder.engine.actions.CommentAction",
- comment: "PLATFORM property.",
- debug: false
- },
- {
- class: "com.bladecoder.engine.actions.IfPropertyAction",
- name: "PLATFORM",
- value: "Desktop",
- caID: "1143890192"
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "$PLAYER",
- text: "@basic-prop-states.init.18.text",
- type: "SUBTITLE",
- queue: false,
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1143890192"
- },
- {
- class: "com.bladecoder.engine.actions.IfPropertyAction",
- name: "PLATFORM",
- value: "Android",
- caID: "1726514584"
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "$PLAYER",
- text: "@basic-prop-states.init.20.text",
- type: "SUBTITLE",
- queue: false,
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1726514584"
- },
- {
- class: "com.bladecoder.engine.actions.IfPropertyAction",
- name: "PLATFORM",
- value: "iOS",
- caID: "363902178"
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "$PLAYER",
- text: "@basic-prop-states.init.23.text",
+ class: "Say",
+ actor: "Green",
+ text: "@test-char-images.init.1.text",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "363902178"
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "363902178"
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1726514584"
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "1143890192"
- },
- {
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "ok",
- visible: true
+ class: "Cutmode",
+ value: false
}
]
}
},
- walkZone: null
+ player: "Red",
+ walkZone: "walkzone"
}
},
initScene: "menu",
diff --git a/adventure-test-project/assets/model/00.properties b/test-prj/assets/model/00.properties
similarity index 83%
rename from adventure-test-project/assets/model/00.properties
rename to test-prj/assets/model/00.properties
index 3f8e120..7d09d53 100644
--- a/adventure-test-project/assets/model/00.properties
+++ b/test-prj/assets/model/00.properties
@@ -20,7 +20,6 @@
01.test_inventory.desc_=Test Inventory
01.ui-actor.leave.0.text=This is an UI actor!
01.ui-actor.leave.1.text=Walk to other scene to test if it stays!
-actor3d.init.0.text=This player is a 3d actor created with blender.\n\nAnimations are made with bones.\n\nIt has several adventages\: less memory and disk space usage, smooth animations and transitions, several camera angles with the same model and many more...
basic-prop-states.init.18.text=Running on Desktop.
basic-prop-states.init.20.text=Running on Android.
basic-prop-states.init.23.text=Running on iOS.
@@ -31,6 +30,8 @@ basic-prop-states.state.lookat.1.text=BLUE state.
basic-prop-states.state.lookat.4.text=YELLOW state.
basic-prop-states.state.lookat.6.text=NO state.
basic-prop-states.state.text_=Click to change test state
+basic1.ball.pickup.PICKED.0.text=Already picked!
+basic1.cube.pickup.1.text=Already picked!
ink1.example2.text=> Goto example 2
ink1.link.text=> Write with Ink tutorial
inventory.a0.desc_=a0
@@ -73,3 +74,13 @@ menu.ink.text_=>Ink
menu.inventory.text_=>Inventory
menu.parallax.text=>Parallax
menu.title.text_=TESTS
+test-char-images.Green.d.0.text=Option1.
+test-char-images.Green.d.1.text=Option2.
+test-char-images.Green.d.2.text=Exit option.
+test-char-images.Green.option1.0.text=This is the option 1.
+test-char-images.Green.option1.1.text=And this is my response.
+test-char-images.Green.option12.0.text=This is the option 2.
+test-char-images.Green.option12.1.text=And this is my response.
+test-char-images.Green.option13.0.text=Bye.
+test-char-images.Green.option13.1.text=Ciao.
+test-char-images.init.1.text=Hello, Red.
diff --git a/test-prj/assets/model/test-story.ink.json b/test-prj/assets/model/test-story.ink.json
new file mode 100644
index 0000000..69fd2f8
--- /dev/null
+++ b/test-prj/assets/model/test-story.ink.json
@@ -0,0 +1 @@
+{"inkVersion":19,"root":[["\n","\n","\n","ev","str","^> Scene 1","/str","/ev",{"*":"0.c-0","flg":4},"ev","str","^> Scene 2","/str","/ev",{"*":"0.c-1","flg":4},{"c-0":["\n",{"->":"scene1"},{"->":"0.g-0"},null],"c-1":["\n",{"->":"scene2"},{"->":"0.g-0"},null],"g-0":["done",null]}],"done",{"scene1":[{"->":".^.init"},{"init":[["^> Goto: actor=RED, target=target","\n","^> Animation: animation= GREEN.stand.left, wait=false","\n","^GREEN> Hi! This is a scene written with Ink!","\n","^GREEN> Ink is a narrative language developed by Inkle.","\n","^GREEN> Can you drive your game and story throught the Ink language?","\n",["ev",{"^->":"scene1.init.0.10.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-0","flg":2},{"s":["^RED> Yes, I can do everything with Ink.",{"->":"$r","var":true},null]}],["ev",{"^->":"scene1.init.0.11.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-1","flg":2},{"s":["^RED> I don't think so.",{"->":"$r","var":true},null]}],["ev",{"^->":"scene1.init.0.12.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-2","flg":2},{"s":["^RED> I know nothing about Ink.",{"->":"$r","var":true},null]}],{"c-0":["ev",{"^->":"scene1.init.0.c-0.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.10.s"},[{"#n":"$r2"}],"\n",{"->":".^.^.g-0"},null],"c-1":["ev",{"^->":"scene1.init.0.c-1.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.11.s"},[{"#n":"$r2"}],"\n",{"->":".^.^.g-0"},null],"c-2":["ev",{"^->":"scene1.init.0.c-2.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.12.s"},[{"#n":"$r2"}],"\n",{"->":".^.^.g-0"},null],"g-0":["^GREEN> Well, you did it!","\n","end",null]}],null],"green":[["^$PLAYER> Hi!","\n","^GREEN> I don't want to speak with you.","\n",["ev",{"^->":"scene1.green.0.4.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","str","^Why?","/str","/ev",{"*":".^.^.c-0","flg":6},{"s":["^$PLAYER > ",{"->":"$r","var":true},null]}],["ev",{"^->":"scene1.green.0.5.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-1","flg":2},{"s":["^$PLAYER > Ok. No problemo.",{"->":"$r","var":true},null]}],{"c-0":["ev",{"^->":"scene1.green.0.c-0.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.4.s"},[{"#n":"$r2"}],"^ You selected why.","\n","^GREEN> Because.","\n","^$PLAYER> Well. I don't understand, but ok.","\n","end",null],"c-1":["ev",{"^->":"scene1.green.0.c-1.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.5.s"},[{"#n":"$r2"}],"\n","end",null]}],null]}],"scene2":[{"->":".^.d1"},{"d1":[["^PLAYER> Hi!","\n","^PLAYER> How are you?","\n","^GREEN> Fine, thanks!","\n","^GREEN> Are you hungry?","\n",["ev",{"^->":"scene2.d1.0.8.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","str","^.","/str","/ev",{"*":".^.^.c-0","flg":6},{"s":["^PLAYER> No",{"->":"$r","var":true},null]}],["ev",{"^->":"scene2.d1.0.9.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-1","flg":2},{"s":["^PLAYER> Yes.",{"->":"$r","var":true},null]}],{"c-0":["ev",{"^->":"scene2.d1.0.c-0.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.8.s"},[{"#n":"$r2"}],"^, I I'm not.","\n","^GREEN> Ok, let me know when you want some food.","\n",{"->":".^.^.g-0"},null],"c-1":["ev",{"^->":"scene2.d1.0.c-1.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.9.s"},[{"#n":"$r2"}],"\n","^GREEN> Would you like a hamburger?","\n",[["ev",{"^->":"scene2.d1.0.c-1.9.0.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-0","flg":2},{"s":["^PLAYER> Yes.",{"->":"$r","var":true},null]}],["ev",{"^->":"scene2.d1.0.c-1.9.1.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":".^.^.c-1","flg":2},{"s":["^PLAYER> No.",{"->":"$r","var":true},null]}],{"c-0":["ev",{"^->":"scene2.d1.0.c-1.9.c-0.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.0.s"},[{"#n":"$r2"}],"\n","^GREEN> Maybe you are too fat, here you have a banana.","\n",{"->":".^.^.g-0"},null],"c-1":["ev",{"^->":"scene2.d1.0.c-1.9.c-1.$r2"},"/ev",{"temp=":"$r"},{"->":".^.^.1.s"},[{"#n":"$r2"}],"\n","^GREEN> Well, here you have a banana.","\n",{"->":".^.^.g-0"},null],"g-0":[{"->":".^.^.^.^.g-0"},null]}],null],"g-0":["^PLAYER> Bye.","\n","end",null]}],null]}],"multiflow":[{"->":".^.flow1"},{"flow1":["^> Goto: actor=GREEN, target=GREEN, pos=-800_0","\n","^> Animation: animation=GREEN.stand.right, wait=false","\n","^GREEN> I am the green character.","\n","^> Goto: actor=GREEN, target=GREEN, pos=800_0","\n","^> Animation: animation=GREEN.stand.left, wait=false","\n","^GREEN> This is the flow 1.","\n",{"->":".^"},null],"flow2":["^> Goto: actor=PLAYER, target=PLAYER, pos=800_0","\n","^> Animation: animation=PLAYER.stand.left, wait=false","\n","^PLAYER> I am the white character.","\n","^> Goto: actor=PLAYER, target=PLAYER, pos=-800_0","\n","^> Animation: animation=PLAYER.stand.right, wait=false","\n","^PLAYER> This is the flow 2.","\n",{"->":".^"},null]}]}],"listDefs":{}}
\ No newline at end of file
diff --git a/adventure-test-spine/assets/model/world b/test-prj/assets/model/world
similarity index 58%
rename from adventure-test-spine/assets/model/world
rename to test-prj/assets/model/world
index 2a2e25a..2c05f2b 100644
--- a/adventure-test-spine/assets/model/world
+++ b/test-prj/assets/model/world
@@ -7,15 +7,15 @@ verbs: {
id: "dialog",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.SayDialogAction",
+ class: "SayDialog",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
@@ -24,7 +24,7 @@ verbs: {
id: "use",
actions: [
{
- class: "com.bladecoder.engine.actions.LookAtAction",
+ class: "LookAt",
text: "@default.use.0.text",
wait: false
}
@@ -34,7 +34,7 @@ verbs: {
id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.LookAtAction",
+ class: "LookAt",
text: "@default.lookat.0.text",
wait: true
}
@@ -44,7 +44,7 @@ verbs: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.LookAtAction",
+ class: "LookAt",
text: "@default.pickup.0.text",
wait: true
}
diff --git a/adventure-test-project/assets/model/world.json b/test-prj/assets/model/world.json
similarity index 100%
rename from adventure-test-project/assets/model/world.json
rename to test-prj/assets/model/world.json
diff --git a/adventure-test-spine/assets/model/world.properties b/test-prj/assets/model/world.properties
similarity index 96%
rename from adventure-test-spine/assets/model/world.properties
rename to test-prj/assets/model/world.properties
index dfdad56..7f80a20 100644
--- a/adventure-test-spine/assets/model/world.properties
+++ b/test-prj/assets/model/world.properties
@@ -4,6 +4,7 @@ default.use.0.text=I don't know what to do with that.
ui.back=Back
ui.continue=Continue
ui.credits=Credits
+ui.gamesaved=Game Saved
ui.help=Help
ui.load=Load/Save
ui.new=New Game
diff --git a/adventure-test-project/assets/particles/bigFire b/test-prj/assets/particles/bigFire
similarity index 100%
rename from adventure-test-project/assets/particles/bigFire
rename to test-prj/assets/particles/bigFire
diff --git a/adventure-test-project/assets/particles/fire.png b/test-prj/assets/particles/fire.png
similarity index 100%
rename from adventure-test-project/assets/particles/fire.png
rename to test-prj/assets/particles/fire.png
diff --git a/adventure-test-project/assets/particles/firefly b/test-prj/assets/particles/firefly
similarity index 100%
rename from adventure-test-project/assets/particles/firefly
rename to test-prj/assets/particles/firefly
diff --git a/adventure-test-project/assets/particles/fireflyYellow b/test-prj/assets/particles/fireflyYellow
similarity index 100%
rename from adventure-test-project/assets/particles/fireflyYellow
rename to test-prj/assets/particles/fireflyYellow
diff --git a/adventure-test-project/assets/particles/glow.png b/test-prj/assets/particles/glow.png
similarity index 100%
rename from adventure-test-project/assets/particles/glow.png
rename to test-prj/assets/particles/glow.png
diff --git a/adventure-test-project/assets/particles/rain b/test-prj/assets/particles/rain
similarity index 100%
rename from adventure-test-project/assets/particles/rain
rename to test-prj/assets/particles/rain
diff --git a/adventure-test-project/assets/particles/rain2 b/test-prj/assets/particles/rain2
similarity index 100%
rename from adventure-test-project/assets/particles/rain2
rename to test-prj/assets/particles/rain2
diff --git a/adventure-test-project/assets/particles/rainDrop.png b/test-prj/assets/particles/rainDrop.png
similarity index 100%
rename from adventure-test-project/assets/particles/rainDrop.png
rename to test-prj/assets/particles/rainDrop.png
diff --git a/adventure-test-project/assets/ui/1/blade_logo.png b/test-prj/assets/ui/1/blade_logo.png
similarity index 100%
rename from adventure-test-project/assets/ui/1/blade_logo.png
rename to test-prj/assets/ui/1/blade_logo.png
diff --git a/adventure-test-project/assets/ui/1/helpDesktop.png b/test-prj/assets/ui/1/helpDesktop.png
similarity index 100%
rename from adventure-test-project/assets/ui/1/helpDesktop.png
rename to test-prj/assets/ui/1/helpDesktop.png
diff --git a/adventure-test-project/assets/ui/1/helpDesktop_es.png b/test-prj/assets/ui/1/helpDesktop_es.png
similarity index 100%
rename from adventure-test-project/assets/ui/1/helpDesktop_es.png
rename to test-prj/assets/ui/1/helpDesktop_es.png
diff --git a/adventure-test-project/assets/ui/1/helpPie.png b/test-prj/assets/ui/1/helpPie.png
similarity index 100%
rename from adventure-test-project/assets/ui/1/helpPie.png
rename to test-prj/assets/ui/1/helpPie.png
diff --git a/adventure-test-project/assets/ui/1/helpPie_es.png b/test-prj/assets/ui/1/helpPie_es.png
similarity index 100%
rename from adventure-test-project/assets/ui/1/helpPie_es.png
rename to test-prj/assets/ui/1/helpPie_es.png
diff --git a/adventure-test-project/assets/ui/1/libgdx_logo.png b/test-prj/assets/ui/1/libgdx_logo.png
similarity index 100%
rename from adventure-test-project/assets/ui/1/libgdx_logo.png
rename to test-prj/assets/ui/1/libgdx_logo.png
diff --git a/adventure-test-project/assets/ui/1/ui.atlas b/test-prj/assets/ui/1/ui.atlas
similarity index 100%
rename from adventure-test-project/assets/ui/1/ui.atlas
rename to test-prj/assets/ui/1/ui.atlas
diff --git a/adventure-test-project/assets/ui/1/ui.png b/test-prj/assets/ui/1/ui.png
similarity index 100%
rename from adventure-test-project/assets/ui/1/ui.png
rename to test-prj/assets/ui/1/ui.png
diff --git a/adventure-test-project/assets/ui/credits.txt b/test-prj/assets/ui/credits.txt
similarity index 100%
rename from adventure-test-project/assets/ui/credits.txt
rename to test-prj/assets/ui/credits.txt
diff --git a/adventure-test-project/assets/ui/fonts/ArchitectsDaughter.ttf b/test-prj/assets/ui/fonts/ArchitectsDaughter.ttf
similarity index 100%
rename from adventure-test-project/assets/ui/fonts/ArchitectsDaughter.ttf
rename to test-prj/assets/ui/fonts/ArchitectsDaughter.ttf
diff --git a/adventure-test-project/assets/ui/fonts/PaytoneOne.ttf b/test-prj/assets/ui/fonts/PaytoneOne.ttf
similarity index 100%
rename from adventure-test-project/assets/ui/fonts/PaytoneOne.ttf
rename to test-prj/assets/ui/fonts/PaytoneOne.ttf
diff --git a/adventure-test-project/assets/ui/fonts/Roboto-Black.ttf b/test-prj/assets/ui/fonts/Roboto-Black.ttf
similarity index 100%
rename from adventure-test-project/assets/ui/fonts/Roboto-Black.ttf
rename to test-prj/assets/ui/fonts/Roboto-Black.ttf
diff --git a/adventure-test-project/assets/ui/fonts/Roboto-Regular.ttf b/test-prj/assets/ui/fonts/Roboto-Regular.ttf
similarity index 100%
rename from adventure-test-project/assets/ui/fonts/Roboto-Regular.ttf
rename to test-prj/assets/ui/fonts/Roboto-Regular.ttf
diff --git a/adventure-test-project/assets/ui/fonts/Roboto-Thin.ttf b/test-prj/assets/ui/fonts/Roboto-Thin.ttf
similarity index 100%
rename from adventure-test-project/assets/ui/fonts/Roboto-Thin.ttf
rename to test-prj/assets/ui/fonts/Roboto-Thin.ttf
diff --git a/adventure-test-project/assets/ui/fonts/Ubuntu-M.ttf b/test-prj/assets/ui/fonts/Ubuntu-M.ttf
similarity index 100%
rename from adventure-test-project/assets/ui/fonts/Ubuntu-M.ttf
rename to test-prj/assets/ui/fonts/Ubuntu-M.ttf
diff --git a/adventure-test-project/assets/ui/ui.json b/test-prj/assets/ui/ui.json
similarity index 98%
rename from adventure-test-project/assets/ui/ui.json
rename to test-prj/assets/ui/ui.json
index 32b25b4..c26ba73 100644
--- a/adventure-test-project/assets/ui/ui.json
+++ b/test-prj/assets/ui/ui.json
@@ -130,6 +130,7 @@ com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
debug: { font: debug, fontColor: white},
title: { font: big-font, fontColor: white},
ui-dialog: { font: message-font, fontColor: white},
+ ui-text: { font: message-font, fontColor: white, background: black08}
},
diff --git a/test-prj/build.gradle b/test-prj/build.gradle
new file mode 100644
index 0000000..f17ca05
--- /dev/null
+++ b/test-prj/build.gradle
@@ -0,0 +1,20 @@
+buildscript {
+ repositories {
+ mavenCentral()
+ gradlePluginPortal()
+ google()
+ }
+ dependencies {
+ classpath "com.android.tools.build:gradle:$androidGradlePluginVersion"
+ }
+}
+
+subprojects {
+ repositories {
+ mavenCentral()
+ google()
+ gradlePluginPortal()
+ maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
+ maven { url "https://oss.sonatype.org/content/repositories/releases/" }
+ }
+}
diff --git a/test-prj/core/build.gradle b/test-prj/core/build.gradle
new file mode 100644
index 0000000..1fa06d0
--- /dev/null
+++ b/test-prj/core/build.gradle
@@ -0,0 +1,41 @@
+apply plugin: 'java'
+apply plugin: 'java-library'
+
+sourceCompatibility = 1.8
+targetCompatibility=1.8
+
+[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
+
+dependencies {
+ api "com.badlogicgames.gdx:gdx:$gdxVersion"
+ api "com.bladecoder.engine:blade-engine:$bladeEngineVersion"
+ implementation "com.bladecoder.ink:blade-ink:$bladeInkVersion"
+ implementation "org.minimalcode:minimalcode-beans:0.5.1"
+ implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
+ implementation "com.badlogicgames.gdx-controllers:gdx-controllers-core:$gdxControllersVersion"
+
+
+ if(project.hasProperty("spinePlugin") && project.spinePlugin.equals("true")) {
+ println "Using Spine Plugin..."
+ implementation "com.bladecoder.engine:blade-engine-spine-plugin:$bladeEngineVersion"
+ }
+}
+
+
+task setVersion(type: WriteProperties) {
+ def props = new Properties()
+ def propFile = project.file("../assets/BladeEngine.properties");
+ props.load(new FileReader(propFile))
+
+ props."version" = version
+ props."bladeEngineVersion" = bladeEngineVersion
+ props."gdxVersion" = gdxVersion
+ props."roboVMVersion" = roboVMVersion
+
+ setProperties(props);
+ setOutputFile(propFile);
+
+ doLast {
+ println "Set version info in versions.properties"
+ }
+}
diff --git a/test-prj/desktop/build.gradle b/test-prj/desktop/build.gradle
new file mode 100644
index 0000000..f2044ce
--- /dev/null
+++ b/test-prj/desktop/build.gradle
@@ -0,0 +1,73 @@
+apply plugin: 'java-library'
+apply plugin: 'application'
+
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
+
+sourceSets.main.resources.srcDirs += [rootProject.file('assets').absolutePath]
+mainClassName = "com.bladecoder.engine.DesktopLauncher"
+
+dependencies {
+ implementation project(":core")
+ implementation "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
+ implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
+ implementation "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
+ implementation "com.badlogicgames.gdx:gdx-lwjgl3-angle:$gdxVersion"
+ implementation "com.badlogicgames.gdx-controllers:gdx-controllers-desktop:$gdxControllersVersion"
+}
+
+def os = System.properties['os.name'].toLowerCase()
+
+run {
+ standardInput = System.in
+ ignoreExitValue = true
+
+ if (project.hasProperty("appArgs")) {
+ args Eval.me(appArgs)
+ }
+
+ if (os.contains('mac')) {
+ jvmArgs = ["-XstartOnFirstThread"]
+ }
+}
+
+jar {
+// sets the name of the .jar file this produces to the name of the game or app.
+ archiveBaseName.set(appName)
+// using 'lib' instead of the default 'libs' appears to be needed by jpackageimage.
+ destinationDirectory = file("$project.buildDir/lib")
+// the duplicatesStrategy matters starting in Gradle 7.0; this setting works.
+ duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
+ dependsOn configurations.runtimeClasspath
+ from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
+// these "exclude" lines remove some unnecessary duplicate files in the output JAR.
+ exclude('META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA')
+ dependencies {
+ exclude('META-INF/INDEX.LIST', 'META-INF/maven/**')
+ }
+// setting the manifest makes the JAR runnable.
+ manifest {
+ attributes 'Main-Class': project.mainClassName
+ }
+// this last step may help on some OSes that need extra instruction to make runnable JARs.
+ doLast {
+ file(archiveFile).setExecutable(true, false)
+ }
+}
+
+
+task dist(type: Jar) {
+ duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
+ manifest {
+ attributes 'Main-Class': project.mainClassName
+ }
+ dependsOn configurations.runtimeClasspath
+ from {
+ configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
+ }
+ with jar
+}
+
+dist.dependsOn classes
+dist.dependsOn ':core:jar'
+processResources.dependsOn ':core:setVersion'
diff --git a/test-prj/desktop/src/main/java/com/bladecoder/engine/DesktopLauncher.java b/test-prj/desktop/src/main/java/com/bladecoder/engine/DesktopLauncher.java
new file mode 100644
index 0000000..7573974
--- /dev/null
+++ b/test-prj/desktop/src/main/java/com/bladecoder/engine/DesktopLauncher.java
@@ -0,0 +1,182 @@
+package com.bladecoder.engine;
+
+import com.badlogic.gdx.Files.FileType;
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Graphics;
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window;
+import com.bladecoder.engine.ui.SceneScreen;
+import com.bladecoder.engine.ui.UI.Screens;
+import com.bladecoder.engine.util.Config;
+import org.lwjgl.glfw.GLFW;
+import org.lwjgl.system.Configuration;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+public class DesktopLauncher extends BladeEngine {
+
+ private static final int WINDOW_WIDTH = 1920 / 2;
+ private static final int WINDOW_HEIGHT = 1080 / 2;
+
+ private boolean fullscreen = true;
+ private Lwjgl3ApplicationConfiguration cfg = new Lwjgl3ApplicationConfiguration();
+
+ private float speed = 1.0f;
+
+ DesktopLauncher() {
+ Properties p = new Properties();
+
+
+ try {
+ InputStream s = DesktopLauncher.class.getResourceAsStream("/" + Config.PROPERTIES_FILENAME);
+ if(s!=null)
+ p.load(s);
+ } catch (IOException e) {
+ System.out.println("Could not load properties file.");
+ }
+
+ cfg.setTitle(p.getProperty(Config.TITLE_PROP, "Blade Engine Adventure") + " "
+ + p.getProperty(Config.VERSION_PROP, ""));
+
+ cfg.setResizable(true);
+ cfg.useVsync(true);
+ cfg.setOpenGLEmulation(Lwjgl3ApplicationConfiguration.GLEmulation.GL20, 0, 0);
+ }
+
+ public void run() {
+ List iconList = new ArrayList<>();
+
+ if (DesktopLauncher.class.getResource("/icons/icon128.png") != null)
+ iconList.add("icons/icon128.png");
+
+ if (DesktopLauncher.class.getResource("/icons/icon32.png") != null)
+ iconList.add("icons/icon32.png");
+
+ if (DesktopLauncher.class.getResource("/icons/icon16.png") != null)
+ iconList.add("icons/icon16.png");
+
+ cfg.setWindowIcon(FileType.Internal, iconList.toArray(new String[0]));
+
+ new Lwjgl3Application(this, cfg);
+ }
+
+ public void parseParams(String[] args) {
+ for (int i = 0; i < args.length; i++) {
+ String s = args[i];
+ if (s.equals("-t")) {
+ if (i + 1 < args.length) {
+ i++;
+ setTestMode(args[i]);
+ }
+ } else if (s.equals("-p")) {
+ if (i + 1 < args.length) {
+ i++;
+ setPlayMode(args[i]);
+ }
+ } else if (s.equals("-s")) {
+ if (i + 1 < args.length) {
+ i++;
+ speed = Float.parseFloat(args[i]);
+ }
+ } else if (s.equals("-chapter")) {
+ if (i + 1 < args.length) {
+ i++;
+ setChapter(args[i]);
+ }
+ } else if (s.equals("-f")) {
+ fullscreen = true;
+ } else if (s.equals("-d")) {
+ setDebugMode();
+ } else if (s.equals("-r")) {
+ setRestart();
+ } else if (s.equals("-res")) {
+ if (i + 1 < args.length) {
+ i++;
+ forceResolution(args[i]);
+ }
+ } else if (s.equals("-aspect")) {
+ if (i + 1 < args.length) {
+ i++;
+ String aspect = args[i];
+
+ if (aspect.equals("16:9")) {
+ cfg.setWindowedMode(WINDOW_WIDTH, WINDOW_WIDTH * 9 / 16);
+ } else if (aspect.equals("4:3")) {
+ cfg.setWindowedMode(WINDOW_WIDTH, WINDOW_WIDTH * 3 / 4);
+ } else if (aspect.equals("16:10") || aspect.equals("8:5")) {
+ cfg.setWindowedMode(WINDOW_WIDTH, WINDOW_WIDTH * 10 / 16);
+ }
+ }
+ } else if (s.equals("-w")) {
+ fullscreen = false;
+ } else if (s.equals("-l")) {
+ if (i + 1 < args.length) {
+ i++;
+ loadGameState(args[i]);
+ }
+ } else if (s.equals("-h")) {
+ usage();
+ } else if (s.equals("-opengl")) {
+ cfg.setOpenGLEmulation(Lwjgl3ApplicationConfiguration.GLEmulation.GL20, 0, 0);
+ } else if (s.equals("-angle")) {
+ cfg.setOpenGLEmulation(Lwjgl3ApplicationConfiguration.GLEmulation.ANGLE_GLES20, 0, 0);
+ } else {
+ if(i == 0 && !s.startsWith("-")) continue; // When embeded JRE the 0 parameter is the app name
+ System.out.println("Unrecognized parameter: " + s);
+ usage();
+ }
+ }
+
+ if(!fullscreen)
+ cfg.setWindowedMode(WINDOW_WIDTH, WINDOW_HEIGHT);
+ }
+
+ public void usage() {
+ System.out.println("Usage:\n"
+ + "-chapter chapter\tLoads the selected chapter\n"
+ + "-t scene_name\tStart test mode for the scene\n"
+ + "-p record_name\tPlay previusly recorded games\n"
+ + "-f\tSet fullscreen mode\n"
+ + "-w\tSet windowed mode\n"
+ + "-d\tShow debug messages\n"
+ + "-res width\tForce the resolution width\n"
+ + "-l game_state\tLoad the previusly saved game state\n"
+ + "-r\tRun the game from the begining\n"
+ + "-s speed\tSets the game speed\n"
+ + "-aspect aspect_ratio\tSets the specified screen aspect (16:9, 4:3, 16:10)\n");
+
+ System.exit(0);
+ }
+
+ @Override
+ public void create() {
+ if (fullscreen)
+ Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode());
+
+ hideCursor();
+
+ super.create();
+
+ if(getUI().getScreen(Screens.SCENE_SCREEN) instanceof SceneScreen)
+ ((SceneScreen) getUI().getScreen(Screens.SCENE_SCREEN)).setSpeed(speed);
+ }
+
+ private void hideCursor() {
+ Lwjgl3Window window = ((Lwjgl3Graphics) Gdx.graphics).getWindow();
+ GLFW.glfwSetInputMode(window.getWindowHandle(), GLFW.GLFW_CURSOR, GLFW.GLFW_CURSOR_HIDDEN);
+ }
+
+ public static void main(String[] args) {
+ // if(System.getProperty("os.name").contains("Mac"))
+ // Configuration.GLFW_LIBRARY_NAME.set("glfw_async");
+
+ DesktopLauncher game = new DesktopLauncher();
+ game.parseParams(args);
+ game.run();
+ }
+}
diff --git a/adventure-test-project/desktop/src/main/resources/icons/icon128.png b/test-prj/desktop/src/main/resources/icons/icon128.png
similarity index 100%
rename from adventure-test-project/desktop/src/main/resources/icons/icon128.png
rename to test-prj/desktop/src/main/resources/icons/icon128.png
diff --git a/adventure-test-project/desktop/src/main/resources/icons/icon16.png b/test-prj/desktop/src/main/resources/icons/icon16.png
similarity index 100%
rename from adventure-test-project/desktop/src/main/resources/icons/icon16.png
rename to test-prj/desktop/src/main/resources/icons/icon16.png
diff --git a/adventure-test-project/desktop/src/main/resources/icons/icon32.png b/test-prj/desktop/src/main/resources/icons/icon32.png
similarity index 100%
rename from adventure-test-project/desktop/src/main/resources/icons/icon32.png
rename to test-prj/desktop/src/main/resources/icons/icon32.png
diff --git a/test-prj/gradle.properties b/test-prj/gradle.properties
new file mode 100644
index 0000000..2540be4
--- /dev/null
+++ b/test-prj/gradle.properties
@@ -0,0 +1,13 @@
+android.injected.testOnly=false
+androidGradlePluginVersion=8.1.0
+appName=test-prj
+bladeEngineVersion=4.3.0
+bladeInkVersion=1.1.2
+gdxControllersVersion=2.2.3
+gdxVersion=1.12.0
+org.gradle.configureondemand=false
+org.gradle.daemon=true
+org.gradle.jvmargs=-Xms128m -Xmx1536m
+roboVMVersion=2.3.20
+spinePlugin=false
+version=19
diff --git a/adventure-test-project/gradle/wrapper/gradle-wrapper.jar b/test-prj/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from adventure-test-project/gradle/wrapper/gradle-wrapper.jar
rename to test-prj/gradle/wrapper/gradle-wrapper.jar
diff --git a/adventure-test-project/gradle/wrapper/gradle-wrapper.properties b/test-prj/gradle/wrapper/gradle-wrapper.properties
similarity index 91%
rename from adventure-test-project/gradle/wrapper/gradle-wrapper.properties
rename to test-prj/gradle/wrapper/gradle-wrapper.properties
index e0b3fb8..e411586 100644
--- a/adventure-test-project/gradle/wrapper/gradle-wrapper.properties
+++ b/test-prj/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/adventure-test-project/gradlew b/test-prj/gradlew
similarity index 100%
rename from adventure-test-project/gradlew
rename to test-prj/gradlew
diff --git a/adventure-test-project/gradlew.bat b/test-prj/gradlew.bat
similarity index 100%
rename from adventure-test-project/gradlew.bat
rename to test-prj/gradlew.bat
diff --git a/adventure-test-project/ink-src/compile.sh b/test-prj/ink-src/compile.sh
similarity index 100%
rename from adventure-test-project/ink-src/compile.sh
rename to test-prj/ink-src/compile.sh
diff --git a/test-prj/ink-src/multiflow.ink b/test-prj/ink-src/multiflow.ink
new file mode 100644
index 0000000..a1b1221
--- /dev/null
+++ b/test-prj/ink-src/multiflow.ink
@@ -0,0 +1,27 @@
+=== multiflow ===
+
+= flow1
+> Goto: actor=GREEN, target=GREEN, pos=-800_0
+> Animation: animation=GREEN.stand.right, wait=false
+
+GREEN> I am the green character.
+
+> Goto: actor=GREEN, target=GREEN, pos=800_0
+> Animation: animation=GREEN.stand.left, wait=false
+
+GREEN> This is the flow 1.
+
+-> flow1
+
+= flow2
+> Goto: actor=PLAYER, target=PLAYER, pos=800_0
+> Animation: animation=PLAYER.stand.left, wait=false
+
+PLAYER> I am the white character.
+
+> Goto: actor=PLAYER, target=PLAYER, pos=-800_0
+> Animation: animation=PLAYER.stand.right, wait=false
+
+PLAYER> This is the flow 2.
+
+-> flow2
diff --git a/adventure-test-project/ink-src/scene1.ink b/test-prj/ink-src/scene1.ink
similarity index 60%
rename from adventure-test-project/ink-src/scene1.ink
rename to test-prj/ink-src/scene1.ink
index d83119e..125a505 100644
--- a/adventure-test-project/ink-src/scene1.ink
+++ b/test-prj/ink-src/scene1.ink
@@ -9,9 +9,9 @@ GREEN> Ink is a narrative language developed by Inkle.
GREEN> Can you drive your game and story throught the Ink language?
-* RED> Yes, I can do everything with Ink.
-* RED> I don't think so.
-* RED> I know nothing about Ink.
++ RED> Yes, I can do everything with Ink.
++ RED> I don't think so.
++ RED> I know nothing about Ink.
- GREEN> Well, you did it!
@@ -23,13 +23,13 @@ GREEN> Can you drive your game and story throught the Ink language?
$PLAYER> Hi!
GREEN> I don't want to speak with you.
-*$PLAYER > Why?
-GREEN> Because.
-$PLAYER> Well. I don't understand, but ok.
--> END
++ $PLAYER > [Why?] You selected why.
+ GREEN> Because.
+ $PLAYER> Well. I don't understand, but ok.
+ -> END
-*$PLAYER > Ok. No problemo.
--> END
++ $PLAYER > Ok. No problemo.
+ -> END
diff --git a/adventure-test-project/ink-src/scene2.ink b/test-prj/ink-src/scene2.ink
similarity index 78%
rename from adventure-test-project/ink-src/scene2.ink
rename to test-prj/ink-src/scene2.ink
index 3ed692d..741280d 100644
--- a/adventure-test-project/ink-src/scene2.ink
+++ b/test-prj/ink-src/scene2.ink
@@ -9,15 +9,15 @@ GREEN> Fine, thanks!
GREEN> Are you hungry?
-* PLAYER> No[.], I don't.
++ PLAYER> No[.], I I'm not.
GREEN> Ok, let me know when you want some food.
-* PLAYER> Yes.
++ PLAYER> Yes.
GREEN> Would you like a hamburger?
- ** PLAYER> Yes.
+ ++ PLAYER> Yes.
GREEN> Maybe you are too fat, here you have a banana.
- ** PLAYER> No.
+ ++ PLAYER> No.
GREEN> Well, here you have a banana.
-
+ --
- PLAYER> Bye.
-> END
diff --git a/adventure-test-project/ink-src/test-story.ink b/test-prj/ink-src/test-story.ink
similarity index 88%
rename from adventure-test-project/ink-src/test-story.ink
rename to test-prj/ink-src/test-story.ink
index 3f12dee..5a1b069 100644
--- a/adventure-test-project/ink-src/test-story.ink
+++ b/test-prj/ink-src/test-story.ink
@@ -1,5 +1,6 @@
INCLUDE scene1.ink
INCLUDE scene2.ink
+INCLUDE multiflow.ink
// ---------------------- TEST MENU -------------------------------
diff --git a/test-prj/ios/Info.plist.xml b/test-prj/ios/Info.plist.xml
new file mode 100644
index 0000000..2c84040
--- /dev/null
+++ b/test-prj/ios/Info.plist.xml
@@ -0,0 +1,63 @@
+
+
+
+
+ UIRequiresFullScreen
+ yes
+ MinimumOSVersion
+ 9.0
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleDisplayName
+ ${app.name}
+ CFBundleExecutable
+ ${app.executable}
+ CFBundleIdentifier
+ ${app.id}
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ ${app.name}
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ ${app.version}
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ ${app.build}
+ LSRequiresIPhoneOS
+
+ UIViewControllerBasedStatusBarAppearance
+
+ UIStatusBarHidden
+
+ UIDeviceFamily
+
+ 1
+ 2
+
+ UIRequiredDeviceCapabilities
+
+
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ CFBundleIconName
+ AppIcon
+
+ GCSupportedGameControllers
+
+
+ ProfileName
+ ExtendedGamepad
+
+
+ GCSupportsControllerUserInteraction
+
+
+
diff --git a/test-prj/ios/build.gradle b/test-prj/ios/build.gradle
new file mode 100644
index 0000000..e3f7af0
--- /dev/null
+++ b/test-prj/ios/build.gradle
@@ -0,0 +1,38 @@
+buildscript {
+ repositories {
+ mavenCentral()
+ }
+ dependencies {
+ classpath "com.mobidevelop.robovm:robovm-gradle-plugin:$roboVMVersion"
+ }
+}
+
+apply plugin: 'java-library'
+apply plugin: 'robovm'
+
+[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
+
+ext {
+ mainClassName = "com.bladecoder.engine.IOSLauncher"
+}
+
+launchIPhoneSimulator.dependsOn build
+launchIPadSimulator.dependsOn build
+launchIOSDevice.dependsOn build
+createIPA.dependsOn build
+
+robovm {
+ archs = "thumbv7:arm64"
+}
+
+dependencies {
+ implementation project(':core')
+ implementation "com.mobidevelop.robovm:robovm-rt:$roboVMVersion"
+ implementation "com.mobidevelop.robovm:robovm-cocoatouch:$roboVMVersion"
+ implementation "com.badlogicgames.gdx:gdx-backend-robovm-metalangle:$gdxVersion"
+ implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios"
+ implementation "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-ios"
+ implementation "com.badlogicgames.gdx-controllers:gdx-controllers-ios:$gdxControllersVersion"
+}
diff --git a/adventure-test-project/ios/data/Default-1024w-1366h@2x~ipad.png b/test-prj/ios/data/Default-1024w-1366h@2x~ipad.png
similarity index 100%
rename from adventure-test-project/ios/data/Default-1024w-1366h@2x~ipad.png
rename to test-prj/ios/data/Default-1024w-1366h@2x~ipad.png
diff --git a/adventure-test-project/ios/data/Default-375w-667h@2x.png b/test-prj/ios/data/Default-375w-667h@2x.png
similarity index 100%
rename from adventure-test-project/ios/data/Default-375w-667h@2x.png
rename to test-prj/ios/data/Default-375w-667h@2x.png
diff --git a/adventure-test-project/ios/data/Default-414w-736h@3x.png b/test-prj/ios/data/Default-414w-736h@3x.png
similarity index 100%
rename from adventure-test-project/ios/data/Default-414w-736h@3x.png
rename to test-prj/ios/data/Default-414w-736h@3x.png
diff --git a/adventure-test-project/ios/data/Default-568h@2x.png b/test-prj/ios/data/Default-568h@2x.png
similarity index 100%
rename from adventure-test-project/ios/data/Default-568h@2x.png
rename to test-prj/ios/data/Default-568h@2x.png
diff --git a/adventure-test-project/ios/data/Default.png b/test-prj/ios/data/Default.png
similarity index 100%
rename from adventure-test-project/ios/data/Default.png
rename to test-prj/ios/data/Default.png
diff --git a/adventure-test-project/ios/data/Default@2x.png b/test-prj/ios/data/Default@2x.png
similarity index 100%
rename from adventure-test-project/ios/data/Default@2x.png
rename to test-prj/ios/data/Default@2x.png
diff --git a/adventure-test-project/ios/data/Default@2x~ipad.png b/test-prj/ios/data/Default@2x~ipad.png
similarity index 100%
rename from adventure-test-project/ios/data/Default@2x~ipad.png
rename to test-prj/ios/data/Default@2x~ipad.png
diff --git a/adventure-test-project/ios/data/Default~ipad.png b/test-prj/ios/data/Default~ipad.png
similarity index 100%
rename from adventure-test-project/ios/data/Default~ipad.png
rename to test-prj/ios/data/Default~ipad.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/Contents.json b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/Contents.json
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/Contents.json
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/app-store-icon-1024@1x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/app-store-icon-1024@1x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/app-store-icon-1024@1x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/app-store-icon-1024@1x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-app-icon-76@1x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-app-icon-76@1x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-app-icon-76@1x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-app-icon-76@1x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-app-icon-76@2x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-app-icon-76@2x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-app-icon-76@2x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-app-icon-76@2x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-notifications-icon-20@1x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-notifications-icon-20@1x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-notifications-icon-20@1x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-notifications-icon-20@1x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-notifications-icon-20@2x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-notifications-icon-20@2x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-notifications-icon-20@2x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-notifications-icon-20@2x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-pro-app-icon-83.5@2x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-pro-app-icon-83.5@2x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-pro-app-icon-83.5@2x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-pro-app-icon-83.5@2x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-settings-icon-29@1x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-settings-icon-29@1x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-settings-icon-29@1x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-settings-icon-29@1x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-settings-icon-29@2x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-settings-icon-29@2x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-settings-icon-29@2x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-settings-icon-29@2x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-spotlight-icon-40@1x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-spotlight-icon-40@1x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-spotlight-icon-40@1x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-spotlight-icon-40@1x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-spotlight-icon-40@2x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-spotlight-icon-40@2x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/ipad-spotlight-icon-40@2x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/ipad-spotlight-icon-40@2x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-app-icon-60@2x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-app-icon-60@2x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-app-icon-60@2x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-app-icon-60@2x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-app-icon-60@3x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-app-icon-60@3x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-app-icon-60@3x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-app-icon-60@3x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-notification-icon-20@2x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-notification-icon-20@2x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-notification-icon-20@2x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-notification-icon-20@2x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-notification-icon-20@3x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-notification-icon-20@3x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-notification-icon-20@3x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-notification-icon-20@3x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-icon-40@2x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-icon-40@2x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-icon-40@2x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-icon-40@2x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-icon-40@3x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-icon-40@3x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-icon-40@3x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-icon-40@3x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-settings-icon-29@2x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-settings-icon-29@2x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-settings-icon-29@2x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-settings-icon-29@2x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-settings-icon-29@3x.png b/test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-settings-icon-29@3x.png
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-settings-icon-29@3x.png
rename to test-prj/ios/data/Media.xcassets/AppIcon.appiconset/iphone-spotlight-settings-icon-29@3x.png
diff --git a/adventure-test-project/ios/data/Media.xcassets/Contents.json b/test-prj/ios/data/Media.xcassets/Contents.json
similarity index 100%
rename from adventure-test-project/ios/data/Media.xcassets/Contents.json
rename to test-prj/ios/data/Media.xcassets/Contents.json
diff --git a/adventure-test-project/ios/robovm.properties b/test-prj/ios/robovm.properties
similarity index 51%
rename from adventure-test-project/ios/robovm.properties
rename to test-prj/ios/robovm.properties
index 639be7d..1afbc0f 100644
--- a/adventure-test-project/ios/robovm.properties
+++ b/test-prj/ios/robovm.properties
@@ -1,6 +1,6 @@
app.version=1.0
app.id=com.bladecoder.advtest
-app.mainclass=com.bladecoder.advtest.IOSLauncher
+app.mainclass=com.bladecoder.engine.IOSLauncher
app.executable=IOSLauncher
app.build=1
-app.name=adventure-test-project
+app.name=test-prj
diff --git a/test-prj/ios/robovm.xml b/test-prj/ios/robovm.xml
new file mode 100644
index 0000000..8e322b4
--- /dev/null
+++ b/test-prj/ios/robovm.xml
@@ -0,0 +1,50 @@
+
+ ${app.executable}
+ ${app.mainclass}
+ ios
+ ios
+ Info.plist.xml
+
+
+ ../assets
+
+ **
+
+ true
+
+
+ data
+
+
+
+ com.bladecoder.engine.**
+ com.badlogic.gdx.scenes.scene2d.ui.*
+ com.badlogic.gdx.graphics.g3d.particles.**
+ com.android.okhttp.HttpHandler
+ com.android.okhttp.HttpsHandler
+ com.android.org.conscrypt.**
+ com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
+ com.android.org.bouncycastle.jcajce.provider.keystore.BC$Mappings
+ com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi
+ com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$Std
+ com.android.org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi
+ com.android.org.bouncycastle.crypto.digests.AndroidDigestFactoryOpenSSL
+ org.apache.harmony.security.provider.cert.DRLCertFactory
+ org.apache.harmony.security.provider.crypto.CryptoProvider
+ com.badlogic.gdx.controllers.IosControllerManager
+
+
+ z
+
+
+ UIKit
+
+ QuartzCore
+ CoreGraphics
+ OpenAL
+ AudioToolbox
+ AVFoundation
+ GameController
+
+
+
diff --git a/adventure-test-project/ios/src/main/java/com/bladecoder/advtest/IOSLauncher.java b/test-prj/ios/src/main/java/com/bladecoder/advtest/IOSLauncher.java
similarity index 100%
rename from adventure-test-project/ios/src/main/java/com/bladecoder/advtest/IOSLauncher.java
rename to test-prj/ios/src/main/java/com/bladecoder/advtest/IOSLauncher.java
diff --git a/adventure-test-project/raw/README.txt b/test-prj/raw/README.txt
similarity index 100%
rename from adventure-test-project/raw/README.txt
rename to test-prj/raw/README.txt
diff --git a/test-prj/raw/char-icons/Green.png b/test-prj/raw/char-icons/Green.png
new file mode 100644
index 0000000..9ff29a2
Binary files /dev/null and b/test-prj/raw/char-icons/Green.png differ
diff --git a/test-prj/raw/char-icons/Red.png b/test-prj/raw/char-icons/Red.png
new file mode 100644
index 0000000..b89793d
Binary files /dev/null and b/test-prj/raw/char-icons/Red.png differ
diff --git a/adventure-test-project/raw/char/pack.json b/test-prj/raw/char-icons/pack.json
similarity index 100%
rename from adventure-test-project/raw/char/pack.json
rename to test-prj/raw/char-icons/pack.json
diff --git a/adventure-test-project/raw/pack.json b/test-prj/raw/char/pack.json
similarity index 100%
rename from adventure-test-project/raw/pack.json
rename to test-prj/raw/char/pack.json
diff --git a/adventure-test-project/raw/char/stand.right.png b/test-prj/raw/char/stand.right.png
similarity index 100%
rename from adventure-test-project/raw/char/stand.right.png
rename to test-prj/raw/char/stand.right.png
diff --git a/adventure-test-project/raw/char/talk.right_0.png b/test-prj/raw/char/talk.right_0.png
similarity index 100%
rename from adventure-test-project/raw/char/talk.right_0.png
rename to test-prj/raw/char/talk.right_0.png
diff --git a/adventure-test-project/raw/char/talk.right_1.png b/test-prj/raw/char/talk.right_1.png
similarity index 100%
rename from adventure-test-project/raw/char/talk.right_1.png
rename to test-prj/raw/char/talk.right_1.png
diff --git a/adventure-test-project/raw/char/talk.right_2.png b/test-prj/raw/char/talk.right_2.png
similarity index 100%
rename from adventure-test-project/raw/char/talk.right_2.png
rename to test-prj/raw/char/talk.right_2.png
diff --git a/adventure-test-project/raw/char/walk.right_0.png b/test-prj/raw/char/walk.right_0.png
similarity index 100%
rename from adventure-test-project/raw/char/walk.right_0.png
rename to test-prj/raw/char/walk.right_0.png
diff --git a/adventure-test-project/raw/char/walk.right_1.png b/test-prj/raw/char/walk.right_1.png
similarity index 100%
rename from adventure-test-project/raw/char/walk.right_1.png
rename to test-prj/raw/char/walk.right_1.png
diff --git a/adventure-test-project/raw/char/walk.right_2.png b/test-prj/raw/char/walk.right_2.png
similarity index 100%
rename from adventure-test-project/raw/char/walk.right_2.png
rename to test-prj/raw/char/walk.right_2.png
diff --git a/adventure-test-project/raw/char/walk.right_3.png b/test-prj/raw/char/walk.right_3.png
similarity index 100%
rename from adventure-test-project/raw/char/walk.right_3.png
rename to test-prj/raw/char/walk.right_3.png
diff --git a/adventure-test-project/raw/char/walk.right_4.png b/test-prj/raw/char/walk.right_4.png
similarity index 100%
rename from adventure-test-project/raw/char/walk.right_4.png
rename to test-prj/raw/char/walk.right_4.png
diff --git a/adventure-test-project/raw/char/walk.right_5.png b/test-prj/raw/char/walk.right_5.png
similarity index 100%
rename from adventure-test-project/raw/char/walk.right_5.png
rename to test-prj/raw/char/walk.right_5.png
diff --git a/adventure-test-project/raw/char/walk.right_6.png b/test-prj/raw/char/walk.right_6.png
similarity index 100%
rename from adventure-test-project/raw/char/walk.right_6.png
rename to test-prj/raw/char/walk.right_6.png
diff --git a/adventure-test-project/raw/char/walk.right_7.png b/test-prj/raw/char/walk.right_7.png
similarity index 100%
rename from adventure-test-project/raw/char/walk.right_7.png
rename to test-prj/raw/char/walk.right_7.png
diff --git a/adventure-test-project/raw/char/walk.right_8.png b/test-prj/raw/char/walk.right_8.png
similarity index 100%
rename from adventure-test-project/raw/char/walk.right_8.png
rename to test-prj/raw/char/walk.right_8.png
diff --git a/adventure-test-project/raw/char/walk.right_9.png b/test-prj/raw/char/walk.right_9.png
similarity index 100%
rename from adventure-test-project/raw/char/walk.right_9.png
rename to test-prj/raw/char/walk.right_9.png
diff --git a/adventure-test-project/raw/drawings.svg b/test-prj/raw/drawings.svg
similarity index 100%
rename from adventure-test-project/raw/drawings.svg
rename to test-prj/raw/drawings.svg
diff --git a/adventure-test-project/raw/gen-ui-atlas.sh b/test-prj/raw/gen-ui-atlas.sh
similarity index 100%
rename from adventure-test-project/raw/gen-ui-atlas.sh
rename to test-prj/raw/gen-ui-atlas.sh
diff --git a/adventure-test-project/raw/gen.sh b/test-prj/raw/gen.sh
similarity index 100%
rename from adventure-test-project/raw/gen.sh
rename to test-prj/raw/gen.sh
diff --git a/adventure-test-project/raw/genall.sh b/test-prj/raw/genall.sh
similarity index 100%
rename from adventure-test-project/raw/genall.sh
rename to test-prj/raw/genall.sh
diff --git a/adventure-test-project/raw/parallax/pack.json b/test-prj/raw/pack.json
similarity index 100%
rename from adventure-test-project/raw/parallax/pack.json
rename to test-prj/raw/pack.json
diff --git a/adventure-test-project/raw/parallax.svg b/test-prj/raw/parallax.svg
similarity index 100%
rename from adventure-test-project/raw/parallax.svg
rename to test-prj/raw/parallax.svg
diff --git a/adventure-test-project/raw/parallax/background.png b/test-prj/raw/parallax/background.png
similarity index 100%
rename from adventure-test-project/raw/parallax/background.png
rename to test-prj/raw/parallax/background.png
diff --git a/adventure-test-project/raw/parallax/foreground1.png b/test-prj/raw/parallax/foreground1.png
similarity index 100%
rename from adventure-test-project/raw/parallax/foreground1.png
rename to test-prj/raw/parallax/foreground1.png
diff --git a/adventure-test-project/raw/parallax/foreground2.png b/test-prj/raw/parallax/foreground2.png
similarity index 100%
rename from adventure-test-project/raw/parallax/foreground2.png
rename to test-prj/raw/parallax/foreground2.png
diff --git a/adventure-test-project/raw/parallax/middleground.png b/test-prj/raw/parallax/middleground.png
similarity index 100%
rename from adventure-test-project/raw/parallax/middleground.png
rename to test-prj/raw/parallax/middleground.png
diff --git a/adventure-test-project/raw/particles/pack.json b/test-prj/raw/parallax/pack.json
similarity index 100%
rename from adventure-test-project/raw/particles/pack.json
rename to test-prj/raw/parallax/pack.json
diff --git a/adventure-test-project/raw/particles/fire.png b/test-prj/raw/particles/fire.png
similarity index 100%
rename from adventure-test-project/raw/particles/fire.png
rename to test-prj/raw/particles/fire.png
diff --git a/adventure-test-project/raw/particles/glow.png b/test-prj/raw/particles/glow.png
similarity index 100%
rename from adventure-test-project/raw/particles/glow.png
rename to test-prj/raw/particles/glow.png
diff --git a/adventure-test-project/raw/scene1/pack.json b/test-prj/raw/particles/pack.json
similarity index 100%
rename from adventure-test-project/raw/scene1/pack.json
rename to test-prj/raw/particles/pack.json
diff --git a/adventure-test-project/raw/particles/rainDrop.png b/test-prj/raw/particles/rainDrop.png
similarity index 100%
rename from adventure-test-project/raw/particles/rainDrop.png
rename to test-prj/raw/particles/rainDrop.png
diff --git a/adventure-test-project/raw/robie.blend b/test-prj/raw/robie.blend
similarity index 100%
rename from adventure-test-project/raw/robie.blend
rename to test-prj/raw/robie.blend
diff --git a/adventure-test-project/raw/scene1/ball.png b/test-prj/raw/scene1/ball.png
similarity index 100%
rename from adventure-test-project/raw/scene1/ball.png
rename to test-prj/raw/scene1/ball.png
diff --git a/adventure-test-project/raw/scene1/bg1.png b/test-prj/raw/scene1/bg1.png
similarity index 100%
rename from adventure-test-project/raw/scene1/bg1.png
rename to test-prj/raw/scene1/bg1.png
diff --git a/adventure-test-project/raw/scene1/cube.png b/test-prj/raw/scene1/cube.png
similarity index 100%
rename from adventure-test-project/raw/scene1/cube.png
rename to test-prj/raw/scene1/cube.png
diff --git a/adventure-test-project/raw/scene2/pack.json b/test-prj/raw/scene1/pack.json
similarity index 100%
rename from adventure-test-project/raw/scene2/pack.json
rename to test-prj/raw/scene1/pack.json
diff --git a/adventure-test-project/raw/scene2/bg2.png b/test-prj/raw/scene2/bg2.png
similarity index 100%
rename from adventure-test-project/raw/scene2/bg2.png
rename to test-prj/raw/scene2/bg2.png
diff --git a/adventure-test-project/raw/scene3/pack.json b/test-prj/raw/scene2/pack.json
similarity index 100%
rename from adventure-test-project/raw/scene3/pack.json
rename to test-prj/raw/scene2/pack.json
diff --git a/adventure-test-project/raw/scene3/bg3.png b/test-prj/raw/scene3/bg3.png
similarity index 100%
rename from adventure-test-project/raw/scene3/bg3.png
rename to test-prj/raw/scene3/bg3.png
diff --git a/adventure-test-project/raw/testbutton/pack.json b/test-prj/raw/scene3/pack.json
similarity index 100%
rename from adventure-test-project/raw/testbutton/pack.json
rename to test-prj/raw/scene3/pack.json
diff --git a/adventure-test-project/raw/testbutton/error.png b/test-prj/raw/testbutton/error.png
similarity index 100%
rename from adventure-test-project/raw/testbutton/error.png
rename to test-prj/raw/testbutton/error.png
diff --git a/adventure-test-project/raw/testbutton/go.png b/test-prj/raw/testbutton/go.png
similarity index 100%
rename from adventure-test-project/raw/testbutton/go.png
rename to test-prj/raw/testbutton/go.png
diff --git a/adventure-test-project/raw/testbutton/ok.png b/test-prj/raw/testbutton/ok.png
similarity index 100%
rename from adventure-test-project/raw/testbutton/ok.png
rename to test-prj/raw/testbutton/ok.png
diff --git a/test-prj/raw/testbutton/pack.json b/test-prj/raw/testbutton/pack.json
new file mode 100644
index 0000000..5887d45
--- /dev/null
+++ b/test-prj/raw/testbutton/pack.json
@@ -0,0 +1,26 @@
+{
+ pot: false,
+ paddingX: 2,
+ paddingY: 2,
+ duplicatePadding: true,
+ edgePadding: true,
+ rotation: false,
+ minWidth: 16,
+ minHeight: 16,
+ maxWidth: 4096,
+ maxHeight: 4096,
+ stripWhitespaceX: true,
+ stripWhitespaceY: true,
+ alphaThreshold: 0,
+ filterMin: Linear,
+ filterMag: Linear,
+ wrapX: ClampToEdge,
+ wrapY: ClampToEdge,
+ format: RGBA8888,
+ alias: true,
+ outputFormat: png,
+ jpegQuality: 0.9,
+ ignoreBlankImages: true,
+ fast: false,
+ debug: false,
+}
diff --git a/adventure-test-project/raw/ui/back.png b/test-prj/raw/ui/back.png
similarity index 100%
rename from adventure-test-project/raw/ui/back.png
rename to test-prj/raw/ui/back.png
diff --git a/adventure-test-project/raw/ui/border_rect.9.png b/test-prj/raw/ui/border_rect.9.png
similarity index 100%
rename from adventure-test-project/raw/ui/border_rect.9.png
rename to test-prj/raw/ui/border_rect.9.png
diff --git a/adventure-test-project/raw/ui/bubblepointer.png b/test-prj/raw/ui/bubblepointer.png
similarity index 100%
rename from adventure-test-project/raw/ui/bubblepointer.png
rename to test-prj/raw/ui/bubblepointer.png
diff --git a/adventure-test-project/raw/ui/credits.png b/test-prj/raw/ui/credits.png
similarity index 100%
rename from adventure-test-project/raw/ui/credits.png
rename to test-prj/raw/ui/credits.png
diff --git a/adventure-test-project/raw/ui/debug.png b/test-prj/raw/ui/debug.png
similarity index 100%
rename from adventure-test-project/raw/ui/debug.png
rename to test-prj/raw/ui/debug.png
diff --git a/adventure-test-project/raw/ui/delete.png b/test-prj/raw/ui/delete.png
similarity index 100%
rename from adventure-test-project/raw/ui/delete.png
rename to test-prj/raw/ui/delete.png
diff --git a/adventure-test-project/raw/ui/dialog_down.png b/test-prj/raw/ui/dialog_down.png
similarity index 100%
rename from adventure-test-project/raw/ui/dialog_down.png
rename to test-prj/raw/ui/dialog_down.png
diff --git a/adventure-test-project/raw/ui/dialog_up.png b/test-prj/raw/ui/dialog_up.png
similarity index 100%
rename from adventure-test-project/raw/ui/dialog_up.png
rename to test-prj/raw/ui/dialog_up.png
diff --git a/adventure-test-project/raw/ui/help.png b/test-prj/raw/ui/help.png
similarity index 100%
rename from adventure-test-project/raw/ui/help.png
rename to test-prj/raw/ui/help.png
diff --git a/adventure-test-project/raw/ui/hotspot.png b/test-prj/raw/ui/hotspot.png
similarity index 100%
rename from adventure-test-project/raw/ui/hotspot.png
rename to test-prj/raw/ui/hotspot.png
diff --git a/adventure-test-project/raw/ui/hotspotpointer_1.png b/test-prj/raw/ui/hotspotpointer_1.png
similarity index 100%
rename from adventure-test-project/raw/ui/hotspotpointer_1.png
rename to test-prj/raw/ui/hotspotpointer_1.png
diff --git a/adventure-test-project/raw/ui/hotspotpointer_2.png b/test-prj/raw/ui/hotspotpointer_2.png
similarity index 100%
rename from adventure-test-project/raw/ui/hotspotpointer_2.png
rename to test-prj/raw/ui/hotspotpointer_2.png
diff --git a/adventure-test-project/raw/ui/inv_down.png b/test-prj/raw/ui/inv_down.png
similarity index 100%
rename from adventure-test-project/raw/ui/inv_down.png
rename to test-prj/raw/ui/inv_down.png
diff --git a/adventure-test-project/raw/ui/inv_up.png b/test-prj/raw/ui/inv_up.png
similarity index 100%
rename from adventure-test-project/raw/ui/inv_up.png
rename to test-prj/raw/ui/inv_up.png
diff --git a/adventure-test-project/raw/ui/inventory.png b/test-prj/raw/ui/inventory.png
similarity index 100%
rename from adventure-test-project/raw/ui/inventory.png
rename to test-prj/raw/ui/inventory.png
diff --git a/adventure-test-project/raw/ui/leave.png b/test-prj/raw/ui/leave.png
similarity index 100%
rename from adventure-test-project/raw/ui/leave.png
rename to test-prj/raw/ui/leave.png
diff --git a/adventure-test-project/raw/ui/lookat.png b/test-prj/raw/ui/lookat.png
similarity index 100%
rename from adventure-test-project/raw/ui/lookat.png
rename to test-prj/raw/ui/lookat.png
diff --git a/adventure-test-project/raw/ui/menu.png b/test-prj/raw/ui/menu.png
similarity index 100%
rename from adventure-test-project/raw/ui/menu.png
rename to test-prj/raw/ui/menu.png
diff --git a/adventure-test-project/raw/ui/pack.json b/test-prj/raw/ui/pack.json
similarity index 100%
rename from adventure-test-project/raw/ui/pack.json
rename to test-prj/raw/ui/pack.json
diff --git a/adventure-test-project/raw/ui/pickup.png b/test-prj/raw/ui/pickup.png
similarity index 100%
rename from adventure-test-project/raw/ui/pickup.png
rename to test-prj/raw/ui/pickup.png
diff --git a/adventure-test-project/raw/ui/plus.png b/test-prj/raw/ui/plus.png
similarity index 100%
rename from adventure-test-project/raw/ui/plus.png
rename to test-prj/raw/ui/plus.png
diff --git a/adventure-test-project/raw/ui/pointer.png b/test-prj/raw/ui/pointer.png
similarity index 100%
rename from adventure-test-project/raw/ui/pointer.png
rename to test-prj/raw/ui/pointer.png
diff --git a/adventure-test-project/raw/ui/rect.9.png b/test-prj/raw/ui/rect.9.png
similarity index 100%
rename from adventure-test-project/raw/ui/rect.9.png
rename to test-prj/raw/ui/rect.9.png
diff --git a/adventure-test-project/raw/ui/talkto.png b/test-prj/raw/ui/talkto.png
similarity index 100%
rename from adventure-test-project/raw/ui/talkto.png
rename to test-prj/raw/ui/talkto.png
diff --git a/adventure-test-project/raw/ui/white_pixel.png b/test-prj/raw/ui/white_pixel.png
similarity index 100%
rename from adventure-test-project/raw/ui/white_pixel.png
rename to test-prj/raw/ui/white_pixel.png
diff --git a/adventure-test-project/screenshots/screenshots.scene0.png b/test-prj/screenshots/screenshots.scene0.png
similarity index 100%
rename from adventure-test-project/screenshots/screenshots.scene0.png
rename to test-prj/screenshots/screenshots.scene0.png
diff --git a/adventure-test-project/settings.gradle b/test-prj/settings.gradle
similarity index 100%
rename from adventure-test-project/settings.gradle
rename to test-prj/settings.gradle
diff --git a/adventure-test-spine/.gitignore b/test-spine/.gitignore
similarity index 100%
rename from adventure-test-spine/.gitignore
rename to test-spine/.gitignore
diff --git a/adventure-test-spine/android/AndroidManifest.xml b/test-spine/android/AndroidManifest.xml
similarity index 100%
rename from adventure-test-spine/android/AndroidManifest.xml
rename to test-spine/android/AndroidManifest.xml
diff --git a/adventure-test-spine/android/build.gradle b/test-spine/android/build.gradle
similarity index 100%
rename from adventure-test-spine/android/build.gradle
rename to test-spine/android/build.gradle
diff --git a/adventure-test-spine/android/ic_launcher-web.png b/test-spine/android/ic_launcher-web.png
similarity index 100%
rename from adventure-test-spine/android/ic_launcher-web.png
rename to test-spine/android/ic_launcher-web.png
diff --git a/adventure-test-spine/android/proguard-project.txt b/test-spine/android/proguard-project.txt
similarity index 100%
rename from adventure-test-spine/android/proguard-project.txt
rename to test-spine/android/proguard-project.txt
diff --git a/adventure-test-spine/android/project.properties b/test-spine/android/project.properties
similarity index 100%
rename from adventure-test-spine/android/project.properties
rename to test-spine/android/project.properties
diff --git a/adventure-test-spine/android/res/drawable-hdpi/ic_launcher.png b/test-spine/android/res/drawable-hdpi/ic_launcher.png
similarity index 100%
rename from adventure-test-spine/android/res/drawable-hdpi/ic_launcher.png
rename to test-spine/android/res/drawable-hdpi/ic_launcher.png
diff --git a/adventure-test-spine/android/res/drawable-mdpi/ic_launcher.png b/test-spine/android/res/drawable-mdpi/ic_launcher.png
similarity index 100%
rename from adventure-test-spine/android/res/drawable-mdpi/ic_launcher.png
rename to test-spine/android/res/drawable-mdpi/ic_launcher.png
diff --git a/adventure-test-spine/android/res/drawable-xhdpi/ic_launcher.png b/test-spine/android/res/drawable-xhdpi/ic_launcher.png
similarity index 100%
rename from adventure-test-spine/android/res/drawable-xhdpi/ic_launcher.png
rename to test-spine/android/res/drawable-xhdpi/ic_launcher.png
diff --git a/adventure-test-spine/android/res/drawable-xxhdpi/ic_launcher.png b/test-spine/android/res/drawable-xxhdpi/ic_launcher.png
similarity index 100%
rename from adventure-test-spine/android/res/drawable-xxhdpi/ic_launcher.png
rename to test-spine/android/res/drawable-xxhdpi/ic_launcher.png
diff --git a/adventure-test-spine/android/res/values/strings.xml b/test-spine/android/res/values/strings.xml
similarity index 100%
rename from adventure-test-spine/android/res/values/strings.xml
rename to test-spine/android/res/values/strings.xml
diff --git a/adventure-test-spine/android/res/values/styles.xml b/test-spine/android/res/values/styles.xml
similarity index 100%
rename from adventure-test-spine/android/res/values/styles.xml
rename to test-spine/android/res/values/styles.xml
diff --git a/adventure-test-spine/android/src/main/java/com/bladecoder/advtestspine/android/AndroidLauncher.java b/test-spine/android/src/main/java/com/bladecoder/advtestspine/android/AndroidLauncher.java
similarity index 100%
rename from adventure-test-spine/android/src/main/java/com/bladecoder/advtestspine/android/AndroidLauncher.java
rename to test-spine/android/src/main/java/com/bladecoder/advtestspine/android/AndroidLauncher.java
diff --git a/adventure-test-spine/assets/BladeEngine.properties b/test-spine/assets/BladeEngine.properties
similarity index 73%
rename from adventure-test-spine/assets/BladeEngine.properties
rename to test-spine/assets/BladeEngine.properties
index 062829c..5b639b8 100644
--- a/adventure-test-spine/assets/BladeEngine.properties
+++ b/test-spine/assets/BladeEngine.properties
@@ -1,10 +1,10 @@
-bladeEngineVersion=3.2.2
+bladeEngineVersion=4.3.0
debug=true
-gdxVersion=1.9.10
+gdxVersion=1.12.0
inventory_pos=down
pie_mode.desktop=false
resolutions=1
-roboVMVersion=2.3.7
+roboVMVersion=2.3.20
scene_screen=com.bladecoder.engine.ui.retro.RetroSceneScreen
title=Spine Animation Test
version=unspecified
diff --git a/adventure-test-spine/assets/atlases/1/john_back.atlas b/test-spine/assets/atlases/1/john_back.atlas
similarity index 100%
rename from adventure-test-spine/assets/atlases/1/john_back.atlas
rename to test-spine/assets/atlases/1/john_back.atlas
diff --git a/adventure-test-spine/assets/atlases/1/john_back.png b/test-spine/assets/atlases/1/john_back.png
similarity index 100%
rename from adventure-test-spine/assets/atlases/1/john_back.png
rename to test-spine/assets/atlases/1/john_back.png
diff --git a/adventure-test-spine/assets/atlases/1/john_front.atlas b/test-spine/assets/atlases/1/john_front.atlas
similarity index 100%
rename from adventure-test-spine/assets/atlases/1/john_front.atlas
rename to test-spine/assets/atlases/1/john_front.atlas
diff --git a/adventure-test-spine/assets/atlases/1/john_front.png b/test-spine/assets/atlases/1/john_front.png
similarity index 100%
rename from adventure-test-spine/assets/atlases/1/john_front.png
rename to test-spine/assets/atlases/1/john_front.png
diff --git a/adventure-test-spine/assets/atlases/1/john_left.atlas b/test-spine/assets/atlases/1/john_left.atlas
similarity index 100%
rename from adventure-test-spine/assets/atlases/1/john_left.atlas
rename to test-spine/assets/atlases/1/john_left.atlas
diff --git a/adventure-test-spine/assets/atlases/1/john_left.png b/test-spine/assets/atlases/1/john_left.png
similarity index 100%
rename from adventure-test-spine/assets/atlases/1/john_left.png
rename to test-spine/assets/atlases/1/john_left.png
diff --git a/adventure-test-spine/assets/atlases/1/morgue.atlas b/test-spine/assets/atlases/1/morgue.atlas
similarity index 100%
rename from adventure-test-spine/assets/atlases/1/morgue.atlas
rename to test-spine/assets/atlases/1/morgue.atlas
diff --git a/adventure-test-spine/assets/atlases/1/morgue.png b/test-spine/assets/atlases/1/morgue.png
similarity index 100%
rename from adventure-test-spine/assets/atlases/1/morgue.png
rename to test-spine/assets/atlases/1/morgue.png
diff --git a/adventure-test-spine/assets/model/00.chapter.json b/test-spine/assets/model/00.chapter.json
similarity index 100%
rename from adventure-test-spine/assets/model/00.chapter.json
rename to test-spine/assets/model/00.chapter.json
diff --git a/adventure-test-spine/assets/model/00.properties b/test-spine/assets/model/00.properties
similarity index 100%
rename from adventure-test-spine/assets/model/00.properties
rename to test-spine/assets/model/00.properties
diff --git a/adventure-test-project/assets/model/world b/test-spine/assets/model/world
similarity index 100%
rename from adventure-test-project/assets/model/world
rename to test-spine/assets/model/world
diff --git a/adventure-test-project/assets/model/world.properties b/test-spine/assets/model/world.properties
similarity index 100%
rename from adventure-test-project/assets/model/world.properties
rename to test-spine/assets/model/world.properties
diff --git a/adventure-test-spine/assets/model/world_es.properties b/test-spine/assets/model/world_es.properties
similarity index 100%
rename from adventure-test-spine/assets/model/world_es.properties
rename to test-spine/assets/model/world_es.properties
diff --git a/test-spine/assets/spine/john_back.skel b/test-spine/assets/spine/john_back.skel
new file mode 100644
index 0000000..0d140ac
Binary files /dev/null and b/test-spine/assets/spine/john_back.skel differ
diff --git a/test-spine/assets/spine/john_front.skel b/test-spine/assets/spine/john_front.skel
new file mode 100644
index 0000000..06e76b4
Binary files /dev/null and b/test-spine/assets/spine/john_front.skel differ
diff --git a/test-spine/assets/spine/john_left.skel b/test-spine/assets/spine/john_left.skel
new file mode 100644
index 0000000..64bd5a4
Binary files /dev/null and b/test-spine/assets/spine/john_left.skel differ
diff --git a/adventure-test-spine/assets/ui/1/blade_logo.png b/test-spine/assets/ui/1/blade_logo.png
similarity index 100%
rename from adventure-test-spine/assets/ui/1/blade_logo.png
rename to test-spine/assets/ui/1/blade_logo.png
diff --git a/adventure-test-spine/assets/ui/1/helpDesktop.png b/test-spine/assets/ui/1/helpDesktop.png
similarity index 100%
rename from adventure-test-spine/assets/ui/1/helpDesktop.png
rename to test-spine/assets/ui/1/helpDesktop.png
diff --git a/adventure-test-spine/assets/ui/1/helpDesktop_es.png b/test-spine/assets/ui/1/helpDesktop_es.png
similarity index 100%
rename from adventure-test-spine/assets/ui/1/helpDesktop_es.png
rename to test-spine/assets/ui/1/helpDesktop_es.png
diff --git a/adventure-test-spine/assets/ui/1/helpPie.png b/test-spine/assets/ui/1/helpPie.png
similarity index 100%
rename from adventure-test-spine/assets/ui/1/helpPie.png
rename to test-spine/assets/ui/1/helpPie.png
diff --git a/adventure-test-spine/assets/ui/1/helpPie_es.png b/test-spine/assets/ui/1/helpPie_es.png
similarity index 100%
rename from adventure-test-spine/assets/ui/1/helpPie_es.png
rename to test-spine/assets/ui/1/helpPie_es.png
diff --git a/adventure-test-spine/assets/ui/1/libgdx_logo.png b/test-spine/assets/ui/1/libgdx_logo.png
similarity index 100%
rename from adventure-test-spine/assets/ui/1/libgdx_logo.png
rename to test-spine/assets/ui/1/libgdx_logo.png
diff --git a/adventure-test-spine/assets/ui/1/ui.atlas b/test-spine/assets/ui/1/ui.atlas
similarity index 100%
rename from adventure-test-spine/assets/ui/1/ui.atlas
rename to test-spine/assets/ui/1/ui.atlas
diff --git a/adventure-test-spine/assets/ui/1/ui.png b/test-spine/assets/ui/1/ui.png
similarity index 100%
rename from adventure-test-spine/assets/ui/1/ui.png
rename to test-spine/assets/ui/1/ui.png
diff --git a/adventure-test-spine/assets/ui/credits.txt b/test-spine/assets/ui/credits.txt
similarity index 100%
rename from adventure-test-spine/assets/ui/credits.txt
rename to test-spine/assets/ui/credits.txt
diff --git a/adventure-test-spine/assets/ui/fonts/ArchitectsDaughter.ttf b/test-spine/assets/ui/fonts/ArchitectsDaughter.ttf
similarity index 100%
rename from adventure-test-spine/assets/ui/fonts/ArchitectsDaughter.ttf
rename to test-spine/assets/ui/fonts/ArchitectsDaughter.ttf
diff --git a/adventure-test-spine/assets/ui/fonts/PaytoneOne.ttf b/test-spine/assets/ui/fonts/PaytoneOne.ttf
similarity index 100%
rename from adventure-test-spine/assets/ui/fonts/PaytoneOne.ttf
rename to test-spine/assets/ui/fonts/PaytoneOne.ttf
diff --git a/adventure-test-spine/assets/ui/fonts/Roboto-Black.ttf b/test-spine/assets/ui/fonts/Roboto-Black.ttf
similarity index 100%
rename from adventure-test-spine/assets/ui/fonts/Roboto-Black.ttf
rename to test-spine/assets/ui/fonts/Roboto-Black.ttf
diff --git a/adventure-test-spine/assets/ui/fonts/Roboto-Regular.ttf b/test-spine/assets/ui/fonts/Roboto-Regular.ttf
similarity index 100%
rename from adventure-test-spine/assets/ui/fonts/Roboto-Regular.ttf
rename to test-spine/assets/ui/fonts/Roboto-Regular.ttf
diff --git a/adventure-test-spine/assets/ui/fonts/Roboto-Thin.ttf b/test-spine/assets/ui/fonts/Roboto-Thin.ttf
similarity index 100%
rename from adventure-test-spine/assets/ui/fonts/Roboto-Thin.ttf
rename to test-spine/assets/ui/fonts/Roboto-Thin.ttf
diff --git a/adventure-test-spine/assets/ui/fonts/Ubuntu-M.ttf b/test-spine/assets/ui/fonts/Ubuntu-M.ttf
similarity index 100%
rename from adventure-test-spine/assets/ui/fonts/Ubuntu-M.ttf
rename to test-spine/assets/ui/fonts/Ubuntu-M.ttf
diff --git a/adventure-test-spine/assets/ui/ui.json b/test-spine/assets/ui/ui.json
similarity index 100%
rename from adventure-test-spine/assets/ui/ui.json
rename to test-spine/assets/ui/ui.json
diff --git a/adventure-test-spine/build.gradle b/test-spine/build.gradle
similarity index 100%
rename from adventure-test-spine/build.gradle
rename to test-spine/build.gradle
diff --git a/test-spine/core/build.gradle b/test-spine/core/build.gradle
new file mode 100644
index 0000000..3a8198a
--- /dev/null
+++ b/test-spine/core/build.gradle
@@ -0,0 +1,38 @@
+apply plugin: 'java'
+apply plugin: 'java-library'
+
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
+
+[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
+eclipse.project.name = appName + '-core'
+
+dependencies {
+ api "com.badlogicgames.gdx:gdx:$gdxVersion"
+ api "com.bladecoder.engine:blade-engine:$bladeEngineVersion"
+ implementation "com.bladecoder.ink:blade-ink:$bladeInkVersion"
+ implementation "org.minimalcode:minimalcode-beans:0.5.1"
+ implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
+ implementation "com.badlogicgames.gdx-controllers:gdx-controllers-core:$gdxControllersVersion"
+
+ implementation "com.bladecoder.engine:blade-engine-spine-plugin:$bladeEngineVersion"
+}
+
+
+task setVersion(type: WriteProperties) {
+ def props = new Properties()
+ def propFile = project.file("../assets/BladeEngine.properties");
+ props.load(new FileReader(propFile))
+
+ props."version" = version
+ props."bladeEngineVersion" = bladeEngineVersion
+ props."gdxVersion" = gdxVersion
+ props."roboVMVersion" = roboVMVersion
+
+ setProperties(props);
+ setOutputFile(propFile);
+
+ doLast {
+ println "Set version info in versions.properties"
+ }
+}
diff --git a/test-spine/desktop/build.gradle b/test-spine/desktop/build.gradle
new file mode 100644
index 0000000..6221abf
--- /dev/null
+++ b/test-spine/desktop/build.gradle
@@ -0,0 +1,76 @@
+apply plugin: 'java'
+apply plugin: 'java-library'
+apply plugin: 'application'
+
+sourceCompatibility = 1.8
+targetCompatibility=1.8
+
+sourceSets.main.resources.srcDirs += [ rootProject.file('assets').absolutePath ]
+mainClassName = "com.bladecoder.engine.DesktopLauncher"
+eclipse.project.name = appName + '-desktop'
+
+dependencies {
+ implementation project(":core")
+ implementation "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
+ implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
+ implementation "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
+ implementation "com.badlogicgames.gdx:gdx-lwjgl3-angle:$gdxVersion"
+ implementation "com.badlogicgames.gdx-controllers:gdx-controllers-desktop:$gdxControllersVersion"
+
+}
+
+jar {
+// sets the name of the .jar file this produces to the name of the game or app.
+ archiveBaseName.set(appName)
+// using 'lib' instead of the default 'libs' appears to be needed by jpackageimage.
+ destinationDirectory = file("$project.buildDir/lib")
+// the duplicatesStrategy matters starting in Gradle 7.0; this setting works.
+ duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
+ dependsOn configurations.runtimeClasspath
+ from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
+// these "exclude" lines remove some unnecessary duplicate files in the output JAR.
+ exclude('META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA')
+ dependencies {
+ exclude('META-INF/INDEX.LIST', 'META-INF/maven/**')
+ }
+// setting the manifest makes the JAR runnable.
+ manifest {
+ attributes 'Main-Class': project.mainClassName
+ }
+// this last step may help on some OSes that need extra instruction to make runnable JARs.
+ doLast {
+ file(archiveFile).setExecutable(true, false)
+ }
+}
+
+def os = System.properties['os.name'].toLowerCase()
+
+run {
+ standardInput = System.in
+ ignoreExitValue = true
+
+ if (project.hasProperty("appArgs")) {
+ args Eval.me(appArgs)
+ }
+
+ if (os.contains('mac')) {
+ jvmArgs = ["-XstartOnFirstThread"]
+ }
+}
+
+
+task dist(type: Jar) {
+ duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
+ manifest {
+ attributes 'Main-Class': project.mainClassName
+ }
+ dependsOn configurations.runtimeClasspath
+ from {
+ configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
+ }
+ with jar
+}
+
+dist.dependsOn classes
+dist.dependsOn ':core:jar'
+processResources.dependsOn ':core:setVersion'
diff --git a/test-spine/desktop/src/main/java/com/bladecoder/engine/DesktopLauncher.java b/test-spine/desktop/src/main/java/com/bladecoder/engine/DesktopLauncher.java
new file mode 100644
index 0000000..5d204bc
--- /dev/null
+++ b/test-spine/desktop/src/main/java/com/bladecoder/engine/DesktopLauncher.java
@@ -0,0 +1,185 @@
+package com.bladecoder.engine;
+
+import com.badlogic.gdx.Files.FileType;
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Graphics;
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window;
+import com.bladecoder.engine.ui.SceneScreen;
+import com.bladecoder.engine.ui.UI.Screens;
+import com.bladecoder.engine.util.Config;
+import org.lwjgl.glfw.GLFW;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+public class DesktopLauncher extends BladeEngine {
+
+ private static final int WINDOW_WIDTH = 1920 / 2;
+ private static final int WINDOW_HEIGHT = 1080 / 2;
+
+ private boolean fullscreen = true;
+ private final Lwjgl3ApplicationConfiguration cfg = new Lwjgl3ApplicationConfiguration();
+
+ private float speed = 1.0f;
+
+ DesktopLauncher() {
+ Properties p = new Properties();
+
+ try {
+ InputStream s = DesktopLauncher.class.getResourceAsStream("/" + Config.PROPERTIES_FILENAME);
+ if (s != null)
+ p.load(s);
+ } catch (IOException e) {
+ System.out.println("Could not load properties file.");
+ }
+
+ cfg.setTitle(p.getProperty(Config.TITLE_PROP, "Blade Engine Adventure") + " "
+ + p.getProperty(Config.VERSION_PROP, ""));
+
+ cfg.setResizable(true);
+ cfg.useVsync(true);
+ }
+
+ public void run() {
+ List iconList = new ArrayList<>();
+
+ if (DesktopLauncher.class.getResource("/icons/icon128.png") != null)
+ iconList.add("icons/icon128.png");
+
+ if (DesktopLauncher.class.getResource("/icons/icon32.png") != null)
+ iconList.add("icons/icon32.png");
+
+ if (DesktopLauncher.class.getResource("/icons/icon16.png") != null)
+ iconList.add("icons/icon16.png");
+
+ cfg.setWindowIcon(FileType.Internal, iconList.toArray(new String[0]));
+ cfg.setOpenGLEmulation(Lwjgl3ApplicationConfiguration.GLEmulation.GL20, 0, 0);
+
+ new Lwjgl3Application(this, cfg);
+ }
+
+ public void parseParams(String[] args) {
+ for (int i = 0; i < args.length; i++) {
+ String s = args[i];
+ if (s.equals("-t")) {
+ if (i + 1 < args.length) {
+ i++;
+ setTestMode(args[i]);
+ }
+ } else if (s.equals("-p")) {
+ if (i + 1 < args.length) {
+ i++;
+ setPlayMode(args[i]);
+ }
+ } else if (s.equals("-s")) {
+ if (i + 1 < args.length) {
+ i++;
+ speed = Float.parseFloat(args[i]);
+ }
+ } else if (s.equals("-chapter")) {
+ if (i + 1 < args.length) {
+ i++;
+ setChapter(args[i]);
+ }
+ } else if (s.equals("-f")) {
+ fullscreen = true;
+ } else if (s.equals("-d")) {
+ setDebugMode();
+ } else if (s.equals("-r")) {
+ setRestart();
+ } else if (s.equals("-res")) {
+ if (i + 1 < args.length) {
+ i++;
+ forceResolution(args[i]);
+ }
+ } else if (s.equals("-aspect")) {
+ if (i + 1 < args.length) {
+ i++;
+ String aspect = args[i];
+
+ if (aspect.equals("16:9")) {
+ cfg.setWindowedMode(WINDOW_WIDTH, WINDOW_WIDTH * 9 / 16);
+ } else if (aspect.equals("4:3")) {
+ cfg.setWindowedMode(WINDOW_WIDTH, WINDOW_WIDTH * 3 / 4);
+ } else if (aspect.equals("16:10") || aspect.equals("8:5")) {
+ cfg.setWindowedMode(WINDOW_WIDTH, WINDOW_WIDTH * 10 / 16);
+ }
+ }
+ } else if (s.equals("-w")) {
+ fullscreen = false;
+ } else if (s.equals("-l")) {
+ if (i + 1 < args.length) {
+ i++;
+ loadGameState(args[i]);
+ }
+ } else if (s.equals("-h")) {
+ usage();
+ } else if (s.equals("-opengl")) {
+ cfg.setOpenGLEmulation(Lwjgl3ApplicationConfiguration.GLEmulation.GL20, 0, 0);
+ } else if (s.equals("-angle")) {
+ cfg.setOpenGLEmulation(Lwjgl3ApplicationConfiguration.GLEmulation.ANGLE_GLES20, 0, 0);
+ } else {
+ if (i == 0 && !s.startsWith("-"))
+ continue; // When embeded JRE the 0 parameter is the app name
+ System.out.println("Unrecognized parameter: " + s);
+ usage();
+ }
+ }
+
+ if (!fullscreen)
+ cfg.setWindowedMode(WINDOW_WIDTH, WINDOW_HEIGHT);
+
+ }
+
+ public void usage() {
+ System.out.println(
+ "Usage:\n"
+ + "-chapter chapter\tLoads the selected chapter\n"
+ + "-t scene_name\tStart test mode for the scene\n"
+ + "-p record_name\tPlay previusly recorded games\n"
+ + "-f\tSet fullscreen mode\n"
+ + "-w\tSet windowed mode\n"
+ + "-d\tShow debug messages\n"
+ + "-res width\tForce the resolution width\n"
+ + "-l game_state\tLoad the previusly saved game state\n"
+ + "-r\tRun the game from the begining\n"
+ + "-s speed\tSets the game speed\n"
+ + "-aspect aspect_ratio\tSets the specified screen aspect (16:9, 4:3, 16:10)\n");
+
+ System.exit(0);
+ }
+
+ @Override
+ public void create() {
+ if (fullscreen)
+ Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode());
+
+ hideCursor();
+
+ super.create();
+
+ if (getUI().getScreen(Screens.SCENE_SCREEN) instanceof SceneScreen)
+ ((SceneScreen) getUI().getScreen(Screens.SCENE_SCREEN)).setSpeed(speed);
+ }
+
+ private void hideCursor() {
+ Lwjgl3Window window = ((Lwjgl3Graphics) Gdx.graphics).getWindow();
+ GLFW.glfwSetInputMode(window.getWindowHandle(), GLFW.GLFW_CURSOR, GLFW.GLFW_CURSOR_HIDDEN);
+ }
+
+ public static void main(String[] args) {
+// if (SharedLibraryLoader.isMac && !"1".equals(System.getenv("JAVA_STARTED_ON_FIRST_THREAD_" + LibC.getpid()))) {
+// System.out.println("MacOs detected. Running in async mode.");
+// Configuration.GLFW_LIBRARY_NAME.set("glfw_async");
+// }
+
+ DesktopLauncher game = new DesktopLauncher();
+ game.parseParams(args);
+ game.run();
+ }
+}
diff --git a/adventure-test-spine/desktop/src/main/java/icons/icon128.png b/test-spine/desktop/src/main/java/icons/icon128.png
similarity index 100%
rename from adventure-test-spine/desktop/src/main/java/icons/icon128.png
rename to test-spine/desktop/src/main/java/icons/icon128.png
diff --git a/adventure-test-spine/desktop/src/main/java/icons/icon16.png b/test-spine/desktop/src/main/java/icons/icon16.png
similarity index 100%
rename from adventure-test-spine/desktop/src/main/java/icons/icon16.png
rename to test-spine/desktop/src/main/java/icons/icon16.png
diff --git a/adventure-test-spine/desktop/src/main/java/icons/icon32.png b/test-spine/desktop/src/main/java/icons/icon32.png
similarity index 100%
rename from adventure-test-spine/desktop/src/main/java/icons/icon32.png
rename to test-spine/desktop/src/main/java/icons/icon32.png
diff --git a/test-spine/gradle.properties b/test-spine/gradle.properties
new file mode 100644
index 0000000..7a41eba
--- /dev/null
+++ b/test-spine/gradle.properties
@@ -0,0 +1,13 @@
+android.injected.testOnly=false
+androidGradlePluginVersion=8.1.0
+appName=adventure-test-spine
+bladeEngineVersion=4.3.0
+bladeInkVersion=1.1.2
+gdxControllersVersion=2.2.3
+gdxVersion=1.12.0
+org.gradle.configureondemand=false
+org.gradle.daemon=true
+org.gradle.jvmargs=-Xms128m -Xmx1500m
+roboVMGradlePluginVersion=2.3.12
+roboVMVersion=2.3.20
+spinePlugin=true
diff --git a/adventure-test-spine/gradle/wrapper/gradle-wrapper.jar b/test-spine/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from adventure-test-spine/gradle/wrapper/gradle-wrapper.jar
rename to test-spine/gradle/wrapper/gradle-wrapper.jar
diff --git a/adventure-test-spine/gradle/wrapper/gradle-wrapper.properties b/test-spine/gradle/wrapper/gradle-wrapper.properties
similarity index 91%
rename from adventure-test-spine/gradle/wrapper/gradle-wrapper.properties
rename to test-spine/gradle/wrapper/gradle-wrapper.properties
index e0b3fb8..e411586 100644
--- a/adventure-test-spine/gradle/wrapper/gradle-wrapper.properties
+++ b/test-spine/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/adventure-test-spine/gradlew b/test-spine/gradlew
similarity index 100%
rename from adventure-test-spine/gradlew
rename to test-spine/gradlew
diff --git a/adventure-test-spine/gradlew.bat b/test-spine/gradlew.bat
similarity index 100%
rename from adventure-test-spine/gradlew.bat
rename to test-spine/gradlew.bat
diff --git a/adventure-test-spine/images-raw/README.txt b/test-spine/images-raw/README.txt
similarity index 100%
rename from adventure-test-spine/images-raw/README.txt
rename to test-spine/images-raw/README.txt
diff --git a/adventure-test-spine/images-raw/gen-spine.sh b/test-spine/images-raw/gen-spine.sh
similarity index 100%
rename from adventure-test-spine/images-raw/gen-spine.sh
rename to test-spine/images-raw/gen-spine.sh
diff --git a/adventure-test-spine/images-raw/gen-ui-atlas.sh b/test-spine/images-raw/gen-ui-atlas.sh
similarity index 100%
rename from adventure-test-spine/images-raw/gen-ui-atlas.sh
rename to test-spine/images-raw/gen-ui-atlas.sh
diff --git a/adventure-test-spine/images-raw/gen.sh b/test-spine/images-raw/gen.sh
similarity index 100%
rename from adventure-test-spine/images-raw/gen.sh
rename to test-spine/images-raw/gen.sh
diff --git a/adventure-test-spine/images-raw/morgue/litter.png b/test-spine/images-raw/morgue/litter.png
similarity index 100%
rename from adventure-test-spine/images-raw/morgue/litter.png
rename to test-spine/images-raw/morgue/litter.png
diff --git a/adventure-test-spine/images-raw/morgue/morgue.fg.png b/test-spine/images-raw/morgue/morgue.fg.png
similarity index 100%
rename from adventure-test-spine/images-raw/morgue/morgue.fg.png
rename to test-spine/images-raw/morgue/morgue.fg.png
diff --git a/adventure-test-spine/images-raw/morgue/morgue.png b/test-spine/images-raw/morgue/morgue.png
similarity index 100%
rename from adventure-test-spine/images-raw/morgue/morgue.png
rename to test-spine/images-raw/morgue/morgue.png
diff --git a/adventure-test-spine/images-raw/morgue/pack.json b/test-spine/images-raw/morgue/pack.json
similarity index 100%
rename from adventure-test-spine/images-raw/morgue/pack.json
rename to test-spine/images-raw/morgue/pack.json
diff --git a/adventure-test-spine/images-raw/morgue/table.png b/test-spine/images-raw/morgue/table.png
similarity index 100%
rename from adventure-test-spine/images-raw/morgue/table.png
rename to test-spine/images-raw/morgue/table.png
diff --git a/adventure-test-spine/images-raw/pack.json b/test-spine/images-raw/pack.json
similarity index 100%
rename from adventure-test-spine/images-raw/pack.json
rename to test-spine/images-raw/pack.json
diff --git a/adventure-test-spine/images-raw/spine/char.ref.front.png b/test-spine/images-raw/spine/char.ref.front.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/char.ref.front.png
rename to test-spine/images-raw/spine/char.ref.front.png
diff --git a/adventure-test-spine/images-raw/spine/char.ref.side.png b/test-spine/images-raw/spine/char.ref.side.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/char.ref.side.png
rename to test-spine/images-raw/spine/char.ref.side.png
diff --git a/adventure-test-spine/images-raw/spine/foot.back.png b/test-spine/images-raw/spine/foot.back.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/foot.back.png
rename to test-spine/images-raw/spine/foot.back.png
diff --git a/adventure-test-spine/images-raw/spine/foot.front.png b/test-spine/images-raw/spine/foot.front.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/foot.front.png
rename to test-spine/images-raw/spine/foot.front.png
diff --git a/adventure-test-spine/images-raw/spine/foot.r.side.png b/test-spine/images-raw/spine/foot.r.side.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/foot.r.side.png
rename to test-spine/images-raw/spine/foot.r.side.png
diff --git a/adventure-test-spine/images-raw/spine/foot.side.png b/test-spine/images-raw/spine/foot.side.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/foot.side.png
rename to test-spine/images-raw/spine/foot.side.png
diff --git a/adventure-test-spine/images-raw/spine/forearm.front.png b/test-spine/images-raw/spine/forearm.front.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/forearm.front.png
rename to test-spine/images-raw/spine/forearm.front.png
diff --git a/adventure-test-spine/images-raw/spine/forearm.side.png b/test-spine/images-raw/spine/forearm.side.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/forearm.side.png
rename to test-spine/images-raw/spine/forearm.side.png
diff --git a/adventure-test-spine/images-raw/spine/hand.front.png b/test-spine/images-raw/spine/hand.front.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/hand.front.png
rename to test-spine/images-raw/spine/hand.front.png
diff --git a/adventure-test-spine/images-raw/spine/hand.side.png b/test-spine/images-raw/spine/hand.side.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/hand.side.png
rename to test-spine/images-raw/spine/hand.side.png
diff --git a/adventure-test-spine/images-raw/spine/head.back.png b/test-spine/images-raw/spine/head.back.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/head.back.png
rename to test-spine/images-raw/spine/head.back.png
diff --git a/adventure-test-spine/images-raw/spine/head.front.png b/test-spine/images-raw/spine/head.front.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/head.front.png
rename to test-spine/images-raw/spine/head.front.png
diff --git a/adventure-test-spine/images-raw/spine/head.side.png b/test-spine/images-raw/spine/head.side.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/head.side.png
rename to test-spine/images-raw/spine/head.side.png
diff --git a/test-spine/images-raw/spine/john.spine b/test-spine/images-raw/spine/john.spine
new file mode 100644
index 0000000..2cde3b2
Binary files /dev/null and b/test-spine/images-raw/spine/john.spine differ
diff --git a/adventure-test-spine/images-raw/spine/leg.front.png b/test-spine/images-raw/spine/leg.front.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/leg.front.png
rename to test-spine/images-raw/spine/leg.front.png
diff --git a/adventure-test-spine/images-raw/spine/leg.r.side.png b/test-spine/images-raw/spine/leg.r.side.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/leg.r.side.png
rename to test-spine/images-raw/spine/leg.r.side.png
diff --git a/adventure-test-spine/images-raw/spine/leg.side.png b/test-spine/images-raw/spine/leg.side.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/leg.side.png
rename to test-spine/images-raw/spine/leg.side.png
diff --git a/adventure-test-spine/images-raw/spine/lowbody.front.png b/test-spine/images-raw/spine/lowbody.front.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/lowbody.front.png
rename to test-spine/images-raw/spine/lowbody.front.png
diff --git a/adventure-test-spine/images-raw/spine/lowbody.side.png b/test-spine/images-raw/spine/lowbody.side.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/lowbody.side.png
rename to test-spine/images-raw/spine/lowbody.side.png
diff --git a/adventure-test-spine/images-raw/spine/shadow.front.png b/test-spine/images-raw/spine/shadow.front.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/shadow.front.png
rename to test-spine/images-raw/spine/shadow.front.png
diff --git a/adventure-test-spine/images-raw/spine/shadow.side.png b/test-spine/images-raw/spine/shadow.side.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/shadow.side.png
rename to test-spine/images-raw/spine/shadow.side.png
diff --git a/adventure-test-spine/images-raw/spine/upperarm.front.png b/test-spine/images-raw/spine/upperarm.front.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/upperarm.front.png
rename to test-spine/images-raw/spine/upperarm.front.png
diff --git a/adventure-test-spine/images-raw/spine/upperarm.side.png b/test-spine/images-raw/spine/upperarm.side.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/upperarm.side.png
rename to test-spine/images-raw/spine/upperarm.side.png
diff --git a/adventure-test-spine/images-raw/spine/upperbody.side.png b/test-spine/images-raw/spine/upperbody.side.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/upperbody.side.png
rename to test-spine/images-raw/spine/upperbody.side.png
diff --git a/adventure-test-spine/images-raw/spine/upperleg.front.png b/test-spine/images-raw/spine/upperleg.front.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/upperleg.front.png
rename to test-spine/images-raw/spine/upperleg.front.png
diff --git a/adventure-test-spine/images-raw/spine/upperleg.r.side.png b/test-spine/images-raw/spine/upperleg.r.side.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/upperleg.r.side.png
rename to test-spine/images-raw/spine/upperleg.r.side.png
diff --git a/adventure-test-spine/images-raw/spine/upperleg.side.png b/test-spine/images-raw/spine/upperleg.side.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/upperleg.side.png
rename to test-spine/images-raw/spine/upperleg.side.png
diff --git a/adventure-test-spine/images-raw/spine/uppperbody.back.png b/test-spine/images-raw/spine/uppperbody.back.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/uppperbody.back.png
rename to test-spine/images-raw/spine/uppperbody.back.png
diff --git a/adventure-test-spine/images-raw/spine/uppperbody.front.png b/test-spine/images-raw/spine/uppperbody.front.png
similarity index 100%
rename from adventure-test-spine/images-raw/spine/uppperbody.front.png
rename to test-spine/images-raw/spine/uppperbody.front.png
diff --git a/adventure-test-spine/images-raw/spine_export_settings.json b/test-spine/images-raw/spine_export_settings.json
similarity index 100%
rename from adventure-test-spine/images-raw/spine_export_settings.json
rename to test-spine/images-raw/spine_export_settings.json
diff --git a/adventure-test-spine/images-raw/ui/back.png b/test-spine/images-raw/ui/back.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/back.png
rename to test-spine/images-raw/ui/back.png
diff --git a/adventure-test-spine/images-raw/ui/border_rect.9.png b/test-spine/images-raw/ui/border_rect.9.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/border_rect.9.png
rename to test-spine/images-raw/ui/border_rect.9.png
diff --git a/adventure-test-spine/images-raw/ui/bubblepointer.png b/test-spine/images-raw/ui/bubblepointer.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/bubblepointer.png
rename to test-spine/images-raw/ui/bubblepointer.png
diff --git a/adventure-test-spine/images-raw/ui/credits.png b/test-spine/images-raw/ui/credits.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/credits.png
rename to test-spine/images-raw/ui/credits.png
diff --git a/adventure-test-spine/images-raw/ui/debug.png b/test-spine/images-raw/ui/debug.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/debug.png
rename to test-spine/images-raw/ui/debug.png
diff --git a/adventure-test-spine/images-raw/ui/delete.png b/test-spine/images-raw/ui/delete.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/delete.png
rename to test-spine/images-raw/ui/delete.png
diff --git a/adventure-test-spine/images-raw/ui/help.png b/test-spine/images-raw/ui/help.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/help.png
rename to test-spine/images-raw/ui/help.png
diff --git a/adventure-test-spine/images-raw/ui/hotspot.png b/test-spine/images-raw/ui/hotspot.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/hotspot.png
rename to test-spine/images-raw/ui/hotspot.png
diff --git a/adventure-test-spine/images-raw/ui/hotspotpointer.png b/test-spine/images-raw/ui/hotspotpointer.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/hotspotpointer.png
rename to test-spine/images-raw/ui/hotspotpointer.png
diff --git a/adventure-test-spine/images-raw/ui/inventory.png b/test-spine/images-raw/ui/inventory.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/inventory.png
rename to test-spine/images-raw/ui/inventory.png
diff --git a/adventure-test-spine/images-raw/ui/leave.png b/test-spine/images-raw/ui/leave.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/leave.png
rename to test-spine/images-raw/ui/leave.png
diff --git a/adventure-test-spine/images-raw/ui/lookat.png b/test-spine/images-raw/ui/lookat.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/lookat.png
rename to test-spine/images-raw/ui/lookat.png
diff --git a/adventure-test-spine/images-raw/ui/menu.png b/test-spine/images-raw/ui/menu.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/menu.png
rename to test-spine/images-raw/ui/menu.png
diff --git a/adventure-test-spine/images-raw/ui/pack.json b/test-spine/images-raw/ui/pack.json
similarity index 100%
rename from adventure-test-spine/images-raw/ui/pack.json
rename to test-spine/images-raw/ui/pack.json
diff --git a/adventure-test-spine/images-raw/ui/pickup.png b/test-spine/images-raw/ui/pickup.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/pickup.png
rename to test-spine/images-raw/ui/pickup.png
diff --git a/adventure-test-spine/images-raw/ui/plus.png b/test-spine/images-raw/ui/plus.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/plus.png
rename to test-spine/images-raw/ui/plus.png
diff --git a/adventure-test-spine/images-raw/ui/pointer.png b/test-spine/images-raw/ui/pointer.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/pointer.png
rename to test-spine/images-raw/ui/pointer.png
diff --git a/adventure-test-spine/images-raw/ui/rect.9.png b/test-spine/images-raw/ui/rect.9.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/rect.9.png
rename to test-spine/images-raw/ui/rect.9.png
diff --git a/adventure-test-spine/images-raw/ui/talkto.png b/test-spine/images-raw/ui/talkto.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/talkto.png
rename to test-spine/images-raw/ui/talkto.png
diff --git a/adventure-test-spine/images-raw/ui/white_pixel.png b/test-spine/images-raw/ui/white_pixel.png
similarity index 100%
rename from adventure-test-spine/images-raw/ui/white_pixel.png
rename to test-spine/images-raw/ui/white_pixel.png
diff --git a/adventure-test-spine/ios/Info.plist.xml b/test-spine/ios/Info.plist.xml
similarity index 100%
rename from adventure-test-spine/ios/Info.plist.xml
rename to test-spine/ios/Info.plist.xml
diff --git a/adventure-test-spine/ios/build.gradle b/test-spine/ios/build.gradle
similarity index 100%
rename from adventure-test-spine/ios/build.gradle
rename to test-spine/ios/build.gradle
diff --git a/adventure-test-spine/ios/data/Default-375w-667h@2x.png b/test-spine/ios/data/Default-375w-667h@2x.png
similarity index 100%
rename from adventure-test-spine/ios/data/Default-375w-667h@2x.png
rename to test-spine/ios/data/Default-375w-667h@2x.png
diff --git a/adventure-test-spine/ios/data/Default-414w-736h@3x.png b/test-spine/ios/data/Default-414w-736h@3x.png
similarity index 100%
rename from adventure-test-spine/ios/data/Default-414w-736h@3x.png
rename to test-spine/ios/data/Default-414w-736h@3x.png
diff --git a/adventure-test-spine/ios/data/Default-568h@2x.png b/test-spine/ios/data/Default-568h@2x.png
similarity index 100%
rename from adventure-test-spine/ios/data/Default-568h@2x.png
rename to test-spine/ios/data/Default-568h@2x.png
diff --git a/adventure-test-spine/ios/data/Default.png b/test-spine/ios/data/Default.png
similarity index 100%
rename from adventure-test-spine/ios/data/Default.png
rename to test-spine/ios/data/Default.png
diff --git a/adventure-test-spine/ios/data/Default@2x.png b/test-spine/ios/data/Default@2x.png
similarity index 100%
rename from adventure-test-spine/ios/data/Default@2x.png
rename to test-spine/ios/data/Default@2x.png
diff --git a/adventure-test-spine/ios/data/Default@2x~ipad.png b/test-spine/ios/data/Default@2x~ipad.png
similarity index 100%
rename from adventure-test-spine/ios/data/Default@2x~ipad.png
rename to test-spine/ios/data/Default@2x~ipad.png
diff --git a/adventure-test-spine/ios/data/Default~ipad.png b/test-spine/ios/data/Default~ipad.png
similarity index 100%
rename from adventure-test-spine/ios/data/Default~ipad.png
rename to test-spine/ios/data/Default~ipad.png
diff --git a/adventure-test-spine/ios/data/Icon-72.png b/test-spine/ios/data/Icon-72.png
similarity index 100%
rename from adventure-test-spine/ios/data/Icon-72.png
rename to test-spine/ios/data/Icon-72.png
diff --git a/adventure-test-spine/ios/data/Icon-72@2x.png b/test-spine/ios/data/Icon-72@2x.png
similarity index 100%
rename from adventure-test-spine/ios/data/Icon-72@2x.png
rename to test-spine/ios/data/Icon-72@2x.png
diff --git a/adventure-test-spine/ios/data/Icon.png b/test-spine/ios/data/Icon.png
similarity index 100%
rename from adventure-test-spine/ios/data/Icon.png
rename to test-spine/ios/data/Icon.png
diff --git a/adventure-test-spine/ios/data/Icon@2x.png b/test-spine/ios/data/Icon@2x.png
similarity index 100%
rename from adventure-test-spine/ios/data/Icon@2x.png
rename to test-spine/ios/data/Icon@2x.png
diff --git a/adventure-test-spine/ios/robovm.properties b/test-spine/ios/robovm.properties
similarity index 100%
rename from adventure-test-spine/ios/robovm.properties
rename to test-spine/ios/robovm.properties
diff --git a/adventure-test-spine/ios/robovm.xml b/test-spine/ios/robovm.xml
similarity index 100%
rename from adventure-test-spine/ios/robovm.xml
rename to test-spine/ios/robovm.xml
diff --git a/adventure-test-spine/ios/src/main/java/com/bladecoder/advtestspine/ios/IOSLauncher.java b/test-spine/ios/src/main/java/com/bladecoder/advtestspine/ios/IOSLauncher.java
similarity index 100%
rename from adventure-test-spine/ios/src/main/java/com/bladecoder/advtestspine/ios/IOSLauncher.java
rename to test-spine/ios/src/main/java/com/bladecoder/advtestspine/ios/IOSLauncher.java
diff --git a/adventure-test-spine/screenshots/screenshot.20141106.png b/test-spine/screenshots/screenshot.20141106.png
similarity index 100%
rename from adventure-test-spine/screenshots/screenshot.20141106.png
rename to test-spine/screenshots/screenshot.20141106.png
diff --git a/adventure-test-spine/settings.gradle b/test-spine/settings.gradle
similarity index 100%
rename from adventure-test-spine/settings.gradle
rename to test-spine/settings.gradle
diff --git a/venus/IMAGES-RAW/gen-ui-atlas.sh b/venus/IMAGES-RAW/pack-ui.sh
similarity index 67%
rename from venus/IMAGES-RAW/gen-ui-atlas.sh
rename to venus/IMAGES-RAW/pack-ui.sh
index d68e95b..e9d9629 100755
--- a/venus/IMAGES-RAW/gen-ui-atlas.sh
+++ b/venus/IMAGES-RAW/pack-ui.sh
@@ -1,9 +1,9 @@
#!/bin/sh
-VERSION=1.9.4
-LIBGDX_BASE_PATH=~/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/
+VERSION=1.10.0
+LIBGDX_BASE_PATH=$HOME/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/
GDX_PATH=`find $LIBGDX_BASE_PATH -name gdx-$VERSION.jar`
GDX_TOOLS_PATH=`find $LIBGDX_BASE_PATH -name gdx-tools-$VERSION.jar`
-OUT_DIR=../android/assets/ui/1/
+OUT_DIR=../assets/ui/1/
#cp pack.json ui
java -cp $GDX_PATH:$GDX_TOOLS_PATH com.badlogic.gdx.tools.texturepacker.TexturePacker ui $OUT_DIR ui
diff --git a/venus/IMAGES-RAW/ui/lang_de.png b/venus/IMAGES-RAW/ui/lang_de.png
new file mode 100644
index 0000000..10ade55
Binary files /dev/null and b/venus/IMAGES-RAW/ui/lang_de.png differ
diff --git a/venus/IMAGES-RAW/ui/lang_en.png b/venus/IMAGES-RAW/ui/lang_en.png
new file mode 100644
index 0000000..e958970
Binary files /dev/null and b/venus/IMAGES-RAW/ui/lang_en.png differ
diff --git a/venus/IMAGES-RAW/ui/lang_es.png b/venus/IMAGES-RAW/ui/lang_es.png
new file mode 100644
index 0000000..2a5aca1
Binary files /dev/null and b/venus/IMAGES-RAW/ui/lang_es.png differ
diff --git a/venus/IMAGES-RAW/ui/lang_fr.png b/venus/IMAGES-RAW/ui/lang_fr.png
new file mode 100644
index 0000000..d21e5bf
Binary files /dev/null and b/venus/IMAGES-RAW/ui/lang_fr.png differ
diff --git a/venus/IMAGES-RAW/ui/lang_it.png b/venus/IMAGES-RAW/ui/lang_it.png
new file mode 100644
index 0000000..5ce8273
Binary files /dev/null and b/venus/IMAGES-RAW/ui/lang_it.png differ
diff --git a/venus/IMAGES-RAW/ui/lang_ru.png b/venus/IMAGES-RAW/ui/lang_ru.png
new file mode 100644
index 0000000..d197231
Binary files /dev/null and b/venus/IMAGES-RAW/ui/lang_ru.png differ
diff --git a/venus/android/AndroidManifest.xml b/venus/android/AndroidManifest.xml
index 9a7cad8..49bf323 100644
--- a/venus/android/AndroidManifest.xml
+++ b/venus/android/AndroidManifest.xml
@@ -1,30 +1,26 @@
+ package="org.bladecoder.engine">
-
-
+
-
+ android:configChanges="keyboard|keyboardHidden|navigation|orientation|screenSize|screenLayout">
diff --git a/venus/android/AndroidManifestHD.xml b/venus/android/AndroidManifestHD.xml
deleted file mode 100644
index 21f5161..0000000
--- a/venus/android/AndroidManifestHD.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/venus/android/build.gradle b/venus/android/build.gradle
index 490d93b..af10e08 100644
--- a/venus/android/build.gradle
+++ b/venus/android/build.gradle
@@ -1,179 +1,95 @@
apply plugin: 'android'
android {
-
- /**
- * Builds an Android version code from the version of the project.
- * This is designed to handle the -SNAPSHOT and -RC format.
- *
- * I.e. during development the version ends with -SNAPSHOT. As the code stabilizes and release nears
- * one or many Release Candidates are tagged. These all end with "-RC1", "-RC2" etc.
- * And the final release is without any suffix.
- * @return
- */
- ext.buildVersionCode = {
- //The rules is as follows:
- //-SNAPSHOT counts as 0
- //-RC* counts as the RC number, i.e. 1 to 98
- //final release counts as 99.
- //Thus you can only have 98 Release Candidates, which ought to be enough for everyone
-
- def candidate = "99"
- def (major, minor, patch) = version.toLowerCase().replaceAll('-', '').tokenize('.')
-
- if(major == null)
- major = "0";
- if(minor == null)
- minor = "0";
- if(patch == null)
- patch = "0";
-
- if (patch.endsWith("snapshot")) {
- candidate = "0"
- patch = patch.replaceAll("[^0-9]","")
- } else {
- def rc
- (patch, rc) = patch.tokenize("rc")
- if (rc) {
- candidate = rc
- }
- }
-
- (major, minor, patch, candidate) = [major, minor, patch, candidate].collect{it.toInteger()}
-
- (major * 1000000) + (minor * 10000) + (patch * 100) + candidate;
- }
- compileSdkVersion highestSdkAvailable(27)
+ compileSdkVersion highestSdkAvailable("android-31")
defaultConfig {
- versionCode buildVersionCode()
+ applicationId "org.bladecoder.engine"
+ minSdkVersion 23
+ targetSdkVersion 33
versionName version
- applicationId "org.bladecoder.engine"
- minSdkVersion 15
- targetSdkVersion 27
-
- buildConfigField "int", "EXPANSION_FILE_VERSION", "0"
- }
-
- flavorDimensions "default"
-
- productFlavors {
- full {
- }
-
- expansion {
- buildConfigField "int", "EXPANSION_FILE_VERSION", String.valueOf(android.defaultConfig.versionCode)
- }
+ if (project.hasProperty('versionCode'))
+ versionCode project.versionCode.toInteger()
+ else
+ versionCode 1
}
- if(project.hasProperty("hd")) {
-
- defaultConfig.versionCode 2 * 10000000 + defaultConfig.versionCode
-
- aaptOptions {
- noCompress "png", "jpg"
- ignoreAssetsPattern "0.5:0.25"
- }
- } else if(project.hasProperty("sd")) {
-
- defaultConfig.versionCode 1 * 10000000 + defaultConfig.versionCode
-
- aaptOptions {
- noCompress "png", "jpg"
- ignoreAssetsPattern "1"
- }
- } else {
- aaptOptions {
- noCompress "png", "jpg"
- }
- }
-
- println "Version: $version Version Code: $defaultConfig.versionCode"
-
sourceSets {
main {
- if(project.hasProperty("hd")) {
- manifest.srcFile 'AndroidManifestHD.xml'
- } else {
- manifest.srcFile 'AndroidManifest.xml'
- }
-
+ manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src/main/java']
aidl.srcDirs = ['src/main/java']
renderscript.srcDirs = ['src/main/java']
res.srcDirs = ['res']
jniLibs.srcDirs = ['libs']
+ assets.srcDirs = ['../assets']
}
-
- full.assets.srcDirs = ['../assets']
- expansion.assets.srcDirs = ['../base-assets']
-
}
- packagingOptions {
- // Preventing from license violations (more or less):
- pickFirst 'META-INF/LICENSE.txt'
- pickFirst 'META-INF/LICENSE'
- pickFirst 'META-INF/license.txt'
- pickFirst 'META-INF/LGPL2.1'
- pickFirst 'META-INF/NOTICE.txt'
- pickFirst 'META-INF/NOTICE'
- pickFirst 'META-INF/notice.txt'
- // Excluding unnecessary meta-data:
- exclude 'META-INF/robovm/ios/robovm.xml'
- exclude 'META-INF/DEPENDENCIES.txt'
- exclude 'META-INF/DEPENDENCIES'
- exclude 'META-INF/dependencies.txt'
- }
+ packagingOptions {
+ // Preventing from license violations (more or less):
+ pickFirst 'META-INF/LICENSE.txt'
+ pickFirst 'META-INF/LICENSE'
+ pickFirst 'META-INF/license.txt'
+ pickFirst 'META-INF/LGPL2.1'
+ pickFirst 'META-INF/NOTICE.txt'
+ pickFirst 'META-INF/NOTICE'
+ pickFirst 'META-INF/notice.txt'
+ // Excluding unnecessary meta-data:
+ exclude 'META-INF/robovm/ios/robovm.xml'
+ exclude 'META-INF/DEPENDENCIES.txt'
+ exclude 'META-INF/DEPENDENCIES'
+ exclude 'META-INF/dependencies.txt'
+ }
- if(project.hasProperty('keystore')) {
- signingConfigs {
+ if (project.hasProperty('keystore')) {
+ signingConfigs {
release {
- storeFile file(project.keystore)
- storePassword project.storePassword
- keyAlias project.alias
- keyPassword project.keyPassword
+ storeFile file(project.keystore)
+ storePassword project.storePassword
+ keyAlias project.alias
+ keyPassword project.keyPassword
}
- }
+ }
- buildTypes {
+ buildTypes {
release {
- signingConfig signingConfigs.release
+ signingConfig signingConfigs.release
}
- }
+ }
}
buildTypes {
- release {
+ release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
+ }
}
}
configurations { natives }
dependencies {
- compile project(":core")
- compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
- natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
- natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
- natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
- natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
- natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
- natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi"
- natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a"
- natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a"
- natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"
- natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64"
+ implementation project(":core")
+ implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
+ natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
+ natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
+ natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
+ natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
+
+ natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a"
+ natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a"
+ natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"
+ natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64"
+
+ implementation "com.badlogicgames.gdx-controllers:gdx-controllers-android:$gdxControllersVersion"
}
// called every time gradle gets executed, takes the native dependencies of
// the natives configuration, and extracts them to the proper libs/ folders
// so they get packed with the APK.
task copyAndroidNatives() {
- file("libs/armeabi/").mkdirs();
file("libs/armeabi-v7a/").mkdirs();
file("libs/arm64-v8a/").mkdirs();
file("libs/x86_64/").mkdirs();
@@ -181,12 +97,11 @@ task copyAndroidNatives() {
configurations.natives.files.each { jar ->
def outputDir = null
- if(jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
- if(jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
- if(jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")
- if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
- if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
- if(outputDir != null) {
+ if (jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
+ if (jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
+ if (jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
+ if (jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
+ if (outputDir != null) {
copy {
from zipTree(jar)
into outputDir
@@ -196,7 +111,20 @@ task copyAndroidNatives() {
}
}
+tasks.whenTaskAdded { packageTask ->
+ if (packageTask.name.contains("package")) {
+ packageTask.dependsOn 'copyAndroidNatives'
+ }
+}
+
task run(type: Exec) {
+ def path = getSdkFolder()
+
+ def adb = path + "/platform-tools/adb"
+ commandLine "$adb", 'shell', 'am', 'start', '-n', android.defaultConfig.applicationId + '/' + 'com.bladecoder.engine.android.AndroidLauncher'
+}
+
+String getSdkFolder() {
def path
def localProperties = project.file("../local.properties")
if (localProperties.exists()) {
@@ -214,101 +142,25 @@ task run(type: Exec) {
path = "$System.env.ANDROID_HOME"
}
- def adb = path + "/platform-tools/adb"
- commandLine "$adb", 'shell', 'am', 'start', '-n', android.defaultConfig.applicationId + '/' + android.defaultConfig.applicationId + '.AndroidLauncher'
+ return path
}
-task('packageMainExpansionFile', type: Zip) {
-
- FileTree tree = fileTree(dir: '../assets')
-
- from tree
- //into 'assets'
-
- // Expansion file name format: main.versionCode.packageName.obb
- entryCompression = ZipEntryCompression.STORED
- archiveName = 'main.' + android.defaultConfig.versionCode + "." + android.defaultConfig.applicationId + ".obb"
-
- println "Generating main." + archiveName
-
-}
-
-tasks.whenTaskAdded { task ->
- if(task.name == 'generateExpansionReleaseBuildConfig') {
- task.dependsOn packageMainExpansionFile
- }
-}
+String highestSdkAvailable(String defaultSdk) {
+ try {
+ def buildToolsDir = new File(getSdkFolder(), "platforms")
+ def sdks = buildToolsDir.list([accept: { d, f -> f.startsWith("android-") && new File(d, f).isDirectory() }] as FilenameFilter).sort { a, b -> b <=> a }
+ def highestSdk = sdks[0]
+ if (highestSdk != null) {
+ println "Using highest found SDK: " + highestSdk
+ highestSdk
+ } else {
+ println "No installed SDKs found. Using default SDK: " + defaultSdk
-// sets up the Android Eclipse project, using the old Ant based build.
-eclipse {
- // need to specify Java source sets explicitely, SpringSource Gradle Eclipse plugin
- // ignores any nodes added in classpath.file.withXml
- sourceSets {
- main {
- java.srcDirs "src/main/java", 'gen'
+ defaultSdk
}
- }
-
- jdt {
- sourceCompatibility=1.7
- targetCompatibility=1.7
- }
+ } catch (any) {
+ println "Exception while determining highest SDK. Using default SDK: " + defaultSdk
- classpath {
- plusConfigurations += [ project.configurations.compile ]
- containers 'com.android.ide.eclipse.adt.ANDROID_FRAMEWORK', 'com.android.ide.eclipse.adt.LIBRARIES'
+ defaultSdk
}
-
- project {
- name = appName + "-android"
- natures 'com.android.ide.eclipse.adt.AndroidNature'
- buildCommands.clear();
- buildCommand "com.android.ide.eclipse.adt.ResourceManagerBuilder"
- buildCommand "com.android.ide.eclipse.adt.PreCompilerBuilder"
- buildCommand "org.eclipse.jdt.core.javabuilder"
- buildCommand "com.android.ide.eclipse.adt.ApkBuilder"
- }
-}
-
-// sets up the Android Idea project, using the old Ant based build.
-idea {
- module {
- sourceDirs += file("src");
- scopes = [ COMPILE: [plus:[project.configurations.compile]]]
-
- iml {
- withXml {
- def node = it.asNode()
- def builder = NodeBuilder.newInstance();
- builder.current = node;
- builder.component(name: "FacetManager") {
- facet(type: "android", name: "Android") {
- configuration {
- option(name: "UPDATE_PROPERTY_FILES", value:"true")
- }
- }
- }
- }
- }
- }
-}
-
-
-int highestSdkAvailable(int defaultSdk) {
- try {
- def buildToolsDir = new File(android.getSdkDirectory().toString(), "platforms")
- def sdks = buildToolsDir.list([accept:{ d, f-> f.startsWith("android-") && new File(d, f).isDirectory() }] as FilenameFilter).sort { a, b -> b <=> a }
- def highestSdk = sdks[0]
- if (highestSdk != null) {
- println "Using highest found SDK " + highestSdk.substring(8)
- highestSdk.substring(8).toInteger()
- } else {
- println "No installed SDKs found. Using default SDK " + defaultSdk
- defaultSdk
- }
- } catch (any) {
- println "Exception while determining highest SDK. Using default SDK " +
- defaultSdk
- defaultSdk
- }
}
diff --git a/venus/android/project.properties b/venus/android/project.properties
deleted file mode 100644
index 916037e..0000000
--- a/venus/android/project.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-# This file is automatically generated by Android Tools.
-# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
-#
-# This file must be checked in Version Control Systems.
-#
-# To customize properties used by the Ant build system edit
-# "ant.properties", and override values to adapt the script to your
-# project structure.
-#
-# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
-#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
-
-# Project target.
-target=android-23
diff --git a/venus/android/src/main/java/com/bladecoder/engine/android/AndroidLauncher.java b/venus/android/src/main/java/com/bladecoder/engine/android/AndroidLauncher.java
index 96deb79..a539e2e 100644
--- a/venus/android/src/main/java/com/bladecoder/engine/android/AndroidLauncher.java
+++ b/venus/android/src/main/java/com/bladecoder/engine/android/AndroidLauncher.java
@@ -15,7 +15,6 @@ public void onCreate(Bundle savedInstanceState) {
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useAccelerometer = false;
cfg.useCompass = false;
-// cfg.numSamples = 2;
cfg.useImmersiveMode = true;
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
diff --git a/venus/assets/BladeEngine.properties b/venus/assets/BladeEngine.properties
index d85c8ae..7ac61bd 100644
--- a/venus/assets/BladeEngine.properties
+++ b/venus/assets/BladeEngine.properties
@@ -1,16 +1,17 @@
INIT_SCREEN=org.bladecoder.venus.InitScreen
MENU_SCREEN=org.bladecoder.venus.VenusMenuScreen
-bladeEngineVersion=3.2.2
+bladeEngineVersion=4.3.0
bonasera_android_url=https\://play.google.com/store/apps/details?id\=com.bladecoder.lj
-bonasera_desktop_url=http\://store.steampowered.com/app/536430
+bonasera_desktop_url=https\://bladecoder.itch.io/johnny-bonasera
bonasera_ios_url=https\://itunes.apple.com/us/app/revenge-johnny-bonasera/id1151361813
debug=false
-gdxVersion=1.9.10
+gdxVersion=1.12.0
inventory_pos=down
+languages=en,es,de,ru,it,fr
resolutions=0.5,1
-roboVMVersion=2.3.7
+roboVMVersion=2.3.20
show_desc=true
single_action_inventory=true
title=The Goddess Robbery
ui_mode=PIE
-version=1.2.10
+version=1.9
diff --git a/venus/assets/atlases/0.5/common.atlas b/venus/assets/atlases/0.5/common.atlas
index a47cd2b..aa17daf 100644
--- a/venus/assets/atlases/0.5/common.atlas
+++ b/venus/assets/atlases/0.5/common.atlas
@@ -1,61 +1,61 @@
common.png
-size: 554,77
+size: 140, 291
format: RGBA8888
-filter: Linear,Linear
+filter: Linear, Linear
repeat: none
cutter.charging
rotate: false
- xy: 1, 20
+ xy: 2, 233
size: 90, 56
orig: 98, 62
offset: 8, 6
index: 1
cutter.charging
rotate: false
- xy: 93, 20
+ xy: 2, 175
size: 90, 56
orig: 98, 62
offset: 8, 6
index: 2
cutter.charging
rotate: false
- xy: 185, 20
+ xy: 2, 117
size: 90, 56
orig: 98, 62
offset: 8, 6
index: 3
cutter.inventory
rotate: false
- xy: 277, 5
+ xy: 2, 44
size: 70, 71
orig: 75, 75
offset: 2, 2
index: -1
cutter.withcable
rotate: false
- xy: 503, 29
+ xy: 74, 2
size: 50, 47
orig: 50, 50
offset: 0, 1
index: -1
diosa
rotate: false
- xy: 460, 6
+ xy: 94, 142
size: 41, 70
orig: 41, 70
offset: 0, 0
index: -1
diosa.inventory
rotate: false
- xy: 414, 1
+ xy: 94, 214
size: 44, 75
orig: 75, 75
offset: 15, 0
index: -1
navaja.inventory
rotate: false
- xy: 349, 12
+ xy: 74, 51
size: 63, 64
orig: 75, 75
offset: 5, 5
diff --git a/venus/assets/atlases/0.5/common.png b/venus/assets/atlases/0.5/common.png
index c5504b2..6ff1ce6 100644
Binary files a/venus/assets/atlases/0.5/common.png and b/venus/assets/atlases/0.5/common.png differ
diff --git a/venus/assets/atlases/0.5/player.atlas b/venus/assets/atlases/0.5/player.atlas
index 1a24fef..8c12625 100644
--- a/venus/assets/atlases/0.5/player.atlas
+++ b/venus/assets/atlases/0.5/player.atlas
@@ -1,984 +1,984 @@
player.png
-size: 2048,2028
+size: 2048, 2047
format: RGBA8888
-filter: Linear,Linear
+filter: Linear, Linear
repeat: none
crouch.left
rotate: false
- xy: 1912, 1828
+ xy: 1629, 1348
+ size: 152, 355
+ orig: 171, 386
+ offset: 0, 23
+ index: 1
+crouch.left
+ rotate: false
+ xy: 2, 2
size: 135, 199
orig: 171, 386
offset: 0, 35
index: 4
crouch.left
rotate: false
- xy: 1912, 1686
+ xy: 139, 58
size: 135, 140
orig: 171, 386
offset: 0, 40
index: 5
crouch.left
rotate: false
- xy: 1628, 1330
- size: 152, 355
- orig: 171, 386
- offset: 0, 23
- index: 1
-crouch.left
- rotate: false
- xy: 1, 57
+ xy: 932, 121
size: 135, 126
orig: 171, 386
offset: 0, 40
index: 6
crouch.left
rotate: false
- xy: 1849, 1
+ xy: 1850, 24
size: 137, 273
orig: 171, 386
offset: 0, 29
index: 3
+stand.back
+ rotate: false
+ xy: 1913, 1695
+ size: 109, 350
+ orig: 109, 386
+ offset: 0, 27
+ index: -1
stand.front
rotate: false
- xy: 406, 1287
+ xy: 407, 1305
size: 109, 367
orig: 109, 386
offset: 0, 12
index: -1
stand.frontleft
rotate: false
- xy: 375, 919
+ xy: 376, 937
size: 109, 366
orig: 109, 386
offset: 0, 12
index: -1
stand.left
rotate: false
- xy: 1782, 1333
+ xy: 1783, 1351
size: 109, 355
orig: 109, 386
offset: 0, 23
index: -1
stand.right
rotate: false
- xy: 694, 1318
+ xy: 695, 1336
size: 109, 356
orig: 109, 386
offset: 0, 22
index: -1
+use.back2
+ rotate: false
+ xy: 1894, 1347
+ size: 143, 346
+ orig: 171, 386
+ offset: 16, 28
+ index: 1
use.back
rotate: false
- xy: 1893, 1335
- size: 147, 349
+ xy: 1894, 1347
+ size: 143, 346
orig: 171, 386
- offset: 13, 25
- index: 4
+ offset: 16, 28
+ index: 6
walk.back
rotate: false
- xy: 199, 182
+ xy: 200, 200
size: 178, 359
orig: 253, 386
offset: 52, 16
index: 1
walk.backleft
rotate: false
- xy: 1, 919
+ xy: 2, 937
size: 198, 365
orig: 253, 386
offset: 32, 10
index: 1
walk.backleft
rotate: false
- xy: 379, 179
+ xy: 380, 197
size: 195, 363
orig: 253, 386
offset: 35, 11
index: 2
walk.backleft
rotate: false
- xy: 1015, 958
+ xy: 1016, 976
size: 200, 361
orig: 253, 386
offset: 30, 13
index: 20
walk.backleft
rotate: false
- xy: 1426, 1330
+ xy: 1427, 1348
size: 200, 355
orig: 253, 386
offset: 30, 16
index: 19
walk.backleft
rotate: false
- xy: 1653, 251
+ xy: 1654, 269
size: 194, 357
orig: 253, 386
offset: 36, 13
index: 3
walk.backleft
rotate: false
- xy: 1849, 984
- size: 198, 347
+ xy: 1850, 644
+ size: 196, 345
orig: 253, 386
- offset: 32, 19
- index: 18
+ offset: 34, 28
+ index: 11
+walk.backleft
+ rotate: false
+ xy: 1850, 299
+ size: 196, 343
+ orig: 253, 386
+ offset: 34, 28
+ index: 12
walk.front
rotate: false
- xy: 199, 543
+ xy: 200, 561
size: 176, 374
orig: 253, 386
offset: 54, 3
index: 1
walk.front
rotate: false
- xy: 201, 919
+ xy: 202, 937
size: 172, 365
orig: 253, 386
offset: 58, 7
index: 19
walk.front
rotate: false
- xy: 377, 544
+ xy: 378, 562
size: 173, 373
orig: 253, 386
offset: 57, 3
index: 20
walk.front
rotate: false
- xy: 486, 919
+ xy: 487, 937
size: 176, 366
orig: 253, 386
offset: 54, 6
index: 3
walk.front
rotate: false
- xy: 552, 545
+ xy: 553, 563
size: 176, 372
orig: 253, 386
offset: 54, 4
index: 2
walk.front
rotate: false
- xy: 576, 174
+ xy: 577, 192
size: 175, 369
orig: 253, 386
offset: 55, 4
index: 10
walk.front
rotate: false
- xy: 517, 1299
+ xy: 518, 1317
size: 175, 371
orig: 253, 386
offset: 55, 3
index: 11
walk.front
rotate: false
- xy: 664, 929
+ xy: 665, 947
size: 175, 368
orig: 253, 386
offset: 55, 5
index: 12
walk.front
rotate: false
- xy: 841, 959
+ xy: 842, 977
size: 172, 361
orig: 253, 386
offset: 58, 0
index: 6
walk.front
rotate: false
- xy: 753, 196
+ xy: 754, 214
size: 176, 363
orig: 253, 386
offset: 54, 0
index: 5
walk.front
rotate: false
- xy: 1123, 594
+ xy: 1124, 612
size: 175, 362
orig: 253, 386
offset: 55, 8
index: 9
walk.front
rotate: false
- xy: 1124, 229
+ xy: 1125, 247
size: 174, 363
orig: 253, 386
offset: 56, 0
index: 7
walk.front
rotate: false
- xy: 1217, 958
+ xy: 1218, 976
size: 172, 361
orig: 253, 386
offset: 58, 0
index: 16
walk.front
rotate: false
- xy: 1300, 593
+ xy: 1301, 611
size: 173, 363
orig: 253, 386
offset: 57, 0
index: 15
walk.front
rotate: false
- xy: 1300, 229
+ xy: 1301, 247
size: 175, 362
orig: 253, 386
offset: 55, 8
index: 13
walk.front
rotate: false
- xy: 1391, 960
+ xy: 1392, 978
size: 174, 359
orig: 253, 386
offset: 56, 8
index: 4
walk.front
rotate: false
- xy: 1475, 595
+ xy: 1476, 613
size: 170, 363
orig: 253, 386
offset: 60, 0
index: 17
walk.front
rotate: false
- xy: 1477, 234
+ xy: 1478, 252
size: 174, 359
orig: 253, 386
offset: 56, 7
index: 8
walk.frontleft
rotate: false
- xy: 1, 1656
+ xy: 2, 1674
size: 205, 371
orig: 253, 386
offset: 25, 6
index: 1
walk.frontleft
rotate: false
- xy: 1, 1286
+ xy: 2, 1304
size: 205, 368
orig: 253, 386
offset: 25, 7
index: 2
walk.frontleft
rotate: false
- xy: 208, 1656
+ xy: 209, 1674
size: 200, 371
orig: 253, 386
offset: 30, 5
index: 20
walk.frontleft
rotate: false
- xy: 208, 1287
+ xy: 209, 1305
size: 196, 367
orig: 253, 386
offset: 34, 5
index: 19
walk.frontleft
rotate: false
- xy: 1, 551
+ xy: 2, 569
size: 196, 366
orig: 253, 386
offset: 34, 8
index: 11
walk.frontleft
rotate: false
- xy: 1, 185
+ xy: 2, 203
size: 196, 364
orig: 253, 386
offset: 34, 9
index: 10
walk.frontleft
rotate: false
- xy: 730, 561
+ xy: 731, 579
size: 191, 366
orig: 253, 386
offset: 39, 7
index: 12
walk.frontleft
rotate: false
- xy: 923, 594
+ xy: 924, 612
size: 198, 362
orig: 253, 386
offset: 32, 10
index: 3
walk.frontleft
rotate: false
- xy: 931, 231
+ xy: 932, 249
size: 191, 361
orig: 253, 386
offset: 39, 9
index: 13
walk.frontleft
rotate: false
- xy: 1224, 1321
+ xy: 1225, 1339
size: 200, 350
orig: 253, 386
offset: 30, 13
index: 5
walk.frontleft
rotate: false
- xy: 1567, 970
+ xy: 1568, 988
size: 196, 358
orig: 253, 386
offset: 34, 11
index: 9
walk.frontleft
rotate: false
- xy: 1647, 610
+ xy: 1648, 628
size: 188, 358
orig: 253, 386
offset: 42, 9
index: 18
walk.frontleft
rotate: false
- xy: 1849, 276
+ xy: 1850, 991
size: 196, 354
orig: 253, 386
offset: 34, 12
index: 4
walk.left
rotate: false
- xy: 410, 1672
+ xy: 411, 1690
size: 209, 355
orig: 253, 386
offset: 21, 21
index: 1
walk.left
rotate: false
- xy: 621, 1676
+ xy: 622, 1694
size: 212, 351
orig: 253, 386
offset: 18, 22
index: 11
walk.left
rotate: false
- xy: 835, 1673
+ xy: 836, 1691
size: 208, 354
orig: 253, 386
offset: 22, 21
index: 2
walk.left
rotate: false
- xy: 1045, 1673
+ xy: 1046, 1691
size: 208, 354
orig: 253, 386
offset: 22, 21
index: 20
walk.left
rotate: false
- xy: 1255, 1688
+ xy: 1256, 1706
size: 220, 339
orig: 253, 386
offset: 10, 22
index: 16
walk.left
rotate: false
- xy: 1477, 1687
+ xy: 1478, 1705
size: 215, 340
orig: 253, 386
offset: 15, 22
index: 15
walk.left
rotate: false
- xy: 1694, 1690
+ xy: 1695, 1708
size: 216, 337
orig: 253, 386
offset: 14, 24
index: 6
walk.left
rotate: false
- xy: 805, 1322
+ xy: 806, 1340
size: 208, 349
orig: 253, 386
offset: 22, 23
index: 10
walk.left
rotate: false
- xy: 1015, 1321
+ xy: 1016, 1339
size: 207, 350
orig: 253, 386
offset: 23, 22
index: 12
-walk.left
- rotate: false
- xy: 1837, 632
- size: 204, 350
- orig: 253, 386
- offset: 26, 21
- index: 19
player2.png
-size: 2048,1760
+size: 2029, 2048
format: RGBA8888
-filter: Linear,Linear
+filter: Linear, Linear
repeat: none
-stand.back
+crouch.left
rotate: false
- xy: 1234, 1062
- size: 109, 350
- orig: 109, 386
- offset: 0, 27
- index: -1
+ xy: 1598, 2
+ size: 149, 335
+ orig: 171, 386
+ offset: 0, 23
+ index: 2
stand.backleft
rotate: false
- xy: 401, 1064
+ xy: 281, 261
size: 109, 353
orig: 109, 386
offset: 0, 25
index: -1
talk.left
rotate: false
- xy: 1518, 1060
+ xy: 180, 1331
size: 91, 356
orig: 91, 386
offset: 0, 22
index: 1
talk.left
rotate: false
- xy: 1518, 1060
+ xy: 180, 1331
size: 91, 356
orig: 91, 386
offset: 0, 22
- index: 14
+ index: 10
talk.left
rotate: false
- xy: 1518, 1060
+ xy: 180, 1331
size: 91, 356
orig: 91, 386
offset: 0, 22
- index: 10
+ index: 14
talk.left
rotate: false
- xy: 1804, 1056
+ xy: 190, 1690
size: 91, 356
orig: 91, 386
offset: 0, 22
index: 2
talk.left
rotate: false
- xy: 1804, 1056
+ xy: 190, 1690
size: 91, 356
orig: 91, 386
offset: 0, 22
index: 3
talk.left
rotate: false
- xy: 204, 703
+ xy: 273, 1332
size: 91, 356
orig: 91, 386
offset: 0, 22
index: 4
talk.left
rotate: false
- xy: 297, 707
+ xy: 283, 1690
size: 91, 356
orig: 91, 386
offset: 0, 22
index: 5
talk.left
rotate: false
- xy: 297, 707
+ xy: 283, 1690
size: 91, 356
orig: 91, 386
offset: 0, 22
index: 6
talk.left
rotate: false
- xy: 1104, 713
+ xy: 2, 255
size: 91, 356
orig: 91, 386
offset: 0, 22
index: 7
talk.left
rotate: false
- xy: 1104, 713
+ xy: 2, 255
size: 91, 356
orig: 91, 386
offset: 0, 22
index: 8
talk.left
rotate: false
- xy: 1104, 713
+ xy: 2, 255
size: 91, 356
orig: 91, 386
offset: 0, 22
index: 12
talk.left
rotate: false
- xy: 1915, 710
+ xy: 95, 255
size: 91, 356
orig: 91, 386
offset: 0, 22
index: 9
+talk.left
+ rotate: false
+ xy: 177, 614
+ size: 91, 356
+ orig: 91, 386
+ offset: 0, 22
+ index: 11
+talk.left
+ rotate: false
+ xy: 188, 256
+ size: 91, 356
+ orig: 91, 386
+ offset: 0, 22
+ index: 13
use.back
rotate: false
- xy: 692, 1069
+ xy: 565, 1696
size: 144, 350
orig: 171, 386
offset: 16, 24
index: 3
use.back
rotate: false
- xy: 1897, 1068
+ xy: 788, 278
+ size: 147, 349
+ orig: 171, 386
+ offset: 13, 25
+ index: 4
+use.back
+ rotate: false
+ xy: 1110, 300
size: 144, 346
orig: 171, 386
offset: 16, 28
index: 1
use.back
rotate: false
- xy: 1197, 714
+ xy: 1179, 652
size: 144, 346
orig: 171, 386
offset: 16, 28
index: 5
-walk.back
+use.back
rotate: false
- xy: 512, 1064
- size: 178, 354
- orig: 253, 386
- offset: 52, 20
+ xy: 1442, 1353
+ size: 144, 345
+ orig: 171, 386
+ offset: 16, 29
index: 2
-walk.back
+use.back2
rotate: false
- xy: 1345, 1060
- size: 171, 354
- orig: 253, 386
- offset: 59, 17
- index: 10
+ xy: 1279, 1003
+ size: 143, 346
+ orig: 171, 386
+ offset: 16, 28
+ index: 3
+use.back2
+ rotate: false
+ xy: 1297, 1352
+ size: 143, 346
+ orig: 171, 386
+ offset: 16, 28
+ index: 4
+use.back2
+ rotate: false
+ xy: 1256, 304
+ size: 143, 346
+ orig: 171, 386
+ offset: 16, 28
+ index: 6
+use.back2
+ rotate: false
+ xy: 1670, 1702
+ size: 142, 344
+ orig: 171, 386
+ offset: 15, 28
+ index: 2
+use.back2
+ rotate: false
+ xy: 1670, 1702
+ size: 142, 344
+ orig: 171, 386
+ offset: 15, 28
+ index: 5
walk.back
rotate: false
- xy: 578, 705
+ xy: 2, 1330
size: 176, 357
orig: 253, 386
offset: 54, 17
index: 20
walk.back
rotate: false
- xy: 590, 359
- size: 178, 344
- orig: 253, 386
- offset: 52, 26
- index: 3
-walk.back
- rotate: false
- xy: 770, 359
- size: 171, 349
- orig: 253, 386
- offset: 59, 12
- index: 6
-walk.back
- rotate: false
- xy: 772, 1
+ xy: 175, 972
size: 172, 356
orig: 253, 386
offset: 58, 16
index: 11
walk.back
rotate: false
- xy: 943, 361
- size: 171, 349
+ xy: 349, 976
+ size: 178, 354
orig: 253, 386
- offset: 59, 13
- index: 7
+ offset: 52, 20
+ index: 2
+walk.back
+ rotate: false
+ xy: 366, 1334
+ size: 171, 354
+ orig: 253, 386
+ offset: 59, 17
+ index: 10
walk.back
rotate: false
- xy: 946, 7
+ xy: 529, 980
size: 173, 352
orig: 253, 386
offset: 57, 19
index: 12
walk.back
rotate: false
- xy: 1116, 362
+ xy: 651, 629
+ size: 176, 349
+ orig: 253, 386
+ offset: 54, 21
+ index: 19
+walk.back
+ rotate: false
+ xy: 704, 990
size: 175, 349
orig: 253, 386
offset: 55, 12
index: 16
walk.back
rotate: false
- xy: 1121, 11
- size: 176, 349
+ xy: 745, 1346
+ size: 171, 349
orig: 253, 386
- offset: 54, 21
- index: 19
+ offset: 59, 12
+ index: 6
walk.back
rotate: false
- xy: 1737, 712
- size: 176, 342
+ xy: 917, 1697
+ size: 171, 349
orig: 253, 386
- offset: 54, 24
- index: 4
+ offset: 59, 13
+ index: 7
walk.back
rotate: false
- xy: 1293, 364
+ xy: 829, 640
size: 175, 348
orig: 253, 386
offset: 55, 14
index: 17
walk.back
rotate: false
- xy: 1299, 15
+ xy: 937, 291
size: 171, 347
orig: 253, 386
offset: 59, 18
index: 8
walk.back
rotate: false
- xy: 1470, 372
+ xy: 1006, 648
size: 171, 347
orig: 253, 386
offset: 59, 21
index: 9
walk.back
rotate: false
- xy: 1472, 24
+ xy: 1120, 1351
size: 175, 346
orig: 253, 386
offset: 55, 16
index: 5
-walk.backleft
- rotate: false
- xy: 1656, 1414
- size: 196, 345
- orig: 253, 386
- offset: 34, 28
- index: 11
-walk.backleft
- rotate: false
- xy: 1854, 1416
- size: 193, 343
- orig: 253, 386
- offset: 37, 28
- index: 10
-walk.backleft
+walk.back
rotate: false
- xy: 838, 1070
- size: 196, 343
+ xy: 1290, 1700
+ size: 175, 346
orig: 253, 386
- offset: 34, 28
- index: 12
-walk.backleft
+ offset: 55, 16
+ index: 15
+walk.back
rotate: false
- xy: 1036, 1071
- size: 196, 341
+ xy: 1588, 1356
+ size: 178, 344
orig: 253, 386
- offset: 34, 28
- index: 13
+ offset: 52, 26
+ index: 3
walk.backleft
rotate: false
- xy: 203, 361
- size: 188, 340
+ xy: 1090, 1699
+ size: 198, 347
orig: 253, 386
- offset: 42, 22
- index: 7
+ offset: 32, 19
+ index: 18
walk.backleft
rotate: false
- xy: 204, 13
+ xy: 1088, 1000
size: 189, 346
orig: 253, 386
offset: 41, 20
index: 4
walk.backleft
rotate: false
- xy: 393, 364
- size: 195, 339
- orig: 253, 386
- offset: 35, 23
- index: 17
-walk.backleft
- rotate: false
- xy: 1343, 721
- size: 195, 337
+ xy: 1528, 339
+ size: 196, 341
orig: 253, 386
- offset: 35, 28
- index: 14
+ offset: 34, 28
+ index: 13
walk.backleft
rotate: false
- xy: 1540, 723
+ xy: 1401, 2
size: 195, 335
orig: 253, 386
offset: 35, 26
index: 16
walk.backleft
rotate: false
- xy: 1643, 372
- size: 188, 338
- orig: 253, 386
- offset: 42, 24
- index: 5
-walk.backleft
- rotate: false
- xy: 1649, 30
- size: 189, 340
+ xy: 1726, 339
+ size: 195, 339
orig: 253, 386
- offset: 41, 25
- index: 8
+ offset: 35, 23
+ index: 17
walk.backleft
rotate: false
- xy: 1833, 374
+ xy: 1749, 3
size: 195, 334
orig: 253, 386
offset: 35, 28
index: 15
-walk.backleft
- rotate: false
- xy: 1840, 32
- size: 190, 340
- orig: 253, 386
- offset: 40, 28
- index: 9
walk.front
rotate: false
- xy: 756, 710
+ xy: 2, 971
size: 171, 357
orig: 253, 386
offset: 59, 10
index: 18
walk.front
rotate: false
- xy: 929, 712
+ xy: 2, 613
size: 173, 356
orig: 253, 386
offset: 57, 10
index: 14
walk.frontleft
rotate: false
- xy: 1, 1061
- size: 205, 347
+ xy: 2, 1689
+ size: 186, 357
orig: 253, 386
- offset: 25, 14
- index: 6
+ offset: 44, 9
+ index: 14
walk.frontleft
rotate: false
- xy: 1, 710
- size: 201, 349
+ xy: 270, 616
+ size: 186, 354
orig: 253, 386
- offset: 29, 13
- index: 7
+ offset: 44, 9
+ index: 17
walk.frontleft
rotate: false
- xy: 208, 1065
+ xy: 376, 1693
+ size: 187, 353
+ orig: 253, 386
+ offset: 43, 9
+ index: 15
+walk.frontleft
+ rotate: false
+ xy: 392, 262
size: 191, 352
orig: 253, 386
offset: 39, 13
index: 8
walk.frontleft
rotate: false
- xy: 1611, 1060
+ xy: 458, 622
size: 191, 352
orig: 253, 386
offset: 39, 9
index: 16
walk.frontleft
rotate: false
- xy: 390, 705
- size: 186, 357
+ xy: 585, 271
+ size: 201, 349
orig: 253, 386
- offset: 44, 9
- index: 14
+ offset: 29, 13
+ index: 7
walk.frontleft
rotate: false
- xy: 395, 9
- size: 187, 353
+ xy: 881, 997
+ size: 205, 347
orig: 253, 386
- offset: 43, 9
- index: 15
-walk.frontleft
+ offset: 25, 14
+ index: 6
+walk.left
rotate: false
- xy: 584, 3
- size: 186, 354
+ xy: 539, 1341
+ size: 204, 350
orig: 253, 386
- offset: 44, 9
- index: 17
+ offset: 26, 21
+ index: 19
walk.left
rotate: false
- xy: 1, 1410
+ xy: 711, 1697
size: 204, 349
orig: 253, 386
offset: 26, 22
index: 3
walk.left
rotate: false
- xy: 207, 1419
- size: 213, 340
- orig: 253, 386
- offset: 17, 22
- index: 17
-walk.left
- rotate: false
- xy: 422, 1420
- size: 211, 339
- orig: 253, 386
- offset: 19, 23
- index: 5
-walk.left
- rotate: false
- xy: 635, 1421
- size: 212, 338
- orig: 253, 386
- offset: 18, 24
- index: 7
-walk.left
- rotate: false
- xy: 1, 361
+ xy: 918, 1348
size: 200, 347
orig: 253, 386
offset: 30, 22
index: 13
walk.left
rotate: false
- xy: 1, 14
+ xy: 1325, 656
size: 201, 345
orig: 253, 386
offset: 29, 24
index: 9
walk.left
rotate: false
- xy: 849, 1415
+ xy: 1424, 1005
+ size: 199, 345
+ orig: 253, 386
+ offset: 31, 21
+ index: 18
+walk.left
+ rotate: false
+ xy: 1467, 1702
size: 201, 344
orig: 253, 386
offset: 29, 22
index: 4
walk.left
rotate: false
- xy: 1052, 1414
- size: 199, 345
+ xy: 1814, 1706
+ size: 213, 340
orig: 253, 386
- offset: 31, 21
- index: 18
+ offset: 17, 22
+ index: 17
walk.left
rotate: false
- xy: 1253, 1416
- size: 199, 343
+ xy: 1814, 1366
+ size: 212, 338
orig: 253, 386
- offset: 31, 22
- index: 14
+ offset: 18, 24
+ index: 7
+walk.left
+ rotate: false
+ xy: 1768, 1025
+ size: 211, 339
+ orig: 253, 386
+ offset: 19, 23
+ index: 5
walk.left
rotate: false
- xy: 1454, 1418
+ xy: 1625, 682
size: 200, 341
orig: 253, 386
offset: 30, 24
index: 8
+walk.left
+ rotate: false
+ xy: 1827, 680
+ size: 199, 343
+ orig: 253, 386
+ offset: 31, 22
+ index: 14
player3.png
-size: 1093,706
+size: 1089, 691
format: RGBA8888
-filter: Linear,Linear
+filter: Linear, Linear
repeat: none
-crouch.left
- rotate: false
- xy: 706, 23
- size: 149, 335
- orig: 171, 386
- offset: 0, 23
- index: 2
-talk.left
- rotate: false
- xy: 468, 4
- size: 91, 356
- orig: 91, 386
- offset: 0, 22
- index: 11
-talk.left
- rotate: false
- xy: 1001, 1
- size: 91, 356
- orig: 91, 386
- offset: 0, 22
- index: 13
-use.back
- rotate: false
- xy: 718, 360
- size: 144, 345
- orig: 171, 386
- offset: 16, 29
- index: 2
-use.back2
- rotate: false
- xy: 864, 359
- size: 143, 346
- orig: 171, 386
- offset: 16, 28
- index: 1
-use.back
- rotate: false
- xy: 864, 359
- size: 143, 346
- orig: 171, 386
- offset: 16, 28
- index: 6
-use.back2
- rotate: false
- xy: 178, 14
- size: 143, 346
- orig: 171, 386
- offset: 16, 28
- index: 3
-use.back2
- rotate: false
- xy: 323, 14
- size: 143, 346
- orig: 171, 386
- offset: 16, 28
- index: 4
-use.back2
- rotate: false
- xy: 561, 16
- size: 143, 346
- orig: 171, 386
- offset: 16, 28
- index: 6
-use.back2
- rotate: false
- xy: 857, 13
- size: 142, 344
- orig: 171, 386
- offset: 15, 28
- index: 2
-use.back2
- rotate: false
- xy: 857, 13
- size: 142, 344
- orig: 171, 386
- offset: 15, 28
- index: 5
walk.back
rotate: false
- xy: 1, 18
- size: 175, 346
+ xy: 194, 2
+ size: 176, 342
orig: 253, 386
- offset: 55, 16
- index: 15
+ offset: 54, 24
+ index: 4
walk.back
rotate: false
- xy: 191, 362
+ xy: 562, 4
size: 175, 343
orig: 253, 386
offset: 55, 23
index: 18
walk.back
rotate: false
- xy: 368, 362
+ xy: 739, 4
size: 173, 343
orig: 253, 386
offset: 57, 25
index: 13
walk.back
rotate: false
- xy: 543, 364
+ xy: 914, 7
size: 173, 341
orig: 253, 386
offset: 57, 24
index: 14
walk.backleft
rotate: false
- xy: 1, 366
+ xy: 2, 346
+ size: 193, 343
+ orig: 253, 386
+ offset: 37, 28
+ index: 10
+walk.backleft
+ rotate: false
+ xy: 197, 352
+ size: 195, 337
+ orig: 253, 386
+ offset: 35, 28
+ index: 14
+walk.backleft
+ rotate: false
+ xy: 2, 4
+ size: 190, 340
+ orig: 253, 386
+ offset: 40, 28
+ index: 9
+walk.backleft
+ rotate: false
+ xy: 394, 349
+ size: 189, 340
+ orig: 253, 386
+ offset: 41, 25
+ index: 8
+walk.backleft
+ rotate: false
+ xy: 585, 349
+ size: 188, 340
+ orig: 253, 386
+ offset: 42, 22
+ index: 7
+walk.backleft
+ rotate: false
+ xy: 775, 350
size: 188, 339
orig: 253, 386
offset: 42, 22
index: 6
+walk.backleft
+ rotate: false
+ xy: 372, 9
+ size: 188, 338
+ orig: 253, 386
+ offset: 42, 24
+ index: 5
diff --git a/venus/assets/atlases/0.5/player.png b/venus/assets/atlases/0.5/player.png
index b1eb8b2..831b0a8 100644
Binary files a/venus/assets/atlases/0.5/player.png and b/venus/assets/atlases/0.5/player.png differ
diff --git a/venus/assets/atlases/0.5/player2.png b/venus/assets/atlases/0.5/player2.png
index e0554a8..5bc3217 100644
Binary files a/venus/assets/atlases/0.5/player2.png and b/venus/assets/atlases/0.5/player2.png differ
diff --git a/venus/assets/atlases/0.5/player3.png b/venus/assets/atlases/0.5/player3.png
index 7e91714..06d7522 100644
Binary files a/venus/assets/atlases/0.5/player3.png and b/venus/assets/atlases/0.5/player3.png differ
diff --git a/venus/assets/atlases/0.5/player_down.atlas b/venus/assets/atlases/0.5/player_down.atlas
index 40cd535..66e2a06 100644
--- a/venus/assets/atlases/0.5/player_down.atlas
+++ b/venus/assets/atlases/0.5/player_down.atlas
@@ -1,599 +1,599 @@
player_down.png
-size: 2037,2048
+size: 2047, 2048
format: RGBA8888
-filter: Linear,Linear
+filter: Linear, Linear
repeat: none
crouch.right
rotate: false
- xy: 1, 25
- size: 197, 355
+ xy: 2, 347
+ size: 197, 421
orig: 197, 424
offset: 0, 0
- index: 3
+ index: 1
crouch.right
rotate: false
- xy: 572, 98
+ xy: 199, 58
size: 197, 287
orig: 197, 424
offset: 0, 0
index: 4
crouch.right
rotate: false
- xy: 1202, 1
+ xy: 1340, 412
size: 197, 404
orig: 197, 424
offset: 0, 0
index: 2
crouch.right
rotate: false
- xy: 1599, 12
- size: 197, 421
+ xy: 1844, 97
+ size: 197, 355
orig: 197, 424
offset: 0, 0
- index: 1
+ index: 3
runaway
rotate: false
- xy: 200, 7
- size: 185, 373
+ xy: 2, 4
+ size: 88, 341
orig: 366, 456
- offset: 83, 29
- index: 5
+ offset: 59, 38
+ index: 9
runaway
rotate: false
- xy: 387, 19
- size: 183, 366
+ xy: 92, 40
+ size: 105, 305
orig: 366, 456
- offset: 64, 30
- index: 6
+ offset: 31, 74
+ index: 10
runaway
rotate: false
- xy: 1733, 1660
- size: 176, 387
+ xy: 398, 104
+ size: 116, 242
orig: 366, 456
- offset: 94, 23
- index: 4
+ offset: 16, 136
+ index: 11
runaway
rotate: false
- xy: 1940, 495
+ xy: 516, 3
size: 96, 348
orig: 366, 456
offset: 65, 33
index: 8
runaway
rotate: false
- xy: 1911, 1742
- size: 105, 305
+ xy: 614, 6
+ size: 141, 357
orig: 366, 456
- offset: 31, 74
- index: 10
+ offset: 61, 31
+ index: 7
runaway
rotate: false
- xy: 1938, 1399
- size: 88, 341
+ xy: 757, 2
+ size: 183, 366
orig: 366, 456
- offset: 59, 38
- index: 9
+ offset: 64, 30
+ index: 6
runaway
rotate: false
- xy: 1938, 1261
- size: 96, 136
+ xy: 942, 10
+ size: 185, 373
orig: 366, 456
- offset: 0, 239
- index: 15
+ offset: 83, 29
+ index: 5
+runaway
+ rotate: false
+ xy: 1129, 4
+ size: 163, 393
+ orig: 366, 456
+ offset: 116, 24
+ index: 3
+runaway
+ rotate: false
+ xy: 1294, 4
+ size: 136, 393
+ orig: 366, 456
+ offset: 163, 25
+ index: 2
runaway
rotate: false
- xy: 1944, 867
+ xy: 1759, 1102
+ size: 72, 146
+ orig: 366, 456
+ offset: 0, 231
+ index: 16
+runaway
+ rotate: false
+ xy: 1759, 708
size: 71, 392
orig: 366, 456
offset: 219, 24
index: 1
-throwgoddess
+stand.frontright
rotate: false
- xy: 253, 1215
- size: 221, 413
- orig: 234, 456
- offset: 0, 20
+ xy: 227, 1205
+ size: 120, 418
+ orig: 120, 424
+ offset: 0, 2
+ index: -1
+talk.right
+ rotate: false
+ xy: 349, 1205
+ size: 120, 418
+ orig: 120, 424
+ offset: 0, 2
+ index: 1
+talk.right
+ rotate: false
+ xy: 349, 1205
+ size: 120, 418
+ orig: 120, 424
+ offset: 0, 2
+ index: 14
+talk.right
+ rotate: false
+ xy: 435, 1628
+ size: 120, 418
+ orig: 120, 424
+ offset: 0, 2
+ index: 2
+talk.right
+ rotate: false
+ xy: 435, 1628
+ size: 120, 418
+ orig: 120, 424
+ offset: 0, 2
+ index: 3
+talk.right
+ rotate: false
+ xy: 414, 353
+ size: 120, 418
+ orig: 120, 424
+ offset: 0, 2
+ index: 4
+talk.right
+ rotate: false
+ xy: 430, 785
+ size: 120, 418
+ orig: 120, 424
+ offset: 0, 2
+ index: 5
+talk.right
+ rotate: false
+ xy: 430, 785
+ size: 120, 418
+ orig: 120, 424
+ offset: 0, 2
+ index: 6
+talk.right
+ rotate: false
+ xy: 471, 1208
+ size: 120, 418
+ orig: 120, 424
+ offset: 0, 2
+ index: 7
+talk.right
+ rotate: false
+ xy: 471, 1208
+ size: 120, 418
+ orig: 120, 424
+ offset: 0, 2
+ index: 8
+talk.right
+ rotate: false
+ xy: 471, 1208
+ size: 120, 418
+ orig: 120, 424
+ offset: 0, 2
+ index: 12
+talk.right
+ rotate: false
+ xy: 557, 1628
+ size: 120, 418
+ orig: 120, 424
+ offset: 0, 2
+ index: 9
+talk.right
+ rotate: false
+ xy: 536, 365
+ size: 120, 418
+ orig: 120, 424
+ offset: 0, 2
index: 10
+talk.right
+ rotate: false
+ xy: 552, 788
+ size: 120, 418
+ orig: 120, 424
+ offset: 0, 2
+ index: 11
+talk.right
+ rotate: false
+ xy: 593, 1208
+ size: 120, 418
+ orig: 120, 424
+ offset: 0, 2
+ index: 13
throwgoddess
rotate: false
- xy: 258, 1650
- size: 226, 397
+ xy: 2, 1617
+ size: 206, 429
orig: 234, 456
- offset: 1, 20
- index: 8
+ offset: 28, 18
+ index: 13
throwgoddess
rotate: false
- xy: 476, 1226
+ xy: 2, 1193
size: 223, 422
orig: 234, 456
offset: 0, 20
index: 12
throwgoddess
rotate: false
- xy: 486, 1650
- size: 226, 397
+ xy: 210, 1625
+ size: 223, 421
orig: 234, 456
- offset: 1, 20
- index: 9
+ offset: 0, 20
+ index: 11
throwgoddess
rotate: false
- xy: 480, 803
- size: 223, 421
+ xy: 880, 797
+ size: 221, 413
orig: 234, 456
offset: 0, 20
- index: 11
+ index: 10
throwgoddess
rotate: false
- xy: 771, 1
- size: 221, 398
+ xy: 1432, 6
+ size: 188, 404
orig: 234, 456
- offset: 11, 19
- index: 7
+ offset: 46, 18
+ index: 14
throwgoddess
rotate: false
- xy: 714, 1650
- size: 210, 397
+ xy: 1613, 1649
+ size: 226, 397
orig: 234, 456
- offset: 22, 20
- index: 2
+ offset: 1, 20
+ index: 8
throwgoddess
rotate: false
- xy: 1333, 1651
+ xy: 1844, 1251
size: 198, 396
orig: 234, 456
offset: 36, 20
index: 4
throwgoddess
rotate: false
- xy: 1130, 811
- size: 206, 429
+ xy: 1613, 1250
+ size: 226, 397
orig: 234, 456
- offset: 28, 18
- index: 13
+ offset: 1, 20
+ index: 9
throwgoddess
rotate: false
- xy: 1533, 1651
+ xy: 1844, 454
size: 198, 396
orig: 234, 456
offset: 36, 20
index: 5
-throwgoddess
- rotate: false
- xy: 1401, 13
- size: 196, 397
- orig: 234, 456
- offset: 36, 20
- index: 3
-throwgoddess
- rotate: false
- xy: 1552, 435
- size: 196, 397
- orig: 234, 456
- offset: 36, 20
- index: 6
-throwgoddess
- rotate: false
- xy: 1750, 439
- size: 188, 404
- orig: 234, 456
- offset: 46, 18
- index: 14
-throwgoddess2
- rotate: false
- xy: 994, 3
- size: 206, 397
- orig: 234, 456
- offset: 28, 20
- index: 6
-throwgoddess2
- rotate: false
- xy: 926, 1650
- size: 204, 397
- orig: 234, 456
- offset: 28, 20
- index: 7
throwgoddess2
rotate: false
- xy: 1132, 1650
+ xy: 1844, 1649
size: 199, 397
orig: 234, 456
offset: 33, 20
index: 8
throwgoddess
rotate: false
- xy: 1132, 1650
+ xy: 1844, 1649
size: 199, 397
orig: 234, 456
offset: 33, 20
index: 1
throwgoddess2
rotate: false
- xy: 1132, 1650
+ xy: 1844, 1649
size: 199, 397
orig: 234, 456
offset: 33, 20
- index: 9
+ index: 10
throwgoddess2
rotate: false
- xy: 1132, 1650
+ xy: 1844, 1649
size: 199, 397
orig: 234, 456
offset: 33, 20
index: 12
throwgoddess2
rotate: false
- xy: 1132, 1650
+ xy: 1844, 1649
size: 199, 397
orig: 234, 456
offset: 33, 20
- index: 10
+ index: 11
throwgoddess2
rotate: false
- xy: 1132, 1650
+ xy: 1844, 1649
size: 199, 397
orig: 234, 456
offset: 33, 20
- index: 11
+ index: 9
throwgoddess2
rotate: false
- xy: 1750, 845
- size: 192, 397
+ xy: 1841, 852
+ size: 204, 397
orig: 234, 456
- offset: 42, 20
- index: 5
-throwgoddess2
+ offset: 28, 20
+ index: 7
+walk.frontright
rotate: false
- xy: 1798, 38
- size: 189, 399
- orig: 234, 456
- offset: 45, 18
- index: 4
-throwgoddess2
+ xy: 2, 770
+ size: 212, 421
+ orig: 290, 424
+ offset: 66, 0
+ index: 1
+walk.frontright
rotate: false
- xy: 1753, 1260
- size: 183, 398
- orig: 234, 456
- offset: 51, 18
- index: 3
+ xy: 201, 348
+ size: 211, 420
+ orig: 290, 424
+ offset: 65, 0
+ index: 2
+walk.frontright
+ rotate: false
+ xy: 216, 773
+ size: 212, 418
+ orig: 290, 424
+ offset: 69, 0
+ index: 20
walk.frontright
rotate: false
- xy: 1, 1630
+ xy: 679, 1629
size: 255, 417
orig: 290, 424
offset: 28, 0
index: 11
walk.frontright
rotate: false
- xy: 1, 1213
- size: 250, 415
- orig: 290, 424
- offset: 28, 0
- index: 12
-walk.frontright
- rotate: false
- xy: 1, 795
+ xy: 658, 370
size: 245, 416
orig: 290, 424
offset: 31, 0
index: 10
walk.frontright
rotate: false
- xy: 1, 382
- size: 239, 411
+ xy: 674, 790
+ size: 204, 416
orig: 290, 424
- offset: 34, 1
- index: 13
+ offset: 65, 0
+ index: 3
walk.frontright
rotate: false
- xy: 242, 387
- size: 226, 406
+ xy: 715, 1212
+ size: 250, 415
orig: 290, 424
- offset: 47, 1
- index: 14
+ offset: 28, 0
+ index: 12
walk.frontright
rotate: false
- xy: 248, 798
+ xy: 936, 1633
size: 230, 413
orig: 290, 424
offset: 38, 0
index: 9
walk.frontright
rotate: false
- xy: 470, 387
- size: 221, 409
- orig: 290, 424
- offset: 46, 0
- index: 8
-walk.frontright
- rotate: false
- xy: 693, 401
- size: 220, 400
+ xy: 967, 1218
+ size: 210, 413
orig: 290, 424
- offset: 61, 2
- index: 16
+ offset: 69, 0
+ index: 19
walk.frontright
rotate: false
- xy: 701, 1227
- size: 212, 421
+ xy: 1168, 1635
+ size: 239, 411
orig: 290, 424
- offset: 66, 0
- index: 1
+ offset: 34, 1
+ index: 13
walk.frontright
rotate: false
- xy: 705, 805
- size: 211, 420
+ xy: 905, 385
+ size: 205, 410
orig: 290, 424
- offset: 65, 0
- index: 2
+ offset: 62, 0
+ index: 4
walk.frontright
rotate: false
- xy: 915, 402
- size: 217, 401
+ xy: 1103, 807
+ size: 221, 409
orig: 290, 424
- offset: 58, 2
- index: 15
+ offset: 46, 0
+ index: 8
walk.frontright
rotate: false
- xy: 915, 1230
- size: 212, 418
+ xy: 1179, 1226
+ size: 204, 407
orig: 290, 424
- offset: 69, 0
- index: 20
+ offset: 69, 1
+ index: 18
walk.frontright
rotate: false
- xy: 918, 815
- size: 210, 413
+ xy: 1112, 399
+ size: 226, 406
orig: 290, 424
- offset: 69, 0
- index: 19
+ offset: 47, 1
+ index: 14
walk.frontright
rotate: false
- xy: 1129, 1242
+ xy: 1326, 818
size: 212, 406
orig: 290, 424
offset: 54, 0
index: 7
walk.frontright
rotate: false
- xy: 1134, 407
- size: 209, 402
- orig: 290, 424
- offset: 63, 2
- index: 17
-walk.frontright
- rotate: false
- xy: 1338, 824
- size: 204, 416
+ xy: 1385, 1227
+ size: 204, 406
orig: 290, 424
- offset: 65, 0
- index: 3
+ offset: 62, 0
+ index: 5
walk.frontright
rotate: false
- xy: 1343, 1242
- size: 204, 407
+ xy: 1409, 1641
+ size: 202, 405
orig: 290, 424
- offset: 69, 1
- index: 18
+ offset: 62, 0
+ index: 6
walk.frontright
rotate: false
- xy: 1345, 412
- size: 205, 410
+ xy: 1539, 414
+ size: 209, 402
orig: 290, 424
- offset: 62, 0
- index: 4
+ offset: 63, 2
+ index: 17
walk.frontright
rotate: false
- xy: 1544, 834
- size: 204, 406
+ xy: 1540, 824
+ size: 217, 401
orig: 290, 424
- offset: 62, 0
- index: 5
+ offset: 58, 2
+ index: 15
walk.frontright
rotate: false
- xy: 1549, 1244
- size: 202, 405
+ xy: 1622, 12
+ size: 220, 400
orig: 290, 424
- offset: 62, 0
- index: 6
+ offset: 61, 2
+ index: 16
player_down2.png
-size: 1369,840
+size: 1399, 801
format: RGBA8888
-filter: Linear,Linear
+filter: Linear, Linear
repeat: none
crouch.right
rotate: false
- xy: 854, 193
+ xy: 929, 172
size: 197, 226
orig: 197, 424
offset: 0, 1
index: 5
crouch.right
rotate: false
- xy: 1053, 216
+ xy: 1128, 195
size: 197, 203
orig: 197, 424
offset: 0, 2
index: 6
runaway
rotate: false
- xy: 180, 47
- size: 163, 393
- orig: 366, 456
- offset: 116, 24
- index: 3
-runaway
- rotate: false
- xy: 359, 446
- size: 136, 393
- orig: 366, 456
- offset: 163, 25
- index: 2
-runaway
- rotate: false
- xy: 711, 62
- size: 141, 357
- orig: 366, 456
- offset: 61, 31
- index: 7
-runaway
- rotate: false
- xy: 1252, 177
- size: 116, 242
- orig: 366, 456
- offset: 16, 136
- index: 11
-runaway
- rotate: false
- xy: 854, 5
- size: 126, 186
+ xy: 751, 13
+ size: 176, 387
orig: 366, 456
- offset: 0, 190
- index: 12
+ offset: 94, 23
+ index: 4
runaway
rotate: false
- xy: 982, 40
+ xy: 929, 19
size: 124, 151
orig: 366, 456
offset: 0, 224
index: 13
runaway
rotate: false
- xy: 1108, 64
+ xy: 1055, 20
size: 113, 150
orig: 366, 456
offset: 0, 225
index: 14
runaway
rotate: false
- xy: 1223, 29
- size: 72, 146
+ xy: 1170, 7
+ size: 126, 186
orig: 366, 456
- offset: 0, 231
- index: 16
-stand.frontright
- rotate: false
- xy: 497, 421
- size: 120, 418
- orig: 120, 424
- offset: 0, 2
- index: -1
-talk.right
+ offset: 0, 190
+ index: 12
+runaway
rotate: false
- xy: 619, 421
- size: 120, 418
- orig: 120, 424
- offset: 0, 2
- index: 1
-talk.right
+ xy: 1298, 57
+ size: 96, 136
+ orig: 366, 456
+ offset: 0, 239
+ index: 15
+throwgoddess
rotate: false
- xy: 619, 421
- size: 120, 418
- orig: 120, 424
- offset: 0, 2
- index: 14
-talk.right
+ xy: 2, 401
+ size: 221, 398
+ orig: 234, 456
+ offset: 11, 19
+ index: 7
+throwgoddess
rotate: false
- xy: 741, 421
- size: 120, 418
- orig: 120, 424
- offset: 0, 2
+ xy: 2, 2
+ size: 210, 397
+ orig: 234, 456
+ offset: 22, 20
index: 2
-talk.right
+throwgoddess
rotate: false
- xy: 741, 421
- size: 120, 418
- orig: 120, 424
- offset: 0, 2
+ xy: 433, 402
+ size: 196, 397
+ orig: 234, 456
+ offset: 36, 20
index: 3
-talk.right
- rotate: false
- xy: 863, 421
- size: 120, 418
- orig: 120, 424
- offset: 0, 2
- index: 4
-talk.right
- rotate: false
- xy: 985, 421
- size: 120, 418
- orig: 120, 424
- offset: 0, 2
- index: 5
-talk.right
+throwgoddess
rotate: false
- xy: 985, 421
- size: 120, 418
- orig: 120, 424
- offset: 0, 2
+ xy: 631, 402
+ size: 196, 397
+ orig: 234, 456
+ offset: 36, 20
index: 6
-talk.right
- rotate: false
- xy: 1107, 421
- size: 120, 418
- orig: 120, 424
- offset: 0, 2
- index: 7
-talk.right
- rotate: false
- xy: 1107, 421
- size: 120, 418
- orig: 120, 424
- offset: 0, 2
- index: 8
-talk.right
- rotate: false
- xy: 1107, 421
- size: 120, 418
- orig: 120, 424
- offset: 0, 2
- index: 12
-talk.right
- rotate: false
- xy: 1229, 421
- size: 120, 418
- orig: 120, 424
- offset: 0, 2
- index: 9
-talk.right
- rotate: false
- xy: 345, 22
- size: 120, 418
- orig: 120, 424
- offset: 0, 2
- index: 10
-talk.right
- rotate: false
- xy: 467, 1
- size: 120, 418
- orig: 120, 424
- offset: 0, 2
- index: 11
-talk.right
- rotate: false
- xy: 589, 1
- size: 120, 418
- orig: 120, 424
- offset: 0, 2
- index: 13
throwgoddess
rotate: false
- xy: 180, 442
+ xy: 572, 3
size: 177, 397
orig: 234, 456
offset: 57, 18
index: 15
throwgoddess2
rotate: false
- xy: 1, 442
+ xy: 225, 402
+ size: 206, 397
+ orig: 234, 456
+ offset: 28, 20
+ index: 6
+throwgoddess2
+ rotate: false
+ xy: 829, 402
+ size: 192, 397
+ orig: 234, 456
+ offset: 42, 20
+ index: 5
+throwgoddess2
+ rotate: false
+ xy: 1023, 400
+ size: 189, 399
+ orig: 234, 456
+ offset: 45, 18
+ index: 4
+throwgoddess2
+ rotate: false
+ xy: 1214, 401
+ size: 183, 398
+ orig: 234, 456
+ offset: 51, 18
+ index: 3
+throwgoddess2
+ rotate: false
+ xy: 214, 2
size: 177, 397
orig: 234, 456
offset: 57, 18
index: 1
throwgoddess2
rotate: false
- xy: 1, 43
+ xy: 393, 3
size: 177, 397
orig: 234, 456
offset: 57, 18
diff --git a/venus/assets/atlases/0.5/player_down.png b/venus/assets/atlases/0.5/player_down.png
index 73d7f3c..610e47d 100644
Binary files a/venus/assets/atlases/0.5/player_down.png and b/venus/assets/atlases/0.5/player_down.png differ
diff --git a/venus/assets/atlases/0.5/player_down2.png b/venus/assets/atlases/0.5/player_down2.png
index 080c98d..af3bb74 100644
Binary files a/venus/assets/atlases/0.5/player_down2.png and b/venus/assets/atlases/0.5/player_down2.png differ
diff --git a/venus/assets/atlases/0.5/policeman.atlas b/venus/assets/atlases/0.5/policeman.atlas
index b4f366c..be1de9a 100644
--- a/venus/assets/atlases/0.5/policeman.atlas
+++ b/venus/assets/atlases/0.5/policeman.atlas
@@ -1,299 +1,299 @@
policeman.png
-size: 1971,1952
+size: 1959, 1954
format: RGBA8888
-filter: Linear,Linear
+filter: Linear, Linear
repeat: none
fall
rotate: false
- xy: 1, 4
+ xy: 1457, 1151
+ size: 267, 372
+ orig: 492, 428
+ offset: 8, 28
+ index: 3
+fall
+ rotate: false
+ xy: 1166, 314
+ size: 261, 351
+ orig: 492, 428
+ offset: 12, 28
+ index: 4
+fall
+ rotate: false
+ xy: 1748, 1558
+ size: 209, 394
+ orig: 492, 428
+ offset: 67, 27
+ index: 2
+fall
+ rotate: false
+ xy: 2, 6
size: 290, 227
orig: 492, 428
offset: 113, 50
index: 9
fall
rotate: false
- xy: 293, 83
+ xy: 294, 83
size: 302, 151
orig: 492, 428
offset: 114, 52
index: 10
fall
rotate: false
- xy: 597, 1833
- size: 374, 118
+ xy: 598, 116
+ size: 373, 120
orig: 492, 428
- offset: 106, 23
- index: 15
+ offset: 107, 21
+ index: 16
fall
rotate: false
- xy: 973, 1838
- size: 374, 113
+ xy: 598, 2
+ size: 374, 112
orig: 492, 428
offset: 106, 28
- index: 14
+ index: 13
fall
rotate: false
- xy: 1349, 1839
- size: 374, 112
+ xy: 1456, 693
+ size: 187, 401
orig: 492, 428
- offset: 106, 28
- index: 13
+ offset: 89, 27
+ index: 1
fall
rotate: false
- xy: 1725, 1612
+ xy: 1429, 326
size: 224, 339
orig: 492, 428
offset: 48, 29
index: 5
fall
rotate: false
- xy: 1349, 1717
- size: 373, 120
- orig: 492, 428
- offset: 107, 21
- index: 16
-fall
- rotate: false
- xy: 973, 1729
- size: 364, 107
- orig: 492, 428
- offset: 108, 39
- index: 12
-fall
- rotate: false
- xy: 597, 1718
- size: 319, 113
+ xy: 1645, 822
+ size: 207, 327
orig: 492, 428
- offset: 113, 51
- index: 11
+ offset: 92, 30
+ index: 6
fall
rotate: false
- xy: 1500, 1414
+ xy: 1655, 519
size: 223, 301
orig: 492, 428
offset: 109, 36
index: 7
fall
rotate: false
- xy: 1725, 1216
- size: 209, 394
- orig: 492, 428
- offset: 67, 27
- index: 2
-fall
- rotate: false
- xy: 1500, 1085
- size: 207, 327
+ xy: 1655, 249
+ size: 270, 268
orig: 492, 428
- offset: 92, 30
- index: 6
+ offset: 110, 47
+ index: 8
fall
rotate: false
- xy: 1709, 863
- size: 261, 351
+ xy: 1166, 199
+ size: 319, 113
orig: 492, 428
- offset: 12, 28
- index: 4
+ offset: 113, 51
+ index: 11
fall
rotate: false
- xy: 1470, 682
- size: 187, 401
+ xy: 1487, 134
+ size: 374, 113
orig: 492, 428
- offset: 89, 27
- index: 1
+ offset: 106, 28
+ index: 14
fall
rotate: false
- xy: 1659, 593
- size: 270, 268
+ xy: 974, 79
+ size: 374, 118
orig: 492, 428
- offset: 110, 47
- index: 8
+ offset: 106, 23
+ index: 15
fall
rotate: false
- xy: 1469, 56
- size: 267, 372
+ xy: 1350, 25
+ size: 364, 107
orig: 492, 428
- offset: 8, 28
- index: 3
+ offset: 108, 39
+ index: 12
stand.frontleft
rotate: false
- xy: 292, 1094
+ xy: 584, 1525
size: 289, 427
orig: 289, 428
offset: 0, 1
index: -1
talk.left
rotate: false
- xy: 292, 665
+ xy: 2, 235
size: 289, 427
orig: 289, 428
offset: 0, 1
index: 1
talk.left
rotate: false
- xy: 292, 236
+ xy: 293, 665
size: 289, 427
orig: 289, 428
offset: 0, 1
index: 2
talk.left
rotate: false
- xy: 292, 236
+ xy: 293, 665
size: 289, 427
orig: 289, 428
offset: 0, 1
index: 11
talk.left
rotate: false
- xy: 918, 1300
+ xy: 584, 1096
size: 289, 427
orig: 289, 428
offset: 0, 1
index: 3
talk.left
rotate: false
- xy: 918, 1300
+ xy: 584, 1096
size: 289, 427
orig: 289, 428
offset: 0, 1
index: 13
talk.left
rotate: false
- xy: 597, 1289
+ xy: 875, 1525
size: 289, 427
orig: 289, 428
offset: 0, 1
index: 4
talk.left
rotate: false
- xy: 597, 1289
+ xy: 875, 1525
size: 289, 427
orig: 289, 428
offset: 0, 1
index: 5
talk.left
rotate: false
- xy: 1209, 1288
+ xy: 293, 236
size: 289, 427
orig: 289, 428
offset: 0, 1
index: 6
talk.left
rotate: false
- xy: 888, 871
+ xy: 584, 667
size: 289, 427
orig: 289, 428
offset: 0, 1
index: 7
talk.left
rotate: false
- xy: 888, 871
+ xy: 584, 667
size: 289, 427
orig: 289, 428
offset: 0, 1
- index: 8
+ index: 12
talk.left
rotate: false
- xy: 888, 871
+ xy: 584, 667
size: 289, 427
orig: 289, 428
offset: 0, 1
- index: 12
+ index: 9
talk.left
rotate: false
- xy: 888, 871
+ xy: 584, 667
size: 289, 427
orig: 289, 428
offset: 0, 1
- index: 9
+ index: 8
talk.left
rotate: false
- xy: 597, 860
+ xy: 875, 1096
size: 289, 427
orig: 289, 428
offset: 0, 1
index: 10
talk.left
rotate: false
- xy: 1179, 859
+ xy: 1166, 1525
size: 289, 427
orig: 289, 428
offset: 0, 1
index: 14
turn.left
rotate: false
- xy: 1, 1523
+ xy: 2, 1524
size: 289, 428
orig: 289, 428
offset: 0, 0
index: 3
turn.left
rotate: false
- xy: 1, 1093
+ xy: 2, 1094
size: 289, 428
orig: 289, 428
offset: 0, 0
index: 4
turn.left
rotate: false
- xy: 1, 663
+ xy: 293, 1524
size: 289, 428
orig: 289, 428
offset: 0, 0
index: 5
turn.left
rotate: false
- xy: 1, 233
+ xy: 2, 664
size: 289, 428
orig: 289, 428
offset: 0, 0
index: 6
turn.left
rotate: false
- xy: 292, 1523
+ xy: 293, 1094
size: 289, 428
orig: 289, 428
offset: 0, 0
index: 7
turn.left
rotate: false
- xy: 888, 442
+ xy: 584, 238
size: 289, 427
orig: 289, 427
offset: 0, 0
index: 1
turn.left
rotate: false
- xy: 597, 431
+ xy: 875, 667
size: 289, 427
orig: 289, 427
offset: 0, 0
index: 2
turn.left
rotate: false
- xy: 597, 2
+ xy: 1166, 1096
size: 289, 427
orig: 289, 427
offset: 0, 0
index: 8
turn.left
rotate: false
- xy: 888, 13
+ xy: 1457, 1525
size: 289, 427
orig: 289, 427
offset: 0, 0
index: 9
turn.left
rotate: false
- xy: 1179, 430
+ xy: 875, 238
size: 289, 427
orig: 289, 427
offset: 0, 0
index: 10
turn.left
rotate: false
- xy: 1179, 1
+ xy: 1166, 667
size: 288, 427
orig: 288, 427
offset: 0, 0
diff --git a/venus/assets/atlases/0.5/policeman.png b/venus/assets/atlases/0.5/policeman.png
index eb5a39e..1dcd7bc 100644
Binary files a/venus/assets/atlases/0.5/policeman.png and b/venus/assets/atlases/0.5/policeman.png differ
diff --git a/venus/assets/atlases/0.5/scene0.atlas b/venus/assets/atlases/0.5/scene0.atlas
index e69b263..30f55b8 100644
--- a/venus/assets/atlases/0.5/scene0.atlas
+++ b/venus/assets/atlases/0.5/scene0.atlas
@@ -1,12 +1,12 @@
scene0.png
-size: 79,79
+size: 81, 81
format: RGBA8888
-filter: Linear,Linear
+filter: Linear, Linear
repeat: none
forward
rotate: false
- xy: 1, 1
+ xy: 2, 2
size: 77, 77
orig: 77, 77
offset: 0, 0
diff --git a/venus/assets/atlases/0.5/scene0.png b/venus/assets/atlases/0.5/scene0.png
index ad982db..0465fbd 100644
Binary files a/venus/assets/atlases/0.5/scene0.png and b/venus/assets/atlases/0.5/scene0.png differ
diff --git a/venus/assets/atlases/0.5/scene1.atlas b/venus/assets/atlases/0.5/scene1.atlas
index 29a33b4..351f2d1 100644
--- a/venus/assets/atlases/0.5/scene1.atlas
+++ b/venus/assets/atlases/0.5/scene1.atlas
@@ -1,313 +1,313 @@
scene1.png
-size: 2008,1038
+size: 2014, 1037
format: RGBA8888
-filter: Linear,Linear
+filter: Linear, Linear
repeat: none
bg1
rotate: false
- xy: 1, 497
+ xy: 2, 495
size: 1511, 540
orig: 1511, 540
offset: 0, 0
index: -1
cabinet_off
rotate: false
- xy: 639, 1
+ xy: 1000, 2
size: 170, 139
orig: 196, 186
offset: 9, 18
index: -1
cable.connected
rotate: false
- xy: 421, 57
+ xy: 689, 66
size: 60, 58
orig: 108, 60
offset: 39, 0
index: -1
cable.disconnected
rotate: false
- xy: 1, 5
+ xy: 71, 3
size: 68, 27
orig: 108, 58
offset: 38, 0
index: -1
cable.inventory
rotate: false
- xy: 267, 40
+ xy: 458, 38
size: 75, 75
orig: 75, 75
offset: 0, 0
index: -1
chair.broken
rotate: false
- xy: 1840, 590
+ xy: 337, 31
size: 119, 82
orig: 127, 89
offset: 5, 0
index: -1
chair.inventory
rotate: false
- xy: 811, 17
+ xy: 689, 15
size: 71, 49
orig: 75, 75
offset: 3, 11
index: -1
chair2
rotate: false
- xy: 1632, 79
+ xy: 1172, 6
size: 67, 161
orig: 67, 171
offset: 0, 0
index: -1
column_fg
rotate: false
- xy: 1514, 497
+ xy: 1515, 495
size: 155, 540
orig: 160, 540
offset: 0, 0
index: -1
exit
rotate: false
- xy: 267, 117
+ xy: 337, 115
size: 222, 378
orig: 222, 378
offset: 0, 0
index: -1
head_fg
rotate: false
- xy: 1, 34
+ xy: 71, 32
size: 264, 461
orig: 293, 490
offset: 29, 0
index: -1
hole
rotate: false
- xy: 1671, 497
+ xy: 612, 9
size: 34, 38
orig: 34, 79
offset: 0, 41
index: -1
player.chairbroke
rotate: false
- xy: 491, 128
+ xy: 561, 126
size: 146, 367
orig: 171, 386
offset: 16, 12
index: 21
sitdown
rotate: false
- xy: 491, 128
+ xy: 561, 126
size: 146, 367
orig: 171, 386
offset: 16, 12
index: 1
player.chairbroke
rotate: false
- xy: 1840, 674
+ xy: 709, 130
size: 146, 363
orig: 171, 386
offset: 17, 10
index: 20
player.chairbroke
rotate: false
- xy: 782, 145
+ xy: 1000, 143
size: 141, 350
orig: 171, 386
offset: 19, 6
index: 19
player.chairbroke
rotate: false
- xy: 925, 171
+ xy: 1143, 169
size: 129, 324
orig: 171, 386
offset: 26, 3
index: 18
player.chairbroke
rotate: false
- xy: 1188, 206
+ xy: 1274, 4
+ size: 92, 172
+ orig: 171, 386
+ offset: 35, 50
+ index: 5
+player.chairbroke
+ rotate: false
+ xy: 1368, 4
+ size: 89, 172
+ orig: 171, 386
+ offset: 38, 50
+ index: 6
+player.chairbroke
+ rotate: false
+ xy: 1406, 204
size: 116, 289
orig: 171, 386
offset: 31, 2
index: 17
player.chairbroke
rotate: false
- xy: 1522, 235
+ xy: 1459, 26
+ size: 80, 176
+ orig: 171, 386
+ offset: 45, 40
+ index: 13
+player.chairbroke
+ rotate: false
+ xy: 1541, 31
+ size: 89, 172
+ orig: 171, 386
+ offset: 38, 50
+ index: 7
+player.chairbroke
+ rotate: false
+ xy: 1632, 32
+ size: 94, 171
+ orig: 171, 386
+ offset: 34, 50
+ index: 9
+player.chairbroke
+ rotate: false
+ xy: 1728, 16
+ size: 84, 206
+ orig: 171, 386
+ offset: 47, 10
+ index: 14
+player.chairbroke
+ rotate: false
+ xy: 1740, 273
size: 98, 260
orig: 171, 386
offset: 38, 49
index: 1
sitdown
rotate: false
- xy: 1522, 235
+ xy: 1740, 273
size: 98, 260
orig: 171, 386
offset: 38, 49
index: 6
player.chairbroke
rotate: false
- xy: 1622, 242
+ xy: 1814, 18
size: 96, 253
orig: 171, 386
offset: 39, 47
index: 2
player.chairbroke
rotate: false
- xy: 1720, 284
+ xy: 1912, 784
size: 100, 251
orig: 171, 386
offset: 38, 5
index: 16
player.chairbroke
rotate: false
- xy: 1822, 309
+ xy: 1772, 543
size: 88, 239
orig: 171, 386
offset: 43, 44
index: 3
player.chairbroke
rotate: false
- xy: 1912, 363
- size: 93, 225
- orig: 171, 386
- offset: 43, 5
- index: 15
-player.chairbroke
- rotate: false
- xy: 1912, 191
+ xy: 1912, 612
size: 95, 170
orig: 171, 386
offset: 34, 50
index: 4
player.chairbroke
rotate: false
- xy: 1912, 191
+ xy: 1912, 612
size: 95, 170
orig: 171, 386
offset: 34, 50
index: 11
player.chairbroke
rotate: false
- xy: 1720, 112
+ xy: 1912, 440
size: 95, 170
orig: 171, 386
offset: 34, 50
index: 10
player.chairbroke
rotate: false
- xy: 1817, 110
- size: 92, 172
- orig: 171, 386
- offset: 35, 50
- index: 5
-player.chairbroke
- rotate: false
- xy: 1911, 18
- size: 94, 171
+ xy: 1912, 213
+ size: 93, 225
orig: 171, 386
- offset: 34, 50
- index: 9
+ offset: 43, 5
+ index: 15
player.chairbroke
rotate: false
- xy: 1188, 33
+ xy: 1912, 40
size: 92, 171
orig: 171, 386
offset: 35, 50
index: 8
player.chairbroke
rotate: false
- xy: 1282, 32
- size: 89, 172
- orig: 171, 386
- offset: 38, 50
- index: 6
-player.chairbroke
- rotate: false
- xy: 1373, 29
- size: 80, 176
- orig: 171, 386
- offset: 45, 40
- index: 13
-player.chairbroke
- rotate: false
- xy: 1455, 18
- size: 84, 206
- orig: 171, 386
- offset: 47, 10
- index: 14
-player.chairbroke
- rotate: false
- xy: 1541, 61
- size: 89, 172
- orig: 171, 386
- offset: 38, 50
- index: 7
-player.chairbroke
- rotate: false
- xy: 1056, 9
+ xy: 1772, 866
size: 91, 169
orig: 171, 386
offset: 36, 50
index: 12
rope
rotate: false
- xy: 1671, 537
+ xy: 1672, 535
size: 98, 500
orig: 98, 500
offset: 0, 0
index: -1
rope.floor
rotate: false
- xy: 925, 137
+ xy: 458, 4
size: 99, 32
orig: 103, 106
offset: 1, 17
index: -1
rope.inventory
rotate: false
- xy: 344, 40
+ xy: 535, 38
size: 75, 75
orig: 75, 75
offset: 0, 0
index: -1
rope.withanchor
rotate: false
- xy: 811, 68
+ xy: 612, 49
size: 75, 75
orig: 75, 75
offset: 0, 0
index: -1
rope2
rotate: false
- xy: 1771, 550
+ xy: 2, 6
size: 67, 487
orig: 129, 500
offset: 56, 13
index: -1
sitdown
rotate: false
- xy: 639, 142
+ xy: 857, 140
size: 141, 353
orig: 171, 386
offset: 18, 19
index: 2
sitdown
rotate: false
- xy: 1056, 180
+ xy: 1274, 178
size: 130, 315
orig: 171, 386
offset: 24, 38
index: 3
sitdown
rotate: false
- xy: 1306, 207
+ xy: 1524, 205
size: 111, 288
orig: 171, 386
offset: 32, 42
index: 4
sitdown
rotate: false
- xy: 1419, 226
+ xy: 1637, 224
size: 101, 269
orig: 171, 386
offset: 37, 46
diff --git a/venus/assets/atlases/0.5/scene1.png b/venus/assets/atlases/0.5/scene1.png
index ad622b1..24a847b 100644
Binary files a/venus/assets/atlases/0.5/scene1.png and b/venus/assets/atlases/0.5/scene1.png differ
diff --git a/venus/assets/atlases/0.5/scene1_rope.atlas b/venus/assets/atlases/0.5/scene1_rope.atlas
index 9d8f631..f647467 100644
--- a/venus/assets/atlases/0.5/scene1_rope.atlas
+++ b/venus/assets/atlases/0.5/scene1_rope.atlas
@@ -1,293 +1,293 @@
scene1_rope.png
-size: 1971,2008
+size: 2004, 2010
format: RGBA8888
-filter: Linear,Linear
+filter: Linear, Linear
repeat: none
rope.down
rotate: false
- xy: 960, 1
+ xy: 962, 1006
size: 208, 500
orig: 276, 500
offset: 0, 0
index: 1
rope.down
rotate: false
- xy: 961, 1507
+ xy: 1202, 1508
size: 208, 500
orig: 276, 500
offset: 0, 0
index: 2
rope.down
rotate: false
- xy: 961, 1005
+ xy: 722, 2
size: 208, 500
orig: 276, 500
offset: 0, 0
index: 3
rope.down
rotate: false
- xy: 961, 503
+ xy: 961, 504
size: 208, 500
orig: 276, 500
offset: 0, 0
index: 4
rope.down
rotate: false
- xy: 1170, 1
+ xy: 1172, 1006
size: 208, 500
orig: 276, 500
offset: 0, 0
index: 5
rope.down
rotate: false
- xy: 1171, 1507
+ xy: 1412, 1508
size: 208, 500
orig: 276, 500
offset: 0, 0
index: 6
rope.down
rotate: false
- xy: 1171, 1005
+ xy: 932, 2
size: 208, 500
orig: 276, 500
offset: 0, 0
index: 7
rope.down
rotate: false
- xy: 1171, 503
+ xy: 1171, 504
size: 208, 500
orig: 276, 500
offset: 0, 0
index: 8
rope.down
rotate: false
- xy: 1380, 1
+ xy: 1382, 1006
size: 208, 500
orig: 276, 500
offset: 0, 0
index: 9
rope.down
rotate: false
- xy: 1590, 1507
+ xy: 1622, 1508
size: 208, 500
orig: 276, 500
offset: 0, 0
index: 10
rope.down
rotate: false
- xy: 1553, 1005
+ xy: 1142, 2
size: 208, 500
orig: 276, 500
offset: 0, 0
index: 11
rope.down
rotate: false
- xy: 1553, 503
+ xy: 1381, 504
size: 208, 500
orig: 276, 500
offset: 0, 0
index: 12
rope.down
rotate: false
- xy: 1590, 1
+ xy: 1592, 1006
size: 208, 500
orig: 276, 500
offset: 0, 0
index: 13
rope.down
rotate: false
- xy: 1590, 1
+ xy: 1592, 1006
size: 208, 500
orig: 276, 500
offset: 0, 0
index: 15
rope.down
rotate: false
- xy: 1590, 1
+ xy: 1592, 1006
size: 208, 500
orig: 276, 500
offset: 0, 0
index: 14
rope.fall
rotate: false
- xy: 1, 1507
+ xy: 2, 1508
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 1
rope.fall
rotate: false
- xy: 1, 1005
+ xy: 2, 1006
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 2
rope.fall
rotate: false
- xy: 1, 503
+ xy: 242, 1508
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 3
rope.fall
rotate: false
- xy: 1, 1
+ xy: 2, 504
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 4
rope.fall
rotate: false
- xy: 241, 1507
+ xy: 242, 1006
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 5
rope.fall
rotate: false
- xy: 241, 1005
+ xy: 482, 1508
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 6
rope.fall
rotate: false
- xy: 241, 1005
+ xy: 482, 1508
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 8
rope.fall
rotate: false
- xy: 241, 1005
+ xy: 482, 1508
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 7
rope.fall
rotate: false
- xy: 241, 503
+ xy: 2, 2
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 9
rope.fall
rotate: false
- xy: 241, 1
+ xy: 242, 504
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 10
rope.fall
rotate: false
- xy: 481, 1507
+ xy: 482, 1006
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 11
rope.fall
rotate: false
- xy: 481, 1005
+ xy: 722, 1508
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 12
rope.fall
rotate: false
- xy: 481, 503
+ xy: 242, 2
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 13
rope.fall
rotate: false
- xy: 481, 1
+ xy: 482, 504
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 14
rope.fall
rotate: false
- xy: 721, 1507
+ xy: 722, 1006
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 15
rope.fall
rotate: false
- xy: 721, 1005
+ xy: 962, 1508
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 16
rope.fall
rotate: false
- xy: 721, 503
+ xy: 482, 2
size: 238, 500
orig: 238, 500
offset: 0, 0
index: 17
rope.fall
rotate: false
- xy: 721, 1
+ xy: 722, 504
size: 237, 500
orig: 238, 500
offset: 1, 0
index: 18
rope.fall
rotate: false
- xy: 1381, 1649
- size: 182, 358
- orig: 238, 500
- offset: 56, 0
- index: 19
-rope.fall
- rotate: false
- xy: 1381, 1289
+ xy: 1832, 1650
size: 170, 358
orig: 238, 500
offset: 68, 0
index: 26
rope.fall
rotate: false
- xy: 1800, 1650
+ xy: 1832, 1291
size: 170, 357
orig: 238, 500
offset: 68, 0
index: 25
rope.fall
rotate: false
- xy: 1800, 1292
+ xy: 1352, 144
+ size: 182, 358
+ orig: 238, 500
+ offset: 56, 0
+ index: 19
+rope.fall
+ rotate: false
+ xy: 1591, 648
size: 170, 356
orig: 238, 500
offset: 68, 0
index: 24
rope.fall
rotate: false
- xy: 1381, 932
- size: 170, 355
+ xy: 1802, 935
+ size: 170, 354
orig: 238, 500
offset: 68, 0
- index: 23
+ index: 20
rope.fall
rotate: false
- xy: 1381, 576
- size: 170, 354
+ xy: 1763, 581
+ size: 170, 352
orig: 238, 500
offset: 68, 0
- index: 20
+ index: 21
rope.fall
rotate: false
- xy: 1763, 937
- size: 170, 353
+ xy: 1536, 147
+ size: 170, 355
orig: 238, 500
offset: 68, 0
- index: 22
+ index: 23
rope.fall
rotate: false
- xy: 1763, 583
- size: 170, 352
+ xy: 1708, 226
+ size: 170, 353
orig: 238, 500
offset: 68, 0
- index: 21
+ index: 22
diff --git a/venus/assets/atlases/0.5/scene1_rope.png b/venus/assets/atlases/0.5/scene1_rope.png
index d83c329..e0198fd 100644
Binary files a/venus/assets/atlases/0.5/scene1_rope.png and b/venus/assets/atlases/0.5/scene1_rope.png differ
diff --git a/venus/assets/atlases/0.5/scene1_rope_throw.atlas b/venus/assets/atlases/0.5/scene1_rope_throw.atlas
index 524ec56..a63b13e 100644
--- a/venus/assets/atlases/0.5/scene1_rope_throw.atlas
+++ b/venus/assets/atlases/0.5/scene1_rope_throw.atlas
@@ -1,152 +1,152 @@
scene1_rope_throw.png
-size: 1744,853
+size: 1746, 855
format: RGBA8888
-filter: Linear,Linear
+filter: Linear, Linear
repeat: none
rope.throw
rotate: false
- xy: 1, 386
+ xy: 2, 387
size: 224, 466
orig: 335, 500
offset: 57, 8
index: 15
rope.throw
rotate: false
- xy: 227, 360
+ xy: 228, 361
size: 166, 492
orig: 335, 500
offset: 115, 8
index: 16
rope.throw
rotate: false
- xy: 395, 360
+ xy: 396, 361
size: 123, 492
orig: 335, 500
offset: 159, 8
index: 20
rope.throw
rotate: false
- xy: 520, 360
+ xy: 521, 361
size: 121, 492
orig: 335, 500
offset: 160, 8
index: 17
rope.throw
rotate: false
- xy: 643, 360
+ xy: 644, 361
size: 121, 492
orig: 335, 500
offset: 160, 8
index: 18
rope.throw
rotate: false
- xy: 766, 360
+ xy: 767, 361
size: 121, 492
orig: 335, 500
offset: 160, 8
index: 21
rope.throw
rotate: false
- xy: 889, 360
+ xy: 890, 361
size: 120, 492
orig: 335, 500
offset: 161, 8
index: 19
rope.throw
rotate: false
- xy: 1011, 495
+ xy: 1012, 496
size: 238, 357
orig: 335, 500
offset: 43, 8
index: 14
rope.throw
rotate: false
- xy: 1251, 495
+ xy: 1252, 496
size: 230, 357
orig: 335, 500
offset: 51, 8
index: 13
rope.throw
rotate: false
- xy: 1, 27
+ xy: 2, 28
size: 222, 357
orig: 335, 500
offset: 59, 8
index: 4
rope.throw
rotate: false
- xy: 1483, 495
+ xy: 1484, 496
size: 219, 357
orig: 335, 500
offset: 62, 8
index: 3
rope.throw
rotate: false
- xy: 225, 1
+ xy: 226, 2
size: 181, 357
orig: 335, 500
offset: 100, 8
index: 12
rope.throw
rotate: false
- xy: 408, 1
+ xy: 409, 2
size: 166, 357
orig: 335, 500
offset: 160, 8
index: 9
rope.throw
rotate: false
- xy: 576, 1
+ xy: 577, 2
size: 163, 357
orig: 335, 500
offset: 160, 8
index: 8
rope.throw
rotate: false
- xy: 741, 1
+ xy: 742, 2
size: 162, 357
orig: 335, 500
offset: 119, 8
index: 2
rope.throw
rotate: false
- xy: 905, 1
+ xy: 906, 2
size: 124, 357
orig: 335, 500
offset: 157, 8
index: 1
rope.throw
rotate: false
- xy: 1031, 111
+ xy: 1032, 112
size: 185, 382
orig: 335, 500
offset: 96, 8
index: 5
rope.throw
rotate: false
- xy: 1218, 97
+ xy: 1219, 98
size: 147, 396
orig: 335, 500
offset: 134, 8
index: 6
rope.throw
rotate: false
- xy: 1367, 124
+ xy: 1368, 125
size: 121, 369
orig: 335, 500
offset: 160, 8
index: 7
rope.throw
rotate: false
- xy: 1490, 136
+ xy: 1491, 137
size: 130, 357
orig: 335, 500
offset: 160, 8
index: 10
rope.throw
rotate: false
- xy: 1622, 136
+ xy: 1623, 137
size: 121, 357
orig: 335, 500
offset: 160, 8
diff --git a/venus/assets/atlases/0.5/scene1_rope_throw.png b/venus/assets/atlases/0.5/scene1_rope_throw.png
index 4addee8..8e763ea 100644
Binary files a/venus/assets/atlases/0.5/scene1_rope_throw.png and b/venus/assets/atlases/0.5/scene1_rope_throw.png differ
diff --git a/venus/assets/atlases/0.5/scene1_rope_up.atlas b/venus/assets/atlases/0.5/scene1_rope_up.atlas
index 1faadb8..42d57db 100644
--- a/venus/assets/atlases/0.5/scene1_rope_up.atlas
+++ b/venus/assets/atlases/0.5/scene1_rope_up.atlas
@@ -1,418 +1,418 @@
scene1_rope_up.png
-size: 1713,1961
+size: 1713, 1963
format: RGBA8888
-filter: Linear,Linear
+filter: Linear, Linear
repeat: none
rope.up
rotate: false
- xy: 1, 1473
+ xy: 2, 1474
size: 116, 487
orig: 279, 500
offset: 132, 13
index: 7
rope.up
rotate: false
- xy: 119, 1473
+ xy: 120, 1474
size: 111, 487
orig: 279, 500
offset: 132, 13
index: 8
rope.up
rotate: false
- xy: 232, 1473
+ xy: 233, 1474
size: 104, 487
orig: 279, 500
offset: 132, 13
index: 9
rope.up
rotate: false
- xy: 338, 1473
+ xy: 339, 1474
size: 108, 487
orig: 279, 500
offset: 122, 13
index: 10
rope.up
rotate: false
- xy: 448, 1473
+ xy: 449, 1474
size: 112, 487
orig: 279, 500
offset: 116, 13
index: 11
rope.up
rotate: false
- xy: 562, 1473
+ xy: 563, 1474
size: 112, 487
orig: 279, 500
offset: 116, 13
index: 12
rope.up
rotate: false
- xy: 676, 1473
+ xy: 677, 1474
size: 112, 487
orig: 279, 500
offset: 116, 13
index: 13
rope.up
rotate: false
- xy: 790, 1473
+ xy: 791, 1474
size: 112, 487
orig: 279, 500
offset: 116, 13
index: 14
rope.up
rotate: false
- xy: 904, 1473
+ xy: 905, 1474
size: 112, 487
orig: 279, 500
offset: 116, 13
index: 15
rope.up
rotate: false
- xy: 1018, 1473
+ xy: 1019, 1474
size: 112, 487
orig: 279, 500
offset: 116, 13
index: 16
rope.up
rotate: false
- xy: 1132, 1473
+ xy: 1133, 1474
size: 112, 487
orig: 279, 500
offset: 116, 13
index: 17
rope.up
rotate: false
- xy: 1246, 1473
+ xy: 1247, 1474
size: 110, 487
orig: 279, 500
offset: 116, 13
index: 18
rope.up
rotate: false
- xy: 1358, 1473
+ xy: 1359, 1474
size: 109, 487
orig: 279, 500
offset: 119, 13
index: 19
rope.up
rotate: false
- xy: 1469, 1473
+ xy: 1470, 1474
size: 102, 487
orig: 279, 500
offset: 130, 13
index: 20
rope.up
rotate: false
- xy: 1573, 1473
+ xy: 1574, 1474
size: 104, 487
orig: 279, 500
offset: 132, 13
index: 21
rope.up
rotate: false
- xy: 1, 984
+ xy: 2, 985
size: 104, 487
orig: 279, 500
offset: 132, 13
index: 22
rope.up
rotate: false
- xy: 107, 984
+ xy: 108, 985
size: 104, 487
orig: 279, 500
offset: 132, 13
index: 23
rope.up
rotate: false
- xy: 213, 984
+ xy: 214, 985
size: 111, 487
orig: 279, 500
offset: 125, 13
index: 24
rope.up
rotate: false
- xy: 326, 984
+ xy: 327, 985
size: 116, 487
orig: 279, 500
offset: 120, 13
index: 25
rope.up
rotate: false
- xy: 444, 984
+ xy: 445, 985
size: 117, 487
orig: 279, 500
offset: 119, 13
index: 26
rope.up
rotate: false
- xy: 563, 984
+ xy: 564, 985
size: 116, 487
orig: 279, 500
offset: 120, 13
index: 27
rope.up
rotate: false
- xy: 681, 984
+ xy: 682, 985
size: 116, 487
orig: 279, 500
offset: 120, 13
index: 28
rope.up
rotate: false
- xy: 799, 984
+ xy: 800, 985
size: 115, 487
orig: 279, 500
offset: 121, 13
index: 29
rope.up
rotate: false
- xy: 916, 984
+ xy: 917, 985
size: 115, 487
orig: 279, 500
offset: 121, 13
index: 30
rope.up
rotate: false
- xy: 1033, 984
+ xy: 1034, 985
size: 115, 487
orig: 279, 500
offset: 121, 13
index: 31
rope.up
rotate: false
- xy: 1150, 984
+ xy: 1151, 985
size: 114, 487
orig: 279, 500
offset: 121, 13
index: 32
rope.up
rotate: false
- xy: 1266, 984
+ xy: 1267, 985
size: 113, 487
orig: 279, 500
offset: 121, 13
index: 33
rope.up
rotate: false
- xy: 1381, 984
+ xy: 1382, 985
size: 112, 487
orig: 279, 500
offset: 122, 13
index: 34
rope.up
rotate: false
- xy: 1495, 984
+ xy: 1496, 985
size: 109, 487
orig: 279, 500
offset: 126, 13
index: 35
rope.up
rotate: false
- xy: 1606, 984
+ xy: 1607, 985
+ size: 104, 487
+ orig: 279, 500
+ offset: 132, 13
+ index: 57
+rope.up
+ rotate: false
+ xy: 2, 496
size: 106, 487
orig: 279, 500
offset: 132, 13
index: 36
rope.up
rotate: false
- xy: 1, 495
+ xy: 110, 496
size: 109, 487
orig: 279, 500
offset: 132, 13
index: 37
rope.up
rotate: false
- xy: 112, 495
+ xy: 221, 496
size: 111, 487
orig: 279, 500
offset: 132, 13
index: 38
rope.up
rotate: false
- xy: 225, 495
+ xy: 334, 496
size: 111, 487
orig: 279, 500
offset: 132, 13
index: 39
rope.up
rotate: false
- xy: 338, 495
+ xy: 447, 496
size: 111, 487
orig: 279, 500
offset: 132, 13
index: 40
rope.up
rotate: false
- xy: 451, 495
+ xy: 560, 496
size: 111, 487
orig: 279, 500
offset: 132, 13
index: 41
rope.up
rotate: false
- xy: 564, 495
+ xy: 673, 496
size: 111, 487
orig: 279, 500
offset: 132, 13
index: 42
rope.up
rotate: false
- xy: 677, 495
+ xy: 786, 496
size: 111, 487
orig: 279, 500
offset: 132, 13
index: 43
rope.up
rotate: false
- xy: 790, 495
+ xy: 899, 496
size: 113, 487
orig: 279, 500
offset: 130, 13
index: 44
rope.up
rotate: false
- xy: 905, 495
+ xy: 1014, 496
size: 115, 487
orig: 279, 500
offset: 128, 13
index: 45
rope.up
rotate: false
- xy: 1022, 495
+ xy: 1131, 496
size: 115, 487
orig: 279, 500
offset: 128, 13
index: 46
rope.up
rotate: false
- xy: 1139, 495
+ xy: 1248, 496
size: 115, 487
orig: 279, 500
offset: 128, 13
index: 47
rope.up
rotate: false
- xy: 1256, 495
+ xy: 1365, 496
size: 115, 487
orig: 279, 500
offset: 128, 13
index: 48
rope.up
rotate: false
- xy: 1373, 495
+ xy: 1482, 496
size: 115, 487
orig: 279, 500
offset: 128, 13
index: 49
rope.up
rotate: false
- xy: 1490, 495
- size: 115, 487
+ xy: 1599, 496
+ size: 110, 487
orig: 279, 500
- offset: 128, 13
- index: 50
+ offset: 131, 13
+ index: 55
rope.up
rotate: false
- xy: 1607, 495
- size: 104, 487
+ xy: 2, 7
+ size: 115, 487
orig: 279, 500
- offset: 132, 13
- index: 57
+ offset: 128, 13
+ index: 50
rope.up
rotate: false
- xy: 1, 6
+ xy: 119, 7
size: 115, 487
orig: 279, 500
offset: 128, 13
index: 51
rope.up
rotate: false
- xy: 118, 6
+ xy: 236, 7
size: 115, 487
orig: 279, 500
offset: 128, 13
index: 52
rope.up
rotate: false
- xy: 235, 6
+ xy: 353, 7
size: 114, 487
orig: 279, 500
offset: 128, 13
index: 53
rope.up
rotate: false
- xy: 351, 6
+ xy: 469, 7
size: 114, 487
orig: 279, 500
offset: 128, 13
index: 54
rope.up
rotate: false
- xy: 467, 6
- size: 110, 487
- orig: 279, 500
- offset: 131, 13
- index: 55
-rope.up
- rotate: false
- xy: 579, 6
+ xy: 585, 7
size: 108, 487
orig: 279, 500
offset: 132, 13
index: 56
rope.up
rotate: false
- xy: 689, 6
+ xy: 695, 7
size: 101, 487
orig: 279, 500
offset: 132, 13
index: 58
rope.up
rotate: false
- xy: 792, 6
+ xy: 798, 7
size: 100, 487
orig: 279, 500
offset: 132, 13
index: 59
rope.up
rotate: false
- xy: 894, 1
+ xy: 900, 2
size: 121, 492
orig: 279, 500
offset: 132, 8
index: 1
rope.up
rotate: false
- xy: 1017, 1
+ xy: 1023, 2
size: 130, 492
orig: 279, 500
offset: 132, 8
index: 2
rope.up
rotate: false
- xy: 1149, 1
+ xy: 1155, 2
size: 132, 492
orig: 279, 500
offset: 132, 8
index: 3
rope.up
rotate: false
- xy: 1283, 1
+ xy: 1289, 2
size: 121, 492
orig: 279, 500
offset: 132, 8
index: 4
rope.up
rotate: false
- xy: 1406, 1
+ xy: 1412, 2
size: 121, 492
orig: 279, 500
offset: 132, 8
index: 5
rope.up
rotate: false
- xy: 1529, 1
+ xy: 1535, 2
size: 121, 492
orig: 279, 500
offset: 132, 8
diff --git a/venus/assets/atlases/0.5/scene1_rope_up.png b/venus/assets/atlases/0.5/scene1_rope_up.png
index 5db966c..cbc26b3 100644
Binary files a/venus/assets/atlases/0.5/scene1_rope_up.png and b/venus/assets/atlases/0.5/scene1_rope_up.png differ
diff --git a/venus/assets/atlases/0.5/scene2.atlas b/venus/assets/atlases/0.5/scene2.atlas
index 170fe63..937661f 100644
--- a/venus/assets/atlases/0.5/scene2.atlas
+++ b/venus/assets/atlases/0.5/scene2.atlas
@@ -1,19 +1,19 @@
scene2.png
-size: 1126,542
+size: 1128, 544
format: RGBA8888
-filter: Linear,Linear
+filter: Linear, Linear
repeat: none
bg2
rotate: false
- xy: 1, 1
+ xy: 2, 2
size: 960, 540
orig: 960, 540
offset: 0, 0
index: -1
fence
rotate: false
- xy: 963, 46
+ xy: 964, 47
size: 162, 495
orig: 169, 502
offset: 7, 0
diff --git a/venus/assets/atlases/0.5/scene2.png b/venus/assets/atlases/0.5/scene2.png
index 2d62a8e..ab30bea 100644
Binary files a/venus/assets/atlases/0.5/scene2.png and b/venus/assets/atlases/0.5/scene2.png differ
diff --git a/venus/assets/images/0.5/bonasera_icon.png b/venus/assets/images/0.5/bonasera_icon.png
index 8707691..49fb446 100644
Binary files a/venus/assets/images/0.5/bonasera_icon.png and b/venus/assets/images/0.5/bonasera_icon.png differ
diff --git a/venus/assets/model/c00.chapter.json b/venus/assets/model/c00.chapter.json
index fe25037..516ac29 100644
--- a/venus/assets/model/c00.chapter.json
+++ b/venus/assets/model/c00.chapter.json
@@ -1,66 +1,66 @@
{
-bladeEngineVersion: "2.1.0-SNAPSHOT",
+bladeEngineVersion: "4.0.3-SNAPSHOT",
sounds: {
- rope_click: {
- id: "rope_click",
+ cable_click: {
+ id: "cable_click",
filename: "click1.mp3",
volume: 0.2
},
+ cable_switch: {
+ id: "cable_switch",
+ filename: "switch.mp3",
+ volume: 0.4
+ },
chair_chair_broken: {
id: "chair_chair_broken",
filename: "chair_broken.mp3"
},
+ chair_chair_squeek: {
+ id: "chair_chair_squeek",
+ filename: "chair_squeek.mp3",
+ volume: 0.1
+ },
chair_click: {
id: "chair_click",
filename: "click1.mp3",
volume: 0.2
},
- policeman_fall: {
- id: "policeman_fall",
- filename: "fall.mp3",
- volume: 0.5,
- preload: true
- },
- rope_slide: {
- id: "rope_slide",
- filename: "slide.mp3",
- volume: 0.05
+ cutter_click: {
+ id: "cutter_click",
+ filename: "click1.mp3",
+ volume: 0.2
},
cutter_drill: {
id: "cutter_drill",
filename: "drill.mp3",
volume: 0.5
},
- cutter_click: {
- id: "cutter_click",
- filename: "click1.mp3",
- volume: 0.2
- },
diosa_chords: {
id: "diosa_chords",
filename: "chords.mp3",
volume: 0.5
},
+ policeman_fall: {
+ id: "policeman_fall",
+ filename: "fall.mp3",
+ volume: 0.5,
+ preload: true
+ },
policeman_hit: {
id: "policeman_hit",
filename: "hit.mp3",
volume: 0.3,
preload: true
},
- cable_click: {
- id: "cable_click",
+ rope_click: {
+ id: "rope_click",
filename: "click1.mp3",
volume: 0.2
},
- chair_chair_squeek: {
- id: "chair_chair_squeek",
- filename: "chair_squeek.mp3",
- volume: 0.1
- },
- cable_switch: {
- id: "cable_switch",
- filename: "switch.mp3",
- volume: 0.4
+ rope_slide: {
+ id: "rope_slide",
+ filename: "slide.mp3",
+ volume: 0.05
}
},
scenes: {
@@ -72,32 +72,8 @@ scenes: {
}
],
actors: {
- exit: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "exit",
- bbox: [ 0, 0, -4.824341, 1074.5214, 1913.9606, 1079.3456, 1918.7849, 0 ],
- pos: {},
- visible: false,
- desc: "@endSCN.exit.desc",
- refPoint: {},
- verbs: {
- leave: {
- id: "leave",
- icon: "right",
- actions: [
- {
- class: "com.bladecoder.engine.actions.EndGameAction"
- }
- ]
- }
- },
- interaction: true,
- state: null,
- zIndex: 0,
- layer: "foreground"
- },
bonasera: {
- class: "com.bladecoder.engine.model.SpriteActor",
+ class: "SpriteActor",
id: "bonasera",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
@@ -119,11 +95,10 @@ scenes: {
}
},
interaction: true,
- state: null,
zIndex: 1,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.ImageRenderer",
+ class: "ImageRenderer",
fanims: {
bonasera_icon: {
class: "com.bladecoder.engine.anim.AnimationDesc",
@@ -138,11 +113,34 @@ scenes: {
initAnimation: "bonasera_icon",
orgAlign: 4
},
- scale: 1,
+ scaleX: 1,
+ scaleY: 1,
rot: 0,
- tint: null,
fakeDepth: false,
bboxFromRenderer: true
+ },
+ exit: {
+ class: "InteractiveActor",
+ id: "exit",
+ bbox: [ 0, 0, -4.824341, 1074.5214, 1913.9606, 1079.3456, 1918.7849, 0 ],
+ pos: {},
+ visible: false,
+ desc: "@endSCN.exit.desc",
+ refPoint: {},
+ verbs: {
+ leave: {
+ id: "leave",
+ icon: "right",
+ actions: [
+ {
+ class: "EndGame"
+ }
+ ]
+ }
+ },
+ interaction: true,
+ zIndex: 0,
+ layer: "foreground"
}
},
musicDesc: {
@@ -154,7 +152,7 @@ scenes: {
id: "init",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
@@ -162,29 +160,29 @@ scenes: {
text: "@scene2.init.0.text"
},
{
- class: "com.bladecoder.engine.actions.IfPropertyAction",
+ class: "IfProperty",
name: "EMBEDDED",
value: "true",
caID: "1418905628"
},
{
- class: "com.bladecoder.engine.actions.EndGameAction"
+ class: "EndGame"
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "End",
caID: "1418905628"
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
+ class: "SetActorAttr",
actor: "bonasera",
visible: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
},
{
- class: "com.bladecoder.engine.actions.TextAction",
+ class: "Text",
text: "@endSCN.init.2.text",
style: "default",
color: "ffffffff",
@@ -194,1235 +192,1451 @@ scenes: {
wait: false
},
{
- class: "com.bladecoder.engine.actions.WaitAction",
+ class: "Wait",
time: 4
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
+ class: "SetActorAttr",
actor: "exit",
visible: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "End",
caID: "1418905628"
}
]
}
- }
+ },
+ walkZone: null
},
- scene2: {
- id: "scene2",
+ limbo: {
+ id: "limbo",
+ layers: [],
+ actors: {},
+ musicDesc: null,
+ verbs: {},
+ walkZone: null
+ },
+ scene0: {
+ id: "scene0",
layers: [
{
name: "foreground"
},
- {
- name: "dynamic",
- dynamic: true
- },
{
name: "background"
}
],
actors: {
- door: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "door",
- bbox: [ 0, -567.16724, 0, 100, 272.00964, 127.893616, 262.71185, -585.7631 ],
+ forward: {
+ class: "SpriteActor",
+ id: "forward",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 460.2422,
- y: 692.6878
+ x: 1728,
+ y: 47
},
- visible: true,
- desc: "@door.desc",
+ visible: false,
+ desc: "@scene0.forward.desc",
refPoint: {},
verbs: {
leave: {
id: "leave",
actions: [
{
- class: "com.bladecoder.engine.actions.IfAttrAction",
- actor: "policeman",
- attr: "STATE",
- value: "POLICEMAN_TURN",
- caID: "else123"
- },
- {
- class: "com.bladecoder.engine.actions.CancelVerbAction",
- actor: "policeman",
- verb: "dialog1_turn"
- },
- {
- class: "com.bladecoder.engine.actions.RunVerbAction",
- actor: "policeman",
- verb: "turn_back",
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "else123"
- },
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "policeman",
- text: "@door.leave.0.1.text",
- type: "TALK",
- queue: false,
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@door.leave.0.2.text",
- type: "TALK",
- queue: false,
+ class: "RunVerb",
+ verb: "leave",
wait: true
- },
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "else123"
}
]
}
},
interaction: true,
- state: null,
zIndex: 0,
- layer: "dynamic"
- },
- electricbox: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "electricbox",
- bbox: [ 106.924866, 74.38257, 102.27606, 299.9031, 253.414, 290.60538, 248.7652, 88.32922 ],
- pos: {
- x: 897.23975,
- y: 255.69016
- },
- visible: true,
- desc: "@electricbox.desc",
- refPoint: {},
- verbs: {
- lookat: {
- id: "lookat",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "electricbox",
- text: "@scene2.electricbox.lookat.0.text",
- direction: "FRONTRIGHT",
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
+ layer: "background",
+ renderer: {
+ class: "AtlasRenderer",
+ fanims: {
+ forward: {
+ class: "AtlasAnimationDesc",
+ id: "forward",
+ source: "scene0",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ }
},
- pickup: {
- id: "pickup",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "electricbox",
- text: "@scene2.electricbox.pickup.0.text",
- direction: "FRONTRIGHT",
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- }
+ initAnimation: "forward",
+ orgAlign: 4
},
- interaction: true,
- state: null,
- zIndex: 0,
- layer: "foreground"
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
},
- fence: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "fence",
+ title: {
+ class: "SpriteActor",
+ id: "title",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1750.5
+ x: 960
},
- visible: true,
- desc: null,
+ visible: false,
refPoint: {},
verbs: {},
- interaction: false,
- state: null,
+ interaction: true,
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "ImageRenderer",
fanims: {
- fence: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "fence",
- source: "scene2",
+ title: {
+ class: "com.bladecoder.engine.anim.AnimationDesc",
+ id: "title",
+ source: "@title.jpg",
duration: 1,
animationType: "REPEAT",
count: -1,
preload: true
}
},
- initAnimation: "fence",
+ initAnimation: "title",
orgAlign: 4
},
- scale: 1,
+ scaleX: 1,
+ scaleY: 1,
rot: 0,
- tint: null,
fakeDepth: false,
bboxFromRenderer: true
- },
- player: {
- class: "com.bladecoder.engine.model.CharacterActor",
- id: "player",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 584.22626,
- y: 95.324524
+ }
+ },
+ musicDesc: {
+ filename: "scn0.mp3"
+ },
+ verbs: {
+ init: {
+ id: "init",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "Property",
+ prop: "EMBEDDED",
+ value: "false"
+ },
+ {
+ class: "ShowInventory",
+ value: false
+ },
+ {
+ class: "ScreenPosition",
+ actor: "forward",
+ position: "-40.0,40.0",
+ anchor: "BOTTOM_RIGHT"
+ },
+ {
+ class: "Text",
+ text: "@scene0.init.0.text",
+ style: "default",
+ color: "ffffffff",
+ pos: "-1.0,-1.0",
+ type: "PLAIN",
+ queue: false,
+ wait: true
+ },
+ {
+ class: "SetActorAttr",
+ actor: "title",
+ visible: true
+ },
+ {
+ class: "Wait",
+ time: 2
+ },
+ {
+ class: "ShowInventory",
+ value: true
+ },
+ {
+ class: "Cutmode",
+ value: false
+ },
+ {
+ class: "Leave",
+ scene: "scene1",
+ init: true
+ }
+ ]
+ },
+ leave: {
+ id: "leave",
+ actions: [
+ {
+ class: "ShowInventory",
+ value: true
+ },
+ {
+ class: "Leave",
+ scene: "scene1",
+ init: true
+ }
+ ]
+ }
+ },
+ walkZone: null
+ },
+ scene1: {
+ id: "scene1",
+ layers: [
+ {
+ name: "foreground"
+ },
+ {
+ name: "dynamic",
+ dynamic: true
+ },
+ {
+ name: "background"
+ }
+ ],
+ actors: {
+ cabinet_off: {
+ class: "SpriteActor",
+ id: "cabinet_off",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 384.79813,
+ y: 467.20212
+ },
+ visible: false,
+ refPoint: {},
+ verbs: {},
+ interaction: false,
+ zIndex: 0,
+ layer: "dynamic",
+ renderer: {
+ class: "AtlasRenderer",
+ fanims: {
+ cabinet_off: {
+ class: "AtlasAnimationDesc",
+ id: "cabinet_off",
+ source: "scene1",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ }
+ },
+ initAnimation: "cabinet_off",
+ orgAlign: 4
+ },
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
+ },
+ cable: {
+ class: "SpriteActor",
+ id: "cable",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 582.39404,
+ y: 532.6405
},
visible: true,
- desc: "@player.desc",
+ desc: "@scene1.cable.desc",
+ state: "CONNECTED",
refPoint: {},
verbs: {
- goto: {
- id: "goto",
+ "use.navaja.CONNECTED": {
+ id: "use",
+ target: "navaja",
+ state: "CONNECTED",
actions: [
{
- class: "com.bladecoder.engine.actions.IfAttrAction",
- actor: "policeman",
- attr: "STATE",
- value: "POLICEMAN_TURN",
- caID: "else123"
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.CancelVerbAction",
- actor: "policeman",
- verb: "dialog1_turn"
+ class: "LookAt",
+ actor: "cable",
+ text: "@cable.use.CONNECTED.navaja.0.text",
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.RunVerbAction",
- actor: "policeman",
- verb: "turn_back",
- wait: true
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ lookat: {
+ id: "lookat",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "else123"
+ class: "LookAt",
+ actor: "cable",
+ text: "@cable.lookat.0.text",
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ pickup: {
+ id: "pickup",
+ actions: [
+ {
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "policeman",
- text: "@player.goto.0.1.text",
- type: "TALK",
- queue: false,
- wait: true
+ class: "org.bladecoder.venus.actions.scene1.PickupCableAction",
+ connectText: "@cable.pickup.0.connect_text",
+ disconnectText: "@cable.pickup.0.disconnect_text"
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#stand.frontright",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ "pickup.CUT": {
+ id: "pickup",
+ state: "CUT",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "player",
- text: "@player.goto.0.3.text",
- type: "TALK",
+ text: "@cable.pickup.CUT.text",
+ type: "SUBTITLE",
queue: false,
- wait: true
+ wait: false
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ "use.navaja.DISCONNECTED": {
+ id: "use",
+ target: "navaja",
+ state: "DISCONNECTED",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "Goto",
actor: "player",
- pos: "460.0,0.0",
+ pos: "641.0,413.0",
ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#stand.frontright",
+ class: "Animation",
+ animation: "player#crouch.left",
count: 1,
wait: true,
repeat: "SPRITE_DEFINED",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
+ class: "PickUp",
+ actor: "cable"
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "else123"
+ class: "Animation",
+ animation: "player#crouch.left",
+ count: 1,
+ wait: true,
+ repeat: "REVERSE",
+ keepDirection: false
+ },
+ {
+ class: "Say",
+ actor: "player",
+ text: "@cable.use.DISCONNECTED.navaja.0.4.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: false
+ },
+ {
+ class: "ActorState",
+ actor: "cable",
+ state: "CUT"
+ },
+ {
+ class: "Cutmode",
+ value: false
}
]
}
},
- interaction: false,
- state: null,
- zIndex: 0,
+ interaction: true,
+ zIndex: 4,
layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- throwgoddess2: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "throwgoddess2",
- source: "player_down",
- duration: 0.5,
- animationType: "NO_REPEAT",
- count: 1,
+ "cable.connected": {
+ class: "AtlasAnimationDesc",
+ id: "cable.connected",
+ source: "scene1",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
preload: true
},
- runaway: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "runaway",
- source: "player_down",
+ "cable.disconnected": {
+ class: "AtlasAnimationDesc",
+ id: "cable.disconnected",
+ source: "scene1",
duration: 1,
- animationType: "NO_REPEAT",
- count: 1,
+ animationType: "REPEAT",
+ count: -1,
preload: true
},
- "crouch.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "crouch.right",
- source: "player_down",
- duration: 0.3,
- animationType: "NO_REPEAT",
- count: 1,
- preload: true
- },
- "walk.frontright": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "walk.frontright",
- source: "player_down",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
- "stand.frontright": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "stand.frontright",
- source: "player_down",
- duration: 1,
- animationType: "NO_REPEAT",
- count: -1,
- preload: true
- },
- throwgoddess: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "throwgoddess",
- source: "player_down",
- duration: 1,
- animationType: "NO_REPEAT",
- count: 1,
- preload: true
- },
- "talk.right": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "talk.right",
- source: "player_down",
+ "cable.inventory": {
+ class: "AtlasAnimationDesc",
+ id: "cable.inventory",
+ source: "scene1",
duration: 1,
animationType: "REPEAT",
count: -1,
+ sound: "click",
preload: true
}
},
- initAnimation: "stand.frontright",
+ initAnimation: "cable.connected",
orgAlign: 4
},
- scale: 0.84536266,
+ scaleX: 1,
+ scaleY: 1,
rot: 0,
- tint: null,
- fakeDepth: true,
- bboxFromRenderer: true,
- dialogs: null,
- textStyle: null,
- walkingSpeed: 700,
- textColor: null
+ fakeDepth: false,
+ bboxFromRenderer: true
},
- policeman: {
- class: "com.bladecoder.engine.model.CharacterActor",
- id: "policeman",
+ chair: {
+ class: "SpriteActor",
+ id: "chair",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1332.4265,
- y: -2.8381348
+ x: 2330,
+ y: 510
},
visible: true,
- desc: "@policeman.desc",
+ desc: "@chair.desc",
+ state: "SIT0",
refPoint: {},
verbs: {
- dialog1_turn: {
- id: "dialog1_turn",
+ "pickup.BROKEN": {
+ id: "pickup",
+ state: "BROKEN",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.SayDialogAction",
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.ChooseAction",
- chooseCriteria: "RANDOM",
- caID: "2075346474"
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Goto",
actor: "player",
- text: "@scene2.policeman.dialog1_turn.5.text",
- type: "TALK",
- queue: false,
+ pos: "2400.0,450.0",
+ ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@scene2.policeman.dialog1_turn.3.text",
- type: "TALK",
- queue: false,
+ class: "LookAt",
+ actor: "chair",
+ direction: "FRONT",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@scene2.policeman.dialog1_turn.4.text",
- type: "TALK",
- queue: false,
- wait: true
+ class: "Animation",
+ animation: "player#crouch.left",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "2075346474"
+ class: "PickUp",
+ actor: "chair"
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "policeman#turn.left",
+ class: "Animation",
+ animation: "player#crouch.left",
count: 1,
wait: true,
- repeat: "SPRITE_DEFINED",
+ repeat: "REVERSE",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "policeman",
- state: "POLICEMAN_TURN"
+ class: "Say",
+ actor: "player",
+ text: "@chair.pickup.BROKEN.0.5.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
+ class: "ActorState",
+ actor: "chair",
+ state: "INVENTORY"
},
{
- class: "com.bladecoder.engine.actions.WaitAction",
- time: 6
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ "lookat.INVENTORY": {
+ id: "lookat",
+ state: "INVENTORY",
+ actions: [
+ {
+ class: "Say",
+ actor: "player",
+ text: "@chair.lookat.INVENTORY.0.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: false
+ }
+ ]
+ },
+ "lookat.BROKEN": {
+ id: "lookat",
+ state: "BROKEN",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.RunVerbAction",
- actor: "policeman",
- verb: "turn_back",
+ class: "LookAt",
+ actor: "chair",
+ text: "@chair.lookat.BROKEN.0.text",
wait: true
+ },
+ {
+ class: "Cutmode",
+ value: false
}
]
},
- "use.diosa": {
- id: "use",
- target: "diosa",
+ lookat: {
+ id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.MusicAction",
- loop: false,
- initialDelay: 0,
- repeatDelay: -1,
- stopWhenLeaving: true,
- volume: 1
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.CancelVerbAction",
- actor: "policeman",
- verb: "dialog1_turn"
+ class: "LookAt",
+ actor: "chair",
+ text: "@chair.lookat.0.text",
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "diosa",
- state: "END"
- },
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ "pickup.SIT1": {
+ id: "pickup",
+ state: "SIT1",
+ actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#throwgoddess",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
+ class: "Goto",
+ actor: "player",
+ pos: "2330.0,410.0",
+ ignoreWalkZone: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#throwgoddess2",
+ class: "LookAt",
+ actor: "chair",
+ direction: "FRONT",
+ wait: true
+ },
+ {
+ class: "Animation",
+ animation: "player#sitdown",
count: 1,
- wait: false,
+ wait: true,
repeat: "SPRITE_DEFINED",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.DropItemAction",
- actor: "diosa",
- pos: "680.0,744.0"
- },
- {
- class: "com.bladecoder.engine.actions.PositionAnimAction",
- actor: "diosa",
- pos: "1370.0,846.0",
- speed: 0.2,
- count: 1,
- wait: true,
- repeat: "NO_REPEAT"
+ class: "PlaySound",
+ sound: "chair_chair_squeek",
+ stop: false
},
{
- class: "com.bladecoder.engine.actions.PositionAnimAction",
- actor: "diosa",
- pos: "1600.0,1100.0",
- speed: 0.3,
- count: 1,
- wait: false,
- repeat: "NO_REPEAT"
+ class: "Wait",
+ time: 1
},
{
- class: "com.bladecoder.engine.actions.DisableActionAction",
- serializedAction: "{class:com.bladecoder.engine.actions.SoundAction,actor:policeman,play:hit}"
+ class: "Say",
+ actor: "player",
+ text: "@chair.pickup.SIT1.0.4.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "policeman#fall",
+ class: "Animation",
+ animation: "player#sitdown",
count: 1,
wait: true,
- repeat: "SPRITE_DEFINED",
+ repeat: "REVERSE",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.PlaySoundAction",
- sound: "policeman_fall",
- stop: false
+ class: "ActorState",
+ actor: "chair",
+ state: "SIT2"
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "policeman",
- text: "@diosa.use.INVENTORY.policeman.0.9.text",
- type: "SUBTITLE",
- queue: false,
- wait: true
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ "pickup.SIT0": {
+ id: "pickup",
+ state: "SIT0",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.PositionAction",
+ class: "Goto",
actor: "player",
- position: "360.0,0.0"
+ pos: "2330.0,410.0",
+ ignoreWalkZone: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.DisableActionAction",
- serializedAction: "{class:com.bladecoder.engine.actions.CameraAction,pos:\"960.0,0.0\",duration:0.3,wait:true}"
+ class: "LookAt",
+ actor: "chair",
+ direction: "FRONT",
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#runaway",
+ class: "Animation",
+ animation: "player#sitdown",
count: 1,
wait: true,
repeat: "SPRITE_DEFINED",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "player",
- visible: false
+ class: "PlaySound",
+ sound: "chair_chair_squeek",
+ stop: false
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "policeman",
- text: "@diosa.use.INVENTORY.policeman.0.12.text",
+ class: "Wait",
+ time: 1
+ },
+ {
+ class: "Say",
+ actor: "$PLAYER",
+ text: "@chair.pickup.SIT0.0.4.text",
type: "SUBTITLE",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.WaitAction",
- time: 2
+ class: "Animation",
+ animation: "player#sitdown",
+ count: 1,
+ wait: true,
+ repeat: "REVERSE",
+ keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.RemoveInventoryItemAction",
- scene: "limbo"
- },
- {
- class: "com.bladecoder.engine.actions.LeaveAction",
- scene: "endSCN",
- init: true
- }
- ]
- },
- lookat: {
- id: "lookat",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "policeman",
- text: "@policeman.lookat.0.text",
- type: "SUBTITLE",
- queue: false,
- wait: false
+ class: "ActorState",
+ actor: "chair",
+ state: "SIT1"
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
},
- turn_back: {
- id: "turn_back",
+ "pickup.SIT2": {
+ id: "pickup",
+ state: "SIT2",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "policeman#turn.left",
- count: 1,
- wait: true,
- repeat: "REVERSE",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "policeman#stand.frontleft",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.IfAttrAction",
- actor: "diosa",
- attr: "STATE",
- value: "INVENTORY",
- caID: "else123"
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "policeman",
- text: "@scene2.diosa.policeman_turn.INVENTORY.0.text",
- type: "TALK",
- queue: false,
+ class: "Goto",
+ actor: "player",
+ pos: "2330.0,410.0",
+ ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@scene2.diosa.policeman_turn.INVENTORY.1.text",
- type: "TALK",
- queue: false,
+ class: "LookAt",
+ actor: "chair",
+ direction: "FRONT",
wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#crouch.right",
+ class: "Animation",
+ animation: "player#sitdown",
count: 1,
wait: true,
repeat: "SPRITE_DEFINED",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.DropItemAction",
- actor: "diosa",
- pos: "600.0,30.0"
+ class: "Wait",
+ time: 1
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "diosa",
- state: "FLOOR"
+ class: "PlaySound",
+ sound: "chair_chair_broken",
+ stop: false
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#crouch.right",
+ class: "Animation",
+ animation: "chair#chair.broken",
count: 1,
wait: true,
- repeat: "REVERSE",
+ repeat: "SPRITE_DEFINED",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#stand.frontright",
+ class: "Animation",
+ animation: "player#player.chairbroke",
count: 1,
wait: true,
repeat: "SPRITE_DEFINED",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "else123"
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "policeman",
- text: "@scene2.diosa.policeman_turn.POLICEMAN_TURN.0.text",
- type: "TALK",
- queue: false,
- wait: true
+ class: "Wait",
+ time: 1
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "player",
- text: "@scene2.diosa.policeman_turn.POLICEMAN_TURN.1.text",
- type: "TALK",
+ text: "@chair.pickup.SIT2.0.7.text",
+ type: "SUBTITLE",
queue: false,
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "else123"
+ wait: false
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "policeman"
+ class: "ActorState",
+ actor: "chair",
+ state: "BROKEN"
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
+ }
+ },
+ interaction: true,
+ zIndex: 0,
+ layer: "dynamic",
+ renderer: {
+ class: "AtlasRenderer",
+ fanims: {
+ "chair.broken": {
+ class: "AtlasAnimationDesc",
+ id: "chair.broken",
+ source: "scene1",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ },
+ "chair.inventory": {
+ class: "AtlasAnimationDesc",
+ id: "chair.inventory",
+ source: "scene1",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ sound: "click",
+ preload: true
+ },
+ chair2: {
+ class: "AtlasAnimationDesc",
+ id: "chair2",
+ source: "scene1",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ }
},
- "use.navaja": {
- id: "use",
- target: "navaja",
+ initAnimation: "chair2",
+ orgAlign: 4
+ },
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
+ },
+ column_fg: {
+ class: "SpriteActor",
+ id: "column_fg",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 160
+ },
+ visible: true,
+ refPoint: {},
+ verbs: {},
+ interaction: false,
+ zIndex: 0,
+ layer: "foreground",
+ renderer: {
+ class: "AtlasRenderer",
+ fanims: {
+ column_fg: {
+ class: "AtlasAnimationDesc",
+ id: "column_fg",
+ source: "scene1",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ }
+ },
+ initAnimation: "column_fg",
+ orgAlign: 4
+ },
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
+ },
+ cuadro: {
+ class: "InteractiveActor",
+ id: "cuadro",
+ bbox: [ 0, -172.36902, 0, 100, 269.97504, 88.02991, 248.42896, -155.61108 ],
+ pos: {
+ x: 629.62585,
+ y: 924.0898
+ },
+ visible: true,
+ desc: "@cuadro.desc",
+ refPoint: {},
+ verbs: {
+ lookat: {
+ id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "policeman",
- text: "@scene2.policeman.use.policeman.0.text",
+ class: "LookAt",
+ actor: "cuadro",
+ text: "@cuadro.lookat.0.text",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
},
- talkto: {
- id: "talkto",
+ pickup: {
+ id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.TalktoAction",
- actor: "policeman",
- dialog: "dialog1"
+ class: "LookAt",
+ actor: "cuadro",
+ text: "@cuadro.pickup.0.text",
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
- },
- "talkto.POLICEMAN_TURN": {
- id: "talkto",
- state: "POLICEMAN_TURN",
+ }
+ },
+ interaction: true,
+ zIndex: 0,
+ layer: "dynamic"
+ },
+ cutter: {
+ class: "SpriteActor",
+ id: "cutter",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 66.548096,
+ y: 1199.0973
+ },
+ visible: true,
+ desc: "@cutter.desc",
+ state: "WITH_LOW_BATTERY",
+ refPoint: {},
+ verbs: {
+ "use.diosa.WITH_LOW_BATTERY": {
+ id: "use",
+ target: "diosa",
+ state: "WITH_LOW_BATTERY",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.CancelVerbAction",
- actor: "policeman",
- verb: "dialog1_turn"
+ class: "Goto",
+ actor: "player",
+ pos: "890.0,76.0",
+ ignoreWalkZone: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.RunVerbAction",
- actor: "policeman",
- verb: "turn_back",
- wait: true
+ class: "Say",
+ actor: "player",
+ text: "@cutter.use.WITH_LOW_BATTERY.diosa.0.1.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: false
},
{
- class: "com.bladecoder.engine.actions.TalktoAction",
- actor: "policeman",
- dialog: "dialog1"
+ class: "Animation",
+ animation: "player#use.back",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- }
- },
- interaction: true,
- state: null,
- zIndex: 0,
- layer: "dynamic",
- renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
- fanims: {
- "stand.frontleft": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "stand.frontleft",
- source: "policeman",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
- fall: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "fall",
- source: "policeman",
- duration: 1,
- inD: {
- x: 195
+ class: "PlaySound",
+ sound: "cutter_drill",
+ stop: false
},
- animationType: "NO_REPEAT",
- count: 1,
- sound: "hit",
- preload: true
- },
- "turn.left": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "turn.left",
- source: "policeman",
- duration: 0.3,
- animationType: "NO_REPEAT",
- count: 1,
- preload: true
- },
- "talk.left": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "talk.left",
- source: "policeman",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- }
- },
- initAnimation: "stand.frontleft",
- orgAlign: 4
- },
- scale: 1.0046208,
- rot: 0,
- tint: null,
- fakeDepth: true,
- bboxFromRenderer: true,
- dialogs: {
- dialog1: {
- id: "dialog1",
- options: [
{
- text: "@policeman.dialog1.0.text",
- responseText: "@policeman.dialog1.0.response_text",
- verbId: null,
- next: "dialog2",
- once: false,
- soundId: null,
- responseSoundId: null,
- visible: true
+ class: "Animation",
+ animation: "player#use.back2",
+ count: 3,
+ wait: true,
+ repeat: "REPEAT",
+ keepDirection: false
},
{
- text: "@policeman.dialog1.1.text",
- responseText: "@policeman.dialog1.1.response_text",
- verbId: null,
- next: "this",
- once: false,
- soundId: null,
- responseSoundId: null,
- visible: true
+ class: "PlaySound",
+ sound: "cutter_drill",
+ stop: true
},
{
- text: "@policeman.dialog1.2.text",
- responseText: null,
- verbId: "dialog1_turn",
- next: null,
- once: false,
- soundId: null,
- responseSoundId: null,
- visible: true
+ class: "Say",
+ actor: "player",
+ text: "@cutter.use.WITH_LOW_BATTERY.diosa.0.4.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: false
},
{
- text: "@policeman.dialog1.3.text",
- responseText: "@policeman.dialog1.3.response_text",
- verbId: null,
- next: "this",
- once: false,
- soundId: null,
- responseSoundId: null,
- visible: true
+ class: "Animation",
+ animation: "player#use.back",
+ count: 1,
+ wait: true,
+ repeat: "REVERSE",
+ keepDirection: false
},
{
- text: "@policeman.dialog1.4.text",
- responseText: null,
- verbId: null,
- next: null,
- once: false,
- soundId: null,
- responseSoundId: null,
- visible: true
+ class: "ActorState",
+ actor: "cutter",
+ state: "NO_BATTERY"
+ },
+ {
+ class: "Cutmode",
+ value: false
}
]
},
- dialog2: {
- id: "dialog2",
- options: [
- {
- text: "@policeman.dialog1.0.0.text",
- responseText: "@policeman.dialog1.0.0.response_text",
- verbId: null,
- next: "this",
- once: true,
- soundId: null,
- responseSoundId: null,
- visible: true
- },
+ "use.diosa.WITH_CABLE": {
+ id: "use",
+ target: "diosa",
+ state: "WITH_CABLE",
+ actions: [
{
- text: "@policeman.dialog1.0.1.text",
- responseText: "@policeman.dialog1.0.1.response_text",
- verbId: null,
- next: "this",
- once: true,
- soundId: null,
- responseSoundId: null,
- visible: true
+ class: "Cutmode",
+ value: true
},
{
- text: "@policeman.dialog1.0.2.text",
- responseText: "@policeman.dialog1.0.2.response_text",
- verbId: null,
- next: "this",
- once: false,
- soundId: null,
- responseSoundId: null,
- visible: true
+ class: "LookAt",
+ actor: "cutter",
+ text: "@cutter.use.WITH_CABLE.diosa.0.text",
+ wait: true
},
{
- text: "@policeman.dialog1.0.3.text",
- responseText: "@policeman.dialog1.0.3.response_text",
- verbId: null,
- next: "dialog1",
- once: false,
- soundId: null,
- responseSoundId: null,
- visible: true
+ class: "Cutmode",
+ value: false
}
]
- }
- },
- textStyle: null,
- walkingSpeed: 700,
- textColor: null
- },
- out: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "out",
- bbox: [ 4.6488647, -353.31723, 23.24451, 183.68054, 299.90314, 160.43591, 295.2542, -353.31723 ],
- pos: {
- x: -5.722046E-5,
- y: 474.1889
- },
- visible: true,
- desc: "@out.desc",
- refPoint: {},
- verbs: {
- leave: {
- id: "leave",
+ },
+ "use.diosa.WITH_BATTERY": {
+ id: "use",
+ target: "diosa",
+ state: "WITH_BATTERY",
actions: [
{
- class: "com.bladecoder.engine.actions.IfAttrAction",
- actor: "policeman",
- attr: "STATE",
- value: "POLICEMAN_TURN",
- caID: "else123"
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.CancelVerbAction",
- actor: "policeman",
- verb: "dialog1_turn"
+ class: "Goto",
+ actor: "player",
+ pos: "890.0,76.0",
+ ignoreWalkZone: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.RunVerbAction",
- actor: "policeman",
- verb: "turn_back",
- wait: true
+ class: "Animation",
+ animation: "player#use.back",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "else123"
+ class: "PlaySound",
+ sound: "cutter_drill",
+ stop: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "Animation",
+ animation: "player#use.back2",
+ count: 12,
+ wait: true,
+ repeat: "REPEAT",
+ keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "policeman",
- text: "@out.leave.0.1.text",
- type: "TALK",
- queue: false,
- wait: true
+ class: "PlaySound",
+ sound: "cutter_drill",
+ stop: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Animation",
+ animation: "player#use.back",
+ count: 1,
+ wait: true,
+ repeat: "REVERSE",
+ keepDirection: false
+ },
+ {
+ class: "Say",
actor: "player",
- text: "@out.leave.0.2.text",
- type: "TALK",
+ text: "@cutter.use.WITH_BATTERY.diosa.0.4.text",
+ type: "SUBTITLE",
queue: false,
- wait: true
+ wait: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
+ class: "ActorState",
+ actor: "cutter",
+ state: "CUT"
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "else123"
+ class: "ActorState",
+ actor: "diosa",
+ state: "CUT"
+ },
+ {
+ class: "SetActorAttr",
+ actor: "hole",
+ visible: true
+ },
+ {
+ class: "Cutmode",
+ value: false
}
]
- }
- },
- interaction: true,
- state: null,
- zIndex: 0,
- layer: "dynamic"
- }
- },
- backgroundAtlas: "scene2",
- backgroundRegionId: "bg2",
- musicDesc: {
- filename: "scn2.mp3"
- },
- depthVector: {
- x: 616.38446,
- y: 0.01
- },
- polygonalNavGraph: {
- walkZone: {
- localVertices: [ 0, 0, 117.039185, 68.44714, 528.3438, 118.41487, 932.00696, 58.22943, 1067.1172, 0 ]
- }
- },
- verbs: {
- init: {
- id: "init",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.CameraAction",
- pos: "880.0,0.0",
- followActor: "none",
- wait: true
},
- {
- class: "com.bladecoder.engine.actions.GotoAction",
- actor: "player",
- pos: "460.0,0.0",
- ignoreWalkZone: false,
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#stand.frontright",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "policeman",
- text: "@scene2.init.0.3.text",
- type: "TALK",
- queue: false,
- wait: true
+ "use.cable": {
+ id: "use",
+ target: "cable",
+ actions: [
+ {
+ class: "org.bladecoder.venus.actions.scene1.UseCutMachineCableAction",
+ cutCableText: "@cutter.use.cable.0.cut_cable_text",
+ defaultCableText: "@cutter.use.cable.0.default_cable_text"
+ }
+ ]
},
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@scene2.init.0.4.text",
- type: "TALK",
- queue: false,
- wait: true
+ use: {
+ id: "use",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "Say",
+ actor: "player",
+ text: "@cutter.use.0.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: false
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
},
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#crouch.right",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
+ "pickup.CHARGING": {
+ id: "pickup",
+ state: "CHARGING",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "LookAt",
+ actor: "cutter",
+ text: "@cutter.pickup.CHARGING.0.text",
+ wait: true
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
},
- {
- class: "com.bladecoder.engine.actions.DropItemAction",
- actor: "diosa",
- pos: "600.0,30.0"
+ lookat: {
+ id: "lookat",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "Say",
+ actor: "player",
+ text: "@cutter.lookat.0.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: false
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
},
- {
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "diosa",
- state: "FLOOR"
+ pickup: {
+ id: "pickup",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "LookAt",
+ actor: "cutter",
+ text: "@cutter.pickup.0.text",
+ wait: true
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
},
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#crouch.right",
- count: 1,
- wait: true,
- repeat: "REVERSE",
- keepDirection: false
+ "pickup.WITH_BATTERY": {
+ id: "pickup",
+ state: "WITH_BATTERY",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "Goto",
+ actor: "player",
+ pos: "682.0,434.0",
+ ignoreWalkZone: false,
+ wait: true
+ },
+ {
+ class: "Animation",
+ animation: "player#crouch.left",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
+ },
+ {
+ class: "PickUp",
+ actor: "cutter"
+ },
+ {
+ class: "PlaySound",
+ sound: "cutter_click",
+ stop: false
+ },
+ {
+ class: "Animation",
+ animation: "player#crouch.left",
+ count: 1,
+ wait: true,
+ repeat: "REVERSE",
+ keepDirection: false
+ },
+ {
+ class: "Say",
+ actor: "player",
+ text: "@cutter.pickup.WITH_BATTERY.0.4.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: false
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
},
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#stand.frontright",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
+ "use.policeman": {
+ id: "use",
+ target: "policeman",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "LookAt",
+ actor: "cutter",
+ text: "@cutter.use.policeman.0.text",
+ wait: true
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
},
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- },
- test: {
- id: "test",
- actions: [
- {
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "scene1#diosa"
+ "use.diosa.NO_BATTERY": {
+ id: "use",
+ target: "diosa",
+ state: "NO_BATTERY",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "LookAt",
+ actor: "cutter",
+ text: "@cutter.use.NO_BATTERY.diosa.0.text",
+ wait: true
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
},
- {
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "scene1#navaja"
- }
- ]
- }
- },
- player: "player"
- },
- scene1: {
- id: "scene1",
- layers: [
- {
- name: "foreground"
- },
- {
- name: "dynamic",
- dynamic: true
- },
- {
- name: "background"
- }
- ],
- actors: {
- cabinet_off: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "cabinet_off",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 384.79813,
- y: 467.20212
+ "use.socket.WITH_CABLE": {
+ id: "use",
+ target: "socket",
+ state: "WITH_CABLE",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "Goto",
+ actor: "player",
+ pos: "641.0,413.0",
+ ignoreWalkZone: false,
+ wait: true
+ },
+ {
+ class: "Animation",
+ animation: "player#crouch.left",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
+ },
+ {
+ class: "DropItem",
+ actor: "cutter",
+ pos: "648.0,520.0"
+ },
+ {
+ class: "Animation",
+ animation: "cutter#cutter.charging",
+ count: 1,
+ wait: false,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
+ },
+ {
+ class: "Animation",
+ animation: "player#crouch.left",
+ count: 1,
+ wait: true,
+ repeat: "REVERSE",
+ keepDirection: false
+ },
+ {
+ class: "Say",
+ actor: "player",
+ text: "@cutter.use.WITH_CABLE.socket.0.5.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: false
+ },
+ {
+ class: "ActorState",
+ actor: "cutter",
+ state: "CHARGING"
+ },
+ {
+ class: "Cutmode",
+ value: false
+ },
+ {
+ class: "Wait",
+ time: 20
+ },
+ {
+ class: "ActorState",
+ actor: "cutter",
+ state: "WITH_BATTERY"
+ }
+ ]
+ }
},
- visible: false,
- desc: null,
- refPoint: {},
- verbs: {},
- interaction: false,
- state: null,
+ interaction: true,
zIndex: 0,
layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- cabinet_off: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "cabinet_off",
- source: "scene1",
+ "cutter.charging": {
+ class: "AtlasAnimationDesc",
+ id: "cutter.charging",
+ source: "common",
+ duration: 2,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ },
+ "cutter.inventory": {
+ class: "AtlasAnimationDesc",
+ id: "cutter.inventory",
+ source: "common",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ },
+ "cutter.withcable": {
+ class: "AtlasAnimationDesc",
+ id: "cutter.withcable",
+ source: "common",
duration: 1,
animationType: "REPEAT",
count: -1,
+ sound: "click",
preload: true
}
},
- initAnimation: "cabinet_off",
+ initAnimation: "cutter.inventory",
orgAlign: 4
},
- scale: 1,
+ scaleX: 1,
+ scaleY: 1,
rot: 0,
- tint: null,
fakeDepth: false,
bboxFromRenderer: true
},
- libro: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "libro",
- bbox: [ -9.57605, 14.364075, 0, 100, 145.4862, 92.81799, 143.09229, 9.57605 ],
+ diosa: {
+ class: "SpriteActor",
+ id: "diosa",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 1867.3315,
- y: 806.7831
+ x: 905,
+ y: 594.5609
},
visible: true,
- desc: "@libro.desc",
+ desc: "@scene1.diosa.desc",
refPoint: {},
verbs: {
+ "lookat.INVENTORY": {
+ id: "lookat",
+ state: "INVENTORY",
+ actions: [
+ {
+ class: "Say",
+ actor: "player",
+ text: "@diosa.lookat.INVENTORY.0.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: false
+ }
+ ]
+ },
lookat: {
id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "libro",
- text: "@libro.lookat.0.text",
+ class: "LookAt",
+ actor: "diosa",
+ text: "@diosa.lookat.0.text",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
@@ -1431,29 +1645,234 @@ scenes: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Goto",
+ actor: "player",
+ pos: "890.0,76.0",
+ ignoreWalkZone: false,
+ wait: true
+ },
+ {
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "libro",
- text: "@libro.pickup.0.text",
+ class: "LookAt",
+ actor: "diosa",
+ text: "@diosa.pickup.0.1.text",
+ wait: true
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ "pickup.CUT": {
+ id: "pickup",
+ state: "CUT",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "Goto",
+ actor: "player",
+ pos: "890.0,76.0",
+ ignoreWalkZone: false,
+ wait: true
+ },
+ {
+ class: "Animation",
+ animation: "player#use.back",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
+ },
+ {
+ class: "Animation",
+ animation: "player#use.back",
+ count: 1,
+ wait: true,
+ repeat: "REVERSE",
+ keepDirection: false
+ },
+ {
+ class: "Say",
+ actor: "player",
+ text: "@diosa.pickup.CUT.0.3.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: false
+ },
+ {
+ class: "PickUp",
+ actor: "diosa"
+ },
+ {
+ class: "ActorState",
+ actor: "diosa",
+ state: "INVENTORY"
+ },
+ {
+ class: "ActorState",
+ actor: "rope",
+ state: "WITH_GODDESS"
+ },
+ {
+ class: "PlaySound",
+ sound: "diosa_chords",
+ stop: false
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ "pickup.INVENTORY": {
+ id: "pickup",
+ state: "INVENTORY",
+ actions: [
+ {
+ class: "Say",
+ actor: "player",
+ text: "@diosa.pickup.INVENTORY.0.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: false
+ }
+ ]
+ },
+ "pickup.FLOOR": {
+ id: "pickup",
+ state: "FLOOR",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "IfActorAttr",
+ actor: "scene2#policeman",
+ attr: "STATE",
+ value: "POLICEMAN_TURN",
+ caID: "else123"
+ },
+ {
+ class: "Animation",
+ animation: "player#crouch.right",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
+ },
+ {
+ class: "PickUp",
+ actor: "diosa"
+ },
+ {
+ class: "ActorState",
+ actor: "diosa",
+ state: "INVENTORY"
+ },
+ {
+ class: "Animation",
+ animation: "player#crouch.right",
+ count: 1,
+ wait: true,
+ repeat: "REVERSE",
+ keepDirection: false
+ },
+ {
+ class: "End",
+ caID: "else123"
+ },
+ {
+ class: "Say",
+ actor: "policeman",
+ text: "@scene2.diosa.pickup.FLOOR.0.text",
+ type: "TALK",
+ queue: false,
+ wait: true
+ },
+ {
+ class: "Say",
+ actor: "player",
+ text: "@scene2.diosa.pickup.FLOOR.1.text",
+ type: "TALK",
+ queue: false,
+ wait: true
+ },
+ {
+ class: "End",
+ caID: "else123"
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ "lookat.FLOOR": {
+ id: "lookat",
+ state: "FLOOR",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "Say",
+ text: "@scene1.diosa.lookat.FLOOR.0.text",
+ type: "SUBTITLE",
+ queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
}
},
interaction: true,
- state: null,
- zIndex: 0,
- layer: "dynamic"
+ zIndex: 1,
+ layer: "dynamic",
+ renderer: {
+ class: "AtlasRenderer",
+ fanims: {
+ diosa: {
+ class: "AtlasAnimationDesc",
+ id: "diosa",
+ source: "common",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ },
+ "diosa.inventory": {
+ class: "AtlasAnimationDesc",
+ id: "diosa.inventory",
+ source: "common",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ }
+ },
+ initAnimation: "diosa",
+ orgAlign: 4
+ },
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
},
estatua: {
- class: "com.bladecoder.engine.model.InteractiveActor",
+ class: "InteractiveActor",
id: "estatua",
bbox: [ -15.960083, -422.94275, 16.572266, -337.66803, 24.84021, -315.99585, -12.12384, -135.72235, -1.6645508, -28.39038, 27.268433, 14.341614, 30.324219, 98.40405, 125.53613, 92.0199, 115.960205, -427.7307 ],
pos: {
@@ -1468,17 +1887,17 @@ scenes: {
id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
+ class: "LookAt",
actor: "estatua",
text: "@estatua.lookat.0.text",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
@@ -1487,407 +1906,177 @@ scenes: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
+ class: "LookAt",
actor: "estatua",
text: "@estatua.pickup.0.text",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
}
},
interaction: true,
- state: null,
zIndex: 0,
layer: "dynamic"
},
- chair: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "chair",
+ exit: {
+ class: "SpriteActor",
+ id: "exit",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 2330,
- y: 510
+ x: 2184.3882,
+ y: 817.01294
},
- visible: true,
- desc: "@chair.desc",
+ visible: false,
+ desc: "@scene1.exit.desc____",
refPoint: {},
verbs: {
- "pickup.BROKEN": {
- id: "pickup",
- state: "BROKEN",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.GotoAction",
- actor: "player",
- pos: "2400.0,450.0",
- ignoreWalkZone: false,
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "chair",
- direction: "FRONT",
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#crouch.left",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "chair"
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#crouch.left",
- count: 1,
- wait: true,
- repeat: "REVERSE",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@chair.pickup.BROKEN.0.5.text",
- type: "SUBTITLE",
- queue: false,
- wait: false
- },
- {
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "chair",
- state: "INVENTORY"
- },
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- },
- "lookat.INVENTORY": {
- id: "lookat",
- state: "INVENTORY",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@chair.lookat.INVENTORY.0.text",
- type: "SUBTITLE",
- queue: false,
- wait: false
- }
- ]
- },
- "lookat.BROKEN": {
- id: "lookat",
- state: "BROKEN",
+ "use.rope": {
+ id: "use",
+ target: "rope",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "chair",
- text: "@chair.lookat.BROKEN.0.text",
- wait: true
+ class: "IfActorAttr",
+ actor: "rope",
+ attr: "STATE",
+ value: "ARMED",
+ caID: "else123"
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- },
- lookat: {
- id: "lookat",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "chair",
- text: "@chair.lookat.0.text",
+ class: "Goto",
+ actor: "player",
+ pos: "2270.0,12.0",
+ ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- },
- "pickup.SIT1": {
- id: "pickup",
- state: "SIT1",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "SetActorAttr",
actor: "player",
- pos: "2330.0,410.0",
- ignoreWalkZone: false,
- wait: true
+ visible: false
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "chair",
- direction: "FRONT",
- wait: true
+ class: "DropItem",
+ actor: "rope",
+ pos: "2150.0,102.0"
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#sitdown",
+ class: "Animation",
+ animation: "rope#rope.throw",
count: 1,
wait: true,
repeat: "SPRITE_DEFINED",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.PlaySoundAction",
- sound: "chair_chair_squeek",
- stop: false
- },
- {
- class: "com.bladecoder.engine.actions.WaitAction",
- time: 1
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "SetActorAttr",
actor: "player",
- text: "@chair.pickup.SIT1.0.4.text",
- type: "SUBTITLE",
- queue: false,
- wait: true
+ visible: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#sitdown",
+ class: "Animation",
+ animation: "rope#rope2",
count: 1,
wait: true,
- repeat: "REVERSE",
+ repeat: "SPRITE_DEFINED",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "chair",
- state: "SIT2"
+ class: "SetActorAttr",
+ actor: "exit",
+ interaction: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
- }
- ]
- },
- "pickup.SIT0": {
- id: "pickup",
- state: "SIT0",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
- actor: "player",
- pos: "2330.0,410.0",
- ignoreWalkZone: false,
- wait: true
+ class: "ActorState",
+ actor: "rope",
+ state: "ANCHORED"
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "chair",
+ class: "LookAt",
+ actor: "rope",
+ text: "@scene1.exit.pickup.9.text",
direction: "FRONT",
wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#sitdown",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.PlaySoundAction",
- sound: "chair_chair_squeek",
- stop: false
- },
- {
- class: "com.bladecoder.engine.actions.WaitAction",
- time: 1
+ class: "End",
+ caID: "else123"
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "$PLAYER",
- text: "@chair.pickup.SIT0.0.4.text",
- type: "SUBTITLE",
- queue: false,
+ class: "LookAt",
+ actor: "exit",
+ text: "@scene1.exit.use.rope.12.text_",
wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#sitdown",
- count: 1,
- wait: true,
- repeat: "REVERSE",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "chair",
- state: "SIT1"
- },
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
+ class: "End",
+ caID: "else123"
}
]
},
- "pickup.SIT2": {
- id: "pickup",
- state: "SIT2",
+ lookat: {
+ id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
- actor: "player",
- pos: "2330.0,410.0",
- ignoreWalkZone: false,
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "chair",
- direction: "FRONT",
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#sitdown",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.WaitAction",
- time: 1
- },
- {
- class: "com.bladecoder.engine.actions.PlaySoundAction",
- sound: "chair_chair_broken",
- stop: false
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "chair#chair.broken",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#player.chairbroke",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.WaitAction",
- time: 1
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "player",
- text: "@chair.pickup.SIT2.0.7.text",
+ text: "@scene1.exit.lookat.0.text_",
type: "SUBTITLE",
queue: false,
- wait: false
- },
- {
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "chair",
- state: "BROKEN"
+ wait: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
}
},
interaction: true,
- state: "SIT0",
zIndex: 0,
- layer: "dynamic",
+ layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- "chair.inventory": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "chair.inventory",
- source: "scene1",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- sound: "click",
- preload: true
- },
- "chair.broken": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "chair.broken",
- source: "scene1",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
- chair2: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "chair2",
+ exit: {
+ class: "AtlasAnimationDesc",
+ id: "exit",
source: "scene1",
duration: 1,
- animationType: "REPEAT",
+ animationType: "NO_REPEAT",
count: -1,
preload: true
}
},
- initAnimation: "chair2",
+ initAnimation: "exit",
orgAlign: 4
},
- scale: 1,
+ scaleX: 0.7,
+ scaleY: 0.7,
rot: 0,
- tint: null,
fakeDepth: false,
bboxFromRenderer: true
},
head_fg: {
- class: "com.bladecoder.engine.model.SpriteActor",
+ class: "SpriteActor",
id: "head_fg",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
@@ -1895,18 +2084,16 @@ scenes: {
y: -0.62638855
},
visible: true,
- desc: null,
refPoint: {},
verbs: {},
interaction: false,
- state: null,
zIndex: 0,
layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
head_fg: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "head_fg",
source: "scene1",
duration: 1,
@@ -1918,674 +2105,611 @@ scenes: {
initAnimation: "head_fg",
orgAlign: 4
},
- scale: 1,
+ scaleX: 1,
+ scaleY: 1,
rot: 0,
- tint: null,
fakeDepth: false,
bboxFromRenderer: true
},
- rope: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "rope",
+ hole: {
+ class: "SpriteActor",
+ id: "hole",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 2150,
- y: 102
+ x: 887,
+ y: 587
+ },
+ visible: false,
+ refPoint: {},
+ verbs: {},
+ interaction: false,
+ zIndex: 0,
+ layer: "dynamic",
+ renderer: {
+ class: "AtlasRenderer",
+ fanims: {
+ hole: {
+ class: "AtlasAnimationDesc",
+ id: "hole",
+ source: "scene1",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ }
+ },
+ initAnimation: "hole",
+ orgAlign: 4
+ },
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
+ },
+ libro: {
+ class: "InteractiveActor",
+ id: "libro",
+ bbox: [ -9.57605, 14.364075, 0, 100, 145.4862, 92.81799, 143.09229, 9.57605 ],
+ pos: {
+ x: 1867.3315,
+ y: 806.7831
},
visible: true,
- desc: "@rope.desc",
+ desc: "@libro.desc",
refPoint: {},
verbs: {
- "pickup.ANCHORED": {
- id: "pickup",
- state: "ANCHORED",
+ lookat: {
+ id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
- actor: "player",
- pos: "2270.0,12.0",
- ignoreWalkZone: false,
+ class: "LookAt",
+ actor: "libro",
+ text: "@libro.lookat.0.text",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "player",
- visible: false
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "rope#rope.up",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
- },
- {
- class: "com.bladecoder.engine.actions.LeaveAction",
- scene: "scene2",
- init: true
}
]
},
- "use.chair.INVENTORY": {
- id: "use",
- target: "chair",
- state: "INVENTORY",
+ pickup: {
+ id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@rope.use.INVENTORY.chair.0.text",
- type: "SUBTITLE",
- queue: false,
- wait: false
- },
- {
- class: "com.bladecoder.engine.actions.RemoveInventoryItemAction",
- id: "chair",
- scene: "limbo"
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "rope#rope.withanchor",
- count: 1,
- wait: false,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
+ class: "LookAt",
+ actor: "libro",
+ text: "@libro.pickup.0.text",
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "rope",
- state: "ARMED"
+ class: "Cutmode",
+ value: false
}
]
- },
- lookat: {
- id: "lookat",
+ }
+ },
+ interaction: true,
+ zIndex: 0,
+ layer: "dynamic"
+ },
+ navaja: {
+ class: "SpriteActor",
+ id: "navaja",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 274.7083,
+ y: 1183.3589
+ },
+ visible: true,
+ desc: "@navaja.desc",
+ refPoint: {},
+ verbs: {
+ use: {
+ id: "use",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "rope",
- text: "@rope.lookat.0.text",
+ class: "LookAt",
+ actor: "navaja",
+ text: "@navaja.use.0.text",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
},
- pickup: {
- id: "pickup",
+ lookat: {
+ id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "rope",
- text: "@rope.pickup.0.text",
+ class: "LookAt",
+ actor: "navaja",
+ text: "@navaja.lookat.0.text",
wait: true
- },
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
}
]
},
- "pickup.ARMED": {
+ pickup: {
id: "pickup",
- state: "ARMED",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
- actor: "player",
- pos: "2270.0,12.0",
- ignoreWalkZone: false,
+ class: "LookAt",
+ actor: "navaja",
+ text: "@navaja.pickup.0.text",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "player",
- visible: false
- },
- {
- class: "com.bladecoder.engine.actions.DropItemAction",
- actor: "rope",
- pos: "2150.0,102.0"
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "rope#rope.throw",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "player",
- visible: true
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "rope#rope2",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "rope",
- state: "ANCHORED"
- },
- {
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "exit",
- visible: false
- },
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
- },
- {
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "rope",
- text: "@rope.pickup.ARMED.0.9.text",
- direction: "FRONT",
- wait: true
- }
- ]
- },
- "pickup.INVENTORY": {
- id: "pickup",
- state: "INVENTORY",
- actions: [
- {
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "rope",
- text: "@rope.pickup.INVENTORY.0.text",
- wait: true
}
]
+ }
+ },
+ interaction: true,
+ zIndex: 0,
+ layer: "dynamic",
+ renderer: {
+ class: "AtlasRenderer",
+ fanims: {
+ "navaja.inventory": {
+ class: "AtlasAnimationDesc",
+ id: "navaja.inventory",
+ source: "common",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ }
},
- "pickup.FALL": {
- id: "pickup",
- state: "FALL",
+ initAnimation: "navaja.inventory",
+ orgAlign: 4
+ },
+ scaleX: 1,
+ scaleY: 1,
+ rot: 0,
+ fakeDepth: false,
+ bboxFromRenderer: true
+ },
+ papelera: {
+ class: "InteractiveActor",
+ id: "papelera",
+ bbox: [ 2.394165, -67.03241, 0, 100, 83.2417, 83.24176, 83.60376, -21.738464, 66.48364, -47.88031 ],
+ pos: {
+ x: 1769.9749,
+ y: 608.0798
+ },
+ visible: true,
+ desc: "@papelera.desc",
+ refPoint: {
+ x: 43.14612,
+ y: -77.303406
+ },
+ verbs: {
+ lookat: {
+ id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "Goto",
actor: "player",
- pos: "2270.0,12.0",
+ target: "papelera",
ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#crouch.left",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "rope"
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#crouch.left",
- count: 1,
- wait: true,
- repeat: "REVERSE",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "rope",
- state: "INVENTORY"
+ class: "Say",
+ actor: "player",
+ text: "@papelera.lookat.0.2.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
},
- "pickup.WITH_GODDESS": {
+ pickup: {
id: "pickup",
- state: "WITH_GODDESS",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@rope.pickup.WITH_GODDESS.0.1.text",
- type: "SUBTITLE",
- queue: false,
- wait: false
+ class: "LookAt",
+ actor: "papelera",
+ text: "@papelera.pickup.0.text",
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ }
+ },
+ interaction: true,
+ zIndex: 0,
+ layer: "dynamic"
+ },
+ placa: {
+ class: "InteractiveActor",
+ id: "placa",
+ bbox: [ 11.970032, 35.910156, 0, 100, 100, 100, 107.18201, 43.092316 ],
+ pos: {
+ x: 844.2892,
+ y: 466.03485
+ },
+ visible: true,
+ desc: "@scene1.placa.desc",
+ refPoint: {},
+ verbs: {
+ lookat: {
+ id: "lookat",
+ actions: [
+ {
+ class: "Goto",
actor: "player",
- pos: "2270.0,12.0",
+ pos: "910.0,100.0",
ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "player",
- visible: false
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "rope#rope.fall",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "player",
- visible: true
+ class: "LookAt",
+ actor: "placa",
+ text: "@placa.lookat.0.1.text",
+ direction: "BACK",
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "rope#rope.floor",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ pickup: {
+ id: "pickup",
+ actions: [
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "rope",
- state: "FALL"
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "exit",
- visible: true
+ class: "LookAt",
+ actor: "placa",
+ text: "@placa.pickup.0.text",
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
- },
- {
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "rope",
- text: "@rope.pickup.WITH_GODDESS.0.9.text",
- wait: true
}
]
}
},
interaction: true,
- state: null,
+ zIndex: 0,
+ layer: "dynamic"
+ },
+ player: {
+ class: "CharacterActor",
+ id: "player",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 2312.8765,
+ y: 61.886017
+ },
+ visible: true,
+ desc: "@scene1.player.desc_",
+ refPoint: {},
+ verbs: {},
+ interaction: false,
zIndex: 0,
layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- "rope.fall": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "rope.fall",
- source: "scene1_rope",
- duration: 2,
+ "crouch.left": {
+ class: "AtlasAnimationDesc",
+ id: "crouch.left",
+ source: "player",
+ duration: 0.3,
animationType: "NO_REPEAT",
- count: -1,
- preload: true,
- disposeWhenPlayed: true
+ count: 1,
+ preload: true
},
- "rope.throw": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "rope.throw",
- source: "scene1_rope_throw",
- duration: 1.5,
+ "player.chairbroke": {
+ class: "AtlasAnimationDesc",
+ id: "player.chairbroke",
+ source: "scene1",
+ duration: 0.3,
animationType: "NO_REPEAT",
- count: -1,
- disposeWhenPlayed: true
+ count: 1,
+ preload: true
},
- rope: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "rope",
+ sitdown: {
+ class: "AtlasAnimationDesc",
+ id: "sitdown",
source: "scene1",
+ duration: 0.3,
+ animationType: "NO_REPEAT",
+ count: 1,
+ preload: true
+ },
+ "stand.back": {
+ class: "AtlasAnimationDesc",
+ id: "stand.back",
+ source: "player",
duration: 1,
animationType: "REPEAT",
count: -1,
preload: true
},
- "rope.down": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "rope.down",
- source: "scene1_rope",
- duration: 2,
- animationType: "NO_REPEAT",
+ "stand.backleft": {
+ class: "AtlasAnimationDesc",
+ id: "stand.backleft",
+ source: "player",
+ duration: 1,
+ animationType: "REPEAT",
count: -1,
- sound: "slide",
- preload: true,
- disposeWhenPlayed: true
+ preload: true
},
- "rope.floor": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "rope.floor",
- source: "scene1",
+ "stand.front": {
+ class: "AtlasAnimationDesc",
+ id: "stand.front",
+ source: "player",
duration: 1,
animationType: "REPEAT",
count: -1,
preload: true
},
- "rope.inventory": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "rope.inventory",
- source: "scene1",
+ "stand.frontleft": {
+ class: "AtlasAnimationDesc",
+ id: "stand.frontleft",
+ source: "player",
duration: 1,
animationType: "REPEAT",
count: -1,
- sound: "click",
preload: true
},
- rope2: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "rope2",
- source: "scene1",
+ "stand.left": {
+ class: "AtlasAnimationDesc",
+ id: "stand.left",
+ source: "player",
duration: 1,
animationType: "REPEAT",
count: -1,
preload: true
},
- "rope.up": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "rope.up",
- source: "scene1_rope_up",
- duration: 2,
+ "use.back": {
+ class: "AtlasAnimationDesc",
+ id: "use.back",
+ source: "player",
+ duration: 0.2,
+ animationType: "NO_REPEAT",
+ count: 1,
+ preload: true
+ },
+ "use.back2": {
+ class: "AtlasAnimationDesc",
+ id: "use.back2",
+ source: "player",
+ duration: 0.3,
animationType: "NO_REPEAT",
+ count: 1,
+ preload: true
+ },
+ "walk.back": {
+ class: "AtlasAnimationDesc",
+ id: "walk.back",
+ source: "player",
+ duration: 1,
+ animationType: "REPEAT",
count: -1,
- disposeWhenPlayed: true
+ preload: true
},
- "rope.withanchor": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "rope.withanchor",
- source: "scene1",
+ "walk.backleft": {
+ class: "AtlasAnimationDesc",
+ id: "walk.backleft",
+ source: "player",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ },
+ "walk.front": {
+ class: "AtlasAnimationDesc",
+ id: "walk.front",
+ source: "player",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ },
+ "walk.frontleft": {
+ class: "AtlasAnimationDesc",
+ id: "walk.frontleft",
+ source: "player",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ },
+ "walk.left": {
+ class: "AtlasAnimationDesc",
+ id: "walk.left",
+ source: "player",
duration: 1,
animationType: "REPEAT",
count: -1,
- sound: "click",
preload: true
}
},
- initAnimation: "rope",
+ initAnimation: "stand.left",
orgAlign: 4
},
- scale: 1,
+ scaleX: 0.9683697,
+ scaleY: 0.9683697,
rot: 0,
- tint: null,
- fakeDepth: false,
- bboxFromRenderer: true
+ fakeDepth: true,
+ bboxFromRenderer: true,
+ walkingSpeed: 1200
},
- cutter: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "cutter",
+ rope: {
+ class: "SpriteActor",
+ id: "rope",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 66.548096,
- y: 1199.0973
+ x: 2150,
+ y: 102
},
visible: true,
- desc: "@cutter.desc",
+ desc: "@rope.desc",
refPoint: {},
verbs: {
- "use.diosa.WITH_LOW_BATTERY": {
- id: "use",
- target: "diosa",
- state: "WITH_LOW_BATTERY",
+ "pickup.ANCHORED": {
+ id: "pickup",
+ state: "ANCHORED",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "Goto",
actor: "player",
- pos: "890.0,76.0",
+ pos: "2270.0,12.0",
ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "SetActorAttr",
actor: "player",
- text: "@cutter.use.WITH_LOW_BATTERY.diosa.0.1.text",
- type: "SUBTITLE",
- queue: false,
- wait: false
+ visible: false
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#use.back",
+ class: "Animation",
+ animation: "rope#rope.up",
count: 1,
wait: true,
repeat: "SPRITE_DEFINED",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.PlaySoundAction",
- sound: "cutter_drill",
- stop: false
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#use.back2",
- count: 3,
- wait: true,
- repeat: "REPEAT",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.PlaySoundAction",
- sound: "cutter_drill",
- stop: true
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@cutter.use.WITH_LOW_BATTERY.diosa.0.4.text",
- type: "SUBTITLE",
- queue: false,
- wait: false
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#use.back",
- count: 1,
- wait: true,
- repeat: "REVERSE",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "cutter",
- state: "NO_BATTERY"
+ class: "Cutmode",
+ value: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
+ class: "Leave",
+ scene: "scene2",
+ init: true
}
]
},
- "use.diosa.WITH_CABLE": {
+ "use.chair.INVENTORY": {
id: "use",
- target: "diosa",
- state: "WITH_CABLE",
+ target: "chair",
+ state: "INVENTORY",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "IfActorAttr",
+ actor: "chair",
+ attr: "STATE",
+ value: "BROKEN",
+ caID: "1701269635"
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "cutter",
- text: "@cutter.use.WITH_CABLE.diosa.0.text",
- wait: true
+ class: "Comment",
+ comment: "Pickup the chair if it is in the floor.",
+ debug: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- },
- "use.diosa.WITH_BATTERY": {
- id: "use",
- target: "diosa",
- state: "WITH_BATTERY",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "RunVerb",
+ actor: "chair",
+ verb: "pickup",
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
- actor: "player",
- pos: "890.0,76.0",
- ignoreWalkZone: false,
- wait: true
+ class: "End",
+ caID: "1701269635"
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#use.back",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
+ class: "End",
+ caID: "1701269635"
},
{
- class: "com.bladecoder.engine.actions.PlaySoundAction",
- sound: "cutter_drill",
- stop: false
+ class: "IfActorAttr",
+ actor: "chair",
+ attr: "STATE",
+ value: "INVENTORY",
+ caID: "598502262"
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#use.back2",
- count: 12,
- wait: true,
- repeat: "REPEAT",
- keepDirection: false
+ class: "DropItem",
+ actor: "chair",
+ scene: "limbo"
},
{
- class: "com.bladecoder.engine.actions.PlaySoundAction",
- sound: "cutter_drill",
- stop: true
+ class: "ActorState",
+ actor: "rope",
+ state: "ARMED"
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#use.back",
+ class: "Animation",
+ animation: "rope#rope.withanchor",
count: 1,
- wait: true,
- repeat: "REVERSE",
+ wait: false,
+ repeat: "SPRITE_DEFINED",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@cutter.use.WITH_BATTERY.diosa.0.4.text",
- type: "SUBTITLE",
- queue: false,
- wait: false
- },
- {
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "cutter",
- state: "CUT"
- },
- {
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "diosa",
- state: "CUT"
- },
- {
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "hole",
- visible: true
- },
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- },
- "use.cable": {
- id: "use",
- target: "cable",
- actions: [
- {
- class: "org.bladecoder.venus.actions.scene1.UseCutMachineCableAction",
- cutCableText: "@cutter.use.cable.0.cut_cable_text",
- defaultCableText: "@cutter.use.cable.0.default_cable_text"
- }
- ]
- },
- use: {
- id: "use",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "player",
- text: "@cutter.use.0.text",
+ text: "@rope.use.INVENTORY.chair.0.text",
type: "SUBTITLE",
queue: false,
wait: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- },
- "pickup.CHARGING": {
- id: "pickup",
- state: "CHARGING",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "End",
+ caID: "598502262"
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "cutter",
- text: "@cutter.pickup.CHARGING.0.text",
+ class: "RunVerb",
+ verb: "use",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
+ class: "End",
+ caID: "598502262"
}
]
},
@@ -2593,19 +2717,17 @@ scenes: {
id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@cutter.lookat.0.text",
- type: "SUBTITLE",
- queue: false,
- wait: false
+ class: "LookAt",
+ actor: "rope",
+ text: "@rope.lookat.0.text",
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
@@ -2614,134 +2736,107 @@ scenes: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "cutter",
- text: "@cutter.pickup.0.text",
+ class: "LookAt",
+ actor: "rope",
+ text: "@rope.pickup.0.text",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
},
- "pickup.WITH_BATTERY": {
+ "pickup.ARMED": {
id: "pickup",
- state: "WITH_BATTERY",
+ state: "ARMED",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "Goto",
actor: "player",
- pos: "682.0,434.0",
+ pos: "2270.0,12.0",
ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#crouch.left",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "cutter"
+ class: "SetActorAttr",
+ actor: "player",
+ visible: false
},
{
- class: "com.bladecoder.engine.actions.PlaySoundAction",
- sound: "cutter_click",
- stop: false
+ class: "DropItem",
+ actor: "rope",
+ pos: "2150.0,102.0"
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#crouch.left",
+ class: "Animation",
+ animation: "rope#rope.throw",
count: 1,
wait: true,
- repeat: "REVERSE",
+ repeat: "SPRITE_DEFINED",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "SetActorAttr",
actor: "player",
- text: "@cutter.pickup.WITH_BATTERY.0.4.text",
- type: "SUBTITLE",
- queue: false,
- wait: false
+ visible: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- },
- "use.policeman": {
- id: "use",
- target: "policeman",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "Animation",
+ animation: "rope#rope2",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "cutter",
- text: "@cutter.use.policeman.0.text",
- wait: true
+ class: "ActorState",
+ actor: "rope",
+ state: "ANCHORED"
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- },
- "use.diosa.NO_BATTERY": {
- id: "use",
- target: "diosa",
- state: "NO_BATTERY",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "SetActorAttr",
+ actor: "exit",
+ visible: false
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "cutter",
- text: "@cutter.use.NO_BATTERY.diosa.0.text",
- wait: true
+ class: "Cutmode",
+ value: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
+ class: "LookAt",
+ actor: "rope",
+ text: "@rope.pickup.ARMED.0.9.text",
+ direction: "FRONT",
+ wait: true
}
]
},
- "use.socket.WITH_CABLE": {
- id: "use",
- target: "socket",
- state: "WITH_CABLE",
+ "pickup.FALL": {
+ id: "pickup",
+ state: "FALL",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "Goto",
actor: "player",
- pos: "641.0,413.0",
+ pos: "2270.0,12.0",
ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
+ class: "Animation",
animation: "player#crouch.left",
count: 1,
wait: true,
@@ -2749,20 +2844,11 @@ scenes: {
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.DropItemAction",
- actor: "cutter",
- pos: "648.0,520.0"
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "cutter#cutter.charging",
- count: 1,
- wait: false,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
+ class: "PickUp",
+ actor: "rope"
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
+ class: "Animation",
animation: "player#crouch.left",
count: 1,
wait: true,
@@ -2770,120 +2856,217 @@ scenes: {
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "ActorState",
+ actor: "rope",
+ state: "INVENTORY"
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ "pickup.WITH_GODDESS": {
+ id: "pickup",
+ state: "WITH_GODDESS",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "Say",
actor: "player",
- text: "@cutter.use.WITH_CABLE.socket.0.5.text",
+ text: "@rope.pickup.WITH_GODDESS.0.1.text",
type: "SUBTITLE",
queue: false,
wait: false
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "cutter",
- state: "CHARGING"
+ class: "Goto",
+ actor: "player",
+ pos: "2270.0,12.0",
+ ignoreWalkZone: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
+ class: "SetActorAttr",
+ actor: "player",
+ visible: false
},
{
- class: "com.bladecoder.engine.actions.WaitAction",
- time: 20
+ class: "Animation",
+ animation: "rope#rope.fall",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "cutter",
- state: "WITH_BATTERY"
+ class: "SetActorAttr",
+ actor: "player",
+ visible: true
+ },
+ {
+ class: "Animation",
+ animation: "rope#rope.floor",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
+ },
+ {
+ class: "ActorState",
+ actor: "rope",
+ state: "FALL"
+ },
+ {
+ class: "SetActorAttr",
+ actor: "exit",
+ visible: true
+ },
+ {
+ class: "Cutmode",
+ value: false
+ },
+ {
+ class: "LookAt",
+ actor: "rope",
+ text: "@rope.pickup.WITH_GODDESS.0.9.text",
+ wait: true
}
]
}
},
interaction: true,
- state: "WITH_LOW_BATTERY",
zIndex: 0,
layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- "cutter.inventory": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "cutter.inventory",
- source: "common",
+ rope: {
+ class: "AtlasAnimationDesc",
+ id: "rope",
+ source: "scene1",
duration: 1,
animationType: "REPEAT",
count: -1,
preload: true
},
- "cutter.charging": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "cutter.charging",
- source: "common",
+ "rope.down": {
+ class: "AtlasAnimationDesc",
+ id: "rope.down",
+ source: "scene1_rope",
+ duration: 2,
+ animationType: "NO_REPEAT",
+ count: -1,
+ sound: "slide",
+ preload: true,
+ disposeWhenPlayed: true
+ },
+ "rope.fall": {
+ class: "AtlasAnimationDesc",
+ id: "rope.fall",
+ source: "scene1_rope",
duration: 2,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true,
+ disposeWhenPlayed: true
+ },
+ "rope.floor": {
+ class: "AtlasAnimationDesc",
+ id: "rope.floor",
+ source: "scene1",
+ duration: 1,
animationType: "REPEAT",
count: -1,
preload: true
},
- "cutter.withcable": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "cutter.withcable",
- source: "common",
+ "rope.inventory": {
+ class: "AtlasAnimationDesc",
+ id: "rope.inventory",
+ source: "scene1",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ sound: "click",
+ preload: true
+ },
+ "rope.throw": {
+ class: "AtlasAnimationDesc",
+ id: "rope.throw",
+ source: "scene1_rope_throw",
+ duration: 1.5,
+ animationType: "NO_REPEAT",
+ count: -1,
+ disposeWhenPlayed: true
+ },
+ "rope.up": {
+ class: "AtlasAnimationDesc",
+ id: "rope.up",
+ source: "scene1_rope_up",
+ duration: 2,
+ animationType: "NO_REPEAT",
+ count: -1,
+ disposeWhenPlayed: true
+ },
+ "rope.withanchor": {
+ class: "AtlasAnimationDesc",
+ id: "rope.withanchor",
+ source: "scene1",
duration: 1,
animationType: "REPEAT",
count: -1,
sound: "click",
preload: true
+ },
+ rope2: {
+ class: "AtlasAnimationDesc",
+ id: "rope2",
+ source: "scene1",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
}
},
- initAnimation: "cutter.inventory",
+ initAnimation: "rope",
orgAlign: 4
},
- scale: 1,
+ scaleX: 1,
+ scaleY: 1,
rot: 0,
- tint: null,
fakeDepth: false,
bboxFromRenderer: true
},
- diosa: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "diosa",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ socket: {
+ class: "InteractiveActor",
+ id: "socket",
+ bbox: [ 1.5959473, 74.21448, 0, 100, 40.149597, 100, 40.94763, 75.810425 ],
pos: {
- x: 905,
- y: 594.5609
+ x: 589.7257,
+ y: 550.6234
},
visible: true,
- desc: "@scene1.diosa.desc",
+ desc: "@scene1.socket.desc",
refPoint: {},
verbs: {
- "lookat.INVENTORY": {
- id: "lookat",
- state: "INVENTORY",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@diosa.lookat.INVENTORY.0.text",
- type: "SUBTITLE",
- queue: false,
- wait: false
- }
- ]
- },
lookat: {
id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "diosa",
- text: "@diosa.lookat.0.text",
+ class: "LookAt",
+ actor: "socket",
+ text: "@socket.lookat.0.text",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
@@ -2892,793 +3075,839 @@ scenes: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.GotoAction",
- actor: "player",
- pos: "890.0,76.0",
- ignoreWalkZone: false,
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "diosa",
- text: "@diosa.pickup.0.1.text",
+ class: "LookAt",
+ actor: "socket",
+ text: "@socket.pickup.0.text",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
- },
- "pickup.CUT": {
- id: "pickup",
- state: "CUT",
+ }
+ },
+ interaction: true,
+ zIndex: 3,
+ layer: "dynamic"
+ },
+ vasijas: {
+ class: "InteractiveActor",
+ id: "vasijas",
+ bbox: [ 14.364136, -452.4688, 10.901123, -319.27582, 0, 100, 516.5586, 104.787964, 504.5885, -457.25696 ],
+ pos: {
+ x: 1260.3755,
+ y: 976.75775
+ },
+ visible: true,
+ desc: "@vasijas.desc",
+ refPoint: {},
+ verbs: {
+ lookat: {
+ id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
- actor: "player",
- pos: "890.0,76.0",
- ignoreWalkZone: false,
+ class: "LookAt",
+ actor: "vasijas",
+ text: "@vasijas.lookat.0.text",
wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#use.back",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#use.back",
- count: 1,
- wait: true,
- repeat: "REVERSE",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@diosa.pickup.CUT.0.3.text",
- type: "SUBTITLE",
- queue: false,
- wait: false
- },
- {
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "diosa"
- },
- {
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "diosa",
- state: "INVENTORY"
- },
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ }
+ },
+ interaction: true,
+ zIndex: 0,
+ layer: "dynamic"
+ },
+ vitrina: {
+ class: "InteractiveActor",
+ id: "vitrina",
+ bbox: [ -119.700745, -26.334167, -165.35144, 490.99487, 11.835449, 539.9816, 123.30301, 138.14728 ],
+ pos: {
+ x: 406.98236,
+ y: 314.41382
+ },
+ visible: true,
+ desc: "@vitrina.desc",
+ refPoint: {},
+ verbs: {
+ lookat: {
+ id: "lookat",
+ actions: [
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "rope",
- state: "WITH_GODDESS"
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.PlaySoundAction",
- sound: "diosa_chords",
- stop: false
+ class: "LookAt",
+ actor: "vitrina",
+ text: "@vitrina.lookat.0.text",
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
+ }
+ },
+ interaction: true,
+ zIndex: 0,
+ layer: "dynamic"
+ },
+ walkzone: {
+ class: "WalkZoneActor",
+ id: "walkzone",
+ bbox: [ 192.69849, -3.0716553, 727.3014, 460.72607, 705.0456, 399.51163, 625.80536, 225.32869, 880.963, 59.99568, 1222.0059, 209.4747, 1145.7484, 381.48593, 1386.9921, 381.94098, 1820.9706, 374.1726, 1882.3246, 474.4625, 2558.048, 479.26852, 3023, 0 ],
+ pos: {
+ x: 5.2458496,
+ y: -5.245926
+ },
+ visible: true
+ }
+ },
+ backgroundAtlas: "scene1",
+ backgroundRegionId: "bg1",
+ musicDesc: {
+ filename: "scn1.mp3",
+ initialDelay: 30,
+ repeatDelay: 90
+ },
+ depthVector: {
+ x: 1941.2345,
+ y: 0.5
+ },
+ verbs: {
+ init: {
+ id: "init",
+ actions: [
+ {
+ class: "PickUp",
+ actor: "navaja"
},
- "pickup.INVENTORY": {
- id: "pickup",
- state: "INVENTORY",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@diosa.pickup.INVENTORY.0.text",
- type: "SUBTITLE",
- queue: false,
- wait: false
- }
- ]
+ {
+ class: "PickUp",
+ actor: "cutter"
},
- "pickup.FLOOR": {
- id: "pickup",
- state: "FLOOR",
+ {
+ class: "SetActorAttr",
+ actor: "player",
+ visible: false
+ },
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "Position",
+ actor: "rope",
+ position: "2294.0,83.0"
+ },
+ {
+ class: "Animation",
+ animation: "rope#rope.down",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
+ },
+ {
+ class: "SetActorAttr",
+ actor: "player",
+ visible: true
+ },
+ {
+ class: "Animation",
+ animation: "player#stand.left",
+ count: 1,
+ wait: false,
+ repeat: "REPEAT",
+ keepDirection: false
+ },
+ {
+ class: "Position",
+ actor: "rope",
+ position: "2115.0,83.0"
+ },
+ {
+ class: "Animation",
+ animation: "rope#rope",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ test: {
+ id: "test",
+ actions: [
+ {
+ class: "ActorState",
+ actor: "rope",
+ state: "WITH_GODDESS"
+ }
+ ]
+ }
+ },
+ player: "player",
+ walkZone: "walkzone"
+ },
+ scene2: {
+ id: "scene2",
+ layers: [
+ {
+ name: "foreground"
+ },
+ {
+ name: "dynamic",
+ dynamic: true
+ },
+ {
+ name: "background"
+ }
+ ],
+ actors: {
+ door: {
+ class: "InteractiveActor",
+ id: "door",
+ bbox: [ 0, -567.16724, 0, 100, 272.00964, 127.893616, 262.71185, -585.7631 ],
+ pos: {
+ x: 460.2422,
+ y: 692.6878
+ },
+ visible: true,
+ desc: "@door.desc",
+ refPoint: {},
+ verbs: {
+ leave: {
+ id: "leave",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.IfAttrAction",
- actor: "scene2#policeman",
+ class: "IfActorAttr",
+ actor: "policeman",
attr: "STATE",
value: "POLICEMAN_TURN",
caID: "else123"
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#crouch.right",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
- },
- {
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "diosa"
+ class: "CancelVerb",
+ actor: "policeman",
+ verb: "dialog1_turn"
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "diosa",
- state: "INVENTORY"
+ class: "RunVerb",
+ actor: "policeman",
+ verb: "turn_back",
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#crouch.right",
- count: 1,
- wait: true,
- repeat: "REVERSE",
- keepDirection: false
+ class: "End",
+ caID: "else123"
},
{
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "else123"
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "policeman",
- text: "@scene2.diosa.pickup.FLOOR.0.text",
+ text: "@door.leave.0.1.text",
type: "TALK",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Say",
actor: "player",
- text: "@scene2.diosa.pickup.FLOOR.1.text",
+ text: "@door.leave.0.2.text",
type: "TALK",
queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.EndAction",
+ class: "Cutmode",
+ value: false
+ },
+ {
+ class: "End",
caID: "else123"
+ }
+ ]
+ }
+ },
+ interaction: true,
+ zIndex: 0,
+ layer: "dynamic"
+ },
+ electricbox: {
+ class: "InteractiveActor",
+ id: "electricbox",
+ bbox: [ 106.924866, 74.38257, 102.27606, 299.9031, 253.414, 290.60538, 248.7652, 88.32922 ],
+ pos: {
+ x: 897.23975,
+ y: 255.69016
+ },
+ visible: true,
+ desc: "@electricbox.desc",
+ refPoint: {},
+ verbs: {
+ lookat: {
+ id: "lookat",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "LookAt",
+ actor: "electricbox",
+ text: "@scene2.electricbox.lookat.0.text",
+ direction: "FRONTRIGHT",
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
},
- "lookat.FLOOR": {
- id: "lookat",
- state: "FLOOR",
+ pickup: {
+ id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- text: "@scene1.diosa.lookat.FLOOR.0.text",
- type: "SUBTITLE",
- queue: false,
+ class: "LookAt",
+ actor: "electricbox",
+ text: "@scene2.electricbox.pickup.0.text",
+ direction: "FRONTRIGHT",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
}
},
interaction: true,
- state: null,
- zIndex: 1,
- layer: "dynamic",
+ zIndex: 0,
+ layer: "foreground"
+ },
+ fence: {
+ class: "SpriteActor",
+ id: "fence",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
+ pos: {
+ x: 1750.5
+ },
+ visible: true,
+ refPoint: {},
+ verbs: {},
+ interaction: false,
+ zIndex: 0,
+ layer: "foreground",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- "diosa.inventory": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "diosa.inventory",
- source: "common",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
- diosa: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "diosa",
- source: "common",
+ fence: {
+ class: "AtlasAnimationDesc",
+ id: "fence",
+ source: "scene2",
duration: 1,
animationType: "REPEAT",
count: -1,
preload: true
}
},
- initAnimation: "diosa",
+ initAnimation: "fence",
orgAlign: 4
},
- scale: 1,
+ scaleX: 1,
+ scaleY: 1,
rot: 0,
- tint: null,
fakeDepth: false,
bboxFromRenderer: true
},
- papelera: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "papelera",
- bbox: [ 2.394165, -67.03241, 0, 100, 83.2417, 83.24176, 83.60376, -21.738464, 66.48364, -47.88031 ],
+ out: {
+ class: "InteractiveActor",
+ id: "out",
+ bbox: [ 4.6488647, -353.31723, 23.24451, 183.68054, 299.90314, 160.43591, 295.2542, -353.31723 ],
pos: {
- x: 1769.9749,
- y: 608.0798
+ x: -5.722046E-5,
+ y: 474.1889
},
visible: true,
- desc: "@papelera.desc",
- refPoint: {
- x: 43.14612,
- y: -77.303406
- },
+ desc: "@out.desc",
+ refPoint: {},
verbs: {
- lookat: {
- id: "lookat",
+ leave: {
+ id: "leave",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "IfActorAttr",
+ actor: "policeman",
+ attr: "STATE",
+ value: "POLICEMAN_TURN",
+ caID: "else123"
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
- actor: "player",
- target: "papelera",
- ignoreWalkZone: false,
- wait: true
+ class: "CancelVerb",
+ actor: "policeman",
+ verb: "dialog1_turn"
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@papelera.lookat.0.2.text",
- type: "SUBTITLE",
- queue: false,
+ class: "RunVerb",
+ actor: "policeman",
+ verb: "turn_back",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- },
- pickup: {
- id: "pickup",
- actions: [
+ class: "End",
+ caID: "else123"
+ },
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "papelera",
- text: "@papelera.pickup.0.text",
+ class: "Say",
+ actor: "policeman",
+ text: "@out.leave.0.1.text",
+ type: "TALK",
+ queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Say",
+ actor: "player",
+ text: "@out.leave.0.2.text",
+ type: "TALK",
+ queue: false,
+ wait: true
+ },
+ {
+ class: "Cutmode",
value: false
+ },
+ {
+ class: "End",
+ caID: "else123"
}
]
}
},
interaction: true,
- state: null,
zIndex: 0,
layer: "dynamic"
},
- vitrina: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "vitrina",
- bbox: [ -119.700745, -26.334167, -165.35144, 490.99487, 11.835449, 539.9816, 123.30301, 138.14728 ],
+ player: {
+ class: "CharacterActor",
+ id: "player",
+ bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 406.98236,
- y: 314.41382
+ x: 584.22626,
+ y: 95.324524
},
visible: true,
- desc: "@vitrina.desc",
+ desc: "@player.desc",
refPoint: {},
verbs: {
- lookat: {
- id: "lookat",
+ goto: {
+ id: "goto",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "IfActorAttr",
+ actor: "policeman",
+ attr: "STATE",
+ value: "POLICEMAN_TURN",
+ caID: "else123"
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "vitrina",
- text: "@vitrina.lookat.0.text",
+ class: "CancelVerb",
+ actor: "policeman",
+ verb: "dialog1_turn"
+ },
+ {
+ class: "RunVerb",
+ actor: "policeman",
+ verb: "turn_back",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- }
- },
- interaction: true,
- state: null,
- zIndex: 0,
- layer: "dynamic"
- },
- vasijas: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "vasijas",
- bbox: [ 14.364136, -452.4688, 10.901123, -319.27582, 0, 100, 516.5586, 104.787964, 504.5885, -457.25696 ],
- pos: {
- x: 1260.3755,
- y: 976.75775
- },
- visible: true,
- desc: "@vasijas.desc",
- refPoint: {},
- verbs: {
- lookat: {
- id: "lookat",
- actions: [
+ class: "End",
+ caID: "else123"
+ },
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "vasijas",
- text: "@vasijas.lookat.0.text",
+ class: "Say",
+ actor: "policeman",
+ text: "@player.goto.0.1.text",
+ type: "TALK",
+ queue: false,
+ wait: true
+ },
+ {
+ class: "Animation",
+ animation: "player#stand.frontright",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
+ },
+ {
+ class: "Say",
+ actor: "player",
+ text: "@player.goto.0.3.text",
+ type: "TALK",
+ queue: false,
+ wait: true
+ },
+ {
+ class: "Goto",
+ actor: "player",
+ pos: "460.0,0.0",
+ ignoreWalkZone: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Animation",
+ animation: "player#stand.frontright",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
+ },
+ {
+ class: "Cutmode",
value: false
+ },
+ {
+ class: "End",
+ caID: "else123"
}
]
}
},
- interaction: true,
- state: null,
- zIndex: 0,
- layer: "dynamic"
- },
- hole: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "hole",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 887,
- y: 587
- },
- visible: false,
- desc: null,
- refPoint: {},
- verbs: {},
interaction: false,
- state: null,
zIndex: 0,
layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- hole: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "hole",
- source: "scene1",
+ "crouch.right": {
+ class: "AtlasAnimationDesc",
+ id: "crouch.right",
+ source: "player_down",
+ duration: 0.3,
+ animationType: "NO_REPEAT",
+ count: 1,
+ preload: true
+ },
+ runaway: {
+ class: "AtlasAnimationDesc",
+ id: "runaway",
+ source: "player_down",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: 1,
+ preload: true
+ },
+ "stand.frontright": {
+ class: "AtlasAnimationDesc",
+ id: "stand.frontright",
+ source: "player_down",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: -1,
+ preload: true
+ },
+ "talk.right": {
+ class: "AtlasAnimationDesc",
+ id: "talk.right",
+ source: "player_down",
+ duration: 1,
+ animationType: "REPEAT",
+ count: -1,
+ preload: true
+ },
+ throwgoddess: {
+ class: "AtlasAnimationDesc",
+ id: "throwgoddess",
+ source: "player_down",
+ duration: 1,
+ animationType: "NO_REPEAT",
+ count: 1,
+ preload: true
+ },
+ throwgoddess2: {
+ class: "AtlasAnimationDesc",
+ id: "throwgoddess2",
+ source: "player_down",
+ duration: 0.5,
+ animationType: "NO_REPEAT",
+ count: 1,
+ preload: true
+ },
+ "walk.frontright": {
+ class: "AtlasAnimationDesc",
+ id: "walk.frontright",
+ source: "player_down",
duration: 1,
animationType: "REPEAT",
count: -1,
preload: true
}
},
- initAnimation: "hole",
+ initAnimation: "stand.frontright",
orgAlign: 4
},
- scale: 1,
+ scaleX: 0.84536266,
+ scaleY: 0.84536266,
rot: 0,
- tint: null,
- fakeDepth: false,
- bboxFromRenderer: true
+ fakeDepth: true,
+ bboxFromRenderer: true,
+ walkingSpeed: 700
},
- exit: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "exit",
+ policeman: {
+ class: "CharacterActor",
+ id: "policeman",
bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
pos: {
- x: 2184.3882,
- y: 817.01294
+ x: 1332.4265,
+ y: -2.8381348
},
- visible: false,
- desc: "@scene1.exit.desc____",
+ visible: true,
+ desc: "@policeman.desc",
refPoint: {},
verbs: {
- "use.rope": {
- id: "use",
- target: "rope",
+ dialog1_turn: {
+ id: "dialog1_turn",
actions: [
{
- class: "com.bladecoder.engine.actions.IfAttrAction",
- actor: "rope",
- attr: "STATE",
- value: "ARMED",
- caID: "else123"
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "SayDialog",
+ wait: true
+ },
+ {
+ class: "Choose",
+ chooseCriteria: "RANDOM",
+ caID: "2075346474"
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "Say",
actor: "player",
- pos: "2270.0,12.0",
- ignoreWalkZone: false,
+ text: "@scene2.policeman.dialog1_turn.5.text",
+ type: "TALK",
+ queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
+ class: "Say",
actor: "player",
- visible: false
- },
- {
- class: "com.bladecoder.engine.actions.DropItemAction",
- actor: "rope",
- pos: "2150.0,102.0"
+ text: "@scene2.policeman.dialog1_turn.3.text",
+ type: "TALK",
+ queue: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "rope#rope.throw",
- count: 1,
- wait: true,
- repeat: "SPRITE_DEFINED",
- keepDirection: false
+ class: "Say",
+ actor: "player",
+ text: "@scene2.policeman.dialog1_turn.4.text",
+ type: "TALK",
+ queue: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "player",
- visible: true
+ class: "End",
+ caID: "2075346474"
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "rope#rope2",
+ class: "Animation",
+ animation: "policeman#turn.left",
count: 1,
wait: true,
repeat: "SPRITE_DEFINED",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "exit",
- interaction: false
+ class: "ActorState",
+ actor: "policeman",
+ state: "POLICEMAN_TURN"
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "rope",
- state: "ANCHORED"
- },
- {
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "rope",
- text: "@scene1.exit.pickup.9.text",
- direction: "FRONT",
- wait: true
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "else123"
+ class: "Wait",
+ time: 6
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "exit",
- text: "@scene1.exit.use.rope.12.text_",
+ class: "RunVerb",
+ actor: "policeman",
+ verb: "turn_back",
wait: true
- },
- {
- class: "com.bladecoder.engine.actions.EndAction",
- caID: "else123"
}
]
},
- lookat: {
- id: "lookat",
+ "use.diosa": {
+ id: "use",
+ target: "diosa",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "Music",
+ loop: false,
+ initialDelay: 0,
+ repeatDelay: -1,
+ stopWhenLeaving: true,
+ volume: 1
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@scene1.exit.lookat.0.text_",
- type: "SUBTITLE",
- queue: false,
- wait: false
+ class: "CancelVerb",
+ actor: "policeman",
+ verb: "dialog1_turn"
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- }
- },
- interaction: true,
- state: null,
- zIndex: 0,
- layer: "foreground",
- renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
- fanims: {
- exit: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "exit",
- source: "scene1",
- duration: 1,
- animationType: "NO_REPEAT",
- count: -1,
- preload: true
- }
- },
- initAnimation: "exit",
- orgAlign: 4
- },
- scale: 0.7,
- rot: 0,
- tint: null,
- fakeDepth: false,
- bboxFromRenderer: true
- },
- navaja: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "navaja",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 274.7083,
- y: 1183.3589
- },
- visible: true,
- desc: "@navaja.desc",
- refPoint: {},
- verbs: {
- use: {
- id: "use",
- actions: [
+ class: "ActorState",
+ actor: "diosa",
+ state: "END"
+ },
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "navaja",
- text: "@navaja.use.0.text",
- wait: true
+ class: "Animation",
+ animation: "player#throwgoddess",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- },
- lookat: {
- id: "lookat",
- actions: [
- {
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "navaja",
- text: "@navaja.lookat.0.text",
- wait: true
- }
- ]
- },
- pickup: {
- id: "pickup",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "Animation",
+ animation: "player#throwgoddess2",
+ count: 1,
+ wait: false,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "navaja",
- text: "@navaja.pickup.0.text",
- wait: true
+ class: "DropItem",
+ actor: "diosa",
+ pos: "680.0,744.0"
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- }
- },
- interaction: true,
- state: null,
- zIndex: 0,
- layer: "dynamic",
- renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
- fanims: {
- "navaja.inventory": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "navaja.inventory",
- source: "common",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- }
- },
- initAnimation: "navaja.inventory",
- orgAlign: 4
- },
- scale: 1,
- rot: 0,
- tint: null,
- fakeDepth: false,
- bboxFromRenderer: true
- },
- socket: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "socket",
- bbox: [ 1.5959473, 74.21448, 0, 100, 40.149597, 100, 40.94763, 75.810425 ],
- pos: {
- x: 589.7257,
- y: 550.6234
- },
- visible: true,
- desc: "@scene1.socket.desc",
- refPoint: {},
- verbs: {
- lookat: {
- id: "lookat",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "PositionAnim",
+ actor: "diosa",
+ pos: "1370.0,846.0",
+ speed: 0.2,
+ count: 1,
+ wait: true,
+ repeat: "NO_REPEAT"
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "socket",
- text: "@socket.lookat.0.text",
- wait: true
+ class: "PositionAnim",
+ actor: "diosa",
+ pos: "1600.0,1100.0",
+ speed: 0.3,
+ count: 1,
+ wait: false,
+ repeat: "NO_REPEAT"
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- },
- pickup: {
- id: "pickup",
- actions: [
+ class: "DisableAction",
+ serializedAction: "{class:com.bladecoder.engine.actions.SoundAction,actor:policeman,play:hit}"
+ },
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "Animation",
+ animation: "policeman#fall",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "socket",
- text: "@socket.pickup.0.text",
- wait: true
+ class: "PlaySound",
+ sound: "policeman_fall",
+ stop: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- }
- },
- interaction: true,
- state: null,
- zIndex: 3,
- layer: "dynamic"
- },
- cuadro: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "cuadro",
- bbox: [ 0, -172.36902, 0, 100, 269.97504, 88.02991, 248.42896, -155.61108 ],
- pos: {
- x: 629.62585,
- y: 924.0898
- },
- visible: true,
- desc: "@cuadro.desc",
- refPoint: {},
- verbs: {
- lookat: {
- id: "lookat",
- actions: [
+ class: "Say",
+ actor: "policeman",
+ text: "@diosa.use.INVENTORY.policeman.0.9.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: true
+ },
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "Position",
+ actor: "player",
+ position: "360.0,0.0"
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "cuadro",
- text: "@cuadro.lookat.0.text",
- wait: true
+ class: "DisableAction",
+ serializedAction: "{class:com.bladecoder.engine.actions.CameraAction,pos:\"960.0,0.0\",duration:0.3,wait:true}"
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- },
- pickup: {
- id: "pickup",
- actions: [
+ class: "Animation",
+ animation: "player#runaway",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
+ },
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "SetActorAttr",
+ actor: "player",
+ visible: false
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "cuadro",
- text: "@cuadro.pickup.0.text",
+ class: "Say",
+ actor: "policeman",
+ text: "@diosa.use.INVENTORY.policeman.0.12.text",
+ type: "SUBTITLE",
+ queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- }
- },
- interaction: true,
- state: null,
- zIndex: 0,
- layer: "dynamic"
- },
- cable: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "cable",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 582.39404,
- y: 532.6405
- },
- visible: true,
- desc: "@scene1.cable.desc",
- refPoint: {},
- verbs: {
- "use.navaja.CONNECTED": {
- id: "use",
- target: "navaja",
- state: "CONNECTED",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "Wait",
+ time: 2
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "cable",
- text: "@cable.use.CONNECTED.navaja.0.text",
- wait: true
+ class: "RemoveInventoryItem",
+ scene: "limbo"
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
+ class: "Leave",
+ scene: "endSCN",
+ init: true
}
]
},
@@ -3686,512 +3915,463 @@ scenes: {
id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "cable",
- text: "@cable.lookat.0.text",
- wait: true
+ class: "Say",
+ actor: "policeman",
+ text: "@policeman.lookat.0.text",
+ type: "SUBTITLE",
+ queue: false,
+ wait: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
},
- pickup: {
- id: "pickup",
+ turn_back: {
+ id: "turn_back",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "org.bladecoder.venus.actions.scene1.PickupCableAction",
- connectText: "@cable.pickup.0.connect_text",
- disconnectText: "@cable.pickup.0.disconnect_text"
+ class: "Animation",
+ animation: "policeman#turn.left",
+ count: 1,
+ wait: true,
+ repeat: "REVERSE",
+ keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- },
- "pickup.CUT": {
- id: "pickup",
- state: "CUT",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "Animation",
+ animation: "policeman#stand.frontleft",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SayAction",
- actor: "player",
- text: "@cable.pickup.CUT.text",
- type: "SUBTITLE",
- queue: false,
- wait: false
+ class: "IfActorAttr",
+ actor: "diosa",
+ attr: "STATE",
+ value: "INVENTORY",
+ caID: "else123"
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- }
- ]
- },
- "use.navaja.DISCONNECTED": {
- id: "use",
- target: "navaja",
- state: "DISCONNECTED",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "Say",
+ actor: "policeman",
+ text: "@scene2.diosa.policeman_turn.INVENTORY.0.text",
+ type: "TALK",
+ queue: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.GotoAction",
+ class: "Say",
actor: "player",
- pos: "641.0,413.0",
- ignoreWalkZone: false,
+ text: "@scene2.diosa.policeman_turn.INVENTORY.1.text",
+ type: "TALK",
+ queue: false,
wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#crouch.left",
+ class: "Animation",
+ animation: "player#crouch.right",
count: 1,
wait: true,
repeat: "SPRITE_DEFINED",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "cable"
+ class: "DropItem",
+ actor: "diosa",
+ pos: "600.0,30.0"
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#crouch.left",
+ class: "ActorState",
+ actor: "diosa",
+ state: "FLOOR"
+ },
+ {
+ class: "Animation",
+ animation: "player#crouch.right",
count: 1,
wait: true,
repeat: "REVERSE",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SayAction",
+ class: "Animation",
+ animation: "player#stand.frontright",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
+ },
+ {
+ class: "End",
+ caID: "else123"
+ },
+ {
+ class: "Say",
+ actor: "policeman",
+ text: "@scene2.diosa.policeman_turn.POLICEMAN_TURN.0.text",
+ type: "TALK",
+ queue: false,
+ wait: true
+ },
+ {
+ class: "Say",
actor: "player",
- text: "@cable.use.DISCONNECTED.navaja.0.4.text",
- type: "SUBTITLE",
+ text: "@scene2.diosa.policeman_turn.POLICEMAN_TURN.1.text",
+ type: "TALK",
queue: false,
- wait: false
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "cable",
- state: "CUT"
+ class: "End",
+ caID: "else123"
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "ActorState",
+ actor: "policeman"
+ },
+ {
+ class: "Cutmode",
value: false
}
]
- }
- },
- interaction: true,
- state: "CONNECTED",
- zIndex: 4,
- layer: "dynamic",
- renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
- fanims: {
- "cable.inventory": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "cable.inventory",
- source: "scene1",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- sound: "click",
- preload: true
- },
- "cable.disconnected": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "cable.disconnected",
- source: "scene1",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
- "cable.connected": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "cable.connected",
- source: "scene1",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- }
},
- initAnimation: "cable.connected",
- orgAlign: 4
- },
- scale: 1,
- rot: 0,
- tint: null,
- fakeDepth: false,
- bboxFromRenderer: true
- },
- column_fg: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "column_fg",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 160
- },
- visible: true,
- desc: null,
- refPoint: {},
- verbs: {},
- interaction: false,
- state: null,
- zIndex: 0,
- layer: "foreground",
- renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
- fanims: {
- column_fg: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "column_fg",
- source: "scene1",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- }
+ "use.navaja": {
+ id: "use",
+ target: "navaja",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "LookAt",
+ actor: "policeman",
+ text: "@scene2.policeman.use.policeman.0.text",
+ wait: true
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ },
+ talkto: {
+ id: "talkto",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "Talkto",
+ actor: "policeman",
+ dialog: "dialog1"
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
},
- initAnimation: "column_fg",
- orgAlign: 4
- },
- scale: 1,
- rot: 0,
- tint: null,
- fakeDepth: false,
- bboxFromRenderer: true
- },
- player: {
- class: "com.bladecoder.engine.model.CharacterActor",
- id: "player",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 2312.8765,
- y: 61.886017
+ "talkto.POLICEMAN_TURN": {
+ id: "talkto",
+ state: "POLICEMAN_TURN",
+ actions: [
+ {
+ class: "Cutmode",
+ value: true
+ },
+ {
+ class: "CancelVerb",
+ actor: "policeman",
+ verb: "dialog1_turn"
+ },
+ {
+ class: "RunVerb",
+ actor: "policeman",
+ verb: "turn_back",
+ wait: true
+ },
+ {
+ class: "Talkto",
+ actor: "policeman",
+ dialog: "dialog1"
+ },
+ {
+ class: "Cutmode",
+ value: false
+ }
+ ]
+ }
},
- visible: true,
- desc: "@scene1.player.desc_",
- refPoint: {},
- verbs: {},
- interaction: false,
- state: null,
+ interaction: true,
zIndex: 0,
layer: "dynamic",
renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
+ class: "AtlasRenderer",
fanims: {
- "stand.left": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "stand.left",
- source: "player",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
- "stand.backleft": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "stand.backleft",
- source: "player",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
- "stand.front": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "stand.front",
- source: "player",
+ fall: {
+ class: "AtlasAnimationDesc",
+ id: "fall",
+ source: "policeman",
duration: 1,
- animationType: "REPEAT",
- count: -1,
+ inD: {
+ x: 195
+ },
+ animationType: "NO_REPEAT",
+ count: 1,
+ sound: "hit",
preload: true
},
"stand.frontleft": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
+ class: "AtlasAnimationDesc",
id: "stand.frontleft",
- source: "player",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
- "walk.back": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "walk.back",
- source: "player",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
- "stand.back": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "stand.back",
- source: "player",
+ source: "policeman",
duration: 1,
animationType: "REPEAT",
count: -1,
preload: true
},
- "walk.frontleft": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "walk.frontleft",
- source: "player",
+ "talk.left": {
+ class: "AtlasAnimationDesc",
+ id: "talk.left",
+ source: "policeman",
duration: 1,
animationType: "REPEAT",
count: -1,
preload: true
},
- "use.back": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "use.back",
- source: "player",
- duration: 0.2,
- animationType: "NO_REPEAT",
- count: 1,
- preload: true
- },
- sitdown: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "sitdown",
- source: "scene1",
- duration: 0.3,
- animationType: "NO_REPEAT",
- count: 1,
- preload: true
- },
- "crouch.left": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "crouch.left",
- source: "player",
- duration: 0.3,
- animationType: "NO_REPEAT",
- count: 1,
- preload: true
- },
- "player.chairbroke": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "player.chairbroke",
- source: "scene1",
- duration: 0.3,
- animationType: "NO_REPEAT",
- count: 1,
- preload: true
- },
- "use.back2": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "use.back2",
- source: "player",
+ "turn.left": {
+ class: "AtlasAnimationDesc",
+ id: "turn.left",
+ source: "policeman",
duration: 0.3,
animationType: "NO_REPEAT",
count: 1,
preload: true
- },
- "walk.backleft": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "walk.backleft",
- source: "player",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
- "walk.front": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "walk.front",
- source: "player",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- },
- "walk.left": {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "walk.left",
- source: "player",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
}
},
- initAnimation: "stand.left",
+ initAnimation: "stand.frontleft",
orgAlign: 4
},
- scale: 0.9683697,
+ scaleX: 1.0046208,
+ scaleY: 1.0046208,
rot: 0,
- tint: null,
fakeDepth: true,
bboxFromRenderer: true,
- dialogs: null,
- textStyle: null,
- walkingSpeed: 1200,
- textColor: null
- },
- placa: {
- class: "com.bladecoder.engine.model.InteractiveActor",
- id: "placa",
- bbox: [ 11.970032, 35.910156, 0, 100, 100, 100, 107.18201, 43.092316 ],
- pos: {
- x: 844.2892,
- y: 466.03485
- },
- visible: true,
- desc: "@scene1.placa.desc",
- refPoint: {},
- verbs: {
- lookat: {
- id: "lookat",
- actions: [
+ dialogs: {
+ dialog1: {
+ id: "dialog1",
+ options: [
{
- class: "com.bladecoder.engine.actions.GotoAction",
- actor: "player",
- pos: "910.0,100.0",
- ignoreWalkZone: false,
- wait: true
+ text: "@policeman.dialog1.0.text",
+ responseText: "@policeman.dialog1.0.response_text",
+ verbId: null,
+ next: "dialog2",
+ once: false,
+ soundId: null,
+ responseSoundId: null,
+ visible: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ text: "@policeman.dialog1.1.text",
+ responseText: "@policeman.dialog1.1.response_text",
+ verbId: null,
+ next: "this",
+ once: false,
+ soundId: null,
+ responseSoundId: null,
+ visible: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "placa",
- text: "@placa.lookat.0.1.text",
- direction: "BACK",
- wait: true
+ text: "@policeman.dialog1.2.text",
+ responseText: null,
+ verbId: "dialog1_turn",
+ next: null,
+ once: false,
+ soundId: null,
+ responseSoundId: null,
+ visible: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
+ text: "@policeman.dialog1.3.text",
+ responseText: "@policeman.dialog1.3.response_text",
+ verbId: null,
+ next: "this",
+ once: false,
+ soundId: null,
+ responseSoundId: null,
+ visible: true
+ },
+ {
+ text: "@policeman.dialog1.4.text",
+ responseText: null,
+ verbId: null,
+ next: null,
+ once: false,
+ soundId: null,
+ responseSoundId: null,
+ visible: true
}
]
},
- pickup: {
- id: "pickup",
- actions: [
+ dialog2: {
+ id: "dialog2",
+ options: [
+ {
+ text: "@policeman.dialog1.0.0.text",
+ responseText: "@policeman.dialog1.0.0.response_text",
+ verbId: null,
+ next: "this",
+ once: true,
+ soundId: null,
+ responseSoundId: null,
+ visible: true
+ },
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ text: "@policeman.dialog1.0.1.text",
+ responseText: "@policeman.dialog1.0.1.response_text",
+ verbId: null,
+ next: "this",
+ once: true,
+ soundId: null,
+ responseSoundId: null,
+ visible: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
- actor: "placa",
- text: "@placa.pickup.0.text",
- wait: true
+ text: "@policeman.dialog1.0.2.text",
+ responseText: "@policeman.dialog1.0.2.response_text",
+ verbId: null,
+ next: "this",
+ once: false,
+ soundId: null,
+ responseSoundId: null,
+ visible: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
+ text: "@policeman.dialog1.0.3.text",
+ responseText: "@policeman.dialog1.0.3.response_text",
+ verbId: null,
+ next: "dialog1",
+ once: false,
+ soundId: null,
+ responseSoundId: null,
+ visible: true
}
]
}
},
- interaction: true,
- state: null,
- zIndex: 0,
- layer: "dynamic"
+ walkingSpeed: 700
+ },
+ walkzone: {
+ class: "WalkZoneActor",
+ id: "walkzone",
+ bbox: [ 0, 0, 117.039185, 68.44714, 528.3438, 118.41487, 932.00696, 58.22943, 1067.1172, 0 ],
+ pos: {},
+ visible: true
}
},
- backgroundAtlas: "scene1",
- backgroundRegionId: "bg1",
+ backgroundAtlas: "scene2",
+ backgroundRegionId: "bg2",
musicDesc: {
- filename: "scn1.mp3",
- initialDelay: 30,
- repeatDelay: 90
+ filename: "scn2.mp3"
},
depthVector: {
- x: 1941.2345,
- y: 0.5
- },
- polygonalNavGraph: {
- walkZone: {
- localVertices: [ 192.69849, -3.0716553, 727.3014, 460.72607, 705.0456, 399.51163, 625.80536, 225.32869, 880.963, 59.99568, 1222.0059, 209.4747, 1145.7484, 381.48593, 1386.9921, 381.94098, 1820.9706, 374.1726, 1882.3246, 474.4625, 2558.048, 479.26852, 3023, 0 ],
- x: 5.2458496,
- y: -5.245926
- }
+ x: 616.38446,
+ y: 0.01
},
verbs: {
init: {
id: "init",
actions: [
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "navaja"
+ class: "Cutmode",
+ value: true
},
{
- class: "com.bladecoder.engine.actions.PickUpAction",
- actor: "cutter"
+ class: "Camera",
+ pos: "880.0,0.0",
+ followActor: "none",
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
+ class: "Goto",
actor: "player",
- visible: false
+ pos: "460.0,0.0",
+ ignoreWalkZone: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
+ class: "Animation",
+ animation: "player#stand.frontright",
+ count: 1,
+ wait: true,
+ repeat: "SPRITE_DEFINED",
+ keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.PositionAction",
- actor: "rope",
- position: "2294.0,83.0"
+ class: "Say",
+ actor: "policeman",
+ text: "@scene2.init.0.3.text",
+ type: "TALK",
+ queue: false,
+ wait: true
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "rope#rope.down",
+ class: "Say",
+ actor: "player",
+ text: "@scene2.init.0.4.text",
+ type: "TALK",
+ queue: false,
+ wait: true
+ },
+ {
+ class: "Animation",
+ animation: "player#crouch.right",
count: 1,
wait: true,
repeat: "SPRITE_DEFINED",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "player",
- visible: true
+ class: "DropItem",
+ actor: "diosa",
+ pos: "600.0,30.0"
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "player#stand.left",
- count: 1,
- wait: false,
- repeat: "REPEAT",
- keepDirection: false
+ class: "ActorState",
+ actor: "diosa",
+ state: "FLOOR"
},
{
- class: "com.bladecoder.engine.actions.PositionAction",
- actor: "rope",
- position: "2115.0,83.0"
+ class: "Animation",
+ animation: "player#crouch.right",
+ count: 1,
+ wait: true,
+ repeat: "REVERSE",
+ keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.AnimationAction",
- animation: "rope#rope",
+ class: "Animation",
+ animation: "player#stand.frontright",
count: 1,
wait: true,
repeat: "SPRITE_DEFINED",
keepDirection: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
@@ -4200,195 +4380,23 @@ scenes: {
id: "test",
actions: [
{
- class: "com.bladecoder.engine.actions.SetStateAction",
- actor: "rope",
- state: "WITH_GODDESS"
- }
- ]
- }
- },
- player: "player"
- },
- scene0: {
- id: "scene0",
- layers: [
- {
- name: "foreground"
- },
- {
- name: "background"
- }
- ],
- actors: {
- forward: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "forward",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 1728,
- y: 47
- },
- visible: false,
- desc: "@scene0.forward.desc",
- refPoint: {},
- verbs: {
- leave: {
- id: "leave",
- actions: [
- {
- class: "com.bladecoder.engine.actions.RunVerbAction",
- verb: "leave",
- wait: true
- }
- ]
- }
- },
- interaction: true,
- state: null,
- zIndex: 0,
- layer: "background",
- renderer: {
- class: "com.bladecoder.engine.model.AtlasRenderer",
- fanims: {
- forward: {
- class: "com.bladecoder.engine.anim.AtlasAnimationDesc",
- id: "forward",
- source: "scene0",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- }
- },
- initAnimation: "forward",
- orgAlign: 4
- },
- scale: 1,
- rot: 0,
- tint: null,
- fakeDepth: false,
- bboxFromRenderer: true
- },
- title: {
- class: "com.bladecoder.engine.model.SpriteActor",
- id: "title",
- bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ],
- pos: {
- x: 960
- },
- visible: false,
- desc: null,
- refPoint: {},
- verbs: {},
- interaction: true,
- state: null,
- zIndex: 0,
- layer: "foreground",
- renderer: {
- class: "com.bladecoder.engine.model.ImageRenderer",
- fanims: {
- title: {
- class: "com.bladecoder.engine.anim.AnimationDesc",
- id: "title",
- source: "@title.jpg",
- duration: 1,
- animationType: "REPEAT",
- count: -1,
- preload: true
- }
- },
- initAnimation: "title",
- orgAlign: 4
- },
- scale: 1,
- rot: 0,
- tint: null,
- fakeDepth: false,
- bboxFromRenderer: true
- }
- },
- musicDesc: {
- filename: "scn0.mp3"
- },
- verbs: {
- init: {
- id: "init",
- actions: [
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.PropertyAction",
- prop: "EMBEDDED",
- value: "false"
- },
- {
- class: "com.bladecoder.engine.actions.ShowInventoryAction",
- value: false
+ class: "PickUp",
+ actor: "scene1#diosa"
},
{
- class: "com.bladecoder.engine.actions.ScreenPositionAction",
- actor: "forward",
- position: "-40.0,40.0",
- anchor: "BOTTOM_RIGHT"
+ class: "PickUp",
+ actor: "scene1#navaja"
},
{
- class: "com.bladecoder.engine.actions.TextAction",
- text: "@scene0.init.0.text",
- style: "default",
- color: "ffffffff",
- pos: "-1.0,-1.0",
- type: "PLAIN",
- queue: false,
+ class: "RunVerb",
+ verb: "init",
wait: true
- },
- {
- class: "com.bladecoder.engine.actions.SetActorAttrAction",
- actor: "title",
- visible: true
- },
- {
- class: "com.bladecoder.engine.actions.WaitAction",
- time: 2
- },
- {
- class: "com.bladecoder.engine.actions.ShowInventoryAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
- value: false
- },
- {
- class: "com.bladecoder.engine.actions.LeaveAction",
- scene: "scene1",
- init: true
- }
- ]
- },
- leave: {
- id: "leave",
- actions: [
- {
- class: "com.bladecoder.engine.actions.ShowInventoryAction",
- value: true
- },
- {
- class: "com.bladecoder.engine.actions.LeaveAction",
- scene: "scene1",
- init: true
}
]
}
- }
- },
- limbo: {
- id: "limbo",
- layers: [],
- actors: {},
- musicDesc: null,
- verbs: {}
+ },
+ player: "player",
+ walkZone: "walkzone"
}
},
initScene: "scene0"
diff --git a/venus/assets/model/c00.properties b/venus/assets/model/c00.properties
index a826ba4..ebf502b 100644
--- a/venus/assets/model/c00.properties
+++ b/venus/assets/model/c00.properties
@@ -21,15 +21,15 @@ cutter.pickup.0.text=I'm not going to cut anything right now.
cutter.pickup.CHARGING.0.text=I'd better leave it to charge for a while.
cutter.pickup.WITH_BATTERY.0.4.text=This charge must be enough.
cutter.use.0.text=I don't think I should cut that.
+cutter.use.cable.0.cut_cable_text=Using my Swiss Army Knife, I can open the machine\n and connect the cable to the DC input.
+cutter.use.cable.0.default_cable_text=Why would I do that?
cutter.use.NO_BATTERY.diosa.0.text=I can't do that! The machine is out of charge.
+cutter.use.policeman.0.text=I'm too far away.
cutter.use.WITH_BATTERY.diosa.0.4.text=Yes! I've made a good hole in the glass.
cutter.use.WITH_CABLE.diosa.0.text=I can't do that! The machine is out of charge.
cutter.use.WITH_CABLE.socket.0.5.text=Charging!
cutter.use.WITH_LOW_BATTERY.diosa.0.1.text=Well, I'm going to proceed to cut the glass and cleanly take the Goddess.
cutter.use.WITH_LOW_BATTERY.diosa.0.4.text=...dammit! the machine has run out of charge!
-cutter.use.cable.0.cut_cable_text=Using my Swiss Army Knife, I can open the machine\n and connect the cable to the DC input.
-cutter.use.cable.0.default_cable_text=Why would I do that?
-cutter.use.policeman.0.text=I'm too far away.
diosa.lookat.0.text=It is the Goddess of the Serpents! Soon it will be mine.
diosa.lookat.INVENTORY.0.text=Now that I have the Goddess, I just need to get the hell out of here.
diosa.pickup.0.1.text=I can't take it, it's inside an urn protected by an impenetrable security system.
@@ -87,7 +87,6 @@ rope.desc=rope
rope.lookat.0.text=This rope is my ticket in and out of here.
rope.pickup.0.text=I won't leave without the goddess.
rope.pickup.ARMED.0.9.text=Rope anchored and ready to go.
-rope.pickup.INVENTORY.0.text=I can't throw the rope like that, it won't anchor.
rope.pickup.WITH_GODDESS.0.1.text=Mission accomplished, I'm outta here swift and fast.
rope.pickup.WITH_GODDESS.0.9.text=And now, how do I get out of here?
rope.use.INVENTORY.chair.0.text=It looks like this could get me out of here.
diff --git a/venus/assets/model/world b/venus/assets/model/world
index 5ef3b4f..68ee832 100644
--- a/venus/assets/model/world
+++ b/venus/assets/model/world
@@ -7,15 +7,15 @@ verbs: {
id: "dialog",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.SayDialogAction",
+ class: "SayDialog",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
@@ -24,16 +24,16 @@ verbs: {
id: "use",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
+ class: "LookAt",
text: "@default.use.0.text",
wait: false
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
@@ -42,16 +42,16 @@ verbs: {
id: "lookat",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
+ class: "LookAt",
text: "@default.lookat.0.text",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
@@ -60,16 +60,16 @@ verbs: {
id: "pickup",
actions: [
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: true
},
{
- class: "com.bladecoder.engine.actions.LookAtAction",
+ class: "LookAt",
text: "@default.pickup.0.text",
wait: true
},
{
- class: "com.bladecoder.engine.actions.SetCutmodeAction",
+ class: "Cutmode",
value: false
}
]
diff --git a/venus/assets/model/world.properties b/venus/assets/model/world.properties
index c475ce0..b46dd26 100644
--- a/venus/assets/model/world.properties
+++ b/venus/assets/model/world.properties
@@ -5,6 +5,7 @@ ui.back=Back
ui.bonaseraLink=FULL FEATURED ADVENTURE!\nThe Revenge of Johnny Bonasera
ui.continue=Continue
ui.credits=Credits
+ui.gamesaved=Game Saved
ui.help=Help
ui.load=Load/Save
ui.new=New Game
diff --git a/venus/assets/model/world_de.properties b/venus/assets/model/world_de.properties
index 83315fc..126c956 100644
--- a/venus/assets/model/world_de.properties
+++ b/venus/assets/model/world_de.properties
@@ -17,3 +17,4 @@ ui.remove=Bist du sicher, dass du dieses gespeicherte Spiel löschen möchtest?
ui.save=Spielstand
ui.yes=JA
ui.bonaseraLink=DAS KOMPLETTE ABENTEUER!\nDie Rache des Johnny Bonasera
+ui.gamesaved=Spiel gespeichert
diff --git a/venus/assets/model/world_es.properties b/venus/assets/model/world_es.properties
index 1d9cb01..a9ef984 100644
--- a/venus/assets/model/world_es.properties
+++ b/venus/assets/model/world_es.properties
@@ -18,4 +18,5 @@ ui.quit=Salir
ui.remove=¿Estás seguro de que quieres borrar la partida seleccionada?
ui.save=Guardar Juego
ui.yes=SI
-ui.bonaseraLink=¡JUEGA A NUESTRA AVENTURA COMPLETA!\nThe Revenge of Johnny Bonasera
\ No newline at end of file
+ui.bonaseraLink=¡JUEGA A NUESTRA AVENTURA COMPLETA!\nThe Revenge of Johnny Bonasera
+ui.gamesaved=Juego guardado
\ No newline at end of file
diff --git a/venus/assets/model/world_fr.properties b/venus/assets/model/world_fr.properties
index b9281a6..813387f 100644
--- a/venus/assets/model/world_fr.properties
+++ b/venus/assets/model/world_fr.properties
@@ -17,3 +17,4 @@ ui.remove=Voulez-vous vraiment supprimer cet élément ?
ui.save=Sauvegarder la partie
ui.yes=OUI
ui.bonaseraLink=NOTRE AVENTURE COMPLÈTE !\nThe Revenge of Johnny Bonasera
+ui.gamesaved=Partie sauvegardée
diff --git a/venus/assets/model/world_it.properties b/venus/assets/model/world_it.properties
index 6b86608..1a122c9 100644
--- a/venus/assets/model/world_it.properties
+++ b/venus/assets/model/world_it.properties
@@ -16,4 +16,5 @@ ui.quit=Esci
ui.remove=Rimuovere il salvataggio?
ui.save=Salva partita
ui.yes=SI
-ui.bonaseraLink=LA NOSTRA COMPLETA AVVENTURA!\nThe Revenge of Johnny Bonasera
\ No newline at end of file
+ui.bonaseraLink=LA NOSTRA COMPLETA AVVENTURA!\nThe Revenge of Johnny Bonasera
+ui.gamesaved=Partita salvata
\ No newline at end of file
diff --git a/venus/assets/model/world_ru.properties b/venus/assets/model/world_ru.properties
index 1ffb9a5..78239bf 100644
--- a/venus/assets/model/world_ru.properties
+++ b/venus/assets/model/world_ru.properties
@@ -16,4 +16,5 @@ ui.quit=Выход
ui.remove=Вы уверены, что хотите удалить это сохранение?
ui.save=Сохранить игру
ui.yes=ДА
-ui.bonaseraLink=НАШЕ ПОЛНОЕ ПРИКЛЮЧЕНИЕ!\nThe Revenge of Johnny Bonasera
\ No newline at end of file
+ui.bonaseraLink=НАШЕ ПОЛНОЕ ПРИКЛЮЧЕНИЕ!\nThe Revenge of Johnny Bonasera
+ui.gamesaved=Игра сохранена
\ No newline at end of file
diff --git a/venus/assets/model/world_uk.properties b/venus/assets/model/world_uk.properties
index 3acb2cd..ffa1ac1 100644
--- a/venus/assets/model/world_uk.properties
+++ b/venus/assets/model/world_uk.properties
@@ -19,3 +19,4 @@ ui.remove=Ви впевнені, що хочете вилучити це збе
ui.save=Зберегти гру
ui.yes=ТАК
ui.bonaseraLink=НАШЕ ПОДКЛЮЧЕНИЙ ПРИКЛАД!\nThe Revenge of Johnny Bonasera
+ui.gamesaved=Game Saved
diff --git a/venus/assets/ui/0.5/blade_logo.png b/venus/assets/ui/0.5/blade_logo.png
index e2f246f..1a90bc0 100644
Binary files a/venus/assets/ui/0.5/blade_logo.png and b/venus/assets/ui/0.5/blade_logo.png differ
diff --git a/venus/assets/ui/0.5/helpDesktop.png b/venus/assets/ui/0.5/helpDesktop.png
index 72b5389..05c9db2 100644
Binary files a/venus/assets/ui/0.5/helpDesktop.png and b/venus/assets/ui/0.5/helpDesktop.png differ
diff --git a/venus/assets/ui/0.5/helpDesktop_es.png b/venus/assets/ui/0.5/helpDesktop_es.png
index 7c828b3..5c5cdde 100644
Binary files a/venus/assets/ui/0.5/helpDesktop_es.png and b/venus/assets/ui/0.5/helpDesktop_es.png differ
diff --git a/venus/assets/ui/0.5/helpPie.png b/venus/assets/ui/0.5/helpPie.png
index 657c32c..2dec1b7 100644
Binary files a/venus/assets/ui/0.5/helpPie.png and b/venus/assets/ui/0.5/helpPie.png differ
diff --git a/venus/assets/ui/0.5/helpPie_de.png b/venus/assets/ui/0.5/helpPie_de.png
index 3477695..cc3f2e2 100644
Binary files a/venus/assets/ui/0.5/helpPie_de.png and b/venus/assets/ui/0.5/helpPie_de.png differ
diff --git a/venus/assets/ui/0.5/helpPie_es.png b/venus/assets/ui/0.5/helpPie_es.png
index 244384e..beea6c4 100644
Binary files a/venus/assets/ui/0.5/helpPie_es.png and b/venus/assets/ui/0.5/helpPie_es.png differ
diff --git a/venus/assets/ui/0.5/helpPie_fr.png b/venus/assets/ui/0.5/helpPie_fr.png
index e495fdb..3eafe4a 100644
Binary files a/venus/assets/ui/0.5/helpPie_fr.png and b/venus/assets/ui/0.5/helpPie_fr.png differ
diff --git a/venus/assets/ui/0.5/helpPie_it.png b/venus/assets/ui/0.5/helpPie_it.png
index 75fa530..b2ac2f7 100644
Binary files a/venus/assets/ui/0.5/helpPie_it.png and b/venus/assets/ui/0.5/helpPie_it.png differ
diff --git a/venus/assets/ui/0.5/libgdx_logo.png b/venus/assets/ui/0.5/libgdx_logo.png
index 1824540..eec490f 100644
Binary files a/venus/assets/ui/0.5/libgdx_logo.png and b/venus/assets/ui/0.5/libgdx_logo.png differ
diff --git a/venus/assets/ui/0.5/ui.atlas b/venus/assets/ui/0.5/ui.atlas
index f7904d4..28e3b17 100644
--- a/venus/assets/ui/0.5/ui.atlas
+++ b/venus/assets/ui/0.5/ui.atlas
@@ -1,26 +1,26 @@
ui.png
-size: 332,269
+size: 237, 523
format: RGBA8888
-filter: Linear,Linear
+filter: Linear, Linear
repeat: none
back
rotate: false
- xy: 209, 41
+ xy: 2, 2
size: 46, 44
orig: 60, 60
offset: 7, 8
index: -1
bonasera_icon
rotate: false
- xy: 1, 183
+ xy: 2, 436
size: 85, 85
orig: 85, 85
offset: 0, 0
index: -1
border_rect
rotate: false
- xy: 290, 25
+ xy: 167, 30
size: 29, 29
split: 5, 5, 5, 5
orig: 29, 29
@@ -28,7 +28,7 @@ border_rect
index: -1
border_rect4
rotate: false
- xy: 122, 4
+ xy: 203, 47
size: 32, 32
split: 4, 4, 5, 5
orig: 32, 32
@@ -36,119 +36,161 @@ border_rect4
index: -1
bubblepointer
rotate: false
- xy: 156, 11
+ xy: 126, 34
size: 39, 25
orig: 39, 25
offset: 0, 0
index: -1
credits
rotate: false
- xy: 1, 103
+ xy: 2, 356
size: 81, 78
orig: 83, 83
offset: 1, 0
index: -1
debug
rotate: false
- xy: 88, 190
+ xy: 89, 443
size: 81, 78
orig: 83, 83
offset: 1, 0
index: -1
delete
rotate: false
- xy: 237, 136
+ xy: 172, 465
size: 56, 56
orig: 56, 56
offset: 0, 0
index: -1
dialog_down
rotate: false
- xy: 84, 1
+ xy: 88, 26
size: 36, 35
orig: 46, 46
offset: 5, 5
index: -1
dialog_up
rotate: false
- xy: 295, 156
+ xy: 50, 10
size: 36, 36
orig: 46, 46
offset: 5, 5
index: -1
help
rotate: false
- xy: 1, 23
+ xy: 2, 276
size: 81, 78
orig: 83, 83
offset: 1, 0
index: -1
hotspot
rotate: false
- xy: 164, 87
+ xy: 154, 108
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
hotspotpointer
rotate: false
- xy: 171, 194
+ xy: 2, 200
size: 74, 74
orig: 74, 74
offset: 0, 0
index: -1
inventory
rotate: false
- xy: 171, 137
+ xy: 154, 158
size: 64, 55
orig: 64, 64
offset: 0, 5
index: -1
+lang_de
+ rotate: false
+ xy: 2, 124
+ size: 74, 74
+ orig: 74, 74
+ offset: 0, 0
+ index: -1
+lang_en
+ rotate: false
+ xy: 2, 48
+ size: 74, 74
+ orig: 74, 74
+ offset: 0, 0
+ index: -1
+lang_es
+ rotate: false
+ xy: 89, 367
+ size: 74, 74
+ orig: 74, 74
+ offset: 0, 0
+ index: -1
+lang_fr
+ rotate: false
+ xy: 85, 291
+ size: 74, 74
+ orig: 74, 74
+ offset: 0, 0
+ index: -1
+lang_it
+ rotate: false
+ xy: 161, 291
+ size: 74, 74
+ orig: 74, 74
+ offset: 0, 0
+ index: -1
+lang_ru
+ rotate: false
+ xy: 85, 215
+ size: 74, 74
+ orig: 74, 74
+ offset: 0, 0
+ index: -1
leave
rotate: false
- xy: 214, 89
+ xy: 154, 61
size: 47, 45
orig: 47, 45
offset: 0, 0
index: -1
lookat
rotate: false
- xy: 247, 194
+ xy: 161, 215
size: 74, 74
orig: 74, 74
offset: 0, 0
index: -1
menu
rotate: false
- xy: 257, 45
+ xy: 204, 114
size: 31, 42
orig: 61, 61
offset: 15, 9
index: -1
pickup
rotate: false
- xy: 88, 114
+ xy: 78, 139
size: 74, 74
orig: 74, 74
offset: 0, 0
index: -1
plus
rotate: false
- xy: 263, 89
+ xy: 165, 369
size: 45, 45
orig: 45, 45
offset: 0, 0
index: -1
pointer
rotate: false
- xy: 160, 38
+ xy: 172, 416
size: 47, 47
orig: 47, 47
offset: 0, 0
index: -1
rect
rotate: false
- xy: 290, 56
+ xy: 204, 81
size: 31, 31
split: 5, 5, 5, 4
orig: 31, 31
@@ -156,14 +198,14 @@ rect
index: -1
talkto
rotate: false
- xy: 84, 38
+ xy: 78, 63
size: 74, 74
orig: 74, 74
offset: 0, 0
index: -1
white_pixel
rotate: false
- xy: 122, 1
+ xy: 85, 433
size: 1, 1
orig: 1, 1
offset: 0, 0
diff --git a/venus/assets/ui/0.5/ui.png b/venus/assets/ui/0.5/ui.png
index 401c6f0..bb42028 100644
Binary files a/venus/assets/ui/0.5/ui.png and b/venus/assets/ui/0.5/ui.png differ
diff --git a/venus/assets/ui/1/ui.atlas b/venus/assets/ui/1/ui.atlas
index d06c461..863b9e1 100644
--- a/venus/assets/ui/1/ui.atlas
+++ b/venus/assets/ui/1/ui.atlas
@@ -1,12 +1,12 @@
ui.png
-size: 695,524
+size: 963, 524
format: RGBA8888
-filter: Linear,Linear
+filter: Linear, Linear
repeat: none
back
rotate: false
- xy: 476, 403
+ xy: 579, 101
size: 120, 120
orig: 120, 120
offset: 0, 0
@@ -20,7 +20,7 @@ bonasera_icon
index: -1
border_rect
rotate: false
- xy: 170, 1
+ xy: 915, 192
size: 29, 29
split: 5, 5, 5, 5
orig: 29, 29
@@ -28,7 +28,7 @@ border_rect
index: -1
border_rect4
rotate: false
- xy: 421, 208
+ xy: 170, 16
size: 32, 32
split: 4, 4, 5, 5
orig: 32, 32
@@ -36,7 +36,7 @@ border_rect4
index: -1
bubblepointer
rotate: false
- xy: 339, 189
+ xy: 321, 38
size: 79, 51
orig: 79, 51
offset: 0, 0
@@ -50,105 +50,147 @@ credits
index: -1
debug
rotate: false
- xy: 1, 15
+ xy: 174, 357
size: 166, 166
orig: 166, 166
offset: 0, 0
index: -1
delete
rotate: false
- xy: 472, 94
+ xy: 702, 109
size: 112, 112
orig: 112, 112
offset: 0, 0
index: -1
dialog_down
rotate: false
- xy: 597, 207
+ xy: 679, 5
size: 93, 93
orig: 93, 93
offset: 0, 0
index: -1
dialog_up
rotate: false
- xy: 587, 111
+ xy: 775, 13
size: 93, 93
orig: 93, 93
offset: 0, 0
index: -1
help
rotate: false
- xy: 170, 184
+ xy: 1, 15
size: 166, 166
orig: 166, 166
offset: 0, 0
index: -1
hotspot
rotate: false
- xy: 597, 303
+ xy: 579, 1
size: 97, 97
orig: 97, 97
offset: 0, 0
index: -1
hotspotpointer
rotate: false
- xy: 174, 375
+ xy: 343, 375
size: 148, 148
orig: 148, 148
offset: 0, 0
index: -1
inventory
rotate: false
- xy: 339, 243
+ xy: 321, 92
size: 129, 129
orig: 129, 129
offset: 0, 0
index: -1
+lang_de
+ rotate: false
+ xy: 494, 375
+ size: 148, 148
+ orig: 148, 148
+ offset: 0, 0
+ index: -1
+lang_en
+ rotate: false
+ xy: 645, 375
+ size: 148, 148
+ orig: 148, 148
+ offset: 0, 0
+ index: -1
+lang_es
+ rotate: false
+ xy: 796, 375
+ size: 148, 148
+ orig: 148, 148
+ offset: 0, 0
+ index: -1
+lang_fr
+ rotate: false
+ xy: 343, 224
+ size: 148, 148
+ orig: 148, 148
+ offset: 0, 0
+ index: -1
+lang_it
+ rotate: false
+ xy: 494, 224
+ size: 148, 148
+ orig: 148, 148
+ offset: 0, 0
+ index: -1
+lang_ru
+ rotate: false
+ xy: 645, 224
+ size: 148, 148
+ orig: 148, 148
+ offset: 0, 0
+ index: -1
leave
rotate: false
- xy: 472, 1
+ xy: 453, 5
size: 94, 90
orig: 94, 90
offset: 0, 0
index: -1
lookat
rotate: false
- xy: 325, 375
+ xy: 796, 224
size: 148, 148
orig: 148, 148
offset: 0, 0
index: -1
menu
rotate: false
- xy: 471, 249
+ xy: 453, 98
size: 123, 123
orig: 123, 123
offset: 0, 0
index: -1
pickup
rotate: false
- xy: 170, 33
+ xy: 170, 202
size: 148, 148
orig: 148, 148
offset: 0, 0
index: -1
plus
rotate: false
- xy: 587, 17
+ xy: 871, 32
size: 91, 91
orig: 91, 91
offset: 0, 0
index: -1
pointer
rotate: false
- xy: 599, 428
+ xy: 817, 126
size: 95, 95
orig: 95, 95
offset: 0, 0
index: -1
rect
rotate: false
- xy: 456, 209
+ xy: 403, 58
size: 31, 31
split: 5, 5, 5, 4
orig: 31, 31
@@ -156,14 +198,14 @@ rect
index: -1
talkto
rotate: false
- xy: 321, 33
+ xy: 170, 51
size: 148, 148
orig: 148, 148
offset: 0, 0
index: -1
white_pixel
rotate: false
- xy: 1, 9
+ xy: 702, 103
size: 3, 3
orig: 3, 3
offset: 0, 0
diff --git a/venus/assets/ui/1/ui.png b/venus/assets/ui/1/ui.png
index 3a3d54b..170f91c 100644
Binary files a/venus/assets/ui/1/ui.png and b/venus/assets/ui/1/ui.png differ
diff --git a/venus/assets/ui/ui.json b/venus/assets/ui/ui.json
index 8cdec54..37d971b 100644
--- a/venus/assets/ui/ui.json
+++ b/venus/assets/ui/ui.json
@@ -129,6 +129,7 @@ com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
debug: { font: debug, fontColor: white},
title: { font: big-font, fontColor: white},
ui-dialog: { font: message-font, fontColor: white},
+ ui-text: { font: message-font, fontColor: white, background: black08},
},
diff --git a/venus/build.gradle b/venus/build.gradle
index 3519c76..67a7019 100644
--- a/venus/build.gradle
+++ b/venus/build.gradle
@@ -1,53 +1,23 @@
buildscript {
repositories {
mavenCentral()
- jcenter()
+ gradlePluginPortal()
google()
}
-
dependencies {
- classpath "com.badlogicgames.gdx:gdx-tools:$gdxVersion"
- classpath "com.mobidevelop.robovm:robovm-gradle-plugin:$roboVMGradlePluginVersion"
- classpath "com.android.tools.build:gradle:$androidGradlePluginVersion"
+ classpath "com.android.tools.build:gradle:$androidGradlePluginVersion"
+ classpath "com.mobidevelop.robovm:robovm-gradle-plugin:$roboVMVersion"
}
}
-allprojects {
- apply plugin: 'eclipse'
- apply plugin: 'idea'
-}
-
subprojects {
repositories {
- mavenCentral()
-
- jcenter()
+ mavenCentral()
+ google()
+ gradlePluginPortal()
+
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "https://oss.sonatype.org/content/repositories/releases/" }
-
- google()
- }
-}
-
-tasks.eclipse.doLast {
- delete ".project"
- delete '.classpath'
- delete '.settings/'
-}
-
-// Run `gradle pack` task to generate skin.atlas file at assets/ui.
-import com.badlogic.gdx.tools.texturepacker.TexturePacker
-task pack {
- doLast {
-
- // Note that if you need multiple atlases, you can duplicate the
- // TexturePacker.process invocation and change paths to generate
- // additional atlases with this task.
- TexturePacker.process(
- 'images-raw/ui', // Raw assets path.
- 'assets/ui/1/', // Output directory.
- 'ui' // Name of the generated atlas (without extension).
- )
- }
+ }
}
diff --git a/venus/core/build.gradle b/venus/core/build.gradle
index d8dcf99..d60c8be 100644
--- a/venus/core/build.gradle
+++ b/venus/core/build.gradle
@@ -1,44 +1,35 @@
apply plugin: 'java'
apply plugin: 'java-library'
-sourceCompatibility = 1.7
-targetCompatibility=1.7
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
-eclipse.project.name = appName + '-core'
dependencies {
- api "com.badlogicgames.gdx:gdx:$gdxVersion"
- api fileTree(dir: '../libs', include: '*.jar')
- api "com.bladecoder.engine:blade-engine:$bladeEngineVersion"
- api "com.bladecoder.ink:blade-ink:$bladeInkVersion"
- api "org.minimalcode:minimalcode-beans:0.5.1"
- api "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
-
- if(project.hasProperty("spinePlugin") && project.spinePlugin.equals("true")) {
- println "Using Spine Plugin..."
- api "com.bladecoder.engine:blade-engine-spine-plugin:$bladeEngineVersion"
- }
+ api "com.badlogicgames.gdx:gdx:$gdxVersion"
+ api "com.bladecoder.engine:blade-engine:$bladeEngineVersion"
+ implementation "com.bladecoder.ink:blade-ink:$bladeInkVersion"
+ implementation "org.minimalcode:minimalcode-beans:0.5.1"
+ implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
+ implementation "com.badlogicgames.gdx-controllers:gdx-controllers-core:$gdxControllersVersion"
}
task setVersion(type: WriteProperties) {
-
- def props = new Properties()
- def propFile = project.file("../assets/BladeEngine.properties");
- props.load(new FileReader(propFile))
+ def props = new Properties()
+ def propFile = project.file("../assets/BladeEngine.properties");
+ props.load(new FileReader(propFile))
props."version" = version
- props."bladeEngineVersion" = bladeEngineVersion
- props."gdxVersion" = gdxVersion
- props."roboVMVersion" = roboVMVersion
-
- setProperties(props);
- setOutputFile(propFile);
-
- doLast {
- println "Set version info in versions.properties"
- }
-}
+ props."bladeEngineVersion" = bladeEngineVersion
+ props."gdxVersion" = gdxVersion
+ props."roboVMVersion" = roboVMVersion
+
+ setProperties(props);
+ setOutputFile(propFile);
-processResources.finalizedBy(setVersion)
+ doLast {
+ println "Set version info in versions.properties"
+ }
+}
\ No newline at end of file
diff --git a/venus/core/src/main/java/org/bladecoder/venus/VenusMenuScreen.java b/venus/core/src/main/java/org/bladecoder/venus/VenusMenuScreen.java
index b9a13fd..bde3a40 100644
--- a/venus/core/src/main/java/org/bladecoder/venus/VenusMenuScreen.java
+++ b/venus/core/src/main/java/org/bladecoder/venus/VenusMenuScreen.java
@@ -61,7 +61,7 @@ public void show() {
private void setPrefLang() {
// Parse languages
- String languageProp = Config.getProperty("languages", null);
+ String languageProp = Config.getInstance().getProperty("languages", null);
if (EngineAssetManager.getInstance().getUserFile(PREFS_FILENAME).exists()) {
try {
@@ -131,21 +131,21 @@ public void clicked(InputEvent event, float x, float y) {
private void addLinkButtons() {
if (Gdx.app.getType() == ApplicationType.Desktop) {
- bonaseraURL = Config.getProperty("bonasera_desktop_url", null);
+ bonaseraURL = Config.getInstance().getProperty("bonasera_desktop_url", null);
} else if (Gdx.app.getType() == ApplicationType.Android) {
- bonaseraURL = Config.getProperty("bonasera_android_url", null);
+ bonaseraURL = Config.getInstance().getProperty("bonasera_android_url", null);
// Delete exit button
getMenuButtonTable().getCells().get(getMenuButtonTable().getCells().size - 1).pad(0).clearActor();
} else if (Gdx.app.getType() == ApplicationType.iOS) {
- bonaseraURL = Config.getProperty("bonasera_ios_url", null);
+ bonaseraURL = Config.getInstance().getProperty("bonasera_ios_url", null);
// Delete exit button
getMenuButtonTable().getCells().get(getMenuButtonTable().getCells().size - 1).pad(0).clearActor();
}
// Show Johnny Bonasera button
- if (bonaseraURL != null) {
+ if (bonaseraURL != null && !Gdx.app.getType().equals(ApplicationType.Android)) {
// LEFT TABLE
Table leftTable = new Table();
diff --git a/venus/core/src/main/java/org/bladecoder/venus/actions/scene1/UseCutMachineCableAction.java b/venus/core/src/main/java/org/bladecoder/venus/actions/scene1/UseCutMachineCableAction.java
index 71ea5b9..bb91962 100644
--- a/venus/core/src/main/java/org/bladecoder/venus/actions/scene1/UseCutMachineCableAction.java
+++ b/venus/core/src/main/java/org/bladecoder/venus/actions/scene1/UseCutMachineCableAction.java
@@ -4,7 +4,6 @@
import com.bladecoder.engine.actions.ActionDescription;
import com.bladecoder.engine.actions.ActionProperty;
import com.bladecoder.engine.actions.ActionPropertyDescription;
-import com.bladecoder.engine.model.InteractiveActor;
import com.bladecoder.engine.model.SpriteActor;
import com.bladecoder.engine.model.Text;
import com.bladecoder.engine.model.TextManager;
@@ -13,18 +12,17 @@
@ActionDescription("Action for using the 'cut_machine' with the 'cable'")
public class UseCutMachineCableAction implements Action {
-
+
@ActionProperty
@ActionPropertyDescription("Text to show when attach the cable to the cut_machine")
private String cutCableText;
-
+
@ActionProperty
@ActionPropertyDescription("Text to show when the cable can not be attached to the cut_machine")
private String defaultCableText;
-
-
+
private World w;
-
+
@Override
public void init(World w) {
this.w = w;
@@ -32,23 +30,25 @@ public void init(World w) {
@Override
public boolean run(VerbRunner cb) {
- SpriteActor a = (SpriteActor)w.getCurrentScene().getActor("cutter", true);
- InteractiveActor target = (InteractiveActor)w.getCurrentScene().getActor("cable", true);
+ SpriteActor a = (SpriteActor) w.getCurrentScene().getActor("cutter", true);
+ SpriteActor target = (SpriteActor) w.getCurrentScene().getActor("cable", true);
// EngineLogger.debug("USING " + actor.getDesc() + " IN " + target.getDesc());
if (target.getState().equals("CUT") && a.getState().equals("NO_BATTERY")) {
w.getCurrentScene().getTextManager().addText(cutCableText, TextManager.POS_SUBTITLE,
- TextManager.POS_SUBTITLE, true, Text.Type.SUBTITLE, null, null, null, null, null, null);
+ TextManager.POS_SUBTITLE, true, Text.Type.SUBTITLE, null, null, null, null, null, null);
a.setState("WITH_CABLE");
a.startAnimation("cutter.withcable", null);
- w.getCurrentScene().getSoundManager().playSound(a.getId() + "_" + "click");
- w.getInventory().removeItem((SpriteActor) target);
+ w.getCurrentScene().getSoundManager().playSound(a.getId() + "_" + "click");
+ w.getInventory().removeItem(target);
+ target.dispose();
+ w.getScene("limbo").addActor(target);
} else {
w.getCurrentScene().getTextManager().addText(defaultCableText, TextManager.POS_SUBTITLE,
TextManager.POS_SUBTITLE, true, Text.Type.SUBTITLE, null, null, null, null, null, null);
}
-
+
return false;
}
}
diff --git a/venus/core/src/main/java/org/bladecoder/venus/actions/scene2/GetBonaseraAction.java b/venus/core/src/main/java/org/bladecoder/venus/actions/scene2/GetBonaseraAction.java
index 4fe3ffb..5d5b1f9 100644
--- a/venus/core/src/main/java/org/bladecoder/venus/actions/scene2/GetBonaseraAction.java
+++ b/venus/core/src/main/java/org/bladecoder/venus/actions/scene2/GetBonaseraAction.java
@@ -10,7 +10,7 @@
@ActionDescription("Open the Bonasera Store Page")
public class GetBonaseraAction implements Action {
-
+
@Override
public void init(World w) {
}
@@ -20,16 +20,16 @@ public boolean run(VerbRunner cb) {
String bonaseraURL = null;
if (Gdx.app.getType() == ApplicationType.Desktop) {
- bonaseraURL = Config.getProperty("bonasera_desktop_url", null);
+ bonaseraURL = Config.getInstance().getProperty("bonasera_desktop_url", null);
} else if (Gdx.app.getType() == ApplicationType.Android) {
- bonaseraURL = Config.getProperty("bonasera_android_url", null);
+ bonaseraURL = Config.getInstance().getProperty("bonasera_android_url", null);
} else if (Gdx.app.getType() == ApplicationType.iOS) {
- bonaseraURL = Config.getProperty("bonasera_ios_url", null);
+ bonaseraURL = Config.getInstance().getProperty("bonasera_ios_url", null);
}
-
- if(bonaseraURL != null)
+
+ if (bonaseraURL != null)
Gdx.net.openURI(bonaseraURL);
-
+
return false;
}
}
diff --git a/venus/desktop/build.gradle b/venus/desktop/build.gradle
index a6ddb42..51bbd43 100644
--- a/venus/desktop/build.gradle
+++ b/venus/desktop/build.gradle
@@ -1,49 +1,73 @@
-apply plugin: 'java'
+apply plugin: 'java-library'
apply plugin: 'application'
-sourceCompatibility = 1.7
-targetCompatibility=1.7
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
sourceSets.main.resources.srcDirs += [ rootProject.file('assets').absolutePath ]
mainClassName = "com.bladecoder.engine.desktop.DesktopLauncher"
-eclipse.project.name = appName + '-desktop'
dependencies {
implementation project(":core")
- implementation "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
+ implementation "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
implementation "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
+ implementation "com.badlogicgames.gdx:gdx-lwjgl3-angle:$gdxVersion"
+ implementation "com.badlogicgames.gdx-controllers:gdx-controllers-desktop:$gdxControllersVersion"
}
-jar {
- archiveName "${appName}-${version}.jar"
- from { configurations.compile.collect { zipTree(it) } }
- manifest {
- attributes 'Main-Class': project.mainClassName
- }
-}
-
+def os = System.properties['os.name'].toLowerCase()
run {
standardInput = System.in
ignoreExitValue = true
- if (project.hasProperty("appArgs") ) {
+ if (project.hasProperty("appArgs")) {
args Eval.me(appArgs)
}
-}
+ if (os.contains('mac')) {
+ jvmArgs = ["-XstartOnFirstThread"]
+ }
+}
-task dist(type: Jar) {
- baseName = appName + "-desktop"
+jar {
+// sets the name of the .jar file this produces to the name of the game or app.
+ archiveBaseName.set(appName)
+// using 'lib' instead of the default 'libs' appears to be needed by jpackageimage.
+ destinationDirectory = file("$project.buildDir/lib")
+// the duplicatesStrategy matters starting in Gradle 7.0; this setting works.
+ duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
+ dependsOn configurations.runtimeClasspath
+ from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
+// these "exclude" lines remove some unnecessary duplicate files in the output JAR.
+ exclude('META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA')
+ dependencies {
+ exclude('META-INF/INDEX.LIST', 'META-INF/maven/**')
+ }
+// setting the manifest makes the JAR runnable.
+ manifest {
+ attributes 'Main-Class': project.mainClassName
+ }
+// this last step may help on some OSes that need extra instruction to make runnable JARs.
+ doLast {
+ file(archiveFile).setExecutable(true, false)
+ }
+}
- from files(sourceSets.main.output.classesDirs)
- from files(sourceSets.main.output.resourcesDir)
- from {configurations.runtimeClasspath.collect {zipTree(it)}}
+task dist(type: Jar) {
+ duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
manifest {
attributes 'Main-Class': project.mainClassName
}
+ dependsOn configurations.runtimeClasspath
+ from {
+ configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
+ }
+ with jar
}
dist.dependsOn classes
+dist.dependsOn ':core:jar'
+processResources.dependsOn ':core:setVersion'
diff --git a/venus/desktop/src/main/java/com/bladecoder/engine/desktop/DesktopLauncher.java b/venus/desktop/src/main/java/com/bladecoder/engine/desktop/DesktopLauncher.java
index 985bfe1..ffc16be 100644
--- a/venus/desktop/src/main/java/com/bladecoder/engine/desktop/DesktopLauncher.java
+++ b/venus/desktop/src/main/java/com/bladecoder/engine/desktop/DesktopLauncher.java
@@ -1,185 +1,171 @@
package com.bladecoder.engine.desktop;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.IntBuffer;
-import java.util.Properties;
-
-import org.lwjgl.BufferUtils;
-import org.lwjgl.LWJGLException;
-import org.lwjgl.input.Cursor;
-import org.lwjgl.input.Mouse;
-
import com.badlogic.gdx.Files.FileType;
import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
-import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Graphics;
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window;
import com.bladecoder.engine.BladeEngine;
import com.bladecoder.engine.ui.SceneScreen;
import com.bladecoder.engine.ui.UI.Screens;
import com.bladecoder.engine.util.Config;
+import org.lwjgl.glfw.GLFW;
+import org.lwjgl.system.Configuration;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
public class DesktopLauncher extends BladeEngine {
- private boolean fullscreen = true;
- private LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
- private float speed = 1.0f;
-
- DesktopLauncher() {
- Properties p = new Properties();
-
- try {
- InputStream s = DesktopLauncher.class.getResourceAsStream(Config.PROPERTIES_FILENAME);
- if(s!=null)
- p.load(s);
- } catch (IOException e) {
- }
-
- cfg.title = p.getProperty(Config.TITLE_PROP, "Blade Engine Adventure");
-// cfg.useGL30 = true;
-
- // cfg.width = World.getInstance().getWidth();
- // cfg.height = World.getInstance().getHeight();
-
- cfg.width = 1920 / 2;
- cfg.height = 1080 / 2;
-
- cfg.resizable = true;
- cfg.samples = 2;
- }
-
- public void run() {
- if(DesktopLauncher.class.getResource("/icons/icon128.png")!=null)
- cfg.addIcon("icons/icon128.png", FileType.Internal);
-
- if(DesktopLauncher.class.getResource("/icons/icon32.png")!=null)
- cfg.addIcon("icons/icon32.png", FileType.Internal);
-
- if(DesktopLauncher.class.getResource("/icons/icon16.png")!=null)
- cfg.addIcon("icons/icon16.png", FileType.Internal);
-
- new LwjglApplication(this, cfg);
- }
-
- public void parseParams(String[] args) {
- for (int i = 0; i < args.length; i++) {
- String s = args[i];
- if (s.equals("-t")) {
- if (i + 1 < args.length) {
- i++;
- setTestMode(args[i]);
- }
- } else if (s.equals("-p")) {
- if (i + 1 < args.length) {
- i++;
- setPlayMode(args[i]);
- }
- } else if (s.equals("-chapter")) {
- if (i + 1 < args.length) {
- i++;
- setChapter(args[i]);
- }
- } else if (s.equals("-f")) {
- fullscreen = true;
-
- //cfg.fullscreen = true;
- } else if (s.equals("-d")) {
- setDebugMode();
- } else if (s.equals("-s")) {
- if (i + 1 < args.length) {
- i++;
- speed = Float.parseFloat(args[i]);
- }
- } else if (s.equals("-r")) {
- setRestart();
- } else if (s.equals("-res")) {
- if (i + 1 < args.length) {
- i++;
- forceResolution(args[i]);
- }
- } else if (s.equals("-aspect")) {
- if (i + 1 < args.length) {
- i++;
- String aspect = args[i];
-
- if(aspect.equals("16:9")) {
- cfg.height = cfg.width * 9/16;
- } else if(aspect.equals("4:3")) {
- cfg.height = cfg.width * 3/4;
- } else if(aspect.equals("16:10") ||
- aspect.equals("8:5") ) {
- cfg.height = cfg.width * 10/16;
- }
- }
- } else if (s.equals("-w")) {
- fullscreen = false;
- } else if (s.equals("-l")) {
- if (i + 1 < args.length) {
- i++;
- loadGameState(args[i]);
- }
- } else if (s.equals("-h")) {
- usage();
- } else {
- if(i == 0 && !s.startsWith("-")) continue; // When embeded JRE the 0 parameter is the app name
- System.out.println("Unrecognized parameter: " + s);
- usage();
- }
- }
- }
-
- public void usage() {
- System.out.println(
- "Usage:\n" +
- "-chapter chapter\tLoads the selected chapter\n" +
- "-t scene_name\tStart test mode for the scene\n" +
- "-p record_name\tPlay previusly recorded games\n" +
- "-f\tSet fullscreen mode\n" +
- "-w\tSet windowed mode\n" +
- "-d\tShow debug messages\n" +
- "-res width\tForce the resolution width\n" +
- "-l game_state\tLoad the previusly saved game state\n" +
- "-r\tRun the game from the begining\n" +
- "-s speed\tSets the game speed\n" +
- "-aspect aspect_ratio\tSets the specified screen aspect (16:9, 4:3, 16:10)\n"
- );
-
- System.exit(0);
- }
-
- @Override
- public void create() {
- // Gdx.input.setCursorCatched(false);
- if (fullscreen)
- Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode());
-
- hideCursor();
-
- super.create();
-
- if(getUI().getScreen(Screens.SCENE_SCREEN) instanceof SceneScreen)
- ((SceneScreen) getUI().getScreen(Screens.SCENE_SCREEN)).setSpeed(speed);
- }
-
- private void hideCursor() {
- Cursor emptyCursor;
-
- int min = org.lwjgl.input.Cursor.getMinCursorSize();
- IntBuffer tmp = BufferUtils.createIntBuffer(min * min);
- try {
- emptyCursor = new org.lwjgl.input.Cursor(min, min, min / 2,
- min / 2, 1, tmp, null);
-
- Mouse.setNativeCursor(emptyCursor);
- } catch (LWJGLException e) {
- e.printStackTrace();
- }
-
- }
-
- public static void main(String[] args) {
- DesktopLauncher game = new DesktopLauncher();
- game.parseParams(args);
- game.run();
- }
+ private static final int WINDOW_WIDTH = 1920 / 2;
+ private static final int WINDOW_HEIGHT = 1080 / 2;
+
+ private boolean fullscreen = true;
+ private Lwjgl3ApplicationConfiguration cfg = new Lwjgl3ApplicationConfiguration();
+
+ private float speed = 1.0f;
+
+ DesktopLauncher() {
+ Properties p = new Properties();
+
+ try {
+ InputStream s = DesktopLauncher.class.getResourceAsStream("/" + Config.PROPERTIES_FILENAME);
+ if (s != null)
+ p.load(s);
+ } catch (IOException e) {
+ System.out.println("Could not load properties file.");
+ }
+
+ cfg.setTitle(p.getProperty(Config.TITLE_PROP, "Blade Engine Adventure") + " "
+ + p.getProperty(Config.VERSION_PROP, ""));
+
+ cfg.setWindowedMode(WINDOW_WIDTH, WINDOW_HEIGHT);
+ cfg.setResizable(true);
+ cfg.useVsync(true);
+ cfg.setOpenGLEmulation(Lwjgl3ApplicationConfiguration.GLEmulation.ANGLE_GLES20, 0, 0);
+ }
+
+ public void run() {
+ List iconList = new ArrayList<>();
+
+ if (DesktopLauncher.class.getResource("/icons/icon128.png") != null)
+ iconList.add("icons/icon128.png");
+
+ if (DesktopLauncher.class.getResource("/icons/icon32.png") != null)
+ iconList.add("icons/icon32.png");
+
+ if (DesktopLauncher.class.getResource("/icons/icon16.png") != null)
+ iconList.add("icons/icon16.png");
+
+ cfg.setWindowIcon(FileType.Internal, iconList.toArray(new String[0]));
+
+ new Lwjgl3Application(this, cfg);
+ }
+
+ public void parseParams(String[] args) {
+ for (int i = 0; i < args.length; i++) {
+ String s = args[i];
+ if (s.equals("-t")) {
+ if (i + 1 < args.length) {
+ i++;
+ setTestMode(args[i]);
+ }
+ } else if (s.equals("-p")) {
+ if (i + 1 < args.length) {
+ i++;
+ setPlayMode(args[i]);
+ }
+ } else if (s.equals("-s")) {
+ if (i + 1 < args.length) {
+ i++;
+ speed = Float.parseFloat(args[i]);
+ }
+ } else if (s.equals("-chapter")) {
+ if (i + 1 < args.length) {
+ i++;
+ setChapter(args[i]);
+ }
+ } else if (s.equals("-f")) {
+ fullscreen = true;
+ } else if (s.equals("-d")) {
+ setDebugMode();
+ } else if (s.equals("-r")) {
+ setRestart();
+ } else if (s.equals("-res")) {
+ if (i + 1 < args.length) {
+ i++;
+ forceResolution(args[i]);
+ }
+ } else if (s.equals("-aspect")) {
+ if (i + 1 < args.length) {
+ i++;
+ String aspect = args[i];
+
+ if (aspect.equals("16:9")) {
+ cfg.setWindowedMode(WINDOW_WIDTH, WINDOW_WIDTH * 9 / 16);
+ } else if (aspect.equals("4:3")) {
+ cfg.setWindowedMode(WINDOW_WIDTH, WINDOW_WIDTH * 3 / 4);
+ } else if (aspect.equals("16:10") || aspect.equals("8:5")) {
+ cfg.setWindowedMode(WINDOW_WIDTH, WINDOW_WIDTH * 10 / 16);
+ }
+ }
+ } else if (s.equals("-w")) {
+ fullscreen = false;
+ } else if (s.equals("-l")) {
+ if (i + 1 < args.length) {
+ i++;
+ loadGameState(args[i]);
+ }
+ } else if (s.equals("-h")) {
+ usage();
+ } else {
+ if (i == 0 && !s.startsWith("-"))
+ continue; // When embeded JRE the 0 parameter is the app name
+ System.out.println("Unrecognized parameter: " + s);
+ usage();
+ }
+ }
+ }
+
+ public void usage() {
+ System.out.println("Usage:\n" + "-chapter chapter\tLoads the selected chapter\n"
+ + "-t scene_name\tStart test mode for the scene\n" + "-p record_name\tPlay previusly recorded games\n"
+ + "-f\tSet fullscreen mode\n" + "-w\tSet windowed mode\n" + "-d\tShow debug messages\n"
+ + "-res width\tForce the resolution width\n" + "-l game_state\tLoad the previusly saved game state\n"
+ + "-r\tRun the game from the begining\n" + "-s speed\tSets the game speed\n"
+ + "-aspect aspect_ratio\tSets the specified screen aspect (16:9, 4:3, 16:10)\n");
+
+ System.exit(0);
+ }
+
+ @Override
+ public void create() {
+ if (fullscreen)
+ Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode());
+
+ hideCursor();
+
+ super.create();
+
+ if (getUI().getScreen(Screens.SCENE_SCREEN) instanceof SceneScreen)
+ ((SceneScreen) getUI().getScreen(Screens.SCENE_SCREEN)).setSpeed(speed);
+ }
+
+ private void hideCursor() {
+ Lwjgl3Window window = ((Lwjgl3Graphics) Gdx.graphics).getWindow();
+ GLFW.glfwSetInputMode(window.getWindowHandle(), GLFW.GLFW_CURSOR, GLFW.GLFW_CURSOR_HIDDEN);
+ }
+
+ public static void main(String[] args) {
+ // if(System.getProperty("os.name").contains("Mac"))
+ // Configuration.GLFW_LIBRARY_NAME.set("glfw_async");
+
+ DesktopLauncher game = new DesktopLauncher();
+ game.parseParams(args);
+ game.run();
+ }
}
diff --git a/venus/gradle.properties b/venus/gradle.properties
index 5d6918f..144612d 100644
--- a/venus/gradle.properties
+++ b/venus/gradle.properties
@@ -1,13 +1,17 @@
android.injected.testOnly=false
-androidGradlePluginVersion=3.4.1
+android.useAndroidX=true
+androidGradlePluginVersion=8.1.0
appName=venus
-bladeEngineVersion=3.2.3
-bladeInkVersion=0.7.3
-gdxVersion=1.9.10
+bladeEngineVersion=4.3.0
+bladeInkVersion=1.1.2
+gdxControllersVersion=2.2.3
+gdxVersion=1.12.0
org.gradle.configureondemand=false
org.gradle.daemon=true
-org.gradle.jvmargs=-Xms1024m -Xmx2048m
-roboVMGradlePluginVersion=2.3.7
-roboVMVersion=2.3.8
-spinePlugin=false
-version=1.2.10
+org.gradle.jvmargs=-Xms128m -Xmx1536m
+roboVMVersion=2.3.20
+version=1.9
+android.enableJetifier=true
+
+
+
diff --git a/venus/gradle/wrapper/gradle-wrapper.properties b/venus/gradle/wrapper/gradle-wrapper.properties
index f4d7b2b..e411586 100644
--- a/venus/gradle/wrapper/gradle-wrapper.properties
+++ b/venus/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/venus/ios/Info.plist.xml b/venus/ios/Info.plist.xml
index a5ac88d..339d2d1 100644
--- a/venus/ios/Info.plist.xml
+++ b/venus/ios/Info.plist.xml
@@ -5,7 +5,7 @@
UIRequiresFullScreen
yes
MinimumOSVersion
- 7.0
+ 9.0
CFBundleDevelopmentRegion
en
@@ -40,8 +40,6 @@
UIRequiredDeviceCapabilities
- armv7
- opengles-2
UISupportedInterfaceOrientations
@@ -50,6 +48,17 @@
CFBundleIconName
AppIcon
+
+ GCSupportedGameControllers
+
+
+ ProfileName
+ ExtendedGamepad
+
+
+ GCSupportsControllerUserInteraction
+
+
CFBundleLocalizations
en
diff --git a/venus/ios/build.gradle b/venus/ios/build.gradle
index 60f2ea0..2e2c20e 100644
--- a/venus/ios/build.gradle
+++ b/venus/ios/build.gradle
@@ -1,9 +1,9 @@
-apply plugin: 'java'
+apply plugin: 'java-library'
apply plugin: 'robovm'
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
-sourceCompatibility = 1.7
-targetCompatibility=1.7
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
ext {
mainClassName = "com.bladecoder.engine.ios.IOSLauncher"
@@ -18,16 +18,12 @@ robovm {
archs = "thumbv7:arm64"
}
-eclipse.project {
- name = appName + "-ios"
- natures 'org.robovm.eclipse.RoboVMNature'
-}
-
dependencies {
- compile project(':core')
- compile "com.mobidevelop.robovm:robovm-rt:$roboVMVersion"
- compile "com.mobidevelop.robovm:robovm-cocoatouch:$roboVMVersion"
- compile "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion"
- compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios"
- compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-ios"
+ implementation project(':core')
+ implementation "com.mobidevelop.robovm:robovm-rt:$roboVMVersion"
+ implementation "com.mobidevelop.robovm:robovm-cocoatouch:$roboVMVersion"
+ implementation "com.badlogicgames.gdx:gdx-backend-robovm-metalangle:$gdxVersion"
+ implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios"
+ implementation "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-ios"
+ implementation "com.badlogicgames.gdx-controllers:gdx-controllers-ios:$gdxControllersVersion"
}
diff --git a/venus/ios/robovm.properties b/venus/ios/robovm.properties
index 0dc66d8..9a901ff 100644
--- a/venus/ios/robovm.properties
+++ b/venus/ios/robovm.properties
@@ -1,7 +1,7 @@
#Thu Nov 30 09:06:05 CET 2017
-app.version=1.2.10
+app.version=1.9
app.id=com.bladecoder.venus
app.mainclass=com.bladecoder.engine.ios.IOSLauncher
app.executable=IOSLauncher
-app.build=1210
+app.build=109
app.name=venus
diff --git a/venus/ios/robovm.xml b/venus/ios/robovm.xml
index 5e0df88..98b9640 100644
--- a/venus/ios/robovm.xml
+++ b/venus/ios/robovm.xml
@@ -2,9 +2,6 @@
${app.executable}
${app.mainclass}
ios
-
ios
Info.plist.xml
@@ -36,17 +33,18 @@
com.android.org.bouncycastle.crypto.digests.AndroidDigestFactoryOpenSSL
org.apache.harmony.security.provider.cert.DRLCertFactory
org.apache.harmony.security.provider.crypto.CryptoProvider
+ com.badlogic.gdx.controllers.IosControllerManager
z
UIKit
- OpenGLES
QuartzCore
CoreGraphics
OpenAL
AudioToolbox
AVFoundation
+ GameController
diff --git a/venus/playfull.sh b/venus/playfull.sh
new file mode 100755
index 0000000..ec30b07
--- /dev/null
+++ b/venus/playfull.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+./gradlew desktop:run -PappArgs="['-w', '-d', '-r', '-p', 'full', '-s', '10']"
diff --git a/venus/release.sh b/venus/release.sh
index 0db5127..a7a94b1 100755
--- a/venus/release.sh
+++ b/venus/release.sh
@@ -7,7 +7,7 @@ IOS_PROVISIONING_PROFILE=Venus
if [ "$#" -eq 0 ]
then
- echo "Release type param needed: amazon, android, ios, macos or steam"
+ echo "Release type param needed: amazon, apk, aab, ios, macos, itchio or steam"
exit 0
else
RELEASE_MODE=$1
@@ -17,36 +17,43 @@ echo -n "Version: "
read VERSION
echo
+VERSION_CODE=$((`echo $VERSION | cut -d. -f1` * 100 + `echo $VERSION | cut -d. -f2`))
+
if [[ "$OSTYPE" == 'darwin'* ]]; then
sed -i .bak 's/version=.*/version='$VERSION'/' gradle.properties
else
sed -i 's/version=.*/version='$VERSION'/' gradle.properties
fi
-if [ "$RELEASE_MODE" == "amazon" ] || [ "$RELEASE_MODE" == "android" ] || [ "$RELEASE_MODE" == "underground" ]; then
-
+if [ "$RELEASE_MODE" == "amazon" ] || [ "$RELEASE_MODE" == "apk" ] || [ "$RELEASE_MODE" == "aab" ] || [ "$RELEASE_MODE" == "underground" ]; then
echo -n "Keystore Password: "
read -s KEYSTORE_PASSWD
echo
echo -n "Key Password: "
read -s KEY_PASSWD
echo
+ if [ "$RELEASE_MODE" == "aab" ] ; then
+ RELFILENAME="$DIST_DIR"/$PROJECT_NAME-$VERSION.aab
- if [ "$RELEASE_MODE" == "amazon" ] ; then
- sed -i 's/bonasera_android_url=.*/bonasera_android_url=amzn:\/\/apps\/android?asin=B01MU6RADE/' assets/BladeEngine.properties
- RELFILENAME="$DIST_DIR"/$PROJECT_NAME-amazon-$VERSION.apk
+ ./gradlew -Pkeystore=$HOME/Dropbox/docs/ids/rgarcia_android.keystore -PstorePassword=$KEYSTORE_PASSWD -Palias=$PROJECT_NAME -PkeyPassword=$KEY_PASSWD android:bundleRelease -Pversion=$VERSION -PversionCode=30000$VERSION_CODE -Passet_pack
+ cp android/build/outputs/bundle/release/android-release.aab "$RELFILENAME"
else
- sed -i 's/bonasera_android_url=.*/bonasera_android_url=https\:\/\/play.google.com\/store\/apps\/details?id\=com.bladecoder.lj/' assets/BladeEngine.properties
- RELFILENAME="$DIST_DIR"/$PROJECT_NAME-$VERSION.apk
- fi
-
- ./gradlew -Pkeystore=$HOME/Dropbox/docs/ids/rgarcia_android.keystore -PstorePassword=$KEYSTORE_PASSWD -Palias=bladecoder -PkeyPassword=$KEY_PASSWD android:assembleFullRelease -Pversion=$VERSION --stacktrace
-
- cp android/build/outputs/apk/android-full-release.apk "$RELFILENAME"
-
- if [ "$RELEASE_MODE" == "amazon" ] ; then
- # Restore BladeEngine.properties
- git checkout android/assets/BladeEngine.properties
+ if [ "$RELEASE_MODE" == "amazon" ] ; then
+ #sed -i 's/bonasera_android_url=.*/bonasera_android_url=amzn:\/\/apps\/android?asin=B01MU6RADE/' assets/BladeEngine.properties
+ RELFILENAME="$DIST_DIR"/$PROJECT_NAME-amazon-$VERSION.apk
+ else
+ #sed -i 's/bonasera_android_url=.*/bonasera_android_url=https\:\/\/play.google.com\/store\/apps\/details?id\=com.bladecoder.lj/' assets/BladeEngine.properties
+ RELFILENAME="$DIST_DIR"/$PROJECT_NAME-$VERSION.apk
+ fi
+
+ ./gradlew -Pkeystore=$HOME/Dropbox/docs/ids/rgarcia_android.keystore -PstorePassword=$KEYSTORE_PASSWD -Palias=bladecoder -PkeyPassword=$KEY_PASSWD android:assembleRelease -Pversion=$VERSION -PversionCode=$VERSION_CODE
+
+ cp android/build/outputs/apk/release/android-release.apk "$RELFILENAME"
+
+ if [ "$RELEASE_MODE" == "amazon" ] ; then
+ # Restore BladeEngine.properties
+ git checkout android/assets/BladeEngine.properties
+ fi
fi
elif [[ "$RELEASE_MODE" == "steam" ]]; then
@@ -59,22 +66,27 @@ elif [[ "$RELEASE_MODE" == "mac" ]]; then
./gradlew desktop:dist -Pversion=$VERSION -Psteam=false
cp desktop/build/libs/$PROJECT_NAME-desktop-$VERSION.jar "$RELFILENAME"
+elif [[ "$RELEASE_MODE" == "itchio" ]]; then
+ sed -i 's/bonasera_desktop_url=.*/bonasera_desktop_url=https:\/\/bladecoder.itch.io\/johnny-bonasera/' assets/BladeEngine.properties
+ RELFILENAME="$DIST_DIR"/$PROJECT_NAME-itchio-$VERSION.jar
+
+ ./gradlew desktop:dist -Pversion=$VERSION -Psteam=false
+ cp desktop/build/libs/$PROJECT_NAME-desktop-$VERSION.jar "$RELFILENAME"
elif [[ "$RELEASE_MODE" == "ios" ]]; then
RELFILENAME="$DIST_DIR"/$PROJECT_NAME-$VERSION.ipa
- echo -n "Version Code: "
- read VERSION_CODE
- echo
-
# Update ios/robovm.properties
sed -i .bak 's/app.version=.*/app.version='$VERSION'/' ios/robovm.properties
sed -i .bak 's/app.build=.*/app.build='$VERSION_CODE'/' ios/robovm.properties
- ./gradlew -Probovm.iosSignIdentity="iPhone Distribution" -Probovm.iosProvisioningProfile="$IOS_PROVISIONING_PROFILE" ios:clean ios:createIPA
+ ./gradlew -Probovm.iosSignIdentity="Apple Distribution" -Probovm.iosProvisioningProfile="$IOS_PROVISIONING_PROFILE" ios:clean ios:createIPA
cp ios/build/robovm/IOSLauncher.ipa "$RELFILENAME"
+
+ PASSWS=`cat $HOME/.config/upload-app-pass.local`
+ #xcrun altool --upload-app --type ios --file "$RELFILENAME" --username bladecoder@gmail.com --password $PASSWS
else
- echo Release type param not valid: $RELEASE_MODE. Valid options: amazon, android, ios or steam.
+ echo Release type param not valid: $RELEASE_MODE. Valid options: amazon, apk, aab, ios or steam.
exit -1
fi
diff --git a/venus/run_on_ipad.sh b/venus/run_on_ipad.sh
new file mode 100755
index 0000000..218e091
--- /dev/null
+++ b/venus/run_on_ipad.sh
@@ -0,0 +1 @@
+./gradlew ios:launchIPadSimulator
\ No newline at end of file