diff --git a/adventure-test-project/assets/BladeEngine.properties b/adventure-test-project/assets/BladeEngine.properties index 3594c52..8ca064b 100644 --- a/adventure-test-project/assets/BladeEngine.properties +++ b/adventure-test-project/assets/BladeEngine.properties @@ -1,8 +1,10 @@ -bladeEngineVersion=3.2.2 +MENU_SCREEN=com.bladecoder.engine.SceneMenuScreen +bladeEngineVersion=4.0.2-SNAPSHOT debug=false fast_leave=true -gdxVersion=1.9.10 +gdxVersion=1.9.11 inventory_pos=down +languages=en,es pie_mode.desktop=false resolutions=1 roboVMVersion=2.3.8 diff --git a/adventure-test-project/assets/atlases/1/target.atlas b/adventure-test-project/assets/atlases/1/target.atlas new file mode 100644 index 0000000..0699418 --- /dev/null +++ b/adventure-test-project/assets/atlases/1/target.atlas @@ -0,0 +1,152 @@ + +target.png +size: 2658,241 +format: RGBA8888 +filter: Linear,Linear +repeat: none +00/level.09 + rotate: false + xy: 1942, 3 + size: 180, 236 + orig: 711, 315 + offset: 270, 39 + index: -1 +00/level.1 + rotate: false + xy: 1578, 2 + size: 180, 237 + orig: 711, 315 + offset: 270, 39 + index: -1 +00/level.10 + rotate: false + xy: 2480, 12 + size: 176, 227 + orig: 711, 315 + offset: 281, 39 + index: -1 +00/level.2 + rotate: false + xy: 1204, 2 + size: 185, 237 + orig: 711, 315 + offset: 287, 39 + index: -1 +00/level.3 + rotate: false + xy: 2124, 12 + size: 176, 227 + orig: 711, 315 + offset: 281, 39 + index: -1 +00/level.4 + rotate: false + xy: 2, 2 + size: 599, 237 + orig: 711, 315 + offset: 56, 39 + index: -1 +00/level.5 + rotate: false + xy: 1391, 2 + size: 185, 237 + orig: 711, 315 + offset: 287, 39 + index: -1 +00/level.6 + rotate: false + xy: 1760, 3 + size: 180, 236 + orig: 711, 315 + offset: 270, 39 + index: -1 +00/level.7 + rotate: false + xy: 603, 2 + size: 599, 237 + orig: 711, 315 + offset: 56, 39 + index: -1 +00/level.8 + rotate: false + xy: 2302, 12 + size: 176, 227 + orig: 711, 315 + offset: 281, 39 + index: -1 + +target2.png +size: 2271,243 +format: RGBA8888 +filter: Linear,Linear +repeat: none +01/level.1 + rotate: false + xy: 1552, 4 + size: 179, 237 + orig: 711, 315 + offset: 271, 39 + index: -1 +01/level.10 + rotate: false + xy: 2, 4 + size: 599, 237 + orig: 711, 315 + offset: 56, 39 + index: -1 +01/level.2 + rotate: false + xy: 2093, 14 + size: 176, 227 + orig: 711, 315 + offset: 281, 39 + index: -1 +01/level.3 + rotate: false + xy: 1733, 5 + size: 180, 236 + orig: 711, 315 + offset: 270, 39 + index: -1 +01/level.4 + rotate: false + xy: 1915, 13 + size: 176, 228 + orig: 711, 315 + offset: 281, 37 + index: -1 +01/level.7 + rotate: false + xy: 1915, 13 + size: 176, 228 + orig: 711, 315 + offset: 281, 37 + index: -1 +01/level.5 + rotate: false + xy: 603, 5 + size: 385, 236 + orig: 711, 315 + offset: 169, 39 + index: -1 +01/level.09 + rotate: false + xy: 603, 5 + size: 385, 236 + orig: 711, 315 + offset: 169, 39 + index: -1 +01/level.6 + rotate: false + xy: 990, 4 + size: 372, 237 + orig: 711, 315 + offset: 202, 39 + index: -1 +01/level.8 + rotate: false + xy: 1364, 2 + size: 186, 239 + orig: 711, 315 + offset: 286, 37 + index: -1 diff --git a/adventure-test-project/assets/atlases/1/target.png b/adventure-test-project/assets/atlases/1/target.png new file mode 100644 index 0000000..e08cefd Binary files /dev/null and b/adventure-test-project/assets/atlases/1/target.png differ diff --git a/adventure-test-project/assets/atlases/1/target2.png b/adventure-test-project/assets/atlases/1/target2.png new file mode 100644 index 0000000..2815837 Binary files /dev/null and b/adventure-test-project/assets/atlases/1/target2.png differ diff --git a/adventure-test-project/assets/model/00.chapter.json b/adventure-test-project/assets/model/00.chapter.json index 0698185..ac173c4 100644 --- a/adventure-test-project/assets/model/00.chapter.json +++ b/adventure-test-project/assets/model/00.chapter.json @@ -1,9 +1,9 @@ { -bladeEngineVersion: "3.1.0-SNAPSHOT", +bladeEngineVersion: "3.2.5-SNAPSHOT", sounds: {}, scenes: { - basic3: { - id: "basic3", + actor3d: { + id: "actor3d", layers: [ { name: "foreground" @@ -17,143 +17,185 @@ 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 ], + fg1: { + class: "SpriteActor", + id: "fg1", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], pos: { - x: 1644.7837, - y: 578.7209 + x: 158.68916 }, visible: true, - refPoint: { - x: 5.774414, - y: -326.25568 + refPoint: {}, + verbs: {}, + interaction: false, + zIndex: 0, + layer: "foreground", + renderer: { + class: "AtlasRenderer", + fanims: { + column_fg: { + class: "AtlasAnimationDesc", + id: "column_fg", + source: "00", + duration: 1, + animationType: "NO_REPEAT", + count: -1, + preload: true + } + }, + initAnimation: "column_fg", + orgAlign: 4 }, - verbs: { - leave: { - id: "leave", - actions: [ - { - class: "com.bladecoder.engine.actions.GotoAction", - actor: "$PLAYER", - target: "exit", - ignoreWalkZone: false, - wait: true - }, - { - class: "com.bladecoder.engine.actions.PositionAction", - actor: "$PLAYER", - target: "basic1#door_left" - }, - { - class: "com.bladecoder.engine.actions.MoveToSceneAction", - actor: "$PLAYER", - scene: "basic1" - }, - { - class: "com.bladecoder.engine.actions.IfSceneAttrAction", - attr: "PLAYER", - value: "char", - caID: "1348253093" - }, - { - class: "com.bladecoder.engine.actions.SetPlayerAction", - actor: "basic1#char" - }, - { - class: "com.bladecoder.engine.actions.EndAction", - caID: "1348253093" - }, - { - class: "com.bladecoder.engine.actions.SetPlayerAction", - actor: "basic1#red" - }, - { - class: "com.bladecoder.engine.actions.EndAction", - caID: "1348253093" - }, - { - class: "com.bladecoder.engine.actions.LeaveAction", - scene: "basic1", - init: true - } - ] - } + scaleX: 1, + scaleY: 1, + rot: 0, + fakeDepth: false, + bboxFromRenderer: true + }, + fg2: { + class: "SpriteActor", + id: "fg2", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + pos: { + x: 2727.407 }, - interaction: true, + visible: true, + refPoint: {}, + verbs: {}, + interaction: false, zIndex: 0, - layer: "background" + layer: "foreground", + renderer: { + class: "AtlasRenderer", + fanims: { + head_fg: { + class: "AtlasAnimationDesc", + id: "head_fg", + source: "00", + duration: 1, + animationType: "NO_REPEAT", + count: -1, + preload: true + } + }, + initAnimation: "head_fg", + orgAlign: 4 + }, + scaleX: 1, + scaleY: 1, + rot: 0, + fakeDepth: false, + bboxFromRenderer: true + }, + player: { + class: "CharacterActor", + id: "player", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + pos: { + x: 2174.0637, + y: 45.82788 + }, + visible: true, + refPoint: {}, + verbs: {}, + interaction: false, + zIndex: 0, + layer: "dynamic", + renderer: { + class: "Sprite3DRenderer", + fanims: { + stand: { + class: "com.bladecoder.engine.anim.AnimationDesc", + id: "stand", + source: "Robie", + duration: 1, + animationType: "NO_REPEAT", + count: -1, + preload: true + }, + talk: { + class: "com.bladecoder.engine.anim.AnimationDesc", + id: "talk", + source: "Robie", + duration: 1, + animationType: "REPEAT", + count: -1, + preload: true + }, + walk: { + class: "com.bladecoder.engine.anim.AnimationDesc", + id: "walk", + source: "Robie", + duration: 1, + 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, + rot: 0, + fakeDepth: true, + bboxFromRenderer: true, + walkingSpeed: 700 }, walkzone: { - class: "com.bladecoder.engine.model.WalkZoneActor", + 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: {}, + 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 + }, visible: true } }, - backgroundAtlas: "scene3", - backgroundRegionId: "bg3", + backgroundAtlas: "00", + backgroundRegionId: "bg1", musicDesc: null, depthVector: { - x: 613.83704, - y: -631.38477 + x: 2673.551, + y: -11.464233 }, verbs: { init: { id: "init", actions: [ { - class: "com.bladecoder.engine.actions.IfSceneAttrAction", - scene: "basic1", - attr: "PLAYER", - value: "char", - caID: "742759885" - }, - { - class: "com.bladecoder.engine.actions.MoveToSceneAction", - actor: "basic1#char" - }, - { - class: "com.bladecoder.engine.actions.SetPlayerAction", - actor: "char" - }, - { - class: "com.bladecoder.engine.actions.EndAction", - caID: "742759885" - }, - { - class: "com.bladecoder.engine.actions.MoveToSceneAction", - actor: "basic1#red" - }, - { - class: "com.bladecoder.engine.actions.SetPlayerAction", - actor: "red" - }, - { - class: "com.bladecoder.engine.actions.EndAction", - caID: "742759885" - }, - { - class: "com.bladecoder.engine.actions.PositionAction", - actor: "$PLAYER", - target: "exit" - }, - { - class: "com.bladecoder.engine.actions.GotoAction", + class: "Say", actor: "$PLAYER", - pos: "1501.0,251.0", - ignoreWalkZone: false, + text: "@actor3d.init.0.text", + type: "SUBTITLE", + queue: false, wait: true } ] } }, + player: "player", walkZone: "walkzone" }, - basic2: { - id: "basic2", + "basic-prop-states": { + id: "basic-prop-states", layers: [ { name: "foreground" @@ -167,511 +209,702 @@ 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 ], + ko: { + class: "SpriteActor", + id: "ko", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], pos: { - x: 405.07428, - y: -48.177734 + x: 956.2496, + y: 477.18317 }, - visible: true, - refPoint: {}, - verbs: { - leave: { - id: "leave", - actions: [ - { - class: "com.bladecoder.engine.actions.LeaveAction", - scene: "basic1", - init: true - } - ] - } - }, - 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, + visible: false, refPoint: {}, verbs: {}, - interaction: true, + interaction: false, zIndex: 0, layer: "foreground", renderer: { - class: "com.bladecoder.engine.model.ImageRenderer", - fanims: { - text: { - class: "com.bladecoder.engine.anim.AnimationDesc", - id: "text", - source: "@text.png", - duration: 1, - animationType: "NO_REPEAT", - count: -1, - preload: true - } + class: "TextRenderer", + text: "@basic-prop-states.ko.text", + fontName: "PaytoneOne", + fontSize: 100, + borderWidth: 0, + borderColor: { + a: 1 }, - initAnimation: "text", - orgAlign: 4 + borderStraight: true, + shadowOffsetX: 0, + shadowOffsetY: 0, + shadowColor: { + a: 1 + }, + align: 8, + orgAlign: 0 + }, + tint: { + r: 1, + b: 0.015686275, + a: 1 }, scaleX: 1, scaleY: 1, rot: 0, 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", + ok: { + class: "SpriteActor", + id: "ok", bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], pos: { - x: 1688.2659, - y: 308.31876 + x: 956.2496, + y: 477.18317 }, - visible: true, + visible: false, refPoint: {}, - verbs: { - pickup: { - id: "pickup", - actions: [ - { - class: "com.bladecoder.engine.actions.SetCutmodeAction", - value: true - }, - { - class: "com.bladecoder.engine.actions.SetActorAttrAction", - actor: "$PLAYER", - interaction: true - }, - { - class: "com.bladecoder.engine.actions.SetPlayerAction", - actor: "green", - inventory: "green" - }, - { - class: "com.bladecoder.engine.actions.SayAction", - actor: "$PLAYER", - text: "@01.char3.pickup.3.text", - type: "SUBTITLE", - queue: false, - wait: true - }, - { - class: "com.bladecoder.engine.actions.SetCutmodeAction", - value: false - } - ] - } - }, - interaction: true, - zIndex: 1, - layer: "dynamic", + verbs: {}, + interaction: false, + zIndex: 0, + layer: "foreground", 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 - } + class: "TextRenderer", + text: "@basic-prop-states.ok.text__", + fontName: "PaytoneOne", + fontSize: 100, + borderWidth: 0, + borderColor: { + a: 1 }, - initAnimation: "stand.left", - orgAlign: 4 + borderStraight: true, + shadowOffsetX: 0, + shadowOffsetY: 0, + shadowColor: { + a: 1 + }, + align: 8, + orgAlign: 0 }, - scaleX: 0.19001375, - scaleY: 0.19001375, - rot: 0, tint: { - r: 0.53333336, + r: 0.28235295, g: 1, - b: 0.53333336, a: 1 }, - 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 + scaleX: 1, + scaleY: 1, + rot: 0, + fakeDepth: false, + bboxFromRenderer: true }, - tint: { - class: "com.bladecoder.engine.model.InteractiveActor", - id: "tint", - bbox: [ -416.72354, -2.1842957, -100, 200, 69.4198, 193.44711, -133.72015, 0 ], + state: { + class: "SpriteActor", + id: "state", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], pos: { - x: 657.4744, - y: 255.56323 + x: 978.9769, + y: 198.59222 }, visible: true, + desc: "@basic-prop-states.state.desc_", refPoint: {}, verbs: { - exit: { - id: "exit", + lookat: { + id: "lookat", actions: [ { - class: "com.bladecoder.engine.actions.IfSceneAttrAction", - attr: "PLAYER", - value: "char", - caID: "1640548163" - }, - { - class: "com.bladecoder.engine.actions.SetActorAttrAction", - actor: "$PLAYER", - tint: "ffffffff" - }, - { - class: "com.bladecoder.engine.actions.EndAction", - caID: "1640548163" - }, - { - class: "com.bladecoder.engine.actions.IfSceneAttrAction", - attr: "PLAYER", - value: "red", - caID: "1070630759" - }, - { - class: "com.bladecoder.engine.actions.DisableActionAction", - serializedAction: "{class:com.bladecoder.engine.actions.SetActorAttrAction,actor:$PLAYER,tint:ff6666ff}" + class: "IfActorAttr", + actor: "state", + attr: "STATE", + value: "BLUE", + caID: "301582167" }, { - class: "com.bladecoder.engine.actions.TintAnimAction", + class: "Say", actor: "$PLAYER", - color: "ff6666ff", - speed: 0.2, - count: 1, - wait: true, - repeat: "REPEAT" - }, - { - class: "com.bladecoder.engine.actions.EndAction", - caID: "1070630759" + text: "@basic-prop-states.state.lookat.1.text", + type: "SUBTITLE", + queue: false, + wait: true }, { - class: "com.bladecoder.engine.actions.IfSceneAttrAction", - attr: "PLAYER", - value: "green", - caID: "1006819085" + class: "End", + caID: "301582167" }, { - class: "com.bladecoder.engine.actions.CameraAction", - zoom: 1, - duration: 1, - interpolation: "FADE", - wait: false + class: "IfActorAttr", + actor: "state", + attr: "STATE", + value: "YELLOW", + caID: "602667286" }, { - class: "com.bladecoder.engine.actions.SetActorAttrAction", + class: "Say", actor: "$PLAYER", - tint: "66ff66ff" + text: "@basic-prop-states.state.lookat.4.text", + type: "SUBTITLE", + queue: false, + wait: true }, { - class: "com.bladecoder.engine.actions.EndAction", - caID: "1006819085" + class: "End", + caID: "602667286" }, { - class: "com.bladecoder.engine.actions.SetActorAttrAction", + class: "Say", actor: "$PLAYER", - tint: "6666ffff" - }, - { - class: "com.bladecoder.engine.actions.EndAction", - caID: "1006819085" + text: "@basic-prop-states.state.lookat.6.text", + type: "SUBTITLE", + queue: false, + wait: true }, { - class: "com.bladecoder.engine.actions.EndAction", - caID: "1070630759" + class: "End", + caID: "602667286" }, { - class: "com.bladecoder.engine.actions.EndAction", - caID: "1640548163" + class: "End", + caID: "301582167" } ] }, - enter: { - id: "enter", + pickup: { + id: "pickup", actions: [ { - class: "com.bladecoder.engine.actions.IfSceneAttrAction", - attr: "PLAYER", - value: "char", - caID: "602572309" + class: "ActorState", + actor: "state", + state: "YELLOW" }, { - class: "com.bladecoder.engine.actions.SetActorAttrAction", - actor: "$PLAYER", - tint: "666666ff" - }, - { - class: "com.bladecoder.engine.actions.EndAction", - caID: "602572309" - }, + class: "SetActorAttr", + actor: "state", + tint: "ffee00ff" + } + ] + }, + "pickup.YELLOW": { + id: "pickup", + state: "YELLOW", + actions: [ { - class: "com.bladecoder.engine.actions.IfSceneAttrAction", - attr: "PLAYER", - value: "red", - caID: "1331490757" + class: "ActorState", + actor: "state", + state: "BLUE" }, { - class: "com.bladecoder.engine.actions.DisableActionAction", - serializedAction: "{class:com.bladecoder.engine.actions.SetActorAttrAction,actor:$PLAYER,tint:660000ff}" - }, + class: "SetActorAttr", + actor: "state", + tint: "00f7ffff" + } + ] + } + }, + interaction: true, + zIndex: 0, + 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 + }, + scaleX: 1, + scaleY: 1, + rot: 0, + fakeDepth: false, + bboxFromRenderer: true + } + }, + musicDesc: null, + verbs: { + init: { + id: "init", + actions: [ + { + class: "Property", + prop: "TEST-PROP", + value: "test" + }, + { + class: "IfProperty", + name: "TEST-PROP", + value: "test", + caID: "1751840606" + }, + { + class: "End", + caID: "1751840606" + }, + { + class: "SetActorAttr", + actor: "ko", + visible: true + }, + { + class: "CancelVerb" + }, + { + class: "End", + caID: "1751840606" + }, + { + class: "Comment", + comment: "Property from the BladeEngine.properties file.", + debug: false + }, + { + 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: "Say", + actor: "$PLAYER", + 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: null + }, + basic1: { + id: "basic1", + layers: [ + { + name: "foreground" + }, + { + name: "dynamic", + dynamic: true + }, + { + name: "background" + } + ], + actors: { + ball: { + class: "SpriteActor", + id: "ball", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + pos: { + x: 1833.4604, + y: 317.79987 + }, + visible: true, + desc: "@01.ball.desc_", + refPoint: { + x: -85.5614, + y: 8.148743 + }, + verbs: { + pickup: { + id: "pickup", + actions: [ { - class: "com.bladecoder.engine.actions.TintAnimAction", + class: "Goto", actor: "$PLAYER", - color: "660000ff", - speed: 0.2, - count: 1, - wait: true, - repeat: "REPEAT" - }, - { - class: "com.bladecoder.engine.actions.EndAction", - caID: "1331490757" + target: "ball", + ignoreWalkZone: false, + wait: true }, { - class: "com.bladecoder.engine.actions.IfSceneAttrAction", - attr: "PLAYER", - value: "green", - caID: "1522226691" + class: "LookAt", + direction: "RIGHT", + wait: false }, { - class: "com.bladecoder.engine.actions.SetActorAttrAction", - actor: "$PLAYER", - tint: "006600ff" + class: "PickUp", + actor: "ball" }, { - class: "com.bladecoder.engine.actions.CameraAction", - pos: "0.0,0.0", - interpolation: "FADE", - wait: false - }, + class: "AlphaAnim", + actor: "ball", + alpha: 0, + speed: 1, + count: -1, + wait: true, + repeat: "YOYO", + interpolation: "FADE" + } + ] + }, + lookat: { + id: "lookat", + actions: [ { - class: "com.bladecoder.engine.actions.CameraAction", - zoom: 0.5, - duration: 1, - interpolation: "FADE", - wait: true - }, + class: "AlphaAnim", + actor: "ball", + alpha: 0, + speed: 1, + count: 2, + wait: true, + repeat: "YOYO" + } + ] + } + }, + interaction: true, + zIndex: 0, + layer: "dynamic", + renderer: { + class: "AtlasRenderer", + fanims: { + ball: { + class: "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 + }, + blue: { + class: "CharacterActor", + id: "blue", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + pos: { + x: 1738.8356, + y: 394.27005 + }, + visible: true, + refPoint: {}, + verbs: { + pickup: { + id: "pickup", + actions: [ { - class: "com.bladecoder.engine.actions.EndAction", - caID: "1522226691" + class: "Cutmode", + value: true }, { - class: "com.bladecoder.engine.actions.SetActorAttrAction", + class: "SetActorAttr", actor: "$PLAYER", - tint: "000066ff" + interaction: true }, { - class: "com.bladecoder.engine.actions.EndAction", - caID: "1522226691" + class: "SetPlayer", + actor: "blue", + inventory: "blue" }, { - class: "com.bladecoder.engine.actions.EndAction", - caID: "1331490757" + class: "Say", + actor: "$PLAYER", + text: "@01.char4.pickup.3.text", + type: "SUBTITLE", + queue: false, + wait: true }, { - class: "com.bladecoder.engine.actions.EndAction", - caID: "602572309" + class: "Cutmode", + value: false } ] } }, - interaction: false, - zIndex: 0, - layer: "foreground" + interaction: true, + 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 + } + }, + initAnimation: "stand.left", + orgAlign: 4 + }, + tint: { + r: 0.53333336, + g: 0.53333336, + b: 1, + a: 1 + }, + scaleX: 0.13639663, + scaleY: 0.13639663, + rot: 0, + fakeDepth: true, + bboxFromRenderer: true, + walkingSpeed: 2000 }, - red: { - class: "com.bladecoder.engine.model.CharacterActor", - id: "red", + char: { + class: "CharacterActor", + id: "char", bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], pos: { - x: 1298.4912, - y: 349.08066 + x: 751.04297, + y: 331.6653 }, visible: true, refPoint: { - x: -118.37598, - y: 1.443634 + x: 105.383484, + y: 4.3308105 }, 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: "red", - inventory: "red" + class: "SetPlayer", + actor: "char", + inventory: "white" }, { - class: "com.bladecoder.engine.actions.SayAction", + class: "Say", actor: "$PLAYER", - text: "@01.char2.pickup.4.text", + text: "@01.char.pickup.4.text", type: "SUBTITLE", queue: false, wait: true }, { - class: "com.bladecoder.engine.actions.SetCutmodeAction", + class: "Cutmode", value: false } ] } }, - interaction: true, + 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.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", + initAnimation: "stand.right", orgAlign: 4 }, - scaleX: 0.16458614, - scaleY: 0.16458614, + scaleX: 0.17544998, + scaleY: 0.17544998, rot: 0, - tint: { - r: 1, - g: 0.53333336, - b: 0.53333336, - a: 1 - }, fakeDepth: true, bboxFromRenderer: true, walkingSpeed: 2000 }, - ball: { - class: "com.bladecoder.engine.model.SpriteActor", - id: "ball", + cube: { + class: "SpriteActor", + id: "cube", bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], pos: { - x: 1833.4604, - y: 317.79987 + x: 521.5177, + y: 362.6178 }, visible: true, - desc: "@01.ball.desc_", + desc: "@01.cube.desc", refPoint: { - x: -85.5614, - y: 8.148743 + x: 93.710205, + y: 20.371826 }, verbs: { pickup: { id: "pickup", actions: [ { - class: "com.bladecoder.engine.actions.GotoAction", + class: "Goto", actor: "$PLAYER", - target: "ball", + target: "cube", ignoreWalkZone: false, wait: true }, { - class: "com.bladecoder.engine.actions.LookAtAction", - direction: "RIGHT", - wait: false + class: "LookAt", + direction: "LEFT", + wait: false + }, + { + class: "PickUp", + actor: "cube" + } + ] + }, + lookat: { + id: "lookat", + actions: [ + { + class: "com.bladecoder.engine.actions.AddValueToProperty", + prop: "COUNTER", + value: 1 + }, + { + class: "IfProperty", + name: "COUNTER", + value: "3", + caID: "1198688830" + }, + { + class: "Say", + actor: "$PLAYER", + text: "@01.cube.lookat.2.text", + type: "SUBTITLE", + queue: false, + wait: true + }, + { + class: "End", + caID: "1198688830" }, { - class: "com.bladecoder.engine.actions.PickUpAction", - actor: "ball" + class: "Say", + actor: "$PLAYER", + text: "@01.cube.lookat.4.text", + type: "SUBTITLE", + queue: false, + wait: true }, { - 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: "End", + caID: "1198688830" } ] } @@ -680,11 +913,20 @@ scenes: { zIndex: 0, layer: "dynamic", renderer: { - class: "com.bladecoder.engine.model.AtlasRenderer", + class: "AtlasRenderer", fanims: { ball: { - class: "com.bladecoder.engine.anim.AtlasAnimationDesc", - id: "ball", + class: "AtlasAnimationDesc", + id: "cube", + source: "scene1", + duration: 1, + animationType: "NO_REPEAT", + count: -1, + preload: true + }, + cube: { + class: "AtlasAnimationDesc", + id: "cube", source: "scene1", duration: 1, animationType: "NO_REPEAT", @@ -695,14 +937,56 @@ scenes: { initAnimation: "ball", orgAlign: 4 }, + tint: { + r: 0.4, + g: 0.4, + b: 0.4, + a: 1 + }, scaleX: 1, scaleY: 1, - rot: 45, + rot: 0, fakeDepth: false, bboxFromRenderer: true }, + door_left: { + class: "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: "Goto", + actor: "$PLAYER", + target: "door_left", + ignoreWalkZone: false, + wait: true + }, + { + class: "Leave", + scene: "basic3", + init: true + } + ] + } + }, + interaction: true, + zIndex: 0, + 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 +1004,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 +1022,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 +1037,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 +1069,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,7 +1261,7 @@ scenes: { id: "lookat", actions: [ { - class: "com.bladecoder.engine.actions.SayAction", + class: "Say", actor: "test_actions", text: "@01.test_actions.lookat.0.text", type: "SUBTITLE", @@ -932,23 +1274,23 @@ 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", + class: "Say", actor: "test_actions", text: "@01.test_actions.pickup.2.text", type: "SUBTITLE", @@ -956,11 +1298,11 @@ scenes: { wait: true }, { - class: "com.bladecoder.engine.actions.EndAction", + class: "End", caID: "else123" }, { - class: "com.bladecoder.engine.actions.SayAction", + class: "Say", actor: "test_actions", text: "@01.test_actions.pickup.5.text_", type: "SUBTITLE", @@ -968,7 +1310,7 @@ scenes: { wait: true }, { - class: "com.bladecoder.engine.actions.AnimationAction", + class: "Animation", animation: "test_actions#error", count: 1, wait: false, @@ -976,22 +1318,22 @@ 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", + class: "Say", actor: "test_actions", text: "@01.test_actions.pickup.10.text_", type: "SUBTITLE", @@ -999,7 +1341,7 @@ scenes: { wait: true }, { - class: "com.bladecoder.engine.actions.AnimationAction", + class: "Animation", animation: "test_actions#error", count: 1, wait: false, @@ -1007,15 +1349,15 @@ 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", + class: "Say", actor: "test_actions", text: "@01.test_actions.pickup.11.text", type: "SUBTITLE", @@ -1023,21 +1365,21 @@ scenes: { 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", + class: "Say", actor: "test_actions", text: "@01.test_actions.pickup.18.text", type: "SUBTITLE", @@ -1045,7 +1387,7 @@ scenes: { wait: true }, { - class: "com.bladecoder.engine.actions.SayAction", + class: "Say", actor: "test_actions", text: "@01.test_actions.pickup.16.text_", type: "SUBTITLE", @@ -1053,27 +1395,27 @@ scenes: { 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", + class: "Say", actor: "test_actions", text: "@01.test_actions.pickup.21.text_", type: "SUBTITLE", @@ -1081,11 +1423,11 @@ scenes: { wait: true }, { - class: "com.bladecoder.engine.actions.EndAction", + class: "End", caID: "else12345" }, { - class: "com.bladecoder.engine.actions.SayAction", + class: "Say", actor: "test_actions", text: "@01.test_actions.pickup.24.text__", type: "SUBTITLE", @@ -1093,7 +1435,7 @@ scenes: { wait: true }, { - class: "com.bladecoder.engine.actions.AnimationAction", + class: "Animation", animation: "test_actions#error", count: 1, wait: false, @@ -1101,15 +1443,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 +1459,7 @@ scenes: { keepDirection: false }, { - class: "com.bladecoder.engine.actions.SetCutmodeAction", + class: "Cutmode", value: false } ] @@ -1127,20 +1469,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,42 +1490,16 @@ scenes: { preload: true }, ok: { - class: "com.bladecoder.engine.anim.AtlasAnimationDesc", + class: "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 - }, - particle: { - class: "com.bladecoder.engine.model.SpriteActor", - id: "particle", - bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], - pos: { - x: 1016.0442, - y: 333.25787 - }, - visible: true, - refPoint: {}, - verbs: {}, - interaction: true, - zIndex: 0, - layer: "foreground", - renderer: { - class: "com.bladecoder.engine.model.ParticleRenderer", - atlasName: "particles", - particleName: "bigFire", + animationType: "NO_REPEAT", + count: -1, + preload: true + } + }, + initAnimation: "go", orgAlign: 4 }, scaleX: 1, @@ -1192,125 +1508,74 @@ scenes: { fakeDepth: false, bboxFromRenderer: true }, - cube: { - class: "com.bladecoder.engine.model.SpriteActor", - id: "cube", + test_inventory: { + class: "SpriteActor", + id: "test_inventory", bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], pos: { - x: 521.5177, - y: 362.6178 + x: 372.02625, + y: 768.19934 }, visible: true, - desc: "@01.cube.desc", - refPoint: { - x: 93.710205, - y: 20.371826 - }, + desc: "@01.test_inventory.desc_", + refPoint: {}, 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", + leave: { + id: "leave", 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" + class: "Leave", + scene: "inventory", + init: true } ] } }, interaction: true, zIndex: 0, - layer: "dynamic", + layer: "foreground", 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 +1589,7 @@ scenes: { id: "pickup", actions: [ { - class: "com.bladecoder.engine.actions.AlphaAnimAction", + class: "AlphaAnim", actor: "text", alpha: 0, speed: 0.5, @@ -1333,7 +1598,7 @@ scenes: { repeat: "NO_REPEAT" }, { - class: "com.bladecoder.engine.actions.AlphaAnimAction", + class: "AlphaAnim", actor: "text", alpha: 1, speed: 0.5, @@ -1348,7 +1613,7 @@ scenes: { zIndex: 0, layer: "foreground", renderer: { - class: "com.bladecoder.engine.model.TextRenderer", + class: "TextRenderer", text: "text", fontName: "ArchitectsDaughter", fontSize: 100, @@ -1371,8 +1636,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 +1837,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 +1845,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 +1859,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 +1880,7 @@ scenes: { preload: true }, ok: { - class: "com.bladecoder.engine.anim.AtlasAnimationDesc", + class: "AtlasAnimationDesc", id: "ok", source: "testbutton", duration: 1, @@ -1447,133 +1898,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 +1918,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,256 +1940,126 @@ 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", - actor: "$PLAYER", - pos: "1517.0,374.0", - ignoreWalkZone: false, - wait: true - }, - { - class: "com.bladecoder.engine.actions.EndAction", - caID: "1421587304" - }, - { - class: "com.bladecoder.engine.actions.EndAction", - caID: "1421587304" - }, - { - class: "com.bladecoder.engine.actions.EndAction", - caID: "1891188477" - } - ] - } - }, - player: "char", - walkZone: "walkzone" - }, - parallax: { - id: "parallax", - layers: [ - { - name: "foreground", - parallax: 3.5 - }, - { - name: "dynamic" - }, - { - name: "background", - parallax: 0 - } - ], - 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 ], - pos: { - x: 801.9821, - y: 207.3566 - }, - visible: true, - refPoint: {}, - verbs: { - leave: { - id: "leave", - actions: [ - { - class: "com.bladecoder.engine.actions.GotoAction", - actor: "char", - target: "goto01", - ignoreWalkZone: false, - wait: true - }, - { - class: "com.bladecoder.engine.actions.LeaveAction", - scene: "basic1", - init: true - } - ] - } - }, - interaction: true, - zIndex: 0, - layer: "foreground" - }, - middleground: { - class: "com.bladecoder.engine.model.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", - fanims: { - background: { - class: "com.bladecoder.engine.anim.AtlasAnimationDesc", - id: "middleground", - 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 - }, - 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 - }, - background: { - class: "com.bladecoder.engine.model.SpriteActor", - id: "background", - bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], - pos: { - x: 1551 - }, - 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 - } + class: "Goto", + actor: "$PLAYER", + pos: "1517.0,374.0", + ignoreWalkZone: false, + wait: true }, - initAnimation: "background", - orgAlign: 4 - }, - scaleX: 1, - scaleY: 1, - rot: 0, - fakeDepth: false, - bboxFromRenderer: true + { + class: "End", + caID: "1421587304" + }, + { + class: "End", + caID: "1421587304" + }, + { + class: "End", + caID: "1891188477" + } + ] + } + }, + player: "char", + walkZone: "walkzone" + }, + basic2: { + id: "basic2", + layers: [ + { + name: "foreground" }, - char: { - class: "com.bladecoder.engine.model.CharacterActor", - id: "char", - bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + { + name: "dynamic", + dynamic: true + }, + { + name: "background" + } + ], + actors: { + exit: { + class: "InteractiveActor", + id: "exit", + bbox: [ -570.5481, -21.131287, -408.54053, 171.8248, 1172.0449, 214.08759, 1263.6143, -14.0876465 ], pos: { - x: 1793.2177, - y: 65.78964 + x: 405.07428, + y: -48.177734 }, 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 + verbs: { + leave: { + id: "leave", + actions: [ + { + class: "Leave", + scene: "basic1", + init: true + } + ] + } }, - scaleX: 0.3110584, - scaleY: 0.3110584, - rot: 0, - fakeDepth: true, - bboxFromRenderer: true, - walkingSpeed: 2000 + interaction: true, + zIndex: 0, + layer: "background" }, - foreground: { - class: "com.bladecoder.engine.model.SpriteActor", - id: "foreground", + i18ntext: { + class: "SpriteActor", + id: "i18ntext", bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], pos: { - x: 177.10706 + x: 451.26367, + y: 448.4259 }, visible: true, refPoint: {}, verbs: {}, - interaction: false, + interaction: true, zIndex: 0, layer: "foreground", renderer: { - class: "com.bladecoder.engine.model.AtlasRenderer", + class: "ImageRenderer", fanims: { - foreground1: { - class: "com.bladecoder.engine.anim.AtlasAnimationDesc", - id: "foreground1", - source: "parallax", + text: { + class: "com.bladecoder.engine.anim.AnimationDesc", + id: "text", + source: "@text.png", duration: 1, animationType: "NO_REPEAT", count: -1, preload: true } }, - initAnimation: "foreground1", + initAnimation: "text", orgAlign: 4 }, scaleX: 1, @@ -1867,84 +2067,166 @@ scenes: { rot: 0, fakeDepth: false, bboxFromRenderer: true + } + }, + backgroundAtlas: "scene2", + backgroundRegionId: "bg2", + musicDesc: null, + verbs: {}, + walkZone: null + }, + basic3: { + id: "basic3", + layers: [ + { + name: "foreground" }, - foreground2: { - class: "com.bladecoder.engine.model.SpriteActor", - id: "foreground2", - bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + { + name: "dynamic", + dynamic: true + }, + { + 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: 3084.321 + x: 1644.7837, + y: 578.7209 }, 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: "foreground2", - source: "parallax", - duration: 1, - animationType: "NO_REPEAT", - count: -1, - preload: true - } - }, - initAnimation: "foreground1", - orgAlign: 4 + refPoint: { + x: 5.774414, + y: -326.25568 }, - scaleX: 1, - scaleY: 1, - rot: 0, - fakeDepth: false, - bboxFromRenderer: true - }, - 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 + 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: 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 + zIndex: 0, + layer: "background" + }, + 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: 613.83704, + y: -631.38477 + }, + 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 + } + ] } }, - musicDesc: null, - depthVector: { - x: 344.45578, - y: -551.40857 - }, - sceneSize: { - x: 3103, - y: 1080 - }, - verbs: {}, - player: "char", walkZone: "walkzone" }, - actor3d: { - id: "actor3d", + ink1: { + id: "ink1", layers: [ { name: "foreground" @@ -1958,200 +2240,103 @@ scenes: { } ], actors: { - fg2: { - class: "com.bladecoder.engine.model.SpriteActor", - id: "fg2", - bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], - pos: { - x: 2727.407 - }, - visible: true, - refPoint: {}, - verbs: {}, - interaction: false, - zIndex: 0, - layer: "foreground", - renderer: { - class: "com.bladecoder.engine.model.AtlasRenderer", - fanims: { - head_fg: { - class: "com.bladecoder.engine.anim.AtlasAnimationDesc", - id: "head_fg", - source: "00", - 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", + GREEN: { + class: "CharacterActor", + id: "GREEN", bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], pos: { - x: 158.68916 + x: 1386.7396, + y: 87.49176 }, 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", - count: -1, - preload: true - } - }, - initAnimation: "column_fg", - orgAlign: 4 - }, - 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 + refPoint: { + x: 8.069885 }, - visible: true - }, - player: { - class: "com.bladecoder.engine.model.CharacterActor", - id: "player", - bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], - pos: { - x: 2174.0637, - y: 45.82788 + 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 + } + ] + } }, - visible: true, - refPoint: {}, - verbs: {}, - interaction: false, + interaction: true, 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 + initAnimation: "stand.right", + orgAlign: 0 }, - scaleX: 0.9786623, - scaleY: 0.9786623, - rot: 0, - fakeDepth: true, - bboxFromRenderer: true, - walkingSpeed: 700 - } - }, - backgroundAtlas: "00", - backgroundRegionId: "bg1", - musicDesc: null, - depthVector: { - x: 2673.551, - y: -11.464233 - }, - verbs: { - init: { - id: "init", - actions: [ - { - class: "com.bladecoder.engine.actions.SayAction", - actor: "$PLAYER", - text: "@actor3d.init.0.text", - type: "SUBTITLE", - queue: false, - wait: true - } - ] - } - }, - player: "player", - walkZone: "walkzone" - }, - ink1: { - id: "ink1", - layers: [ - { - name: "foreground" - }, - { - name: "dynamic", - dynamic: true + tint: { + g: 1, + a: 1 + }, + scaleX: 0.6267129, + scaleY: 0.6267129, + rot: 0, + fakeDepth: true, + bboxFromRenderer: true, + walkingSpeed: 1000 }, - { - name: "background" - } - ], - actors: { RED: { - class: "com.bladecoder.engine.model.CharacterActor", + class: "CharacterActor", id: "RED", bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], pos: { @@ -2165,19 +2350,10 @@ scenes: { 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.7, - animationType: "REPEAT", - count: -1, - preload: true - }, "stand.right": { - class: "com.bladecoder.engine.anim.AtlasAnimationDesc", + class: "AtlasAnimationDesc", id: "stand.right", source: "char", duration: 1, @@ -2186,31 +2362,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 +2410,7 @@ scenes: { icon: "right", actions: [ { - class: "com.bladecoder.engine.actions.LeaveAction", + class: "Leave", scene: "ink2", init: true } @@ -2236,7 +2421,7 @@ scenes: { zIndex: 0, layer: "foreground", renderer: { - class: "com.bladecoder.engine.model.TextRenderer", + class: "TextRenderer", text: "@ink1.example2.text", fontName: "Ubuntu-M", fontSize: 100, @@ -2253,26 +2438,19 @@ scenes: { align: 8, orgAlign: 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 +2465,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 +2475,7 @@ scenes: { zIndex: 0, layer: "foreground", renderer: { - class: "com.bladecoder.engine.model.TextRenderer", + class: "TextRenderer", text: "@ink1.link.text", fontName: "Ubuntu-M", fontSize: 100, @@ -2314,46 +2492,108 @@ scenes: { align: 8, orgAlign: 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 +2601,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 +2616,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 +2687,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 +2724,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 +2738,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 +2757,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 +2788,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 +2802,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 +2824,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 +2839,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 +2854,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 +2868,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 +2890,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 +2905,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 +2920,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 +2934,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 +2946,7 @@ scenes: { preload: true }, ok: { - class: "com.bladecoder.engine.anim.AtlasAnimationDesc", + class: "AtlasAnimationDesc", id: "ok", source: "testbutton", duration: 1, @@ -2681,28 +2964,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 +2995,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 +3009,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 +3030,7 @@ scenes: { preload: true } }, - initAnimation: "ok", + initAnimation: "go", orgAlign: 4 }, scaleX: 1, @@ -2747,28 +3039,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 +3070,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 +3084,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 +3105,7 @@ scenes: { preload: true } }, - initAnimation: "ok", + initAnimation: "go", orgAlign: 4 }, scaleX: 1, @@ -2813,28 +3114,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 +3146,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 +3160,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 +3190,7 @@ scenes: { preload: true } }, - initAnimation: "ok", + initAnimation: "go", orgAlign: 4 }, scaleX: 1, @@ -2879,28 +3199,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 +3230,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 +3244,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 +3265,7 @@ scenes: { preload: true } }, - initAnimation: "ok", + initAnimation: "go", orgAlign: 4 }, scaleX: 1, @@ -2945,28 +3274,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 +3305,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 +3319,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 +3340,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 +3371,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 +3385,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 +3397,7 @@ scenes: { preload: true } }, - initAnimation: "go", + initAnimation: "ok", orgAlign: 4 }, scaleX: 1, @@ -3086,28 +3406,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 +3437,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 +3451,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 +3472,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 +3503,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 +3517,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 +3529,7 @@ scenes: { preload: true } }, - initAnimation: "go", + initAnimation: "ok", orgAlign: 4 }, scaleX: 1, @@ -3227,28 +3538,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 +3569,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 +3583,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 +3604,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 +3635,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 +3649,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 +3661,7 @@ scenes: { preload: true } }, - initAnimation: "go", + initAnimation: "ok", orgAlign: 4 }, scaleX: 1, @@ -3368,28 +3670,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 +3701,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 +3715,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 +3736,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 +3767,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 +3781,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 +3802,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 +3833,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 +3847,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 +3868,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 +3899,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 +3913,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 +3954,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 +3969,8 @@ scenes: { id: "leave", actions: [ { - class: "com.bladecoder.engine.actions.LeaveAction", - scene: "parallax", + class: "Leave", + scene: "actor3d", init: true } ] @@ -3697,8 +3980,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, @@ -3714,24 +3997,24 @@ scenes: { align: 8, orgAlign: 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 +4023,8 @@ scenes: { id: "leave", actions: [ { - class: "com.bladecoder.engine.actions.LeaveAction", - scene: "actor3d", + class: "Leave", + scene: "basic1", init: true } ] @@ -3751,8 +4034,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, @@ -3768,19 +4051,19 @@ scenes: { align: 8, orgAlign: 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 +4077,7 @@ scenes: { id: "leave", actions: [ { - class: "com.bladecoder.engine.actions.LeaveAction", + class: "Leave", scene: "ink1", init: true } @@ -3805,7 +4088,7 @@ scenes: { zIndex: 0, layer: "foreground", renderer: { - class: "com.bladecoder.engine.model.TextRenderer", + class: "TextRenderer", text: "@menu.ink.text_", fontName: "Ubuntu-M", fontSize: 100, @@ -3822,24 +4105,24 @@ scenes: { align: 8, orgAlign: 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 +4131,20 @@ scenes: { id: "leave", actions: [ { - class: "com.bladecoder.engine.actions.LeaveAction", + 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: { @@ -3876,24 +4159,24 @@ scenes: { align: 8, orgAlign: 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 +4185,8 @@ scenes: { id: "leave", actions: [ { - class: "com.bladecoder.engine.actions.LeaveAction", - scene: "basic1", + class: "Leave", + scene: "parallax", init: true } ] @@ -3913,8 +4196,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, @@ -3930,24 +4213,24 @@ scenes: { align: 8, orgAlign: 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 +4239,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: { @@ -3984,14 +4267,14 @@ scenes: { align: 8, orgAlign: 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,7 +4285,7 @@ scenes: { id: "init", actions: [ { - class: "com.bladecoder.engine.actions.ScreenPositionAction", + class: "ScreenPosition", actor: "title", position: "0.0,-200.0", anchor: "TOP" @@ -4012,201 +4295,290 @@ scenes: { }, 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: 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: "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 + } + }, + 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: 720.8208, - y: 90.79294 + x: 3084.321 }, visible: true, refPoint: {}, verbs: {}, interaction: false, zIndex: 0, - layer: "dynamic", + layer: "foreground", 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", + 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", + testwalk: { + id: "testwalk", layers: [ { name: "foreground" @@ -4220,362 +4592,108 @@ 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", + char: { + class: "CharacterActor", + id: "char", bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], pos: { - x: 978.9769, - y: 198.59222 + x: 845.57306, + y: 90.765656 }, - visible: true, - desc: "@basic-prop-states.state.desc_", - refPoint: {}, - verbs: { - lookat: { - id: "lookat", - actions: [ - { - class: "com.bladecoder.engine.actions.IfAttrAction", - actor: "state", - attr: "STATE", - value: "BLUE", - caID: "301582167" - }, - { - class: "com.bladecoder.engine.actions.SayAction", - actor: "$PLAYER", - text: "@basic-prop-states.state.lookat.1.text", - type: "SUBTITLE", - queue: false, - wait: true - }, - { - class: "com.bladecoder.engine.actions.EndAction", - caID: "301582167" - }, + visible: true, + refPoint: { + x: 105.383484, + y: 4.3308105 + }, + verbs: { + pickup: { + id: "pickup", + actions: [ { - class: "com.bladecoder.engine.actions.IfAttrAction", - actor: "state", - attr: "STATE", - value: "YELLOW", - caID: "602667286" + class: "Cutmode", + value: true }, { - class: "com.bladecoder.engine.actions.SayAction", + class: "SetActorAttr", actor: "$PLAYER", - text: "@basic-prop-states.state.lookat.4.text", - type: "SUBTITLE", - queue: false, - wait: true + interaction: true }, { - class: "com.bladecoder.engine.actions.EndAction", - caID: "602667286" + class: "SetPlayer", + actor: "char", + inventory: "white" }, { - class: "com.bladecoder.engine.actions.SayAction", + class: "Say", actor: "$PLAYER", - text: "@basic-prop-states.state.lookat.6.text", + text: "@basic22.char.pickup.3.text", type: "SUBTITLE", queue: false, wait: true }, { - class: "com.bladecoder.engine.actions.EndAction", - caID: "602667286" - }, - { - class: "com.bladecoder.engine.actions.EndAction", - caID: "301582167" - } - ] - }, - pickup: { - id: "pickup", - actions: [ - { - class: "com.bladecoder.engine.actions.SetStateAction", - actor: "state", - state: "YELLOW" - }, - { - class: "com.bladecoder.engine.actions.SetActorAttrAction", - actor: "state", - tint: "ffee00ff" - } - ] - }, - "pickup.YELLOW": { - id: "pickup", - state: "YELLOW", - actions: [ - { - class: "com.bladecoder.engine.actions.SetStateAction", - actor: "state", - state: "BLUE" - }, - { - class: "com.bladecoder.engine.actions.SetActorAttrAction", - actor: "state", - tint: "00f7ffff" + class: "Cutmode", + value: false } ] } }, - interaction: true, - zIndex: 0, - layer: "foreground", + interaction: false, + zIndex: 1, + 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 + }, + "walk.right": { + class: "AtlasAnimationDesc", + id: "walk.right", + source: "char", + duration: 0.5, + animationType: "REPEAT", + count: -1, + preload: true + } }, - align: 8, - orgAlign: 0 + initAnimation: "stand.right", + orgAlign: 4 }, - scaleX: 1, - scaleY: 1, + scaleX: 0.28517538, + scaleY: 0.28517538, rot: 0, - fakeDepth: false, - bboxFromRenderer: true + fakeDepth: true, + bboxFromRenderer: true, + walkingSpeed: 2000 }, - ok: { - class: "com.bladecoder.engine.model.SpriteActor", - id: "ok", - bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + wz1: { + class: "WalkZoneActor", + id: "wz1", + bbox: [ -100, 0, 108.85559, 786.97614, 1356.5956, 741.85614, 1414.2749, -15.246765 ], 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.ok.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: 0.28235295, - g: 1, - a: 1 + x: 198.2085, + y: 67.08597 }, - fakeDepth: false, - bboxFromRenderer: true + visible: true } }, + backgroundAtlas: "scene2", + backgroundRegionId: "bg2", musicDesc: null, - 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: "com.bladecoder.engine.actions.SayAction", - actor: "$PLAYER", - text: "@basic-prop-states.init.23.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 - } - ] - } + depthVector: { + x: 948.18896, + y: -2058.4639 }, - walkZone: null + verbs: {}, + player: "char", + walkZone: "wz1" } }, initScene: "menu", diff --git a/adventure-test-project/assets/model/00.properties b/adventure-test-project/assets/model/00.properties index 3f8e120..a4df54a 100644 --- a/adventure-test-project/assets/model/00.properties +++ b/adventure-test-project/assets/model/00.properties @@ -31,6 +31,7 @@ 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 +basic22.char.pickup.3.text=WHITE PLAYER! ink1.example2.text=> Goto example 2 ink1.link.text=> Write with Ink tutorial inventory.a0.desc_=a0 diff --git a/adventure-test-project/assets/model/00_es.properties b/adventure-test-project/assets/model/00_es.properties new file mode 100644 index 0000000..27e4e2e --- /dev/null +++ b/adventure-test-project/assets/model/00_es.properties @@ -0,0 +1,76 @@ +01.ball.desc_=ball +01.char.pickup.4.text=WHITE PLAYER! +01.char2.pickup.4.text=RED PLAYER! +01.char3.pickup.3.text=GREEN PLAYER! +01.char4.pickup.3.text=BLUE PLAYER! +01.cube.desc=cube +01.cube.lookat.2.text=The COUNTER has a value of 3. +01.cube.lookat.4.text=The COUNTER it's NOT 3. +01.init.0.text=Este es un proyecto de test para el motor Blade Engine. +01.test_actions.desc=Test Actions +01.test_actions.lookat.0.text=Test all control actions +01.test_actions.pickup.10.text_=IF TEST 2 FAIL +01.test_actions.pickup.11.text=IF TEST 2 OK +01.test_actions.pickup.16.text_=Choose 2 +01.test_actions.pickup.18.text=Choose 1 +01.test_actions.pickup.2.text=IF TEST 1 OK +01.test_actions.pickup.21.text_=Choose and Repeat tests OK +01.test_actions.pickup.24.text__=Choose and Repeat tests FAIL +01.test_actions.pickup.5.text_=IF TEST 1 FAIL +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. +basic-prop-states.ko.text=Error in tests. +basic-prop-states.ok.text__=All tests passed. +basic-prop-states.state.desc_=Using states +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 +basic22.char.pickup.3.text=WHITE PLAYER! +ink1.example2.text=> Goto example 2 +ink1.link.text=> Write with Ink tutorial +inventory.a0.desc_=a0 +inventory.a0.pickup.INVENTORY.0.text=Already picked +inventory.a010.desc=a0 +inventory.a010.pickup.INVENTORY.0.text=Already picked +inventory.a011.desc=a0 +inventory.a011.pickup.INVENTORY.0.text=Already picked +inventory.a0112.desc=a0 +inventory.a0112.pickup.INVENTORY.0.text=Already picked +inventory.a0113.desc=a0 +inventory.a0113.pickup.INVENTORY.0.text=Already picked +inventory.a01132.desc=a0 +inventory.a01132.pickup.INVENTORY.0.text=Already picked +inventory.a0114.desc=a0 +inventory.a0114.pickup.INVENTORY.0.text=Already picked +inventory.a012.desc=a0 +inventory.a012.pickup.INVENTORY.0.text=Already picked +inventory.a013.desc=a0 +inventory.a013.pickup.INVENTORY.0.text=Already picked +inventory.a02.desc=a0 +inventory.a02.pickup.INVENTORY.0.text=Already picked +inventory.a03.desc=a0 +inventory.a03.pickup.INVENTORY.0.text=Already picked +inventory.a04.desc=a0 +inventory.a04.pickup.INVENTORY.0.text=Already picked +inventory.a05.desc=a0 +inventory.a05.pickup.INVENTORY.0.text=Already picked +inventory.a06.desc=a0 +inventory.a06.pickup.INVENTORY.0.text=Already picked +inventory.a07.desc=a0 +inventory.a07.pickup.INVENTORY.0.text=Already picked +inventory.a08.desc=a0 +inventory.a08.pickup.INVENTORY.0.text=Already picked +inventory.a09.desc=a0 +inventory.a09.pickup.INVENTORY.0.text=Already picked +menu.actor3d.text=>Using 3d actors +menu.basic.text_=>Basic +menu.ink.text_=>Ink +menu.inventory.text_=>Inventory +menu.parallax.text=>Parallax +menu.title.text_=TESTS diff --git a/adventure-test-project/assets/model/borrame-ink_es.properties b/adventure-test-project/assets/model/borrame-ink_es.properties new file mode 100644 index 0000000..9cf85f9 --- /dev/null +++ b/adventure-test-project/assets/model/borrame-ink_es.properties @@ -0,0 +1,13 @@ +/ov5jCx3MG=cadena1. +5iZIZNGn/Q=cadena2. +1+rhlTdqOQ=cadena32. +nosUA7gKOb=cadena31. +7MalaX8Yfq=cadena4. +GF7v+euqeW=cadena7. +1xxHegzf+P=cadena9. +jBImWH8vyS=cadena8 +VN4eL3zkri=cadena33. +simouMQ6B6=cadena5. +QiFowyJ732=cadena10 +tg0SG0OKOA=xxx +3BFkVNa1yE=cadena6. diff --git a/adventure-test-project/assets/model/borrame.ink.json b/adventure-test-project/assets/model/borrame.ink.json new file mode 100644 index 0000000..c4fc5fa --- /dev/null +++ b/adventure-test-project/assets/model/borrame.ink.json @@ -0,0 +1 @@ +{"inkVersion":19,"root":[["ev","str","^hola","/str","/ev",{"temp=":"tmp"},["ev",{"^->":"0.6.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str",{"VAR?":"test"},"/ev",{"*":"0.c-0","flg":3},{"s":["^@/ov5jCx3MG",{"->":"$r","var":true},null]}],"ev","str","^@5iZIZNGn/Q","/str",{"VAR?":"test"},"/ev",{"*":"0.c-1","flg":5},["ev",{"^->":"0.14.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","str","^@1+rhlTdqOQ","/str",{"VAR?":"test"},{"VAR?":"test2"},"&&","/ev",{"*":"0.c-2","flg":7},{"s":["^@nosUA7gKOb",{"->":"$r","var":true},null]}],["ev",{"^->":"0.15.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","/ev",{"*":"0.c-3","flg":2},{"s":["^@7MalaX8Yfq",{"->":"$r","var":true},null]}],"ev","str","^@GF7v+euqeW","/str","/ev",{"*":"0.c-4","flg":4},["ev",{"^->":"0.22.$r1"},{"temp=":"$r"},"str",{"->":".^.s"},[{"#n":"$r1"}],"/str","str","^@1xxHegzf+P","/str",{"VAR?":"tmp"},"str","^hola3","/str","==",{"VAR?":"tmp"},"str","^hola4","/str","!=","&&","/ev",{"*":"0.c-5","flg":7},{"s":["^@jBImWH8vyS",{"->":"$r","var":true},null]}],{"c-0":["ev",{"^->":"0.c-0.$r2"},"/ev",{"temp=":"$r"},{"->":"0.6.s"},[{"#n":"$r2"}],"\n","end",{"->":"0.g-0"},null],"c-1":["\n","end",{"->":"0.g-0"},null],"c-2":["ev",{"^->":"0.c-2.$r2"},"/ev",{"temp=":"$r"},{"->":"0.14.s"},[{"#n":"$r2"}],"^@VN4eL3zkri","\n","end",{"->":"0.g-0"},null],"c-3":["ev",{"^->":"0.c-3.$r2"},"/ev",{"temp=":"$r"},{"->":"0.15.s"},[{"#n":"$r2"}],"\n","^@simouMQ6B6","\n","end",{"->":"0.g-0"},null],"c-4":["\n","end",{"->":"0.g-0"},null],"c-5":["ev",{"^->":"0.c-5.$r2"},"/ev",{"temp=":"$r"},{"->":"0.22.s"},[{"#n":"$r2"}],"^@QiFowyJ732","\n","ev",{"VAR?":"tmp"},"str","^hola2","/str","==","/ev",[{"->":".^.b","c":true},{"b":["\n","^@tg0SG0OKOA","\n",{"->":"0.c-5.16"},null]}],"nop","\n","end","^@3BFkVNa1yE","\n",{"->":"0.g-0"},null],"g-0":["done",null]}],"done",{"global decl":["ev",1,{"VAR=":"test"},1,{"VAR=":"test2"},"/ev","end",null]}],"listDefs":{}} \ No newline at end of file diff --git a/adventure-test-project/assets/model/borrame.ink.json.tsv b/adventure-test-project/assets/model/borrame.ink.json.tsv new file mode 100644 index 0000000..fa3de8b --- /dev/null +++ b/adventure-test-project/assets/model/borrame.ink.json.tsv @@ -0,0 +1,13 @@ +/ov5jCx3MG cadena1. +5iZIZNGn/Q cadena2. +1+rhlTdqOQ cadena32. +nosUA7gKOb cadena31. +7MalaX8Yfq cadena4. +GF7v+euqeW cadena7. +1xxHegzf+P cadena9. +jBImWH8vyS cadena8 +VN4eL3zkri cadena33. +simouMQ6B6 cadena5. +QiFowyJ732 cadena10 +tg0SG0OKOA xxx +3BFkVNa1yE cadena6. diff --git a/adventure-test-project/assets/model/borrame.ink.json.txt b/adventure-test-project/assets/model/borrame.ink.json.txt new file mode 100644 index 0000000..5c75925 --- /dev/null +++ b/adventure-test-project/assets/model/borrame.ink.json.txt @@ -0,0 +1,22 @@ + * cadena1. (/ov5jCx3MG) +cadena2. (5iZIZNGn/Q) +cadena32. (1+rhlTdqOQ) + * cadena31. (nosUA7gKOb) + * cadena4. (7MalaX8Yfq) +cadena7. (GF7v+euqeW) +cadena9. (1xxHegzf+P) + * cadena8 (jBImWH8vyS) + + + +cadena33. (VN4eL3zkri) + +cadena5. (simouMQ6B6) + + +cadena10 (QiFowyJ732) +xxx (tg0SG0OKOA) +cadena6. (3BFkVNa1yE) + + +==== global decl ==== 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/assets/model/ui.chapter.json b/adventure-test-project/assets/model/ui.chapter.json new file mode 100644 index 0000000..32ff560 --- /dev/null +++ b/adventure-test-project/assets/model/ui.chapter.json @@ -0,0 +1,953 @@ +{ +bladeEngineVersion: "4.0.1-SNAPSHOT", +sounds: {}, +scenes: { + config: { + id: "config", + layers: [ + { + name: "foreground" + }, + { + name: "dynamic", + dynamic: true + }, + { + name: "background" + } + ], + actors: { + back: { + class: "SpriteActor", + id: "back", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + pos: { + x: 221.87976, + y: 961.4791 + }, + visible: true, + refPoint: {}, + verbs: { + action: { + id: "action", + actions: [ + { + class: "Leave", + scene: "menu", + init: true + } + ] + } + }, + interaction: true, + zIndex: 0, + layer: "foreground", + renderer: { + class: "TextRenderer", + text: "@config.back.text", + fontName: "PaytoneOne", + fontSize: 80, + borderWidth: 0, + borderColor: { + a: 1 + }, + borderStraight: true, + shadowOffsetX: 0, + shadowOffsetY: 0, + shadowColor: { + a: 1 + }, + align: 8, + orgAlign: 0 + }, + tint: { + g: 1, + b: 0.9490196, + a: 1 + }, + scaleX: 1, + scaleY: 1, + rot: 0, + fakeDepth: false, + bboxFromRenderer: true + } + }, + musicDesc: null, + verbs: {}, + walkZone: null + }, + credits: { + id: "credits", + layers: [ + { + name: "foreground" + }, + { + name: "dynamic", + dynamic: true + }, + { + name: "background" + } + ], + actors: { + text: { + class: "SpriteActor", + id: "text", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + pos: { + x: 982.0786, + y: -976.0521 + }, + visible: true, + refPoint: {}, + verbs: {}, + interaction: false, + zIndex: 0, + layer: "foreground", + renderer: { + class: "TextRenderer", + text: "@credits.text.text", + fontName: "PaytoneOne", + fontSize: 120, + borderWidth: 0, + borderColor: { + a: 1 + }, + borderStraight: true, + shadowOffsetX: 0, + shadowOffsetY: 0, + shadowColor: { + a: 1 + }, + align: 1, + orgAlign: 0 + }, + tint: { + r: 1, + g: 1, + b: 1, + a: 1 + }, + scaleX: 1, + scaleY: 1, + rot: 0, + fakeDepth: false, + bboxFromRenderer: true + } + }, + musicDesc: null, + verbs: { + init: { + id: "init", + actions: [ + { + class: "Cutmode", + value: true + }, + { + class: "PositionAnim", + actor: "text", + target: "text", + pos: "0.0,2000.0", + speed: 5, + mode: "DURATION", + count: -1, + wait: true, + repeat: "NO_REPEAT" + }, + { + class: "Leave", + scene: "menu", + init: true + } + ] + } + }, + walkZone: null + }, + help: { + id: "help", + layers: [ + { + name: "foreground" + }, + { + name: "dynamic", + dynamic: true + }, + { + name: "background" + } + ], + actors: { + back: { + class: "SpriteActor", + id: "back", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + pos: { + x: 221.87976, + y: 961.4791 + }, + visible: true, + refPoint: {}, + verbs: { + action: { + id: "action", + actions: [ + { + class: "Leave", + scene: "menu", + init: true + } + ] + } + }, + interaction: true, + zIndex: 0, + layer: "foreground", + renderer: { + class: "TextRenderer", + text: "@help.back.text", + fontName: "PaytoneOne", + fontSize: 80, + borderWidth: 0, + borderColor: { + a: 1 + }, + borderStraight: true, + shadowOffsetX: 0, + shadowOffsetY: 0, + shadowColor: { + a: 1 + }, + align: 8, + orgAlign: 0 + }, + tint: { + g: 1, + b: 0.9490196, + a: 1 + }, + scaleX: 1, + scaleY: 1, + rot: 0, + fakeDepth: false, + bboxFromRenderer: true + } + }, + musicDesc: null, + verbs: {}, + walkZone: null + }, + menu: { + id: "menu", + layers: [ + { + name: "foreground" + }, + { + name: "dynamic", + dynamic: true + }, + { + name: "background" + } + ], + actors: { + config: { + class: "SpriteActor", + id: "config", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + pos: { + x: 964.2184, + y: 583.46185 + }, + visible: true, + refPoint: {}, + verbs: { + "pointer-exit": { + id: "pointer-exit", + actions: [ + { + class: "ScaleAnim", + actor: "config", + scale: 1, + speed: 0.3, + count: -1, + wait: true, + repeat: "NO_REPEAT", + interpolation: "FADE" + } + ] + }, + action: { + id: "action", + actions: [ + { + class: "Leave", + scene: "config", + init: true + } + ] + }, + "pointer-enter": { + id: "pointer-enter", + actions: [ + { + class: "ScaleAnim", + actor: "config", + scale: 1.3, + speed: 0.3, + count: -1, + wait: true, + repeat: "NO_REPEAT", + interpolation: "FADE" + } + ] + } + }, + interaction: true, + zIndex: 0, + layer: "foreground", + renderer: { + class: "TextRenderer", + text: "@menu.config.text1", + fontName: "PaytoneOne", + fontSize: 80, + borderWidth: 0, + borderColor: { + a: 1 + }, + borderStraight: true, + shadowOffsetX: 0, + shadowOffsetY: 0, + shadowColor: { + a: 1 + }, + align: 8, + orgAlign: 0 + }, + tint: { + g: 1, + b: 0.9490196, + a: 1 + }, + scaleX: 1, + scaleY: 1, + rot: 0, + fakeDepth: false, + bboxFromRenderer: true + }, + continue: { + class: "SpriteActor", + id: "continue", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + pos: { + x: 964.2184, + y: 816.29877 + }, + visible: true, + refPoint: {}, + verbs: { + "pointer-exit": { + id: "pointer-exit", + actions: [ + { + class: "ScaleAnim", + actor: "continue", + scale: 1, + speed: 0.3, + count: -1, + wait: true, + repeat: "NO_REPEAT", + interpolation: "FADE" + } + ] + }, + action: { + id: "action", + actions: [ + { + class: "com.bladecoder.engine.actions.ui.UIContinue" + } + ] + }, + "pointer-enter": { + id: "pointer-enter", + actions: [ + { + class: "ScaleAnim", + actor: "continue", + scale: 1.3, + speed: 0.3, + count: -1, + wait: true, + repeat: "NO_REPEAT", + interpolation: "FADE" + } + ] + } + }, + interaction: false, + zIndex: 0, + layer: "foreground", + renderer: { + class: "TextRenderer", + text: "@scene-1.continue.text", + fontName: "PaytoneOne", + fontSize: 80, + borderWidth: 0, + borderColor: { + a: 1 + }, + borderStraight: true, + shadowOffsetX: 0, + shadowOffsetY: 0, + shadowColor: { + a: 1 + }, + align: 8, + orgAlign: 0 + }, + tint: { + g: 1, + b: 0.9490196, + a: 0.09803922 + }, + scaleX: 1, + scaleY: 1, + rot: 0, + fakeDepth: false, + bboxFromRenderer: true + }, + credits: { + class: "SpriteActor", + id: "credits", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + pos: { + x: 961.47906, + y: 361.58194 + }, + visible: true, + refPoint: {}, + verbs: { + "pointer-exit": { + id: "pointer-exit", + actions: [ + { + class: "ScaleAnim", + actor: "credits", + scale: 1, + speed: 0.3, + count: -1, + wait: true, + repeat: "NO_REPEAT", + interpolation: "FADE" + } + ] + }, + action: { + id: "action", + actions: [ + { + class: "Leave", + scene: "credits", + init: true + } + ] + }, + "pointer-enter": { + id: "pointer-enter", + actions: [ + { + class: "ScaleAnim", + actor: "credits", + scale: 1.3, + speed: 0.3, + count: -1, + wait: true, + repeat: "NO_REPEAT", + interpolation: "FADE" + } + ] + } + }, + interaction: true, + zIndex: 0, + layer: "foreground", + renderer: { + class: "TextRenderer", + text: "@menu.credits.text1", + fontName: "PaytoneOne", + fontSize: 80, + borderWidth: 0, + borderColor: { + a: 1 + }, + borderStraight: true, + shadowOffsetX: 0, + shadowOffsetY: 0, + shadowColor: { + a: 1 + }, + align: 8, + orgAlign: 0 + }, + tint: { + g: 1, + b: 0.9490196, + a: 1 + }, + scaleX: 1, + scaleY: 1, + rot: 0, + fakeDepth: false, + bboxFromRenderer: true + }, + eng: { + class: "SpriteActor", + id: "eng", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + pos: { + x: 1610.993, + y: 285.3479 + }, + visible: true, + refPoint: {}, + verbs: { + action: { + id: "action", + actions: [ + { + class: "com.bladecoder.engine.actions.ui.UISetConfigProperty", + name: "lang", + value: "en" + }, + { + class: "RunVerb", + verb: "set-lang", + wait: true + } + ] + } + }, + interaction: true, + zIndex: 0, + layer: "foreground", + renderer: { + class: "TextRenderer", + text: "@menu.eng.text1", + fontName: "PaytoneOne", + fontSize: 50, + borderWidth: 0, + borderColor: { + a: 1 + }, + borderStraight: true, + shadowOffsetX: 0, + shadowOffsetY: 0, + shadowColor: { + a: 1 + }, + align: 8, + orgAlign: 4 + }, + tint: { + g: 1, + b: 0.9490196, + a: 1 + }, + scaleX: 1, + scaleY: 1, + rot: 0, + fakeDepth: false, + bboxFromRenderer: true + }, + esp: { + class: "SpriteActor", + id: "esp", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + pos: { + x: 1623.1903, + y: 285.3479 + }, + visible: true, + refPoint: {}, + verbs: { + action: { + id: "action", + actions: [ + { + class: "com.bladecoder.engine.actions.ui.UISetConfigProperty", + name: "lang", + value: "es" + }, + { + class: "RunVerb", + verb: "set-lang", + wait: true + } + ] + } + }, + interaction: true, + zIndex: 0, + layer: "foreground", + renderer: { + class: "TextRenderer", + text: "@menu.esp.text1", + fontName: "PaytoneOne", + fontSize: 50, + borderWidth: 0, + borderColor: { + a: 1 + }, + borderStraight: true, + shadowOffsetX: 0, + shadowOffsetY: 0, + shadowColor: { + a: 1 + }, + align: 8, + orgAlign: 4 + }, + tint: { + g: 1, + b: 0.9490196, + a: 1 + }, + scaleX: 1, + scaleY: 1, + rot: 0, + fakeDepth: false, + bboxFromRenderer: true + }, + exit: { + class: "SpriteActor", + id: "exit", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + pos: { + x: 968.7663, + y: 229.83932 + }, + visible: true, + refPoint: {}, + verbs: { + action: { + id: "action", + actions: [ + { + class: "com.bladecoder.engine.actions.ui.UIExit" + } + ] + } + }, + interaction: true, + zIndex: 0, + layer: "foreground", + renderer: { + class: "TextRenderer", + text: "@scene-1.exit.text", + fontName: "PaytoneOne", + fontSize: 80, + borderWidth: 0, + borderColor: { + a: 1 + }, + borderStraight: true, + shadowOffsetX: 0, + shadowOffsetY: 0, + shadowColor: { + a: 1 + }, + align: 8, + orgAlign: 0 + }, + tint: { + g: 1, + b: 0.9490196, + a: 1 + }, + scaleX: 1, + scaleY: 1, + rot: 0, + fakeDepth: false, + bboxFromRenderer: true + }, + help: { + class: "SpriteActor", + id: "help", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + pos: { + x: 961.4791, + y: 465.67365 + }, + visible: true, + refPoint: {}, + verbs: { + "pointer-exit": { + id: "pointer-exit", + actions: [ + { + class: "ScaleAnim", + actor: "help", + scale: 1, + speed: 0.3, + count: -1, + wait: true, + repeat: "NO_REPEAT", + interpolation: "FADE" + } + ] + }, + action: { + id: "action", + actions: [ + { + class: "Leave", + scene: "help", + init: true + } + ] + }, + "pointer-enter": { + id: "pointer-enter", + actions: [ + { + class: "ScaleAnim", + actor: "help", + scale: 1.3, + speed: 0.3, + count: -1, + wait: true, + repeat: "NO_REPEAT", + interpolation: "FADE" + } + ] + } + }, + interaction: true, + zIndex: 0, + layer: "foreground", + renderer: { + class: "TextRenderer", + text: "@menu.help.text1", + fontName: "PaytoneOne", + fontSize: 80, + borderWidth: 0, + borderColor: { + a: 1 + }, + borderStraight: true, + shadowOffsetX: 0, + shadowOffsetY: 0, + shadowColor: { + a: 1 + }, + align: 8, + orgAlign: 0 + }, + tint: { + g: 1, + b: 0.9490196, + a: 1 + }, + scaleX: 1, + scaleY: 1, + rot: 0, + fakeDepth: false, + bboxFromRenderer: true + }, + new: { + class: "SpriteActor", + id: "new", + bbox: [ 0, 0, 0, 0, 0, 0, 0, 0 ], + pos: { + x: 953.26135, + y: 701.25 + }, + visible: true, + refPoint: {}, + verbs: { + "pointer-exit": { + id: "pointer-exit", + actions: [ + { + class: "ScaleAnim", + actor: "new", + scale: 1, + speed: 0.3, + count: -1, + wait: true, + repeat: "NO_REPEAT", + interpolation: "FADE" + } + ] + }, + action: { + id: "action", + actions: [ + { + class: "com.bladecoder.engine.actions.ui.UINewGame" + } + ] + }, + "pointer-enter": { + id: "pointer-enter", + actions: [ + { + class: "ScaleAnim", + actor: "new", + scale: 1.3, + speed: 0.3, + count: -1, + wait: true, + repeat: "NO_REPEAT", + interpolation: "FADE" + } + ] + } + }, + interaction: true, + zIndex: 0, + layer: "foreground", + renderer: { + class: "TextRenderer", + text: "@scene-1.new.text1", + fontName: "PaytoneOne", + fontSize: 80, + borderWidth: 0, + borderColor: { + a: 1 + }, + borderStraight: true, + shadowOffsetX: 0, + shadowOffsetY: 0, + shadowColor: { + a: 1 + }, + align: 8, + orgAlign: 0 + }, + tint: { + g: 1, + b: 0.9490196, + a: 1 + }, + scaleX: 1, + scaleY: 1, + rot: 0, + fakeDepth: false, + bboxFromRenderer: true + } + }, + musicDesc: null, + verbs: { + init: { + id: "init", + actions: [ + { + class: "RunOnce", + caID: "2071282574" + }, + { + class: "com.bladecoder.engine.actions.ui.UIInitPrefs" + }, + { + class: "ShowInventory", + value: false + }, + { + class: "End", + caID: "2071282574" + }, + { + class: "com.bladecoder.engine.actions.ui.UIIfShowContinue", + caID: "1018946114" + }, + { + class: "SetActorAttr", + actor: "continue", + interaction: true, + tint: "00fff2ff" + }, + { + class: "End", + caID: "1018946114" + }, + { + class: "SetActorAttr", + actor: "continue", + interaction: false, + tint: "00fff21b" + }, + { + class: "End", + caID: "1018946114" + }, + { + class: "RunVerb", + verb: "set-lang", + wait: true + } + ] + }, + "set-lang": { + id: "set-lang", + actions: [ + { + class: "com.bladecoder.engine.actions.ui.UISetLang" + }, + { + class: "Comment", + comment: "Ocultar todos los idiomas", + debug: false + }, + { + class: "SetActorAttr", + actor: "eng", + visible: false + }, + { + class: "SetActorAttr", + actor: "esp", + visible: false + }, + { + class: "Comment", + comment: "Mostrar el seleccionado", + debug: false + }, + { + class: "IfProperty", + name: "lang", + value: "en", + caID: "853594509" + }, + { + class: "SetActorAttr", + actor: "esp", + visible: true + }, + { + class: "End", + caID: "853594509" + }, + { + class: "SetActorAttr", + actor: "eng", + visible: true + }, + { + class: "End", + caID: "853594509" + } + ] + } + }, + walkZone: null + } +}, +initScene: "menu" +} \ No newline at end of file diff --git a/adventure-test-project/assets/model/ui.properties b/adventure-test-project/assets/model/ui.properties new file mode 100644 index 0000000..0c389dc --- /dev/null +++ b/adventure-test-project/assets/model/ui.properties @@ -0,0 +1,11 @@ +config.back.text=< Back +credits.text.text=Esta\nes\nla\npantalla\nde\ncréditos. +help.back.text=< Back +menu.config.text1=Config +menu.credits.text1=Credits +menu.eng.text1=Cambiar a Inglés +menu.esp.text1=Cambiar a Español +menu.help.text1=Help +scene-1.continue.text=Continue +scene-1.exit.text=Exit +scene-1.new.text1=New Game diff --git a/adventure-test-project/assets/model/ui_es.properties b/adventure-test-project/assets/model/ui_es.properties new file mode 100644 index 0000000..3f34cb5 --- /dev/null +++ b/adventure-test-project/assets/model/ui_es.properties @@ -0,0 +1,9 @@ +config.back.text=< Atrás +credits.text.text=Esta\nes\nla\npantalla\nde\ncréditos. +help.back.text=< Atrás +menu.config.text1=Configuración +menu.credits.text1=Créditos +menu.help.text1=Ayuda +scene-1.continue.text=Continuar +scene-1.exit.text=Salir +scene-1.new.text1=Nuevo juego diff --git a/adventure-test-project/assets/model/world b/adventure-test-project/assets/model/world index 2a2e25a..2c05f2b 100644 --- a/adventure-test-project/assets/model/world +++ b/adventure-test-project/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_es.properties b/adventure-test-project/assets/model/world_es.properties new file mode 100644 index 0000000..675cef5 --- /dev/null +++ b/adventure-test-project/assets/model/world_es.properties @@ -0,0 +1,18 @@ +default.lookat.0.text=No estoy interesado. +default.pickup.0.text=¿Para qué? +default.use.0.text=I don't know what to do with that. +ui.back=Atrás +ui.continue=Continuar +ui.credits=Credits +ui.help=Help +ui.load=Load/Save +ui.new=New Game +ui.newSlot=Save Game +ui.no=NO +ui.noSavedGames=No se han encontrado juegos guardados. +ui.override=The current game progress will be lost. Are you sure you want to start a new game? +ui.override_load=The current game progress will be lost. Are you sure you want to load this game? +ui.quit=Exit +ui.remove=Are you sure you want to remove this saved game? +ui.save=Save Game +ui.yes=YES diff --git a/adventure-test-project/core/src/main/java/com/bladecoder/engine/SceneMenuScreen.java b/adventure-test-project/core/src/main/java/com/bladecoder/engine/SceneMenuScreen.java new file mode 100644 index 0000000..a84556d --- /dev/null +++ b/adventure-test-project/core/src/main/java/com/bladecoder/engine/SceneMenuScreen.java @@ -0,0 +1,122 @@ +/******************************************************************************* + * Copyright 2014 Rafael Garcia Moreno. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package com.bladecoder.engine; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input.Peripheral; +import com.bladecoder.engine.assets.EngineAssetManager; +import com.bladecoder.engine.model.InteractiveActor; +import com.bladecoder.engine.model.World; +import com.bladecoder.engine.model.World.AssetState; +import com.bladecoder.engine.ui.UI; +import com.bladecoder.engine.ui.defaults.DefaultSceneScreen; +import com.bladecoder.engine.util.EngineLogger; + +public class SceneMenuScreen extends DefaultSceneScreen { + private static final String POINTER_ENTER_VERB = "pointer-enter"; + private static final String POINTER_EXIT_VERB = "pointer-exit"; + private static final String START_VERB = "start"; + + private World uiWorld; + + private InteractiveActor pointerInActor = null; + + private boolean startVerbLaunched = false; + + @Override + public void setUI(final UI ui) { + uiWorld = new World(); + + super.setUI(ui); + getMenuButton().setVisible(false); + setShowHotspotsFeature(false); + } + + @Override + public World getWorld() { + return uiWorld; + } + + @Override + public void render(float delta) { + final World world = getWorld(); + + if (world.getAssetState() == AssetState.LOAD_ASSETS + || world.getAssetState() == AssetState.LOAD_ASSETS_AND_INIT_SCENE) { + // Load assets to avoid change to the LOADING_SCREEN + world.update(delta); + + if (world.getAssetState() != AssetState.LOADED) { + EngineAssetManager.getInstance().finishLoading(); + } + } + + if (!startVerbLaunched) { + startVerbLaunched = true; + if (world.getCurrentScene().getVerb(START_VERB) != null + || world.getVerbManager().getVerb(START_VERB, null, null) != null) { + world.getCurrentScene().runVerb(START_VERB); + + return; + } + } + + super.render(delta); + + runPointerEnterExitVerb(world); + } + + private void runPointerEnterExitVerb(final World world) { + if (world.getAssetState() != AssetState.LOADED || Gdx.input.isPeripheralAvailable(Peripheral.MultitouchScreen) + || world.inCutMode() || world.hasDialogOptions() || world.isPaused()) { + return; + } + + InteractiveActor newPointerInActor = getWorld().getInteractiveActorAtInput(getViewport(), 0); + + if (newPointerInActor != pointerInActor) { + if (pointerInActor != null && world.getCurrentScene().getActor(pointerInActor.getId(), true) != null + && pointerInActor.getVerb(POINTER_EXIT_VERB) != null) { + pointerInActor.runVerb(POINTER_EXIT_VERB, null); + } + + pointerInActor = newPointerInActor; + + if (pointerInActor != null && pointerInActor.getVerb(POINTER_ENTER_VERB) != null) { + pointerInActor.runVerb(POINTER_ENTER_VERB, null); + } + } + } + + @Override + public void hide() { + getWorld().dispose(); + } + + @Override + public void show() { + try { + uiWorld.loadWorldDesc(); + uiWorld.loadChapter("ui", null, false); + } catch (Exception e) { + // dispose(); + EngineLogger.error("EXITING: " + e.getMessage()); + Gdx.app.exit(); + } + + super.show(); + } +} diff --git a/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/Hotspots.java b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/Hotspots.java new file mode 100644 index 0000000..7a0de38 --- /dev/null +++ b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/Hotspots.java @@ -0,0 +1,44 @@ +/******************************************************************************* + * Copyright 2014 Rafael Garcia Moreno. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package com.bladecoder.engine.actions; + +import com.bladecoder.engine.BladeEngine; +import com.bladecoder.engine.model.VerbRunner; +import com.bladecoder.engine.model.World; +import com.bladecoder.engine.ui.UI; +import com.bladecoder.engine.ui.UI.Screens; +import com.bladecoder.engine.ui.defaults.DefaultSceneScreen; + +@ActionDescription("Enable/disable hotspot feature.") +public class Hotspots implements Action { + + @ActionProperty(required = true) + @ActionPropertyDescription("Hotspots enabled?") + private boolean enable; + + @Override + public void init(World w) { + } + + @Override + public boolean run(VerbRunner cb) { + UI ui = BladeEngine.getAppUI(); + DefaultSceneScreen sceneScreen = (DefaultSceneScreen) ui.getScreen(Screens.SCENE_SCREEN); + sceneScreen.setShowHotspotsFeature(enable); + + return false; + } +} diff --git a/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/IfIntegerPropertyAction.java b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/IfIntegerPropertyAction.java new file mode 100644 index 0000000..16ff946 --- /dev/null +++ b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/IfIntegerPropertyAction.java @@ -0,0 +1,82 @@ +/******************************************************************************* + * Copyright 2014 Rafael Garcia Moreno. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package com.bladecoder.engine.actions; + +import com.bladecoder.engine.model.VerbRunner; +import com.bladecoder.engine.model.World; +import com.bladecoder.engine.util.Config; +import com.bladecoder.engine.util.EngineLogger; + +@ActionDescription("Execute actions inside the If/EndIf if the game property is an integer number and meets the condition.") +public class IfIntegerPropertyAction extends AbstractIfAction { + + public enum ComparisonType { + EQUALS, GREATER, LESS, GREATER_EQUALS, LESS_EQUALS + } + + @ActionProperty(required = true, defaultValue = "EQUALS") + @ActionPropertyDescription("The comparison type") + private ComparisonType comparison; + + @ActionProperty(required = true) + @ActionPropertyDescription("The property name") + private String prop; + + @ActionProperty(required = true, defaultValue = "0") + @ActionPropertyDescription("The property value") + private String value; + + private World w; + + @Override + public void init(World w) { + this.w = w; + } + + @Override + public boolean run(VerbRunner cb) { + String valDest = w.getCustomProperty(prop); + int currentVal = 0; + int iValue = 0; + + if (valDest == null) + valDest = Config.getInstance().getProperty(prop, null); + + if (valDest == null) + valDest = Config.getInstance().getPref(prop, null); + + if (valDest != null) { + try { + currentVal = Integer.parseInt(valDest); + iValue = Integer.parseInt(value); + } catch (NumberFormatException e) { + EngineLogger.error("Property has not an integer value: " + prop + "=" + valDest); + return false; + } + } + + if ((comparison == ComparisonType.EQUALS && iValue != currentVal) + || (comparison == ComparisonType.GREATER && iValue >= currentVal) + || (comparison == ComparisonType.LESS && iValue <= currentVal) + || (comparison == ComparisonType.GREATER_EQUALS && iValue > currentVal) + || (comparison == ComparisonType.LESS_EQUALS && iValue < currentVal)) { + gotoElse(cb); + } + + return false; + } + +} diff --git a/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/MenuButtonVisibility.java b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/MenuButtonVisibility.java new file mode 100644 index 0000000..8051390 --- /dev/null +++ b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/MenuButtonVisibility.java @@ -0,0 +1,48 @@ +/******************************************************************************* + * Copyright 2014 Rafael Garcia Moreno. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package com.bladecoder.engine.actions.ui; + +import com.bladecoder.engine.BladeEngine; +import com.bladecoder.engine.actions.Action; +import com.bladecoder.engine.actions.ActionDescription; +import com.bladecoder.engine.actions.ActionProperty; +import com.bladecoder.engine.actions.ActionPropertyDescription; +import com.bladecoder.engine.model.VerbRunner; +import com.bladecoder.engine.model.World; +import com.bladecoder.engine.ui.UI; +import com.bladecoder.engine.ui.UI.Screens; +import com.bladecoder.engine.ui.defaults.DefaultSceneScreen; + +@ActionDescription("Change the menu button visibility.") +public class MenuButtonVisibility implements Action { + + @ActionProperty(required = true) + @ActionPropertyDescription("Menu Button visibility.") + private boolean visible; + + @Override + public void init(World w) { + } + + @Override + public boolean run(VerbRunner cb) { + UI ui = BladeEngine.getAppUI(); + DefaultSceneScreen sceneScreen = (DefaultSceneScreen) ui.getScreen(Screens.SCENE_SCREEN); + sceneScreen.getMenuButton().setVisible(visible); + + return false; + } +} diff --git a/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/StaticTmpProps.java b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/StaticTmpProps.java new file mode 100644 index 0000000..15f9b00 --- /dev/null +++ b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/StaticTmpProps.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * Copyright 2014 Rafael Garcia Moreno. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package com.bladecoder.engine.actions.ui; + +import java.util.Map.Entry; +import java.util.Properties; + +import com.bladecoder.engine.BladeEngine; +import com.bladecoder.engine.actions.Action; +import com.bladecoder.engine.actions.ActionDescription; +import com.bladecoder.engine.actions.ActionProperty; +import com.bladecoder.engine.actions.ActionPropertyDescription; +import com.bladecoder.engine.model.VerbRunner; +import com.bladecoder.engine.model.World; +import com.bladecoder.engine.ui.UI; + +@ActionDescription("Temporal properties persistence between chapters.") +public class StaticTmpProps implements Action { + private enum Operation { + RESET, SAVE, LOAD + }; + + private static final Properties tmp = new Properties(); + + @ActionProperty(required = true) + @ActionPropertyDescription("The system.") + private Operation operation = Operation.RESET; + + @Override + public void init(World w) { + } + + @Override + public boolean run(VerbRunner cb) { + + UI ui = BladeEngine.getAppUI(); + World world = ui.getWorld(); + + if (operation == Operation.RESET) { + tmp.clear(); + } else if (operation == Operation.SAVE) { + tmp.clear(); + tmp.putAll(world.getCustomProperties()); + } else if (operation == Operation.LOAD) { + for (Entry entry : tmp.entrySet()) { + world.getCustomProperties().put((String) entry.getKey(), (String) entry.getValue()); + } + } + + return false; + } +} diff --git a/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UIContinue.java b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UIContinue.java new file mode 100644 index 0000000..f81fdbc --- /dev/null +++ b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UIContinue.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright 2014 Rafael Garcia Moreno. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package com.bladecoder.engine.actions.ui; + +import com.badlogic.gdx.Gdx; +import com.bladecoder.engine.BladeEngine; +import com.bladecoder.engine.actions.Action; +import com.bladecoder.engine.actions.ActionDescription; +import com.bladecoder.engine.model.VerbRunner; +import com.bladecoder.engine.model.World; +import com.bladecoder.engine.ui.UI; +import com.bladecoder.engine.ui.UI.Screens; + +@ActionDescription("Continue.") +public class UIContinue implements Action { + + @Override + public void init(World w) { + + } + + @Override + public boolean run(VerbRunner cb) { + UI ui = BladeEngine.getAppUI(); + World world = ui.getWorld(); + + if (world.getCurrentScene() == null) { + try { + world.load(); + } catch (Exception e) { + Gdx.app.exit(); + } + } + + ui.setCurrentScreen(Screens.SCENE_SCREEN); + + return false; + } +} diff --git a/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UIExit.java b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UIExit.java new file mode 100644 index 0000000..a917c98 --- /dev/null +++ b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UIExit.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright 2014 Rafael Garcia Moreno. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package com.bladecoder.engine.actions.ui; + +import com.badlogic.gdx.Gdx; +import com.bladecoder.engine.actions.Action; +import com.bladecoder.engine.actions.ActionDescription; +import com.bladecoder.engine.model.VerbRunner; +import com.bladecoder.engine.model.World; + +@ActionDescription("Exits to the desktop.") +public class UIExit implements Action { + + @Override + public void init(World w) { + } + + @Override + public boolean run(VerbRunner cb) { + Gdx.app.exit(); + + return false; + } +} diff --git a/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UIIfShowContinue.java b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UIIfShowContinue.java new file mode 100644 index 0000000..e3fbdbc --- /dev/null +++ b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UIIfShowContinue.java @@ -0,0 +1,41 @@ +/******************************************************************************* + * Copyright 2014 Rafael Garcia Moreno. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package com.bladecoder.engine.actions.ui; + +import com.bladecoder.engine.BladeEngine; +import com.bladecoder.engine.actions.AbstractIfAction; +import com.bladecoder.engine.actions.ActionDescription; +import com.bladecoder.engine.model.VerbRunner; +import com.bladecoder.engine.model.World; + +@ActionDescription("Show the continue button?") +public class UIIfShowContinue extends AbstractIfAction { + + @Override + public void init(World w) { + } + + @Override + public boolean run(VerbRunner cb) { + World world = BladeEngine.getAppUI().getWorld(); + + if (!world.savedGameExists() && world.getCurrentScene() == null) { + gotoElse(cb); + } + + return false; + } +} diff --git a/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UIInitPrefs.java b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UIInitPrefs.java new file mode 100644 index 0000000..f6fe595 --- /dev/null +++ b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UIInitPrefs.java @@ -0,0 +1,43 @@ +/******************************************************************************* + * Copyright 2014 Rafael Garcia Moreno. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package com.bladecoder.engine.actions.ui; + +import com.bladecoder.engine.actions.Action; +import com.bladecoder.engine.actions.ActionDescription; +import com.bladecoder.engine.model.MusicManager; +import com.bladecoder.engine.model.SceneSoundManager; +import com.bladecoder.engine.model.VerbRunner; +import com.bladecoder.engine.model.VoiceManager; +import com.bladecoder.engine.model.World; +import com.bladecoder.engine.util.Config; + +@ActionDescription("Sets the volume based on preferences.") +public class UIInitPrefs implements Action { + + @Override + public void init(World w) { + } + + @Override + public boolean run(VerbRunner cb) { + + MusicManager.VOLUME_MULTIPLIER = Float.parseFloat(Config.getInstance().getPref("MUSIC_VOLUME", "1")); + SceneSoundManager.VOLUME_MULTIPLIER = Float.parseFloat(Config.getInstance().getPref("EFFECTS_VOLUME", "1")); + VoiceManager.VOLUME_MULTIPLIER = Float.parseFloat(Config.getInstance().getPref("VOICES_VOLUME", "1")); + + return false; + } +} diff --git a/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UILoadGameScreen.java b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UILoadGameScreen.java new file mode 100644 index 0000000..83ef76b --- /dev/null +++ b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UILoadGameScreen.java @@ -0,0 +1,40 @@ +/******************************************************************************* + * Copyright 2014 Rafael Garcia Moreno. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package com.bladecoder.engine.actions.ui; + +import com.bladecoder.engine.BladeEngine; +import com.bladecoder.engine.actions.Action; +import com.bladecoder.engine.actions.ActionDescription; +import com.bladecoder.engine.model.VerbRunner; +import com.bladecoder.engine.model.World; +import com.bladecoder.engine.ui.UI; +import com.bladecoder.engine.ui.UI.Screens; + +@ActionDescription("Exits to the desktop.") +public class UILoadGameScreen implements Action { + + @Override + public void init(World w) { + } + + @Override + public boolean run(VerbRunner cb) { + UI ui = BladeEngine.getAppUI(); + ui.setCurrentScreen(Screens.LOAD_GAME_SCREEN); + + return false; + } +} diff --git a/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UINewGame.java b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UINewGame.java new file mode 100644 index 0000000..fb7b795 --- /dev/null +++ b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UINewGame.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright 2014 Rafael Garcia Moreno. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package com.bladecoder.engine.actions.ui; + +import com.badlogic.gdx.Gdx; +import com.bladecoder.engine.BladeEngine; +import com.bladecoder.engine.actions.Action; +import com.bladecoder.engine.actions.ActionDescription; +import com.bladecoder.engine.model.VerbRunner; +import com.bladecoder.engine.model.World; +import com.bladecoder.engine.ui.UI; +import com.bladecoder.engine.ui.UI.Screens; +import com.bladecoder.engine.util.EngineLogger; + +@ActionDescription("New Game.") +public class UINewGame implements Action { + + @Override + public void init(World w) { + + } + + @Override + public boolean run(VerbRunner cb) { + UI ui = BladeEngine.getAppUI(); + World world = ui.getWorld(); + + try { + world.newGame(); + } catch (Exception e) { + EngineLogger.error("IN NEW GAME", e); + Gdx.app.exit(); + } + + ui.setCurrentScreen(Screens.SCENE_SCREEN); + + return false; + } +} diff --git a/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UISetConfigProperty.java b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UISetConfigProperty.java new file mode 100644 index 0000000..aff7123 --- /dev/null +++ b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UISetConfigProperty.java @@ -0,0 +1,48 @@ +/******************************************************************************* + * Copyright 2014 Rafael Garcia Moreno. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package com.bladecoder.engine.actions.ui; + +import com.bladecoder.engine.actions.Action; +import com.bladecoder.engine.actions.ActionDescription; +import com.bladecoder.engine.actions.ActionProperty; +import com.bladecoder.engine.actions.ActionPropertyDescription; +import com.bladecoder.engine.model.VerbRunner; +import com.bladecoder.engine.model.World; +import com.bladecoder.engine.util.Config; + +@ActionDescription("Sets a game configuration property.") +public class UISetConfigProperty implements Action { + + @ActionProperty(required = true) + @ActionPropertyDescription("Property name") + private String name; + + @ActionProperty + @ActionPropertyDescription("Property value") + private String value; + + @Override + public void init(World w) { + } + + @Override + public boolean run(VerbRunner cb) { + Config.getInstance().setPref(name, value); + Config.getInstance().savePrefs(); + + return false; + } +} diff --git a/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UISetLang.java b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UISetLang.java new file mode 100644 index 0000000..1e0e71f --- /dev/null +++ b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UISetLang.java @@ -0,0 +1,80 @@ +/******************************************************************************* + * Copyright 2014 Rafael Garcia Moreno. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package com.bladecoder.engine.actions.ui; + +import java.util.Locale; + +import com.bladecoder.engine.BladeEngine; +import com.bladecoder.engine.actions.Action; +import com.bladecoder.engine.actions.ActionDescription; +import com.bladecoder.engine.assets.EngineAssetManager; +import com.bladecoder.engine.model.VerbRunner; +import com.bladecoder.engine.model.World; +import com.bladecoder.engine.ui.UI; +import com.bladecoder.engine.util.Config; +import com.bladecoder.engine.util.EngineLogger; + +@ActionDescription("Sets the volume based on preferences.") +public class UISetLang implements Action { + World uiWorld; + + @Override + public void init(World w) { + uiWorld = w; + } + + @Override + public boolean run(VerbRunner cb) { + // Parse languages + UI ui = BladeEngine.getAppUI(); + World w = ui.getWorld(); + String languageProp = Config.getInstance().getProperty("languages", null); + + if (languageProp != null) { + String[] languages = languageProp.split(","); + + // show the current language + String current = Config.getInstance().getPref("lang", w.getI18N().getCurrentLocale().getLanguage()); + + int currentLanguage = 0; + for (int i = 0; i < languages.length; i++) { + if (languages[i].trim().equals(current)) { + currentLanguage = i; + break; + } + } + + Locale l = Locale.ROOT; + + if (currentLanguage != 0) + l = new Locale(languages[currentLanguage].trim()); + + w.getI18N().setLocale(l); + w.getInkManager().loadI18NBundle(); + + uiWorld.getI18N().setLocale(l); + + uiWorld.getCurrentScene().dispose(); + uiWorld.getCurrentScene().loadAssets(); + EngineAssetManager.getInstance().finishLoading(); + uiWorld.getCurrentScene().retrieveAssets(); + } else { + EngineLogger.error("Missing 'languages' property from BladeEngine.properties."); + } + + return false; + } +} diff --git a/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UISetSystemPref.java b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UISetSystemPref.java new file mode 100644 index 0000000..73074c1 --- /dev/null +++ b/adventure-test-project/core/src/main/java/com/bladecoder/engine/actions/ui/UISetSystemPref.java @@ -0,0 +1,80 @@ +/******************************************************************************* + * Copyright 2014 Rafael Garcia Moreno. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package com.bladecoder.engine.actions.ui; + +import com.bladecoder.engine.BladeEngine; +import com.bladecoder.engine.actions.Action; +import com.bladecoder.engine.actions.ActionDescription; +import com.bladecoder.engine.actions.ActionProperty; +import com.bladecoder.engine.actions.ActionPropertyDescription; +import com.bladecoder.engine.model.MusicManager; +import com.bladecoder.engine.model.SceneSoundManager; +import com.bladecoder.engine.model.VerbRunner; +import com.bladecoder.engine.model.VoiceManager; +import com.bladecoder.engine.model.World; +import com.bladecoder.engine.ui.UI; +import com.bladecoder.engine.util.Config; + +@ActionDescription("Sets some preference value for a system.") +public class UISetSystemPref implements Action { + private enum System { + MUSIC_VOLUME, EFFECTS_VOLUME, VOICES_VOLUME + }; + + @ActionProperty(required = true) + @ActionPropertyDescription("The system.") + private System system = System.MUSIC_VOLUME; + + @ActionProperty(required = true) + @ActionPropertyDescription("The value.") + private String value; + + World uiWorld; + + @Override + public void init(World w) { + uiWorld = w; + } + + @Override + public boolean run(VerbRunner cb) { + + UI ui = BladeEngine.getAppUI(); + World gameWorld = ui.getWorld(); + + if (system == System.MUSIC_VOLUME) { + MusicManager.VOLUME_MULTIPLIER = Float.parseFloat(value); + + uiWorld.getMusicManager().setVolume(uiWorld.getMusicManager().getVolume()); + gameWorld.getMusicManager().setVolume(gameWorld.getMusicManager().getVolume()); + + } else if (system == System.EFFECTS_VOLUME) { + SceneSoundManager.VOLUME_MULTIPLIER = Float.parseFloat(value); + } else if (system == System.VOICES_VOLUME) { + VoiceManager.VOLUME_MULTIPLIER = Float.parseFloat(value); + + uiWorld.getCurrentScene().getTextManager().getVoiceManager() + .setVolume(uiWorld.getCurrentScene().getTextManager().getVoiceManager().getVolume()); + gameWorld.getCurrentScene().getTextManager().getVoiceManager() + .setVolume(gameWorld.getCurrentScene().getTextManager().getVoiceManager().getVolume()); + } + + Config.getInstance().setPref(system.name(), value); + Config.getInstance().savePrefs(); + + return false; + } +} diff --git a/adventure-test-project/gradle.properties b/adventure-test-project/gradle.properties index 02db4dd..0ab5fe6 100644 --- a/adventure-test-project/gradle.properties +++ b/adventure-test-project/gradle.properties @@ -1,13 +1,13 @@ android.injected.testOnly=false androidGradlePluginVersion=3.4.1 appName=adventure-test-project -bladeEngineVersion=3.2.3 +bladeEngineVersion=4.0.2-SNAPSHOT bladeInkVersion=0.7.3 -gdxVersion=1.9.10 +gdxVersion=1.9.11 org.gradle.configureondemand=false org.gradle.daemon=true org.gradle.jvmargs=-Xms128m -Xmx1536m -roboVMGradlePluginVersion=2.3.7 +roboVMGradlePluginVersion=2.3.8 roboVMVersion=2.3.8 spinePlugin=false version=19 diff --git a/adventure-test-project/ink-src/borrame.ink b/adventure-test-project/ink-src/borrame.ink new file mode 100644 index 0000000..3b4fd8b --- /dev/null +++ b/adventure-test-project/ink-src/borrame.ink @@ -0,0 +1,25 @@ +VAR test=1 +VAR test2=1 + +~ temp tmp = "hola" + ++ {test} cadena1. +->END ++ {test} [cadena2.] +->END ++ {test}{test2} cadena31. [cadena32.] cadena33. +->END ++ cadena4. +cadena5. +->END + ++ [cadena7.] +-> END + ++ {tmp == "hola3"} {tmp != "hola4"}cadena8 [cadena9.] cadena10 +{tmp == "hola2": + xxx +} +-> END + +cadena6. \ No newline at end of file diff --git a/adventure-test-project/ios/Info.plist.xml b/adventure-test-project/ios/Info.plist.xml index 7b4e115..78f17be 100644 --- a/adventure-test-project/ios/Info.plist.xml +++ b/adventure-test-project/ios/Info.plist.xml @@ -5,7 +5,7 @@ UIRequiresFullScreen yes MinimumOSVersion - 7.0 + 8.0 CFBundleDevelopmentRegion en @@ -40,7 +40,6 @@ UIRequiredDeviceCapabilities - armv7 opengles-2 UISupportedInterfaceOrientations diff --git a/venus/ios/Info.plist.xml b/venus/ios/Info.plist.xml index a5ac88d..d5b23f8 100644 --- a/venus/ios/Info.plist.xml +++ b/venus/ios/Info.plist.xml @@ -5,7 +5,7 @@ UIRequiresFullScreen yes MinimumOSVersion - 7.0 + 8.0 CFBundleDevelopmentRegion en @@ -40,7 +40,6 @@ UIRequiredDeviceCapabilities - armv7 opengles-2 UISupportedInterfaceOrientations