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