Added a new character and modified the way :setup and :ready events are run.
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
source_md5="775884bdfb6cd21d97cfad838c21e9bf"
|
||||||
|
dest_md5="b8102f3923312032218142342933c554"
|
||||||
|
|
||||||
BIN
.import/8_way_sprite.png-554307c32b89d6eb23c7824829cc57c7.stex
Normal file
BIN
.import/8_way_sprite.png-554307c32b89d6eb23c7824829cc57c7.stex
Normal file
Binary file not shown.
@@ -0,0 +1,3 @@
|
|||||||
|
source_md5="775884bdfb6cd21d97cfad838c21e9bf"
|
||||||
|
dest_md5="b8102f3923312032218142342933c554"
|
||||||
|
|
||||||
BIN
.import/8_way_sprite.png-568812e1f2395752d16a96c6a8b85ab2.stex
Normal file
BIN
.import/8_way_sprite.png-568812e1f2395752d16a96c6a8b85ab2.stex
Normal file
Binary file not shown.
@@ -0,0 +1,3 @@
|
|||||||
|
source_md5="a011714e553b5c8beb096dd703e70e04"
|
||||||
|
dest_md5="39bd434472a546b20bf160ae00fdab6f"
|
||||||
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
source_md5="775884bdfb6cd21d97cfad838c21e9bf"
|
||||||
|
dest_md5="b8102f3923312032218142342933c554"
|
||||||
|
|
||||||
BIN
.import/8_way_sprite2.png-cfac9cc3a5414bcc272f0544c1fc73e3.stex
Normal file
BIN
.import/8_way_sprite2.png-cfac9cc3a5414bcc272f0544c1fc73e3.stex
Normal file
Binary file not shown.
@@ -0,0 +1,3 @@
|
|||||||
|
source_md5="bcaaa988ed64c0174f02d3b1972db74d"
|
||||||
|
dest_md5="a887d7411163c6854ce75592f9e4c0e4"
|
||||||
|
|
||||||
BIN
.import/8_way_stand.png-b515f1b5bf6c623a8ad87a36d1232ab1.stex
Normal file
BIN
.import/8_way_stand.png-b515f1b5bf6c623a8ad87a36d1232ab1.stex
Normal file
Binary file not shown.
@@ -0,0 +1,3 @@
|
|||||||
|
source_md5="bcaaa988ed64c0174f02d3b1972db74d"
|
||||||
|
dest_md5="a887d7411163c6854ce75592f9e4c0e4"
|
||||||
|
|
||||||
BIN
.import/8_way_stand.png-bd624ae15a01b85e2dc1bdd162820a10.stex
Normal file
BIN
.import/8_way_stand.png-bd624ae15a01b85e2dc1bdd162820a10.stex
Normal file
Binary file not shown.
@@ -0,0 +1,3 @@
|
|||||||
|
source_md5="92d6832e31847a4bdde34770570c29e0"
|
||||||
|
dest_md5="f5faae0fbb55fa2cfe197f51e7357794"
|
||||||
|
|
||||||
BIN
.import/8_way_walk.png-1bdb405563d96a981227d9d82934482d.stex
Normal file
BIN
.import/8_way_walk.png-1bdb405563d96a981227d9d82934482d.stex
Normal file
Binary file not shown.
@@ -0,0 +1,3 @@
|
|||||||
|
source_md5="6dc49a667ea96b23d7150c05c0dbdc14"
|
||||||
|
dest_md5="b1a2c1b0d821a5bf36393622e6e4c030"
|
||||||
|
|
||||||
BIN
.import/8_way_walk.png-ecdd71f288ccb9d3bbd77c0a124c4d5c.stex
Normal file
BIN
.import/8_way_walk.png-ecdd71f288ccb9d3bbd77c0a124c4d5c.stex
Normal file
Binary file not shown.
@@ -0,0 +1,3 @@
|
|||||||
|
source_md5="92d6832e31847a4bdde34770570c29e0"
|
||||||
|
dest_md5="f5faae0fbb55fa2cfe197f51e7357794"
|
||||||
|
|
||||||
BIN
.import/walk_template.png-29480f47ba9c811f125e3de60628819b.stex
Normal file
BIN
.import/walk_template.png-29480f47ba9c811f125e3de60628819b.stex
Normal file
Binary file not shown.
@@ -42,7 +42,7 @@ var commands = {
|
|||||||
"cut_scene": { "min_args": 2, "types": [TYPE_STRING, TYPE_STRING, TYPE_BOOL, TYPE_BOOL, TYPE_BOOL] },
|
"cut_scene": { "min_args": 2, "types": [TYPE_STRING, TYPE_STRING, TYPE_BOOL, TYPE_BOOL, TYPE_BOOL] },
|
||||||
"debug": { "min_args": 1 },
|
"debug": { "min_args": 1 },
|
||||||
"dec_global": { "min_args": 2, "types": [TYPE_STRING, TYPE_INT] },
|
"dec_global": { "min_args": 2, "types": [TYPE_STRING, TYPE_INT] },
|
||||||
"dialog_config": { "min_args": 3, "types": [TYPE_STRING, TYPE_BOOL, TYPE_BOOL] },
|
# "dialog_config": { "min_args": 3, "types": [TYPE_STRING, TYPE_BOOL, TYPE_BOOL] },
|
||||||
"enable_terrain": { "min_args": 1, "types": [TYPE_STRING]},
|
"enable_terrain": { "min_args": 1, "types": [TYPE_STRING]},
|
||||||
"game_over": { "min_args": 1, "types": [TYPE_BOOL] },
|
"game_over": { "min_args": 1, "types": [TYPE_BOOL] },
|
||||||
"inc_global": { "min_args": 2, "types": [TYPE_STRING, TYPE_INT] },
|
"inc_global": { "min_args": 2, "types": [TYPE_STRING, TYPE_INT] },
|
||||||
|
|||||||
@@ -272,6 +272,13 @@ func set_global(name, val, force_change_reserved : bool = false):
|
|||||||
# printt("global changed at global_vm, emitting for ", name, val)
|
# printt("global changed at global_vm, emitting for ", name, val)
|
||||||
emit_signal("global_changed", name)
|
emit_signal("global_changed", name)
|
||||||
|
|
||||||
|
func set_globals(pattern : String, val):
|
||||||
|
for key in globals:
|
||||||
|
if key.match(pattern):
|
||||||
|
set_global(key, val)
|
||||||
|
# globals[key] = val
|
||||||
|
# emit_signal("global_changed", key)
|
||||||
|
|
||||||
func dec_global(name, diff):
|
func dec_global(name, diff):
|
||||||
var global = get_global(name)
|
var global = get_global(name)
|
||||||
global = int(global) if global else 0
|
global = int(global) if global else 0
|
||||||
@@ -282,12 +289,6 @@ func inc_global(name, diff):
|
|||||||
global = int(global) if global else 0
|
global = int(global) if global else 0
|
||||||
set_global(name, str(global + diff))
|
set_global(name, str(global + diff))
|
||||||
|
|
||||||
func set_globals(pat, val):
|
|
||||||
for key in globals:
|
|
||||||
if key.match(pat):
|
|
||||||
globals[key] = val
|
|
||||||
emit_signal("global_changed", key)
|
|
||||||
|
|
||||||
func is_global_equal_to(name, val):
|
func is_global_equal_to(name, val):
|
||||||
var global = get_global(name)
|
var global = get_global(name)
|
||||||
if global and val and global == val:
|
if global and val and global == val:
|
||||||
@@ -353,14 +354,27 @@ func change_scene(params, context, run_events=true):
|
|||||||
if !game_scene:
|
if !game_scene:
|
||||||
escoria.report_errors("esc_runner.gd:change_scene()",
|
escoria.report_errors("esc_runner.gd:change_scene()",
|
||||||
["Failed loading scene " + ProjectSettings.get_setting("escoria/ui/game_scene")])
|
["Failed loading scene " + ProjectSettings.get_setting("escoria/ui/game_scene")])
|
||||||
|
|
||||||
|
|
||||||
# Load room scene
|
# Load room scene
|
||||||
var room_scene = res_room.instance()
|
var room_scene = res_room.instance()
|
||||||
if room_scene:
|
if room_scene:
|
||||||
room_scene.add_child(game_scene)
|
room_scene.add_child(game_scene)
|
||||||
room_scene.move_child(game_scene, 0)
|
room_scene.move_child(game_scene, 0)
|
||||||
escoria.main.set_scene(room_scene, run_events)
|
var events = escoria.main.set_scene(room_scene, run_events)
|
||||||
|
|
||||||
|
# If scene was never visited, add "ready" event to the events stack
|
||||||
|
if !scenes_cache.has(room_scene.global_id) \
|
||||||
|
and "ready" in events:
|
||||||
|
run_event(events["ready"])
|
||||||
|
|
||||||
|
# :setup is pretty much required in the code, but fortunately
|
||||||
|
# we can help out with cases where one isn't necessary otherwise
|
||||||
|
if not "setup" in events:
|
||||||
|
var fake_setup = escoria.esc_compiler.compile_str(":setup\n")
|
||||||
|
events["setup"] = fake_setup["setup"]
|
||||||
|
# Finally we add the setup on to of the events stack so that it is ran first
|
||||||
|
run_event(events["setup"])
|
||||||
|
|
||||||
escoria.inputs_manager.is_hotspot_focused = false
|
escoria.inputs_manager.is_hotspot_focused = false
|
||||||
if !scenes_cache_list.has(params[0]):
|
if !scenes_cache_list.has(params[0]):
|
||||||
scenes_cache_list.push_back(params[0])
|
scenes_cache_list.push_back(params[0])
|
||||||
@@ -628,3 +642,17 @@ func object_exit_scene(name : String):
|
|||||||
printt("Object " + name + " removed from scene.")
|
printt("Object " + name + " removed from scene.")
|
||||||
objects.erase(name)
|
objects.erase(name)
|
||||||
|
|
||||||
|
#func jump(p_label):
|
||||||
|
# while stack.size() > 0:
|
||||||
|
# var top = stack[stack.size()-1]
|
||||||
|
# printt("top labels: ", top.labels, p_label)
|
||||||
|
# if p_label in top.labels:
|
||||||
|
# top.ip = top.labels[p_label]
|
||||||
|
# return
|
||||||
|
# else:
|
||||||
|
# if top.break_stop || stack.size() == 1:
|
||||||
|
# report_errors("", ["Label not found: "+p_label+", can't jump"])
|
||||||
|
# stack.remove(stack.size()-1)
|
||||||
|
# break
|
||||||
|
# else:
|
||||||
|
# stack.remove(stack.size()-1)
|
||||||
|
|||||||
@@ -5,14 +5,19 @@ extends Node
|
|||||||
var current_context
|
var current_context
|
||||||
onready var esc_runner = get_parent()
|
onready var esc_runner = get_parent()
|
||||||
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
func finished(context = null):
|
func finished(context = null):
|
||||||
if context != null:
|
if context != null:
|
||||||
context.waiting = false
|
context.waiting = false
|
||||||
else:
|
else:
|
||||||
current_context.waiting = false
|
current_context.waiting = false
|
||||||
|
|
||||||
|
if escoria.current_state == escoria.GAME_STATE.WAIT:
|
||||||
|
escoria.current_state = escoria.GAME_STATE.DEFAULT
|
||||||
|
|
||||||
|
|
||||||
func check_obj(name, cmd):
|
func check_obj(name, cmd):
|
||||||
@@ -22,6 +27,7 @@ func check_obj(name, cmd):
|
|||||||
return false
|
return false
|
||||||
return true
|
return true
|
||||||
|
|
||||||
|
|
||||||
func resume(context):
|
func resume(context):
|
||||||
current_context = context
|
current_context = context
|
||||||
if context.waiting:
|
if context.waiting:
|
||||||
@@ -49,6 +55,7 @@ func resume(context):
|
|||||||
context.ip = 0
|
context.ip = 0
|
||||||
return esctypes.EVENT_LEVEL_STATE.RETURN
|
return esctypes.EVENT_LEVEL_STATE.RETURN
|
||||||
|
|
||||||
|
|
||||||
func run(context):
|
func run(context):
|
||||||
var cmd = context.instructions[context.ip]
|
var cmd = context.instructions[context.ip]
|
||||||
if cmd.name == "label":
|
if cmd.name == "label":
|
||||||
@@ -70,25 +77,53 @@ func dialog_line_finished() -> void:
|
|||||||
escoria.dialog_player.is_speaking = false
|
escoria.dialog_player.is_speaking = false
|
||||||
escoria.current_state = escoria.GAME_STATE.DEFAULT
|
escoria.current_state = escoria.GAME_STATE.DEFAULT
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
accept_input [ALL|NONE|SKIP]
|
||||||
|
What type of input does the game accept. ALL is the default, SKIP allows skipping
|
||||||
|
of dialog but nothing else, NONE denies all input. Including opening the menu etc.
|
||||||
|
SKIP and NONE also disable autosaves. Note that SKIP gets reset to ALL when the
|
||||||
|
event is done, but NONE persists. This allows you to create cut scenes with SKIP
|
||||||
|
where the dialog can be skipped, but also initiate locked-down cutscenes with
|
||||||
|
accept_input NONE in :setup and accept_input ALL later in :ready.
|
||||||
"""
|
"""
|
||||||
func accept_input():
|
func accept_input(command_params : Array):
|
||||||
|
# var p_input = command_params[0]
|
||||||
|
# var input = escoria.esc_runner.acceptable_inputs["INPUT_" + p_input]
|
||||||
|
# escoria.esc_runner.set_accept_input(input)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
"""
|
"""
|
||||||
func autosave():
|
func autosave():
|
||||||
|
# escoria.request_autosave()
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
anim object name [reverse] [flip_x] [flip_y]
|
||||||
|
Executes the animation specificed with the "name" parameter on the object,
|
||||||
|
without blocking. The next command in the event will be executed immediately after.
|
||||||
|
Optional parameters:
|
||||||
|
reverse plays the animation in reverse when true
|
||||||
|
flip_x flips the x axis of the object's sprites when true (object's root node needs to be Node2D)
|
||||||
|
flip_y flips the y axis of the object's sprites when true (object's root node needs to be Node2D)
|
||||||
"""
|
"""
|
||||||
func anim():
|
func anim(command_params : Array):
|
||||||
pass
|
if !check_obj(command_params[0], "anim"):
|
||||||
|
return esctypes.EVENT_LEVEL_STATE.RETURN
|
||||||
|
private_play_animation(command_params)
|
||||||
|
return esctypes.EVENT_LEVEL_STATE.RETURN
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
Groups Commands can be grouped using the character ">" to start a group, and
|
||||||
|
incrementing the indentation of the commands that belong to the group. Example:
|
||||||
|
>
|
||||||
|
set_global door_open true
|
||||||
|
animation player pick_up
|
||||||
|
# end of group
|
||||||
"""
|
"""
|
||||||
func branch(command_params : Array):
|
func branch(command_params : Array):
|
||||||
var branch_ev = esctypes.ESCEvent.new("branch", command_params, [])
|
var branch_ev = esctypes.ESCEvent.new("branch", command_params, [])
|
||||||
@@ -96,65 +131,104 @@ func branch(command_params : Array):
|
|||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
camera_push target [time] [type]
|
||||||
|
Push camera to target. Target must have camera_pos set.
|
||||||
|
If it's of type Camera2D, its zoom will be used as well as position.
|
||||||
|
- A time value of 0 will set the camera immediately.
|
||||||
|
- type is any of the Tween.TransitionType values without the prefix, eg. LINEAR,
|
||||||
|
QUART or CIRC; defaults to QUART.
|
||||||
"""
|
"""
|
||||||
func camera_push():
|
func camera_push(command_params : Array):
|
||||||
pass
|
var target = escoria.esc_runner.get_object(command_params[0])
|
||||||
|
var time = command_params[1] if command_params.size() > 1 else 1
|
||||||
|
var type = command_params[2] if command_params.size() > 2 else "QUAD"
|
||||||
|
escoria.main.current_scene.game.get_node("camera").push(target, time, type)
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
camera_set_drag_margin_enabled h v
|
||||||
|
- "h" and "v" are booleans for whether or not horizontal and vertical drag
|
||||||
|
margins are enabled. You will likely want to set them false for advanced camera
|
||||||
|
motions and true for regular gameplay and/or tracking NPCs.
|
||||||
"""
|
"""
|
||||||
func camera_set_drag_margin_enabled():
|
func camera_set_drag_margin_enabled():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
camera_set_pos speed x y
|
||||||
|
Moves the camera to a position defined by "x" and "y", at the speed defined by
|
||||||
|
"speed" in pixels per second. If speed is 0, camera is teleported to the position.
|
||||||
"""
|
"""
|
||||||
func camera_set_pos():
|
func camera_set_pos():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
camera_set_target speed object [object2 object3 ...]
|
||||||
|
Configures the camera to follow 1 or more objects, using "speed" as speed limit.
|
||||||
|
This is the default behavior (default follow object is "player").
|
||||||
|
If there's more than 1 object, the camera follows the average position of all
|
||||||
|
the objects specified.
|
||||||
"""
|
"""
|
||||||
func camera_set_target():
|
func camera_set_target():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
camera_set_zoom magnitude [time]
|
||||||
|
Zooms the camera in/out to the desired magnitude. Values larger than 1 zooms
|
||||||
|
the camera out, and smaller values zooms in, relative to the default value of 1.
|
||||||
|
An optional time in seconds controls how long it takes for the camera to zoom
|
||||||
|
into position.
|
||||||
"""
|
"""
|
||||||
func camera_set_zoom():
|
func camera_set_zoom():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
camera_set_zoom_height pixels [time]
|
||||||
|
Similar to the command abo/ve, but uses pixel height instead of magnitude to zoom.
|
||||||
"""
|
"""
|
||||||
func camera_set_zoom_height():
|
func camera_set_zoom_height():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
camera_shift x y [time] [type]
|
||||||
|
Shift camera by x and y pixels over time seconds.
|
||||||
|
- type is any of the Tween.TransitionType values without the prefix, eg. LINEAR,
|
||||||
|
QUART or CIRC; defaults to QUART.
|
||||||
"""
|
"""
|
||||||
func camera_shift():
|
func camera_shift():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
change_scene path [run_events]
|
||||||
|
Loads a new scene, specified by "path".
|
||||||
|
The run_events variable is a boolean (default true) which you never want to set
|
||||||
|
manually! It's there only to benefit save games, so they don't conflict with the
|
||||||
|
scene's events.
|
||||||
"""
|
"""
|
||||||
func change_scene(params):
|
func change_scene(command_params : Array):
|
||||||
# Savegames must have events disabled, so saving the game adds a false to params
|
# Savegames must have events disabled, so saving the game adds a false to params
|
||||||
var run_events = true
|
var run_events = true
|
||||||
if params.size() == 2:
|
if command_params.size() == 2:
|
||||||
run_events = bool(params[1])
|
run_events = bool(command_params[1])
|
||||||
|
|
||||||
# looking for localized string format in scene. this should be somewhere else
|
# looking for localized string format in scene. this should be somewhere else
|
||||||
var sep = params[0].find(":\"")
|
var sep = command_params[0].find(":\"")
|
||||||
if sep >= 0:
|
if sep >= 0:
|
||||||
var path = params[0].substr(sep + 2, params[0].length() - (sep + 2))
|
var path = command_params[0].substr(sep + 2, command_params[0].length() - (sep + 2))
|
||||||
escoria.esc_runner.call_deferred("change_scene", [path], current_context, run_events)
|
escoria.esc_runner.call_deferred("change_scene", [path], current_context, run_events)
|
||||||
else:
|
else:
|
||||||
escoria.esc_runner.call_deferred("change_scene", params, current_context, run_events)
|
escoria.esc_runner.call_deferred("change_scene", command_params, current_context, run_events)
|
||||||
|
|
||||||
current_context.waiting = true
|
current_context.waiting = true
|
||||||
return esctypes.EVENT_LEVEL_STATE.YIELD
|
return esctypes.EVENT_LEVEL_STATE.YIELD
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
"""
|
"""
|
||||||
func custom():
|
func custom():
|
||||||
@@ -162,30 +236,76 @@ func custom():
|
|||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
cut_scene object name [reverse] [flip_x] [flip_y]
|
||||||
|
Executes the animation specificed with the "name" parameter on the object, BLOCKING.
|
||||||
|
The next command in the event will be executed when the animation is finished
|
||||||
|
playing.
|
||||||
|
Optional parameters:
|
||||||
|
- reverse plays the animation in reverse when true
|
||||||
|
- flip_x flips the x axis of the object's sprites when true
|
||||||
|
(object's root node needs to be Node2D)
|
||||||
|
- flip_y flips the y axis of the object's sprites when true
|
||||||
|
(object's root node needs to be Node2D)
|
||||||
"""
|
"""
|
||||||
func cut_scene():
|
func cut_scene(command_params : Array):
|
||||||
pass
|
if !check_obj(command_params[0], "cut_scene"):
|
||||||
|
return esctypes.EVENT_LEVEL_STATE.RETURN
|
||||||
|
private_play_animation(command_params)
|
||||||
|
return esctypes.EVENT_LEVEL_STATE.YIELD
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
PRIVATE
|
||||||
|
Play animation using parameters.
|
||||||
|
Used by commands anim() and cut_scene()
|
||||||
"""
|
"""
|
||||||
func debug():
|
func private_play_animation(command_params : Array):
|
||||||
pass
|
var obj = escoria.esc_runner.get_object(command_params[0])
|
||||||
|
var anim_id = command_params[1]
|
||||||
|
var reverse = false
|
||||||
|
if command_params.size() > 2:
|
||||||
|
reverse = command_params[2]
|
||||||
|
var flip = Vector2(1, 1)
|
||||||
|
if command_params.size() > 3 && command_params[3]:
|
||||||
|
flip.x = -1
|
||||||
|
if command_params.size() > 4 && command_params[4]:
|
||||||
|
flip.y = -1
|
||||||
|
current_context.waiting = true
|
||||||
|
obj.play_anim(anim_id, current_context, reverse, flip)
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
debug string [string2 ...]
|
||||||
|
Takes 1 or more strings, prints them to the console.
|
||||||
"""
|
"""
|
||||||
func dec_global():
|
func debug(command_params : Array):
|
||||||
pass
|
for p in command_params:
|
||||||
|
printt(p)
|
||||||
|
return esctypes.EVENT_LEVEL_STATE.RETURN
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
dec_global name value
|
||||||
|
Subtracts the value from global with given "name".
|
||||||
|
Value and global must both be integers.
|
||||||
"""
|
"""
|
||||||
func inc_global():
|
func dec_global(command_params : Array):
|
||||||
pass
|
escoria.esc_runner.dec_global(command_params[0], command_params[1])
|
||||||
|
return esctypes.EVENT_LEVEL_STATE.RETURN
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
inc_global name value
|
||||||
|
Adds the value to global with given "name".
|
||||||
|
Value and global must both be integers.
|
||||||
|
"""
|
||||||
|
func inc_global(command_params : Array):
|
||||||
|
escoria.esc_runner.inc_global(command_params[0], command_params[1])
|
||||||
|
return esctypes.EVENT_LEVEL_STATE.RETURN
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Start a dialog choice.
|
||||||
"""
|
"""
|
||||||
func dialog(command_params : Array):
|
func dialog(command_params : Array):
|
||||||
current_context.waiting = true
|
current_context.waiting = true
|
||||||
@@ -198,13 +318,14 @@ func dialog(command_params : Array):
|
|||||||
return esctypes.EVENT_LEVEL_STATE.YIELD
|
return esctypes.EVENT_LEVEL_STATE.YIELD
|
||||||
|
|
||||||
|
|
||||||
"""
|
#func dialog_config():
|
||||||
"""
|
## escoria.esc_runner.dialog_config(params)
|
||||||
func dialog_config():
|
## return esctypes.EVENT_LEVEL_STATE.RETURN
|
||||||
pass
|
# pass
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
enable_terrain node_name
|
||||||
Enable the ESCTerrain's NavigationPolygonInstance defined by given node name.
|
Enable the ESCTerrain's NavigationPolygonInstance defined by given node name.
|
||||||
Disables previously activated NavigationPolygonInstance.
|
Disables previously activated NavigationPolygonInstance.
|
||||||
"""
|
"""
|
||||||
@@ -223,18 +344,25 @@ func game_over(command_params : Array):
|
|||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
Adds element in inventory.
|
||||||
|
Usage: inventory_add my_item
|
||||||
|
equivalent to: set_global i/my_item true
|
||||||
"""
|
"""
|
||||||
func inventory_add(command_params : Array):
|
func inventory_add(command_params : Array):
|
||||||
pass
|
set_global(["i/"+command_params[0], "true"])
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
Removes element from inventory.
|
||||||
|
Usage: inventory_remove my_item
|
||||||
|
equivalent to: set_global i/my_item false
|
||||||
"""
|
"""
|
||||||
func inventory_remove(command_params : Array):
|
func inventory_remove(command_params : Array):
|
||||||
pass
|
set_global(["i/"+command_params[0], "false"])
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
TODO: This is dependant to the user UI. It must remain flexible enough.
|
||||||
"""
|
"""
|
||||||
func inventory_open(command_params : Array):
|
func inventory_open(command_params : Array):
|
||||||
pass
|
pass
|
||||||
@@ -243,9 +371,10 @@ func inventory_open(command_params : Array):
|
|||||||
"""
|
"""
|
||||||
"""
|
"""
|
||||||
func jump(command_params : Array):
|
func jump(command_params : Array):
|
||||||
|
# escoria.esc_runner.jump(command_params[0])
|
||||||
|
# return esctypes.EVENT_LEVEL_STATE.JUMP
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
"""
|
"""
|
||||||
func play_snd(command_params : Array):
|
func play_snd(command_params : Array):
|
||||||
@@ -318,11 +447,11 @@ func set_active(command_params : Array):
|
|||||||
Set the angle of an object.
|
Set the angle of an object.
|
||||||
Usage: set_angle object_id angle_degrees
|
Usage: set_angle object_id angle_degrees
|
||||||
"""
|
"""
|
||||||
func set_angle(params : Array):
|
func set_angle(command_params : Array):
|
||||||
if !check_obj(params[0], "set_angle"):
|
if !check_obj(command_params[0], "set_angle"):
|
||||||
return esctypes.EVENT_LEVEL_STATE.RETURN
|
return esctypes.EVENT_LEVEL_STATE.RETURN
|
||||||
var obj = escoria.esc_runner.get_object(params[0])
|
var obj = escoria.esc_runner.get_object(command_params[0])
|
||||||
obj.set_angle(int(params[1]))
|
obj.set_angle(int(command_params[1]))
|
||||||
return esctypes.EVENT_LEVEL_STATE.RETURN
|
return esctypes.EVENT_LEVEL_STATE.RETURN
|
||||||
|
|
||||||
|
|
||||||
@@ -355,9 +484,16 @@ func set_global(command_params : Array):
|
|||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
set_globals pattern value
|
||||||
|
Changes the value of multiple globals using a wildcard pattern.
|
||||||
|
Example:
|
||||||
|
# clears the inventory
|
||||||
|
set_globals i/* false
|
||||||
"""
|
"""
|
||||||
func set_globals(command_params : Array):
|
func set_globals(command_params : Array):
|
||||||
pass
|
var pattern : String = command_params[0]
|
||||||
|
var val = command_params[1]
|
||||||
|
escoria.esc_runner.set_globals(pattern, val)
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@@ -402,17 +538,18 @@ Teleports obj1 at obj2's position. If angle_degrees is set (int), sets obj1's
|
|||||||
angle to angle_degrees.
|
angle to angle_degrees.
|
||||||
Usage: teleport obj1 obj2 [angle_degrees]
|
Usage: teleport obj1 obj2 [angle_degrees]
|
||||||
"""
|
"""
|
||||||
func teleport(params):
|
func teleport(command_params : Array):
|
||||||
if !check_obj(params[0], "teleport"):
|
if !check_obj(command_params[0], "teleport"):
|
||||||
return esctypes.EVENT_LEVEL_STATE.RETURN
|
return esctypes.EVENT_LEVEL_STATE.RETURN
|
||||||
if !check_obj(params[1], "teleport"):
|
if !check_obj(command_params[1], "teleport"):
|
||||||
return esctypes.EVENT_LEVEL_STATE.RETURN
|
return esctypes.EVENT_LEVEL_STATE.RETURN
|
||||||
|
|
||||||
var angle
|
var angle
|
||||||
if params.size() > 2:
|
if command_params.size() > 2:
|
||||||
angle = int(params[2])
|
angle = int(command_params[2])
|
||||||
|
|
||||||
escoria.esc_runner.get_object(params[0]).teleport(escoria.esc_runner.get_object(params[1]), angle)
|
escoria.esc_runner.get_object(command_params[0]) \
|
||||||
|
.teleport(escoria.esc_runner.get_object(command_params[1]), angle)
|
||||||
return esctypes.EVENT_LEVEL_STATE.RETURN
|
return esctypes.EVENT_LEVEL_STATE.RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -116,6 +116,8 @@ func update_terrain(on_event_finished_name = null):
|
|||||||
return
|
return
|
||||||
if on_event_finished_name != null and on_event_finished_name != "setup":
|
if on_event_finished_name != null and on_event_finished_name != "setup":
|
||||||
return
|
return
|
||||||
|
if is_exit:
|
||||||
|
return
|
||||||
|
|
||||||
var pos = position
|
var pos = position
|
||||||
z_index = pos.y if pos.y <= VisualServer.CANVAS_ITEM_Z_MAX else VisualServer.CANVAS_ITEM_Z_MAX
|
z_index = pos.y if pos.y <= VisualServer.CANVAS_ITEM_Z_MAX else VisualServer.CANVAS_ITEM_Z_MAX
|
||||||
|
|||||||
@@ -126,10 +126,13 @@ func _ready():
|
|||||||
terrain = escoria.room_terrain
|
terrain = escoria.room_terrain
|
||||||
|
|
||||||
last_scale = scale
|
last_scale = scale
|
||||||
|
|
||||||
set_process(true)
|
set_process(true)
|
||||||
|
|
||||||
|
|
||||||
func _process(time):
|
func _process(time):
|
||||||
|
if Engine.is_editor_hint():
|
||||||
|
return
|
||||||
$debug.text = str(z_index)
|
$debug.text = str(z_index)
|
||||||
|
|
||||||
if task == PLAYER_TASKS.WALK or task == PLAYER_TASKS.SLIDE:
|
if task == PLAYER_TASKS.WALK or task == PLAYER_TASKS.SLIDE:
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ func _on_mouse_right_click_inventory_item(inventory_item_global_id, event : Inpu
|
|||||||
|
|
||||||
func _on_mouse_double_left_click_inventory_item(inventory_item_global_id, event : InputEvent) -> void:
|
func _on_mouse_double_left_click_inventory_item(inventory_item_global_id, event : InputEvent) -> void:
|
||||||
printt("Inventory item double left clicked ", inventory_item_global_id)
|
printt("Inventory item double left clicked ", inventory_item_global_id)
|
||||||
escoria.main.current_scene.game.double_left_click_on_inventory_item(inventory_item_global_id, event)
|
escoria.main.current_scene.game.left_double_click_on_inventory_item(inventory_item_global_id, event)
|
||||||
|
|
||||||
func _on_mouse_entered_inventory_item(inventory_item_global_id) -> void:
|
func _on_mouse_entered_inventory_item(inventory_item_global_id) -> void:
|
||||||
printt("Inventory item focused ", inventory_item_global_id)
|
printt("Inventory item focused ", inventory_item_global_id)
|
||||||
|
|||||||
@@ -21,36 +21,43 @@ func set_scene(p_scene, run_events=true):
|
|||||||
"""
|
"""
|
||||||
if !p_scene:
|
if !p_scene:
|
||||||
escoria.report_errors("main", ["Trying to set empty scene"])
|
escoria.report_errors("main", ["Trying to set empty scene"])
|
||||||
|
|
||||||
|
if current_scene != null:
|
||||||
|
clear_scene()
|
||||||
|
|
||||||
|
get_node("/root").add_child(p_scene)
|
||||||
|
|
||||||
# Ensure we don't have a regular event running when changing scenes
|
# Ensure we don't have a regular event running when changing scenes
|
||||||
if escoria.esc_runner.running_event:
|
if escoria.esc_runner.running_event:
|
||||||
assert(escoria.esc_runner.running_event.ev_name == "load")
|
assert(escoria.esc_runner.running_event.ev_name == "load")
|
||||||
|
|
||||||
|
var events : Dictionary = {}
|
||||||
if "esc_script" in p_scene and p_scene.esc_script and run_events:
|
if "esc_script" in p_scene and p_scene.esc_script and run_events:
|
||||||
var events = escoria.esc_compiler.load_esc_file(p_scene.esc_script)
|
events = escoria.esc_compiler.load_esc_file(p_scene.esc_script)
|
||||||
|
|
||||||
# :setup is pretty much required in the code, but fortunately
|
# # :setup is pretty much required in the code, but fortunately
|
||||||
# we can help out with cases where one isn't necessary otherwise
|
# # we can help out with cases where one isn't necessary otherwise
|
||||||
if not "setup" in events:
|
# if not "setup" in events:
|
||||||
var fake_setup = escoria.esc_compiler.compile_str(":setup\n")
|
# var fake_setup = escoria.esc_compiler.compile_str(":setup\n")
|
||||||
events["setup"] = fake_setup["setup"]
|
# events["setup"] = fake_setup["setup"]
|
||||||
|
#
|
||||||
escoria.esc_runner.run_event(events["setup"])
|
# escoria.esc_runner.run_event(events["setup"])
|
||||||
|
# # We need to ensure that :setup event is finished before adding the next event.
|
||||||
|
# var setup_done = false
|
||||||
|
# while !setup_done:
|
||||||
|
# var event_name = yield(escoria.esc_runner, "event_done")
|
||||||
|
# if event_name == "setup":
|
||||||
|
# setup_done = true
|
||||||
|
#
|
||||||
|
# # If scene was never visited, run "ready" event
|
||||||
|
# if !escoria.esc_runner.scenes_cache.has(p_scene.global_id) \
|
||||||
|
# and "ready" in events:
|
||||||
|
# escoria.esc_runner.run_event(events["ready"])
|
||||||
|
#
|
||||||
|
|
||||||
# If scene was never visited, run "ready" event
|
|
||||||
if !escoria.esc_runner.scenes_cache.has(p_scene.global_id) \
|
|
||||||
and "ready" in events:
|
|
||||||
escoria.esc_runner.run_event(events["ready"])
|
|
||||||
|
|
||||||
if current_scene != null:
|
|
||||||
clear_scene()
|
|
||||||
|
|
||||||
# var game_scene =
|
|
||||||
|
|
||||||
get_node("/root").add_child(p_scene)
|
|
||||||
set_current_scene(p_scene, run_events)
|
set_current_scene(p_scene, run_events)
|
||||||
set_camera_limits()
|
set_camera_limits()
|
||||||
|
return events
|
||||||
|
|
||||||
func set_current_scene(p_scene, run_events=true):
|
func set_current_scene(p_scene, run_events=true):
|
||||||
current_scene = p_scene
|
current_scene = p_scene
|
||||||
@@ -83,6 +90,7 @@ func set_current_scene(p_scene, run_events=true):
|
|||||||
|
|
||||||
escoria.esc_runner.register_object("_scene", p_scene, true) # Force overwrite of global
|
escoria.esc_runner.register_object("_scene", p_scene, true) # Force overwrite of global
|
||||||
|
|
||||||
|
check_game_scene_methods()
|
||||||
|
|
||||||
func clear_scene():
|
func clear_scene():
|
||||||
if current_scene == null:
|
if current_scene == null:
|
||||||
@@ -154,5 +162,36 @@ func set_camera_limits():
|
|||||||
}
|
}
|
||||||
printt("setting camera limits from parameter ", scene_camera_limits)
|
printt("setting camera limits from parameter ", scene_camera_limits)
|
||||||
|
|
||||||
escoria.esc_runner.get_object("camera").set_limits(limits)
|
current_scene.game.get_node("camera").set_limits(limits)
|
||||||
escoria.esc_runner.get_object("camera").set_offset(screen_ofs * 2)
|
current_scene.game.get_node("camera").set_offset(screen_ofs * 2)
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
The game.tscn scene's root node script MUST implement the following methods.
|
||||||
|
If they do not exist, stop immediately. Implement them, even if empty
|
||||||
|
"""
|
||||||
|
func check_game_scene_methods():
|
||||||
|
assert(current_scene.game.has_method("left_click_on_bg"))
|
||||||
|
assert(current_scene.game.has_method("right_click_on_bg"))
|
||||||
|
assert(current_scene.game.has_method("left_double_click_on_bg"))
|
||||||
|
|
||||||
|
assert(current_scene.game.has_method("element_focused"))
|
||||||
|
assert(current_scene.game.has_method("element_unfocused"))
|
||||||
|
|
||||||
|
assert(current_scene.game.has_method("left_click_on_hotspot"))
|
||||||
|
assert(current_scene.game.has_method("right_click_on_hotspot"))
|
||||||
|
assert(current_scene.game.has_method("left_double_click_on_hotspot"))
|
||||||
|
|
||||||
|
assert(current_scene.game.has_method("left_click_on_item"))
|
||||||
|
assert(current_scene.game.has_method("right_click_on_item"))
|
||||||
|
assert(current_scene.game.has_method("left_double_click_on_item"))
|
||||||
|
|
||||||
|
assert(current_scene.game.has_method("open_inventory"))
|
||||||
|
assert(current_scene.game.has_method("close_inventory"))
|
||||||
|
|
||||||
|
assert(current_scene.game.has_method("left_click_on_inventory_item"))
|
||||||
|
assert(current_scene.game.has_method("right_click_on_inventory_item"))
|
||||||
|
assert(current_scene.game.has_method("left_double_click_on_inventory_item"))
|
||||||
|
|
||||||
|
assert(current_scene.game.has_method("inventory_item_focused"))
|
||||||
|
assert(current_scene.game.has_method("inventory_item_unfocused"))
|
||||||
|
|||||||
@@ -68,16 +68,18 @@ func set_target(p_target, p_speed : float = 0.0):
|
|||||||
|
|
||||||
if tween.is_active():
|
if tween.is_active():
|
||||||
var tweenstat = String(tween.tell()) + "/" + String(tween.get_runtime())
|
var tweenstat = String(tween.tell()) + "/" + String(tween.get_runtime())
|
||||||
escoria.report_warnings("camera.gd:set_target()", ["Tween still active running camera_set_target: " + tweenstat])
|
escoria.report_warnings("camera.gd:set_target()",
|
||||||
|
["Tween still active running camera_set_target: " + tweenstat])
|
||||||
tween.emit_signal("tween_completed")
|
tween.emit_signal("tween_completed")
|
||||||
|
|
||||||
tween.interpolate_property(self, "global_position", self.global_position, target_pos, time, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
|
tween.interpolate_property(self, "global_position", self.global_position,
|
||||||
|
target_pos, time, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
|
||||||
tween.start()
|
tween.start()
|
||||||
|
|
||||||
func set_camera_zoom(p_zoom_level, p_time):
|
func set_camera_zoom(p_zoom_level, p_time):
|
||||||
if p_zoom_level <= 0.0:
|
if p_zoom_level <= 0.0:
|
||||||
escoria.report_errors("camera.gd:set_camera_zoom()", ["Tried to set negative or zero zoom level"])
|
escoria.report_errors("camera.gd:set_camera_zoom()",
|
||||||
|
["Tried to set negative or zero zoom level"])
|
||||||
|
|
||||||
zoom_time = p_time
|
zoom_time = p_time
|
||||||
zoom_target = Vector2(1, 1) * p_zoom_level
|
zoom_target = Vector2(1, 1) * p_zoom_level
|
||||||
@@ -87,13 +89,15 @@ func set_camera_zoom(p_zoom_level, p_time):
|
|||||||
else:
|
else:
|
||||||
if tween.is_active():
|
if tween.is_active():
|
||||||
var tweenstat = String(tween.tell()) + "/" + String(tween.get_runtime())
|
var tweenstat = String(tween.tell()) + "/" + String(tween.get_runtime())
|
||||||
escoria.report_warnings("camera", ["Tween still active running camera_set_zoom: " + tweenstat])
|
escoria.report_warnings("camera",
|
||||||
|
["Tween still active running camera_set_zoom: " + tweenstat])
|
||||||
tween.emit_signal("tween_completed")
|
tween.emit_signal("tween_completed")
|
||||||
|
|
||||||
tween.interpolate_property(self, "zoom", self.zoom, zoom_target, zoom_time, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
|
tween.interpolate_property(self, "zoom", self.zoom, zoom_target,
|
||||||
|
zoom_time, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
|
||||||
tween.start()
|
tween.start()
|
||||||
|
|
||||||
|
|
||||||
func push(p_target, p_time, p_type):
|
func push(p_target, p_time, p_type):
|
||||||
var time = float(p_time)
|
var time = float(p_time)
|
||||||
var type = "TRANS_" + p_type
|
var type = "TRANS_" + p_type
|
||||||
@@ -116,16 +120,19 @@ func push(p_target, p_time, p_type):
|
|||||||
else:
|
else:
|
||||||
if tween.is_active():
|
if tween.is_active():
|
||||||
var tweenstat = String(tween.tell()) + "/" + String(tween.get_runtime())
|
var tweenstat = String(tween.tell()) + "/" + String(tween.get_runtime())
|
||||||
escoria.report_warnings("camera", ["Tween still active running camera_push: " + tweenstat])
|
escoria.report_warnings("camera",
|
||||||
|
["Tween still active running camera_push: " + tweenstat])
|
||||||
tween.emit_signal("tween_completed")
|
tween.emit_signal("tween_completed")
|
||||||
|
|
||||||
if camera_pos and camera_pos is Camera2D:
|
if camera_pos and camera_pos is Camera2D:
|
||||||
tween.interpolate_property(self, "zoom", self.zoom, camera_pos.zoom, time, tween.get(type), Tween.EASE_IN_OUT)
|
tween.interpolate_property(self, "zoom", self.zoom, camera_pos.zoom,
|
||||||
|
time, tween.get(type), Tween.EASE_IN_OUT)
|
||||||
tween.interpolate_property(self, "global_position", self.global_position, camera_pos_coords, time, tween.get(type), Tween.EASE_IN_OUT)
|
|
||||||
|
|
||||||
|
tween.interpolate_property(self, "global_position", self.global_position,
|
||||||
|
camera_pos_coords, time, tween.get(type), Tween.EASE_IN_OUT)
|
||||||
tween.start()
|
tween.start()
|
||||||
|
|
||||||
|
|
||||||
func shift(p_x, p_y, p_time, p_type):
|
func shift(p_x, p_y, p_time, p_type):
|
||||||
var x = int(p_x)
|
var x = int(p_x)
|
||||||
var y = int(p_y)
|
var y = int(p_y)
|
||||||
@@ -133,21 +140,23 @@ func shift(p_x, p_y, p_time, p_type):
|
|||||||
var type = "TRANS_" + p_type
|
var type = "TRANS_" + p_type
|
||||||
|
|
||||||
var new_pos = self.global_position + Vector2(x, y)
|
var new_pos = self.global_position + Vector2(x, y)
|
||||||
|
|
||||||
target = new_pos
|
target = new_pos
|
||||||
|
|
||||||
if tween.is_active():
|
if tween.is_active():
|
||||||
var tweenstat = String(tween.tell()) + "/" + String(tween.get_runtime())
|
var tweenstat = String(tween.tell()) + "/" + String(tween.get_runtime())
|
||||||
escoria.report_warnings("camera", ["Tween still active running camera_shift: " + tweenstat])
|
escoria.report_warnings("camera",
|
||||||
|
["Tween still active running camera_shift: " + tweenstat])
|
||||||
tween.emit_signal("tween_completed")
|
tween.emit_signal("tween_completed")
|
||||||
|
|
||||||
tween.interpolate_property(self, "global_position", self.global_position, new_pos, time, tween.get(type), Tween.EASE_IN_OUT)
|
tween.interpolate_property(self, "global_position", self.global_position,
|
||||||
|
new_pos, time, tween.get(type), Tween.EASE_IN_OUT)
|
||||||
tween.start()
|
tween.start()
|
||||||
|
|
||||||
|
|
||||||
func target_reached(_obj=null, _key=null):
|
func target_reached(_obj=null, _key=null):
|
||||||
tween.stop_all()
|
tween.stop_all()
|
||||||
|
|
||||||
|
|
||||||
func _process(_delta):
|
func _process(_delta):
|
||||||
zoom_transform = self.get_canvas_transform()
|
zoom_transform = self.get_canvas_transform()
|
||||||
|
|
||||||
|
|||||||
@@ -4,17 +4,19 @@ class_name ESCInventory
|
|||||||
func get_class():
|
func get_class():
|
||||||
return "ESCInventory"
|
return "ESCInventory"
|
||||||
|
|
||||||
|
"""
|
||||||
|
This script is set on the inventory UI scene's root node.
|
||||||
|
The scene MUST contain the 2 following nodes:
|
||||||
|
- one node named "ESCORIA_ALL_ITEMS" containing ALL ESCItems of the game. This is required
|
||||||
|
to be able to get the ESCInventoryItem for a given ESCItem.
|
||||||
|
- one Container node (under Control type) that will contain the inventory items.
|
||||||
|
It must be set in the "items_container" export variable.
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
# Define the actual container node to add items as children of. Should be a Container.
|
# Define the actual container node to add items as children of. Should be a Container.
|
||||||
export(NodePath) var items_container
|
export(NodePath) var items_container
|
||||||
onready var all_items = $all_items
|
onready var all_items = $ESCORIA_ALL_ITEMS
|
||||||
|
|
||||||
# Methods available for selecting an item
|
|
||||||
enum ITEM_SELECTION_METHODS {
|
|
||||||
VERB_ACTION, # Use a verb action, such as use or give, on inventory item
|
|
||||||
ONE_CLICK, # One click on inventory item selects it (eventually put it on cursor)
|
|
||||||
DRAG_N_DROP # (Useful for mobile) Drag n drop item on another or on background to use/give it
|
|
||||||
}
|
|
||||||
export(ITEM_SELECTION_METHODS) var selection_method
|
|
||||||
|
|
||||||
var items_ids_in_inventory : Dictionary = {} # { item_id : TextureButton}
|
var items_ids_in_inventory : Dictionary = {} # { item_id : TextureButton}
|
||||||
|
|
||||||
@@ -52,7 +54,6 @@ func add_new_item_by_id(item_id : String) -> void:
|
|||||||
escoria.esc_runner.register_object(item_id, item_inventory_button)
|
escoria.esc_runner.register_object(item_id, item_inventory_button)
|
||||||
item_inventory_button.visible = true
|
item_inventory_button.visible = true
|
||||||
|
|
||||||
# connect this new item TextureButton's signals to our inventory UI
|
|
||||||
item_inventory_button.connect("mouse_left_inventory_item",
|
item_inventory_button.connect("mouse_left_inventory_item",
|
||||||
escoria.inputs_manager, "_on_mouse_left_click_inventory_item")
|
escoria.inputs_manager, "_on_mouse_left_click_inventory_item")
|
||||||
item_inventory_button.connect("mouse_double_left_inventory_item",
|
item_inventory_button.connect("mouse_double_left_inventory_item",
|
||||||
|
|||||||
BIN
game/assets_sources/8_way_guy/8_way_stand.png
Normal file
BIN
game/assets_sources/8_way_guy/8_way_stand.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
34
game/assets_sources/8_way_guy/8_way_stand.png.import
Normal file
34
game/assets_sources/8_way_guy/8_way_stand.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/8_way_stand.png-bd624ae15a01b85e2dc1bdd162820a10.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://game/assets_sources/8_way_guy/8_way_stand.png"
|
||||||
|
dest_files=[ "res://.import/8_way_stand.png-bd624ae15a01b85e2dc1bdd162820a10.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
||||||
BIN
game/assets_sources/8_way_guy/8_way_walk.png
Normal file
BIN
game/assets_sources/8_way_guy/8_way_walk.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
34
game/assets_sources/8_way_guy/8_way_walk.png.import
Normal file
34
game/assets_sources/8_way_guy/8_way_walk.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/8_way_walk.png-1bdb405563d96a981227d9d82934482d.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://game/assets_sources/8_way_guy/8_way_walk.png"
|
||||||
|
dest_files=[ "res://.import/8_way_walk.png-1bdb405563d96a981227d9d82934482d.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
||||||
BIN
game/assets_sources/8_way_guy/not_used/8_way_sprite.png
Normal file
BIN
game/assets_sources/8_way_guy/not_used/8_way_sprite.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 57 KiB |
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/8_way_sprite.png-554307c32b89d6eb23c7824829cc57c7.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://game/assets_sources/8_way_guy/not_used/8_way_sprite.png"
|
||||||
|
dest_files=[ "res://.import/8_way_sprite.png-554307c32b89d6eb23c7824829cc57c7.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
||||||
@@ -94,9 +94,9 @@ animations = [ {
|
|||||||
"speed": 8.0
|
"speed": 8.0
|
||||||
} ]
|
} ]
|
||||||
|
|
||||||
[node name="character" type="Area2D"]
|
[node name="android" type="Area2D"]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
global_id = "character"
|
global_id = "android"
|
||||||
interaction_direction = 3
|
interaction_direction = 3
|
||||||
tooltip_name = "Character"
|
tooltip_name = "Character"
|
||||||
default_action = "talk"
|
default_action = "talk"
|
||||||
BIN
game/characters/character2/8_way_walk.png
Normal file
BIN
game/characters/character2/8_way_walk.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 59 KiB |
34
game/characters/character2/8_way_walk.png.import
Normal file
34
game/characters/character2/8_way_walk.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/8_way_walk.png-ecdd71f288ccb9d3bbd77c0a124c4d5c.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://game/characters/character2/8_way_walk.png"
|
||||||
|
dest_files=[ "res://.import/8_way_walk.png-ecdd71f288ccb9d3bbd77c0a124c4d5c.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
||||||
404
game/characters/character2/character.tscn
Normal file
404
game/characters/character2/character.tscn
Normal file
@@ -0,0 +1,404 @@
|
|||||||
|
[gd_scene load_steps=78 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/escplayer.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://game/characters/character2/character_anims.gd" type="Script" id=2]
|
||||||
|
[ext_resource path="res://game/characters/character2/8_way_walk.png" type="Texture" id=3]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=1]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 0, 220, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=2]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 60, 220, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=3]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 120, 220, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=4]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 180, 220, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=5]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 240, 220, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=6]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 300, 220, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=7]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 360, 220, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=8]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 420, 220, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=9]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 360, 0, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=10]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 180, 0, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=11]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 0, 660, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=12]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 60, 660, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=13]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 120, 660, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=14]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 180, 660, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=15]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 240, 660, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=16]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 300, 660, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=17]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 360, 660, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=18]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 420, 660, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=19]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 60, 0, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=20]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 0, 110, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=21]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 60, 110, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=22]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 120, 110, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=23]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 180, 110, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=24]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 240, 110, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=25]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 300, 110, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=26]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 360, 110, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=27]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 420, 110, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=28]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 120, 0, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=29]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 0, 440, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=30]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 60, 440, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=31]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 120, 440, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=32]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 180, 440, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=33]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 240, 440, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=34]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 300, 440, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=35]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 360, 440, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=36]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 420, 440, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=37]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 420, 0, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=38]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 0, 880, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=39]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 60, 880, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=40]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 120, 880, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=41]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 180, 880, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=42]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 240, 880, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=43]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 300, 880, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=44]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 360, 880, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=45]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 420, 880, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=46]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 0, 550, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=47]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 60, 550, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=48]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 120, 550, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=49]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 180, 550, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=50]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 240, 550, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=51]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 300, 550, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=52]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 360, 550, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=53]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 420, 550, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=54]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 0, 0, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=55]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 0, 770, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=56]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 60, 770, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=57]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 120, 770, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=58]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 180, 770, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=59]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 240, 770, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=60]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 300, 770, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=61]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 360, 770, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=62]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 420, 770, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=63]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 240, 0, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=64]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 300, 0, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=65]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 0, 330, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=66]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 60, 330, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=67]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 120, 330, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=68]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 180, 330, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=69]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 240, 330, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=70]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 300, 330, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=71]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 360, 330, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=72]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 420, 330, 60, 110 )
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id=73]
|
||||||
|
animations = [ {
|
||||||
|
"frames": [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "walk_down",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 9 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_right",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 10 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_up_left",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 11 ), SubResource( 12 ), SubResource( 13 ), SubResource( 14 ), SubResource( 15 ), SubResource( 16 ), SubResource( 17 ), SubResource( 18 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "walk_up_left",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 19 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_down_left",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 20 ), SubResource( 21 ), SubResource( 22 ), SubResource( 23 ), SubResource( 24 ), SubResource( 25 ), SubResource( 26 ), SubResource( 27 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "walk_down_left",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 28 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_left",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 29 ), SubResource( 30 ), SubResource( 31 ), SubResource( 32 ), SubResource( 33 ), SubResource( 34 ), SubResource( 35 ), SubResource( 36 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "walk_left",
|
||||||
|
"speed": 8.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 37 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_down_right",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 38 ), SubResource( 39 ), SubResource( 40 ), SubResource( 41 ), SubResource( 42 ), SubResource( 43 ), SubResource( 44 ), SubResource( 45 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "walk_up_right",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 46 ), SubResource( 47 ), SubResource( 48 ), SubResource( 49 ), SubResource( 50 ), SubResource( 51 ), SubResource( 52 ), SubResource( 53 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "walk_right",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 54 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_down",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 55 ), SubResource( 56 ), SubResource( 57 ), SubResource( 58 ), SubResource( 59 ), SubResource( 60 ), SubResource( 61 ), SubResource( 62 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "walk_up",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 63 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_up",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 64 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_up_right",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 65 ), SubResource( 66 ), SubResource( 67 ), SubResource( 68 ), SubResource( 69 ), SubResource( 70 ), SubResource( 71 ), SubResource( 72 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "walk_down_right",
|
||||||
|
"speed": 5.0
|
||||||
|
} ]
|
||||||
|
|
||||||
|
[sub_resource type="CapsuleShape2D" id=74]
|
||||||
|
height = 0.0
|
||||||
|
|
||||||
|
[node name="character" type="KinematicBody2D"]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
global_id = "player"
|
||||||
|
animations = ExtResource( 2 )
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
|
||||||
|
[node name="sprite" type="AnimatedSprite" parent="."]
|
||||||
|
position = Vector2( 0, -78.4786 )
|
||||||
|
scale = Vector2( 2, 2 )
|
||||||
|
frames = SubResource( 73 )
|
||||||
|
animation = "idle_down_right"
|
||||||
|
|
||||||
|
[node name="collision" type="CollisionShape2D" parent="."]
|
||||||
|
shape = SubResource( 74 )
|
||||||
|
|
||||||
|
[node name="debug" type="Label" parent="."]
|
||||||
|
margin_right = 40.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="dialog_position" type="Position2D" parent="."]
|
||||||
|
position = Vector2( 0, -195.195 )
|
||||||
90
game/characters/character2/character_anims.gd
Normal file
90
game/characters/character2/character_anims.gd
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
#const dir_angles = [
|
||||||
|
# 0, # 0 NORTH FACE CAMERA
|
||||||
|
# 45, # 1 NORTHEAST
|
||||||
|
# 90, # 2 EAST
|
||||||
|
# 135, # 3 SOUTHEAST
|
||||||
|
# 180, # 4 SOUTH BACK TO CAMERA
|
||||||
|
# 225, # 5 SOUTHWEST
|
||||||
|
# 270, # 6 WEST
|
||||||
|
# 315, # 7 NORTHWEST
|
||||||
|
#]
|
||||||
|
|
||||||
|
# Angle is [from_angle, area_angle]
|
||||||
|
# example : on a clock, [180, 45] starts exactly from 6 o'clock (180°)
|
||||||
|
# and stops between 7 o'clock and 8 o'clock (45° from 6 o'clock)
|
||||||
|
const dir_angles = [
|
||||||
|
[340, 40], # 0 UP
|
||||||
|
[20, 50], # 1 RIGHT UP
|
||||||
|
[70, 40], # 2 RIGHT
|
||||||
|
[110, 50], # 3 RIGHT DOWN
|
||||||
|
[160, 40], # 4 DOWN
|
||||||
|
[200, 50], # 5 LEFT DOWN
|
||||||
|
[250, 40], # 6 LEFT
|
||||||
|
[290, 50] # 7 LEFT UP
|
||||||
|
]
|
||||||
|
|
||||||
|
# Array of animations for each direction, from UP to RIGHT_UP clockwise
|
||||||
|
# [animation_name, scale] : scale parameter can be set to -1 to mirror the animation
|
||||||
|
const directions = [
|
||||||
|
["walk_up", 1], # 0 UP
|
||||||
|
["walk_up_right", 1], # 1 RIGHT UP
|
||||||
|
["walk_right", 1], # 2 RIGHT
|
||||||
|
["walk_down_right", 1], # 3 RIGHT DOWN
|
||||||
|
["walk_down", 1], # 4 DOWN
|
||||||
|
["walk_down_left", 1], # 5 LEFT DOWN
|
||||||
|
["walk_left", 1], # 6 LEFT
|
||||||
|
["walk_up_left", 1] # 7 LEFT UP
|
||||||
|
]
|
||||||
|
|
||||||
|
const idles = [
|
||||||
|
["idle_up", 1], # 0 UP
|
||||||
|
["idle_up_right", 1], # 1 RIGHT UP
|
||||||
|
["idle_right", 1], # 2 RIGHT
|
||||||
|
["idle_down_right", 1], # 3 RIGHT DOWN
|
||||||
|
["idle_down", 1], # 4 DOWN
|
||||||
|
["idle_down_left", 1], # 5 LEFT DOWN
|
||||||
|
["idle_left", 1], # 6 LEFT
|
||||||
|
["idle_up_left", 1] # 7 LEFT UP
|
||||||
|
]
|
||||||
|
|
||||||
|
const speaks = [
|
||||||
|
["idle_up", 1], # 0 UP
|
||||||
|
["idle_up_right", 1], # 1 RIGHT UP
|
||||||
|
["idle_right", 1], # 2 RIGHT
|
||||||
|
["idle_down_right", 1], # 3 RIGHT DOWN
|
||||||
|
["idle_down", 1], # 4 DOWN
|
||||||
|
["idle_down_left", 1], # 5 LEFT DOWN
|
||||||
|
["idle_left", 1], # 6 LEFT
|
||||||
|
["idle_up_left", 1] # 7 LEFT UP
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
#const directions = ["walk_left", -1, # 0
|
||||||
|
# "walk_left", -1, # 1
|
||||||
|
# "walk_back", 1, # 2
|
||||||
|
# "walk_back", 1, # 3
|
||||||
|
# "walk_left", 1, # 4
|
||||||
|
# "walk_left", 1, # 5
|
||||||
|
# "walk_front", 1, # 6
|
||||||
|
# "walk_front", 1 # 7
|
||||||
|
# ]
|
||||||
|
#
|
||||||
|
#const idles = [ "idle_front_right", 1, # 0
|
||||||
|
# "idle_front_right", 1, # 1
|
||||||
|
# "idle_back", 1, # 2
|
||||||
|
# "idle_back", 1, # 3
|
||||||
|
# "idle_front_left", 1, # 4
|
||||||
|
# "idle_front_left", 1, # 5
|
||||||
|
# "idle_front", 1, # 6
|
||||||
|
# "idle_front", 1 # 7
|
||||||
|
# ]
|
||||||
|
#
|
||||||
|
#const speaks = ["idle_front_left", 1, # 0
|
||||||
|
# "idle_front_left", 1, # 1
|
||||||
|
# "idle_back", 1, # 2
|
||||||
|
# "idle_back", 1, # 3
|
||||||
|
# "idle_front_right", 1, # 4
|
||||||
|
# "idle_front_right", 1, # 5
|
||||||
|
# "idle_front", 1, # 6
|
||||||
|
# "idle_front", 1 # 7
|
||||||
|
# ]
|
||||||
@@ -96,16 +96,26 @@ shader_param/col = Color( 0.611765, 0.215686, 0.0431373, 1 )
|
|||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=4]
|
[sub_resource type="SpriteFrames" id=4]
|
||||||
animations = [ {
|
animations = [ {
|
||||||
|
"frames": [ ExtResource( 8 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_back",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ ExtResource( 10 ), ExtResource( 11 ), ExtResource( 12 ), ExtResource( 13 ), ExtResource( 14 ), ExtResource( 15 ), ExtResource( 16 ), ExtResource( 17 ), ExtResource( 18 ), ExtResource( 19 ), ExtResource( 20 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "walk_front",
|
||||||
|
"speed": 8.0
|
||||||
|
}, {
|
||||||
|
"frames": [ ExtResource( 6 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_front_right",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
"frames": [ ExtResource( 9 ) ],
|
"frames": [ ExtResource( 9 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "idle_back_right",
|
"name": "idle_back_right",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ ExtResource( 45 ), ExtResource( 46 ), ExtResource( 47 ), ExtResource( 48 ), ExtResource( 49 ), ExtResource( 50 ), ExtResource( 51 ), ExtResource( 52 ), ExtResource( 53 ), ExtResource( 54 ), ExtResource( 55 ), ExtResource( 56 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "walk_back",
|
|
||||||
"speed": 8.0
|
|
||||||
}, {
|
|
||||||
"frames": [ ExtResource( 57 ), ExtResource( 58 ), ExtResource( 59 ), ExtResource( 60 ), ExtResource( 61 ), ExtResource( 62 ), ExtResource( 63 ), ExtResource( 64 ), ExtResource( 65 ), ExtResource( 66 ), ExtResource( 67 ), ExtResource( 68 ) ],
|
"frames": [ ExtResource( 57 ), ExtResource( 58 ), ExtResource( 59 ), ExtResource( 60 ), ExtResource( 61 ), ExtResource( 62 ), ExtResource( 63 ), ExtResource( 64 ), ExtResource( 65 ), ExtResource( 66 ), ExtResource( 67 ), ExtResource( 68 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "walk_back_left",
|
"name": "walk_back_left",
|
||||||
@@ -116,40 +126,30 @@ animations = [ {
|
|||||||
"name": "idle_front_left",
|
"name": "idle_front_left",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ ExtResource( 8 ) ],
|
"frames": [ ExtResource( 33 ), ExtResource( 34 ), ExtResource( 35 ), ExtResource( 36 ), ExtResource( 37 ), ExtResource( 38 ), ExtResource( 39 ), ExtResource( 40 ), ExtResource( 41 ), ExtResource( 42 ), ExtResource( 43 ), ExtResource( 44 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "idle_back",
|
"name": "walk_left",
|
||||||
"speed": 5.0
|
"speed": 8.0
|
||||||
|
}, {
|
||||||
|
"frames": [ ExtResource( 45 ), ExtResource( 46 ), ExtResource( 47 ), ExtResource( 48 ), ExtResource( 49 ), ExtResource( 50 ), ExtResource( 51 ), ExtResource( 52 ), ExtResource( 53 ), ExtResource( 54 ), ExtResource( 55 ), ExtResource( 56 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "walk_back",
|
||||||
|
"speed": 8.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ ExtResource( 7 ) ],
|
"frames": [ ExtResource( 7 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "idle_back_left",
|
"name": "idle_back_left",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ ExtResource( 5 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "idle_front",
|
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ ExtResource( 10 ), ExtResource( 11 ), ExtResource( 12 ), ExtResource( 13 ), ExtResource( 14 ), ExtResource( 15 ), ExtResource( 16 ), ExtResource( 17 ), ExtResource( 18 ), ExtResource( 19 ), ExtResource( 20 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "walk_front",
|
|
||||||
"speed": 8.0
|
|
||||||
}, {
|
|
||||||
"frames": [ ExtResource( 21 ), ExtResource( 22 ), ExtResource( 23 ), ExtResource( 24 ), ExtResource( 25 ), ExtResource( 26 ), ExtResource( 27 ), ExtResource( 28 ), ExtResource( 29 ), ExtResource( 30 ), ExtResource( 31 ), ExtResource( 32 ) ],
|
"frames": [ ExtResource( 21 ), ExtResource( 22 ), ExtResource( 23 ), ExtResource( 24 ), ExtResource( 25 ), ExtResource( 26 ), ExtResource( 27 ), ExtResource( 28 ), ExtResource( 29 ), ExtResource( 30 ), ExtResource( 31 ), ExtResource( 32 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "walk_front_left",
|
"name": "walk_front_left",
|
||||||
"speed": 8.0
|
"speed": 8.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ ExtResource( 6 ) ],
|
"frames": [ ExtResource( 5 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "idle_front_right",
|
"name": "idle_front",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
|
||||||
"frames": [ ExtResource( 33 ), ExtResource( 34 ), ExtResource( 35 ), ExtResource( 36 ), ExtResource( 37 ), ExtResource( 38 ), ExtResource( 39 ), ExtResource( 40 ), ExtResource( 41 ), ExtResource( 42 ), ExtResource( 43 ), ExtResource( 44 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "walk_left",
|
|
||||||
"speed": 8.0
|
|
||||||
} ]
|
} ]
|
||||||
|
|
||||||
[sub_resource type="Animation" id=5]
|
[sub_resource type="Animation" id=5]
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
[ext_resource path="res://game/items/escitems/filled_sheet_escitem.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://game/items/escitems/filled_sheet_escitem.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/items_inventory.gd" type="Script" id=5]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/items_inventory.gd" type="Script" id=5]
|
||||||
|
|
||||||
[node name="all_items" type="Node2D"]
|
[node name="ESCORIA_ALL_ITEMS" type="Node2D"]
|
||||||
visible = false
|
visible = false
|
||||||
script = ExtResource( 5 )
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
@@ -8,6 +8,9 @@ set_active r5_pen false
|
|||||||
|
|
||||||
:use r5_empty_sheet
|
:use r5_empty_sheet
|
||||||
say player "So, let's see..."
|
say player "So, let's see..."
|
||||||
set_global i/r5_pen false
|
#set_global i/r5_pen false
|
||||||
set_global i/r5_empty_sheet false
|
inventory_remove r5_pen
|
||||||
set_global i/r5_filled_sheet true
|
#set_global i/r5_empty_sheet false
|
||||||
|
inventory_remove r5_empty_sheet
|
||||||
|
#set_global i/r5_filled_sheet true
|
||||||
|
inventory_add r5_filled_sheet
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
[ext_resource path="res://game/rooms/room1/walkable_area.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://game/rooms/room1/walkable_area.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://game/rooms/room1/background.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://game/rooms/room1/background.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/eschotspot.gd" type="Script" id=3]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/eschotspot.gd" type="Script" id=3]
|
||||||
[ext_resource path="res://game/characters/guybrush/guybrush.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://game/characters/character2/character.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6]
|
||||||
|
|
||||||
[node name="room1" type="Node2D"]
|
[node name="room1" type="Node2D"]
|
||||||
@@ -26,15 +26,6 @@ text = "Move : left click
|
|||||||
Fast move : double left click"
|
Fast move : double left click"
|
||||||
|
|
||||||
[node name="walkable_area" parent="." instance=ExtResource( 1 )]
|
[node name="walkable_area" parent="." instance=ExtResource( 1 )]
|
||||||
scales = null
|
|
||||||
bitmaps_scale = Vector2( 1, 1 )
|
|
||||||
lightmap = null
|
|
||||||
player_speed_multiplier = 1.0
|
|
||||||
player_doubleclick_speed_multiplier = 1.5
|
|
||||||
lightmap_modulate = Color( 1, 1, 1, 1 )
|
|
||||||
debug_mode = 1
|
|
||||||
scale_min = 0.3
|
|
||||||
scale_max = 1.0
|
|
||||||
|
|
||||||
[node name="Hotspots" type="Node2D" parent="."]
|
[node name="Hotspots" type="Node2D" parent="."]
|
||||||
|
|
||||||
@@ -45,6 +36,9 @@ is_exit = true
|
|||||||
esc_script = "res://game/rooms/room1/esc/right_exit.esc"
|
esc_script = "res://game/rooms/room1/esc/right_exit.esc"
|
||||||
tooltip_name = "Exit"
|
tooltip_name = "Exit"
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
interact_positions = {
|
||||||
|
"default": Vector2( 1225.47, 353.99 )
|
||||||
|
}
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"]
|
||||||
polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 )
|
polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 )
|
||||||
@@ -58,6 +52,9 @@ global_id = "r1_item"
|
|||||||
esc_script = "res://game/rooms/room1/esc/wall_item.esc"
|
esc_script = "res://game/rooms/room1/esc/wall_item.esc"
|
||||||
tooltip_name = "Item on the wall"
|
tooltip_name = "Item on the wall"
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
interact_positions = {
|
||||||
|
"default": Vector2( 671.798, 373.035 )
|
||||||
|
}
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/item"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/item"]
|
||||||
polygon = PoolVector2Array( 635.586, 253.345, 568.928, 60.1716, 709.047, 120.028, 699.524, 247.903 )
|
polygon = PoolVector2Array( 635.586, 253.345, 568.928, 60.1716, 709.047, 120.028, 699.524, 247.903 )
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
[ext_resource path="res://game/rooms/room2/walkable_area.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://game/rooms/room2/walkable_area.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://game/rooms/room2/background.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://game/rooms/room2/background.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/eschotspot.gd" type="Script" id=3]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/eschotspot.gd" type="Script" id=3]
|
||||||
[ext_resource path="res://game/characters/guybrush/guybrush.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://game/characters/character2/character.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=7]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=7]
|
||||||
|
|
||||||
@@ -17,15 +17,6 @@ esc_script = "res://game/rooms/room2/esc/room2_bridge.esc"
|
|||||||
player_scene = ExtResource( 4 )
|
player_scene = ExtResource( 4 )
|
||||||
|
|
||||||
[node name="walkable_area" parent="." instance=ExtResource( 1 )]
|
[node name="walkable_area" parent="." instance=ExtResource( 1 )]
|
||||||
scales = null
|
|
||||||
bitmaps_scale = Vector2( 1, 1 )
|
|
||||||
lightmap = null
|
|
||||||
player_speed_multiplier = 1.0
|
|
||||||
player_doubleclick_speed_multiplier = 1.5
|
|
||||||
lightmap_modulate = Color( 1, 1, 1, 1 )
|
|
||||||
debug_mode = 1
|
|
||||||
scale_min = 0.3
|
|
||||||
scale_max = 1.0
|
|
||||||
|
|
||||||
[node name="background" parent="." instance=ExtResource( 2 )]
|
[node name="background" parent="." instance=ExtResource( 2 )]
|
||||||
|
|
||||||
@@ -38,6 +29,9 @@ esc_script = "res://game/rooms/room2/esc/right_platform.esc"
|
|||||||
interaction_direction = 3
|
interaction_direction = 3
|
||||||
tooltip_name = "Right platform"
|
tooltip_name = "Right platform"
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
interact_positions = {
|
||||||
|
"default": Vector2( 430.893, 451.052 )
|
||||||
|
}
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_platform"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_platform"]
|
||||||
polygon = PoolVector2Array( 870.974, 538.342, 827.536, 353.995, 1181.4, 357.174, 1287.34, 413.325, 1289.46, 545.758 )
|
polygon = PoolVector2Array( 870.974, 538.342, 827.536, 353.995, 1181.4, 357.174, 1287.34, 413.325, 1289.46, 545.758 )
|
||||||
@@ -52,6 +46,9 @@ is_exit = true
|
|||||||
esc_script = "res://game/rooms/room2/esc/right_exit.esc"
|
esc_script = "res://game/rooms/room2/esc/right_exit.esc"
|
||||||
tooltip_name = "Exit"
|
tooltip_name = "Exit"
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
interact_positions = {
|
||||||
|
"default": Vector2( 1225.47, 353.99 )
|
||||||
|
}
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"]
|
||||||
polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 )
|
polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 )
|
||||||
@@ -66,6 +63,9 @@ is_exit = true
|
|||||||
esc_script = "res://game/rooms/room2/esc/left_exit.esc"
|
esc_script = "res://game/rooms/room2/esc/left_exit.esc"
|
||||||
tooltip_name = "Exit"
|
tooltip_name = "Exit"
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
interact_positions = {
|
||||||
|
"default": Vector2( 52.1462, 384.691 )
|
||||||
|
}
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"]
|
||||||
polygon = PoolVector2Array( -1.37926, 443.158, 7.96461, 122.796, 84.0504, 77.4118, 88.055, 377.751 )
|
polygon = PoolVector2Array( -1.37926, 443.158, 7.96461, 122.796, 84.0504, 77.4118, 88.055, 377.751 )
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
[ext_resource path="res://game/rooms/room3/walkable_area.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://game/rooms/room3/walkable_area.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://game/rooms/room3/background.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://game/rooms/room3/background.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/eschotspot.gd" type="Script" id=3]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/eschotspot.gd" type="Script" id=3]
|
||||||
[ext_resource path="res://game/characters/guybrush/guybrush.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://game/characters/character2/character.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6]
|
||||||
|
|
||||||
[node name="room3" type="Node2D"]
|
[node name="room3" type="Node2D"]
|
||||||
@@ -15,15 +15,6 @@ player_scene = ExtResource( 4 )
|
|||||||
[node name="background" parent="." instance=ExtResource( 2 )]
|
[node name="background" parent="." instance=ExtResource( 2 )]
|
||||||
|
|
||||||
[node name="walkable_area" parent="." instance=ExtResource( 1 )]
|
[node name="walkable_area" parent="." instance=ExtResource( 1 )]
|
||||||
scales = null
|
|
||||||
bitmaps_scale = Vector2( 1, 1 )
|
|
||||||
lightmap = null
|
|
||||||
player_speed_multiplier = 1.0
|
|
||||||
player_doubleclick_speed_multiplier = 1.5
|
|
||||||
lightmap_modulate = Color( 1, 1, 1, 1 )
|
|
||||||
debug_mode = 1
|
|
||||||
scale_min = 0.3
|
|
||||||
scale_max = 1.0
|
|
||||||
|
|
||||||
[node name="Hotspots" type="Node2D" parent="."]
|
[node name="Hotspots" type="Node2D" parent="."]
|
||||||
|
|
||||||
@@ -36,6 +27,9 @@ global_id = "r3_right_platform"
|
|||||||
esc_script = "res://game/rooms/room3/esc/right_platform.esc"
|
esc_script = "res://game/rooms/room3/esc/right_platform.esc"
|
||||||
tooltip_name = "Right platform"
|
tooltip_name = "Right platform"
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
interact_positions = {
|
||||||
|
"default": Vector2( 430.893, 451.052 )
|
||||||
|
}
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_platform"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_platform"]
|
||||||
polygon = PoolVector2Array( 870.974, 538.342, 827.536, 353.995, 1181.4, 357.174, 1287.34, 413.325, 1289.46, 545.758 )
|
polygon = PoolVector2Array( 870.974, 538.342, 827.536, 353.995, 1181.4, 357.174, 1287.34, 413.325, 1289.46, 545.758 )
|
||||||
@@ -56,6 +50,9 @@ is_exit = true
|
|||||||
esc_script = "res://game/rooms/room3/esc/right_exit.esc"
|
esc_script = "res://game/rooms/room3/esc/right_exit.esc"
|
||||||
tooltip_name = "Exit"
|
tooltip_name = "Exit"
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
interact_positions = {
|
||||||
|
"default": Vector2( 1225.47, 353.99 )
|
||||||
|
}
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"]
|
||||||
polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 )
|
polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 )
|
||||||
@@ -70,6 +67,9 @@ is_exit = true
|
|||||||
esc_script = "res://game/rooms/room3/esc/left_exit.esc"
|
esc_script = "res://game/rooms/room3/esc/left_exit.esc"
|
||||||
tooltip_name = "Exit"
|
tooltip_name = "Exit"
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
interact_positions = {
|
||||||
|
"default": Vector2( 44.1375, 384.691 )
|
||||||
|
}
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"]
|
||||||
polygon = PoolVector2Array( -2.71457, 437.818, 6.6293, 121.462, 89.3893, 74.7422, 88.0545, 376.416 )
|
polygon = PoolVector2Array( -2.71457, 437.818, 6.6293, 121.462, 89.3893, 74.7422, 88.0545, 376.416 )
|
||||||
|
|||||||
@@ -9,9 +9,9 @@
|
|||||||
[ext_resource path="res://game/rooms/room4/assets/depth_reduced.png" type="Texture" id=8]
|
[ext_resource path="res://game/rooms/room4/assets/depth_reduced.png" type="Texture" id=8]
|
||||||
|
|
||||||
[sub_resource type="NavigationPolygon" id=1]
|
[sub_resource type="NavigationPolygon" id=1]
|
||||||
vertices = PoolVector2Array( 1564.36, 574.459, 1576.02, 540.556, 1634.29, 568.102, 1624.42, 800.399, 1536.87, 579.274, 1012.68, 786.929, 1197.79, 675.666, 908.294, 488.354, 996.968, 451.313, 600.739, 456.925, 673.699, 490.599, 371.757, 688.152, 542.371, 788.052, 2.46706, 794.786, 11.4468, 698.255, 189.918, 682.54, 127.06, 573.661, 23.7938, 614.07, 42.8757, 527.64, 125.938, 536.62 )
|
vertices = PoolVector2Array( 371.757, 688.152, 542.371, 788.052, 2.46706, 794.786, 11.4468, 698.255, 189.918, 682.54, 1564.36, 574.459, 1578.66, 529.011, 1635.23, 551.638, 1624.42, 800.399, 1536.87, 579.274, 1012.68, 786.929, 1197.79, 675.666, 908.294, 488.354, 996.968, 451.313, 600.739, 456.925, 673.699, 490.599, 127.06, 573.661, 23.7938, 614.07, 42.8757, 527.64, 125.717, 528.797 )
|
||||||
polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 0, 3, 5, 6 ), PoolIntArray( 6, 5, 7, 8 ), PoolIntArray( 9, 8, 7, 10 ), PoolIntArray( 11, 12, 13, 14, 15 ), PoolIntArray( 9, 10, 12, 11 ), PoolIntArray( 16, 15, 14, 17, 18 ), PoolIntArray( 16, 18, 19 ) ]
|
polygons = [ PoolIntArray( 0, 1, 2, 3, 4 ), PoolIntArray( 5, 6, 7, 8 ), PoolIntArray( 9, 5, 8, 10, 11 ), PoolIntArray( 11, 10, 12, 13 ), PoolIntArray( 14, 13, 12, 15 ), PoolIntArray( 14, 15, 1, 0 ), PoolIntArray( 16, 4, 3, 17, 18 ), PoolIntArray( 16, 18, 19 ) ]
|
||||||
outlines = [ PoolVector2Array( 11.4468, 698.255, 23.7938, 614.07, 42.8757, 527.64, 125.938, 536.62, 127.06, 573.661, 189.918, 682.54, 371.757, 688.152, 600.739, 456.925, 996.968, 451.313, 1197.79, 675.666, 1536.87, 579.274, 1564.36, 574.459, 1576.02, 540.556, 1634.29, 568.102, 1624.42, 800.399, 1012.68, 786.929, 908.294, 488.354, 673.699, 490.599, 542.371, 788.052, 2.46706, 794.786 ) ]
|
outlines = [ PoolVector2Array( 11.4468, 698.255, 23.7938, 614.07, 42.8757, 527.64, 125.717, 528.797, 127.06, 573.661, 189.918, 682.54, 371.757, 688.152, 600.739, 456.925, 996.968, 451.313, 1197.79, 675.666, 1536.87, 579.274, 1564.36, 574.459, 1578.66, 529.011, 1635.23, 551.638, 1624.42, 800.399, 1012.68, 786.929, 908.294, 488.354, 673.699, 490.599, 542.371, 788.052, 2.46706, 794.786 ) ]
|
||||||
|
|
||||||
[node name="room4" type="Node2D"]
|
[node name="room4" type="Node2D"]
|
||||||
script = ExtResource( 6 )
|
script = ExtResource( 6 )
|
||||||
@@ -20,15 +20,13 @@ esc_script = "res://game/rooms/room4/esc/room4.esc"
|
|||||||
player_scene = ExtResource( 4 )
|
player_scene = ExtResource( 4 )
|
||||||
|
|
||||||
[node name="background" type="TextureRect" parent="."]
|
[node name="background" type="TextureRect" parent="."]
|
||||||
margin_left = 0.943848
|
margin_right = 1663.0
|
||||||
margin_right = 2398.94
|
|
||||||
margin_bottom = 549.0
|
margin_bottom = 549.0
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
esc_script = ""
|
|
||||||
|
|
||||||
[node name="Sprite" type="Sprite" parent="background"]
|
[node name="Sprite" type="Sprite" parent="background"]
|
||||||
scale = Vector2( 0.692794, 0.692794 )
|
scale = Vector2( 0.692794, 0.692794 )
|
||||||
@@ -52,14 +50,9 @@ points = PoolVector2Array( 6.10242, 307.886, 2.0979, 129.017, 84.858, 129.017, 8
|
|||||||
[node name="walkable_area" type="Navigation2D" parent="."]
|
[node name="walkable_area" type="Navigation2D" parent="."]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
scales = ExtResource( 8 )
|
scales = ExtResource( 8 )
|
||||||
bitmaps_scale = Vector2( 1, 1 )
|
|
||||||
lightmap = null
|
|
||||||
player_speed_multiplier = 1.0
|
|
||||||
player_doubleclick_speed_multiplier = 1.8
|
player_doubleclick_speed_multiplier = 1.8
|
||||||
lightmap_modulate = Color( 1, 1, 1, 1 )
|
|
||||||
debug_mode = 0
|
debug_mode = 0
|
||||||
scale_min = 0.4
|
scale_min = 0.4
|
||||||
scale_max = 1.0
|
|
||||||
|
|
||||||
[node name="platform" type="NavigationPolygonInstance" parent="walkable_area"]
|
[node name="platform" type="NavigationPolygonInstance" parent="walkable_area"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -73,24 +66,6 @@ __meta__ = {
|
|||||||
position = Vector2( 697.275, 203.998 )
|
position = Vector2( 697.275, 203.998 )
|
||||||
|
|
||||||
[node name="Hotspots" type="Node2D" parent="."]
|
[node name="Hotspots" type="Node2D" parent="."]
|
||||||
position = Vector2( 0.943848, 0 )
|
|
||||||
|
|
||||||
[node name="r_door" type="Area2D" parent="Hotspots"]
|
|
||||||
script = ExtResource( 3 )
|
|
||||||
global_id = "r_exit"
|
|
||||||
is_exit = true
|
|
||||||
esc_script = "res://game/rooms/room4/esc/right_exit.esc"
|
|
||||||
tooltip_name = "Exit"
|
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
|
||||||
interact_positions = {
|
|
||||||
"default": Vector2( 84.5736, 279.703 )
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"]
|
|
||||||
polygon = PoolVector2Array( 1567.92, 294.848, 1573.21, 92.4902, 1651.61, 127.452, 1654.79, 343.583 )
|
|
||||||
|
|
||||||
[node name="Position2D" type="Position2D" parent="Hotspots/r_door"]
|
|
||||||
position = Vector2( 1611.46, 301.017 )
|
|
||||||
|
|
||||||
[node name="l_door" type="Area2D" parent="Hotspots"]
|
[node name="l_door" type="Area2D" parent="Hotspots"]
|
||||||
script = ExtResource( 3 )
|
script = ExtResource( 3 )
|
||||||
@@ -104,7 +79,24 @@ interact_positions = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"]
|
||||||
polygon = PoolVector2Array( 26.3979, 288.491, 27.4573, 70.2414, 147.177, 74.4792, 151.415, 293.788 )
|
polygon = PoolVector2Array( 29.1046, 292.156, 31.0151, 76.8949, 147.177, 74.4792, 151.415, 293.788 )
|
||||||
|
|
||||||
[node name="Position2D" type="Position2D" parent="Hotspots/l_door"]
|
[node name="Position2D" type="Position2D" parent="Hotspots/l_door"]
|
||||||
position = Vector2( 83.6298, 279.703 )
|
position = Vector2( 83.6298, 279.703 )
|
||||||
|
|
||||||
|
[node name="r_door" type="Area2D" parent="Hotspots"]
|
||||||
|
script = ExtResource( 3 )
|
||||||
|
global_id = "r_exit"
|
||||||
|
is_exit = true
|
||||||
|
esc_script = "res://game/rooms/room4/esc/right_exit.esc"
|
||||||
|
tooltip_name = "Exit"
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
interact_positions = {
|
||||||
|
"default": Vector2( 1612.4, 301.017 )
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"]
|
||||||
|
polygon = PoolVector2Array( 1567.92, 294.848, 1573.21, 92.4902, 1657.34, 129.485, 1654.79, 343.583 )
|
||||||
|
|
||||||
|
[node name="Position2D" type="Position2D" parent="Hotspots/r_door"]
|
||||||
|
position = Vector2( 1611.46, 301.017 )
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escterrain.gd" type="Script" id=1]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/escterrain.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://game/rooms/room5/background.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://game/rooms/room5/background.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/eschotspot.gd" type="Script" id=3]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/eschotspot.gd" type="Script" id=3]
|
||||||
[ext_resource path="res://game/characters/guybrush/guybrush.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://game/characters/character2/character.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=7]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=7]
|
||||||
[ext_resource path="res://game/items/escitems/wrench_escitem.tscn" type="PackedScene" id=8]
|
[ext_resource path="res://game/items/escitems/wrench_escitem.tscn" type="PackedScene" id=8]
|
||||||
|
|||||||
@@ -7,32 +7,32 @@ say player "I don't think he'd like that."
|
|||||||
:talk
|
:talk
|
||||||
> [!talked_once]
|
> [!talked_once]
|
||||||
say player "Uhm..."
|
say player "Uhm..."
|
||||||
say character "Yeah?"
|
say android "Yeah?"
|
||||||
set_global talked_once true
|
set_global talked_once true
|
||||||
|
|
||||||
? option1 1000 option2 true
|
? option1 1000 option2 true
|
||||||
- "What are you doing here?"
|
- "What are you doing here?"
|
||||||
say player "What are you doing here?"
|
say player "What are you doing here?"
|
||||||
say character "I'm working! Can't you see that?"
|
say android "I'm working! Can't you see that?"
|
||||||
say character "My colleague is supposed to bring me an important report. And he's not coming!"
|
say android "My colleague is supposed to bring me an important report. And he's not coming!"
|
||||||
?
|
?
|
||||||
- "I'll bring you this report!"
|
- "I'll bring you this report!"
|
||||||
say player "I'll bring you this report!"
|
say player "I'll bring you this report!"
|
||||||
say character "You will? Great!"
|
say android "You will? Great!"
|
||||||
say character "Now please hurry up so I can leave and have lunch."
|
say android "Now please hurry up so I can leave and have lunch."
|
||||||
stop
|
stop
|
||||||
- "I've got better things to do."
|
- "I've got better things to do."
|
||||||
say player "I've got better things to do."
|
say player "I've got better things to do."
|
||||||
say character "Eh! I'm not asking you anythin'!"
|
say android "Eh! I'm not asking you anythin'!"
|
||||||
stop
|
stop
|
||||||
|
|
||||||
- "I'm selling these fine leather jackets."
|
- "I'm selling these fine leather jackets."
|
||||||
say player "I'm selling these fine leather jackets."
|
say player "I'm selling these fine leather jackets."
|
||||||
say character "Go away, kid."
|
say android "Go away, kid."
|
||||||
stop
|
stop
|
||||||
|
|
||||||
:give filled_sheet
|
:give filled_sheet
|
||||||
say character "Hey! That's perfect!"
|
say android "Hey! That's perfect!"
|
||||||
say character "I can finally got away from here!"
|
say android "I can finally got away from here!"
|
||||||
walk character 1200,400
|
walk android 1200,400
|
||||||
set_angle character 45
|
set_angle android 45
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
[ext_resource path="res://game/characters/guybrush/guybrush.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://game/characters/guybrush/guybrush.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=5]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=5]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6]
|
||||||
[ext_resource path="res://game/characters/character/character.tscn" type="PackedScene" id=7]
|
[ext_resource path="res://game/characters/character/android.tscn" type="PackedScene" id=7]
|
||||||
|
|
||||||
[sub_resource type="NavigationPolygon" id=1]
|
[sub_resource type="NavigationPolygon" id=1]
|
||||||
vertices = PoolVector2Array( 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, 129.634, 615.792, 1143.08, 613.35, -9.16094, 803.802, 84.5821, 654.06, -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698 )
|
vertices = PoolVector2Array( 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, 129.634, 615.792, 1143.08, 613.35, -9.16094, 803.802, 84.5821, 654.06, -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698 )
|
||||||
@@ -170,15 +170,15 @@ position = Vector2( 1180.52, 395.193 )
|
|||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door/Area2D"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door/Area2D"]
|
||||||
polygon = PoolVector2Array( 1169.35, 41.7644, 1168.09, 347.925, 1275.18, 407.141, 1278.96, 88.3814 )
|
polygon = PoolVector2Array( 1169.35, 41.7644, 1168.09, 347.925, 1275.18, 407.141, 1278.96, 88.3814 )
|
||||||
|
|
||||||
[node name="character" parent="Hotspots" instance=ExtResource( 7 )]
|
[node name="android" parent="Hotspots" instance=ExtResource( 7 )]
|
||||||
position = Vector2( 373.401, 415.66 )
|
position = Vector2( 373.401, 415.66 )
|
||||||
scale = Vector2( -1, 1 )
|
scale = Vector2( -1, 1 )
|
||||||
esc_script = "res://game/rooms/room6/esc/character.esc"
|
esc_script = "res://game/rooms/room6/esc/android.esc"
|
||||||
interact_positions = {
|
interact_positions = {
|
||||||
"default": Vector2( 595.637, 438.337 )
|
"default": Vector2( 151.165, 438.337 )
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="Position2D" type="Position2D" parent="Hotspots/character"]
|
[node name="Position2D" type="Position2D" parent="Hotspots/android"]
|
||||||
position = Vector2( 222.236, 22.6772 )
|
position = Vector2( 222.236, 22.6772 )
|
||||||
|
|
||||||
[node name="player_start" type="Position2D" parent="."]
|
[node name="player_start" type="Position2D" parent="."]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
:setup
|
:setup
|
||||||
> [eq ESC_LAST_SCENE room5]
|
> [eq ESC_LAST_SCENE room6]
|
||||||
teleport player r6_l_exit
|
teleport player r7_l_exit
|
||||||
# Set player look right
|
# Set player look right
|
||||||
set_angle player 180
|
set_angle player 180
|
||||||
stop
|
stop
|
||||||
@@ -9,8 +9,15 @@
|
|||||||
stop
|
stop
|
||||||
|
|
||||||
:ready
|
:ready
|
||||||
#set_global i/r5_pen true
|
|
||||||
#set_active r5_pen false
|
camera_push r7_object2 1 LINEAR
|
||||||
#set_global i/r5_empty_sheet true
|
wait 3
|
||||||
#set_active r5_empty_sheet false
|
camera_push player 1 LINEAR
|
||||||
|
|
||||||
|
#camera_set_drag_margin_enabled bool bool
|
||||||
|
#camera_set_pos real int int
|
||||||
|
#camera_set_target real
|
||||||
|
#camera_set_zoom real
|
||||||
|
#camera_set_zoom_height int
|
||||||
|
#camera_shift int int
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
[gd_scene load_steps=10 format=2]
|
[gd_scene load_steps=7 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escterrain.gd" type="Script" id=1]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/escterrain.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://game/rooms/room7/background.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://game/rooms/room7/background.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/eschotspot.gd" type="Script" id=3]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/eschotspot.gd" type="Script" id=3]
|
||||||
[ext_resource path="res://game/characters/guybrush/guybrush.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://game/characters/guybrush/guybrush.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=5]
|
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6]
|
||||||
|
|
||||||
[sub_resource type="NavigationPolygon" id=1]
|
[sub_resource type="NavigationPolygon" id=1]
|
||||||
@@ -12,85 +11,6 @@ vertices = PoolVector2Array( 1976.63, 640.557, 1987.95, 588.863, 2070.07, 622.87
|
|||||||
polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 0, 3, 6, 7 ), PoolIntArray( 7, 6, 8, 9, 10 ) ]
|
polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 0, 3, 6, 7 ), PoolIntArray( 7, 6, 8, 9, 10 ) ]
|
||||||
outlines = [ PoolVector2Array( -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698, 84.5821, 654.06, 129.634, 615.792, 1956.81, 616.096, 1976.63, 640.557, 1987.95, 588.863, 2070.07, 622.872, 2066.3, 799.721, -9.16094, 803.802 ) ]
|
outlines = [ PoolVector2Array( -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698, 84.5821, 654.06, 129.634, 615.792, 1956.81, 616.096, 1976.63, 640.557, 1987.95, 588.863, 2070.07, 622.872, 2066.3, 799.721, -9.16094, 803.802 ) ]
|
||||||
|
|
||||||
[sub_resource type="Animation" id=2]
|
|
||||||
resource_name = "r_door_close"
|
|
||||||
tracks/0/type = "value"
|
|
||||||
tracks/0/path = NodePath("r_door_closed:visible")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PoolRealArray( 0 ),
|
|
||||||
"transitions": PoolRealArray( 1 ),
|
|
||||||
"update": 1,
|
|
||||||
"values": [ true ]
|
|
||||||
}
|
|
||||||
tracks/1/type = "value"
|
|
||||||
tracks/1/path = NodePath("r_door_opened:visible")
|
|
||||||
tracks/1/interp = 1
|
|
||||||
tracks/1/loop_wrap = true
|
|
||||||
tracks/1/imported = false
|
|
||||||
tracks/1/enabled = true
|
|
||||||
tracks/1/keys = {
|
|
||||||
"times": PoolRealArray( 0 ),
|
|
||||||
"transitions": PoolRealArray( 1 ),
|
|
||||||
"update": 1,
|
|
||||||
"values": [ false ]
|
|
||||||
}
|
|
||||||
tracks/2/type = "value"
|
|
||||||
tracks/2/path = NodePath("Position2D:position")
|
|
||||||
tracks/2/interp = 1
|
|
||||||
tracks/2/loop_wrap = true
|
|
||||||
tracks/2/imported = false
|
|
||||||
tracks/2/enabled = true
|
|
||||||
tracks/2/keys = {
|
|
||||||
"times": PoolRealArray( 0 ),
|
|
||||||
"transitions": PoolRealArray( 1 ),
|
|
||||||
"update": 0,
|
|
||||||
"values": [ Vector2( 1180.52, 395.193 ) ]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id=3]
|
|
||||||
resource_name = "r_door_open"
|
|
||||||
length = 0.3
|
|
||||||
tracks/0/type = "value"
|
|
||||||
tracks/0/path = NodePath("r_door_closed:visible")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PoolRealArray( 0 ),
|
|
||||||
"transitions": PoolRealArray( 1 ),
|
|
||||||
"update": 1,
|
|
||||||
"values": [ false ]
|
|
||||||
}
|
|
||||||
tracks/1/type = "value"
|
|
||||||
tracks/1/path = NodePath("r_door_opened:visible")
|
|
||||||
tracks/1/interp = 1
|
|
||||||
tracks/1/loop_wrap = true
|
|
||||||
tracks/1/imported = false
|
|
||||||
tracks/1/enabled = true
|
|
||||||
tracks/1/keys = {
|
|
||||||
"times": PoolRealArray( 0 ),
|
|
||||||
"transitions": PoolRealArray( 1 ),
|
|
||||||
"update": 1,
|
|
||||||
"values": [ true ]
|
|
||||||
}
|
|
||||||
tracks/2/type = "value"
|
|
||||||
tracks/2/path = NodePath("Position2D:position")
|
|
||||||
tracks/2/interp = 1
|
|
||||||
tracks/2/loop_wrap = true
|
|
||||||
tracks/2/imported = false
|
|
||||||
tracks/2/enabled = true
|
|
||||||
tracks/2/keys = {
|
|
||||||
"times": PoolRealArray( 0 ),
|
|
||||||
"transitions": PoolRealArray( 1 ),
|
|
||||||
"update": 0,
|
|
||||||
"values": [ Vector2( 1225.47, 353.99 ) ]
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="room7" type="Node2D"]
|
[node name="room7" type="Node2D"]
|
||||||
script = ExtResource( 6 )
|
script = ExtResource( 6 )
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
@@ -101,18 +21,13 @@ esc_script = "res://game/rooms/room7/esc/room7.esc"
|
|||||||
player_scene = ExtResource( 4 )
|
player_scene = ExtResource( 4 )
|
||||||
|
|
||||||
[node name="background" parent="." instance=ExtResource( 2 )]
|
[node name="background" parent="." instance=ExtResource( 2 )]
|
||||||
|
margin_right = 2088.0
|
||||||
|
|
||||||
|
[node name="Line2D" type="Line2D" parent="background"]
|
||||||
|
points = PoolVector2Array( 398.738, 142.591, 518.947, 64.809, 516.118, 275.527 )
|
||||||
|
|
||||||
[node name="walkable_area" type="Navigation2D" parent="."]
|
[node name="walkable_area" type="Navigation2D" parent="."]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
scales = null
|
|
||||||
bitmaps_scale = Vector2( 1, 1 )
|
|
||||||
lightmap = null
|
|
||||||
player_speed_multiplier = 1.0
|
|
||||||
player_doubleclick_speed_multiplier = 1.5
|
|
||||||
lightmap_modulate = Color( 1, 1, 1, 1 )
|
|
||||||
debug_mode = 1
|
|
||||||
scale_min = 0.3
|
|
||||||
scale_max = 1.0
|
|
||||||
|
|
||||||
[node name="platform" type="NavigationPolygonInstance" parent="walkable_area"]
|
[node name="platform" type="NavigationPolygonInstance" parent="walkable_area"]
|
||||||
position = Vector2( 7.73163, -264.779 )
|
position = Vector2( 7.73163, -264.779 )
|
||||||
@@ -125,7 +40,7 @@ __meta__ = {
|
|||||||
|
|
||||||
[node name="l_exit" type="Area2D" parent="Hotspots"]
|
[node name="l_exit" type="Area2D" parent="Hotspots"]
|
||||||
script = ExtResource( 3 )
|
script = ExtResource( 3 )
|
||||||
global_id = "r6_l_exit"
|
global_id = "r7_l_exit"
|
||||||
is_exit = true
|
is_exit = true
|
||||||
esc_script = "res://game/rooms/room7/esc/left_exit.esc"
|
esc_script = "res://game/rooms/room7/esc/left_exit.esc"
|
||||||
tooltip_name = "Exit"
|
tooltip_name = "Exit"
|
||||||
@@ -142,7 +57,7 @@ position = Vector2( 37.4521, 392.045 )
|
|||||||
|
|
||||||
[node name="r_exit" type="Area2D" parent="Hotspots"]
|
[node name="r_exit" type="Area2D" parent="Hotspots"]
|
||||||
script = ExtResource( 3 )
|
script = ExtResource( 3 )
|
||||||
global_id = "r6_r_exit"
|
global_id = "r7_r_exit"
|
||||||
is_exit = true
|
is_exit = true
|
||||||
esc_script = "res://game/rooms/room7/esc/right_exit.esc"
|
esc_script = "res://game/rooms/room7/esc/right_exit.esc"
|
||||||
is_interactive = false
|
is_interactive = false
|
||||||
@@ -150,13 +65,13 @@ interaction_direction = 1
|
|||||||
tooltip_name = "Exit"
|
tooltip_name = "Exit"
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
interact_positions = {
|
interact_positions = {
|
||||||
"default": Vector2( 1232.52, 347.193 ),
|
"default": Vector2( 2038.8, 347.193 ),
|
||||||
"r6_r_exit_closed": NodePath("r_door_closed/Position2D"),
|
"r6_r_exit_closed": NodePath("r_door_closed/Position2D"),
|
||||||
"r6_r_exit_opened": NodePath("r_door_opened/Position2D")
|
"r6_r_exit_opened": NodePath("r_door_opened/Position2D")
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_exit"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_exit"]
|
||||||
polygon = PoolVector2Array( 1989, 343, 1986, 278.129, 2076, 316.129, 2075, 394 )
|
polygon = PoolVector2Array( 1982.34, 349.116, 1980.1, 46.0513, 2081.12, 86.4599, 2075, 394 )
|
||||||
|
|
||||||
[node name="Position2D" type="Position2D" parent="Hotspots/r_exit"]
|
[node name="Position2D" type="Position2D" parent="Hotspots/r_exit"]
|
||||||
position = Vector2( 2038.8, 347.193 )
|
position = Vector2( 2038.8, 347.193 )
|
||||||
@@ -164,31 +79,20 @@ __meta__ = {
|
|||||||
"_editor_description_": ""
|
"_editor_description_": ""
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="r_door" type="Sprite" parent="Hotspots"]
|
[node name="object2" type="Area2D" parent="Hotspots"]
|
||||||
visible = false
|
position = Vector2( 1600.63, 13.4695 )
|
||||||
script = ExtResource( 5 )
|
script = ExtResource( 3 )
|
||||||
|
global_id = "r7_object2"
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
interact_positions = {
|
||||||
|
"default": null
|
||||||
|
}
|
||||||
|
|
||||||
[node name="r_door_closed" type="Polygon2D" parent="Hotspots/r_door"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/object2"]
|
||||||
color = Color( 0.482353, 0.568627, 1, 1 )
|
polygon = PoolVector2Array( -112.101, 14.6226, -103.122, 288.503, 130.35, 286.258, 125.861, 16.8675 )
|
||||||
polygon = PoolVector2Array( 1172.3, 44.8186, 1172.3, 348.012, 1273.9, 401.983, 1277.07, 89.2657 )
|
|
||||||
|
|
||||||
[node name="Line2D" type="Line2D" parent="Hotspots/r_door/r_door_closed"]
|
[node name="Line2D" type="Line2D" parent="Hotspots/object2"]
|
||||||
points = PoolVector2Array( 1265.23, 266.8, 1253.65, 276.6, 1252.76, 230.273, 1264.34, 233.837 )
|
points = PoolVector2Array( -74.0056, 70.7457, 2.32182, 28.0921, 89.8739, 77.4804, -82.9853, 268.299, 110.078, 261.564 )
|
||||||
default_color = Color( 1, 1, 1, 1 )
|
|
||||||
|
|
||||||
[node name="r_door_opened" type="Polygon2D" parent="Hotspots/r_door"]
|
|
||||||
visible = false
|
|
||||||
color = Color( 0.482353, 0.568627, 1, 1 )
|
|
||||||
polygon = PoolVector2Array( 1172.3, 44.8186, 1172.3, 348.012, 1029.82, 349.887, 1025.19, 42.1269 )
|
|
||||||
|
|
||||||
[node name="Line2D" type="Line2D" parent="Hotspots/r_door/r_door_opened"]
|
|
||||||
points = PoolVector2Array( 1048.98, 230.477, 1048.98, 189.89 )
|
|
||||||
default_color = Color( 1, 1, 1, 1 )
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Hotspots/r_door"]
|
|
||||||
anims/r_door_close = SubResource( 2 )
|
|
||||||
anims/r_door_open = SubResource( 3 )
|
|
||||||
|
|
||||||
[node name="player_start" type="Position2D" parent="."]
|
[node name="player_start" type="Position2D" parent="."]
|
||||||
position = Vector2( 76.7617, 437.649 )
|
position = Vector2( 76.7617, 437.649 )
|
||||||
|
|||||||
@@ -13,8 +13,11 @@
|
|||||||
#change_scene res://game/rooms/room4/room4.tscn
|
#change_scene res://game/rooms/room4/room4.tscn
|
||||||
|
|
||||||
# items rooms
|
# items rooms
|
||||||
change_scene res://game/rooms/room5/room5.tscn
|
#change_scene res://game/rooms/room5/room5.tscn
|
||||||
|
|
||||||
# character room
|
# character room
|
||||||
#change_scene res://game/rooms/room6/room6.tscn
|
#change_scene res://game/rooms/room6/room6.tscn
|
||||||
|
|
||||||
|
# long room with camera shift to object 2 if look on object 1
|
||||||
|
change_scene res://game/rooms/room7/room7.tscn
|
||||||
|
|
||||||
|
|||||||
114
game/ui/ui_9verbs/game.gd
Normal file
114
game/ui/ui_9verbs/game.gd
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
extends Node
|
||||||
|
|
||||||
|
"""
|
||||||
|
Implement methods to react to inputs.
|
||||||
|
|
||||||
|
- left_click_on_bg(position : Vector2)
|
||||||
|
- right_click_on_bg(position : Vector2)
|
||||||
|
- left_double_click_on_bg(position : Vector2)
|
||||||
|
|
||||||
|
- element_focused(element_id : String)
|
||||||
|
- element_unfocused()
|
||||||
|
|
||||||
|
- left_click_on_hotspot(hotspot_global_id : String, event : InputEvent)
|
||||||
|
- right_click_on_hotspot(hotspot_global_id : String, event : InputEvent)
|
||||||
|
- left_double_click_on_hotspot(hotspot_global_id : String, event : InputEvent)
|
||||||
|
|
||||||
|
- left_click_on_item(item_global_id : String, event : InputEvent)
|
||||||
|
- right_click_on_item(item_global_id : String, event : InputEvent)
|
||||||
|
- left_double_click_on_item(item_global_id : String, event : InputEvent)
|
||||||
|
"""
|
||||||
|
|
||||||
|
signal element_focused(element_global_id)
|
||||||
|
|
||||||
|
|
||||||
|
func _input(event):
|
||||||
|
if event.is_action_pressed("switch_action_verb"):
|
||||||
|
if event.button_index == BUTTON_WHEEL_UP:
|
||||||
|
$ui/verbs_layer/verbs_menu.iterate_actions_cursor(-1)
|
||||||
|
elif event.button_index == BUTTON_WHEEL_DOWN:
|
||||||
|
$ui/verbs_layer/verbs_menu.iterate_actions_cursor(1)
|
||||||
|
|
||||||
|
## BACKGROUND ##
|
||||||
|
|
||||||
|
func left_click_on_bg(position : Vector2) -> void:
|
||||||
|
escoria.do("walk", ["player", position])
|
||||||
|
|
||||||
|
func right_click_on_bg(position : Vector2) -> void:
|
||||||
|
escoria.do("walk", ["player", position])
|
||||||
|
|
||||||
|
func left_double_click_on_bg(position : Vector2) -> void:
|
||||||
|
escoria.do("walk", ["player", position, true])
|
||||||
|
|
||||||
|
|
||||||
|
## ITEM/HOTSPOT FOCUS ##
|
||||||
|
|
||||||
|
func element_focused(element_id : String) -> void:
|
||||||
|
#emit_signal("element_focused", element_id)
|
||||||
|
# var target_obj = escoria.esc_runner.get_object(element_id)
|
||||||
|
# if escoria.esc_runner.current_action != "use" && escoria.esc_runner.current_tool == null:
|
||||||
|
# if target_obj is ESCItem or target_obj is ESCHotspot:
|
||||||
|
# $ui/verbs_layer/verbs_menu.set_by_name(target_obj.default_action)
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
func element_unfocused() -> void:
|
||||||
|
#emit_signal("element_focused", "")
|
||||||
|
#$ui/verbs_layer/verbs_menu.set_by_name("walk")
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
## HOTSPOTS ##
|
||||||
|
|
||||||
|
func left_click_on_hotspot(hotspot_global_id : String, event : InputEvent) -> void:
|
||||||
|
escoria.do("hotspot_left_click", [hotspot_global_id, event])
|
||||||
|
|
||||||
|
func right_click_on_hotspot(hotspot_global_id : String, event : InputEvent) -> void:
|
||||||
|
escoria.do("hotspot_right_click", [hotspot_global_id, event])
|
||||||
|
|
||||||
|
func left_double_click_on_hotspot(hotspot_global_id : String, event : InputEvent) -> void:
|
||||||
|
escoria.do("hotspot_left_click", [hotspot_global_id, event])
|
||||||
|
|
||||||
|
|
||||||
|
## ITEMS ##
|
||||||
|
|
||||||
|
func left_click_on_item(item_global_id : String, event : InputEvent) -> void:
|
||||||
|
escoria.do("item_left_click", [item_global_id, event])
|
||||||
|
|
||||||
|
func right_click_on_item(item_global_id : String, event : InputEvent) -> void:
|
||||||
|
escoria.do("item_right_click", [item_global_id, event])
|
||||||
|
|
||||||
|
func left_double_click_on_item(item_global_id : String, event : InputEvent) -> void:
|
||||||
|
escoria.do("item_left_click", [item_global_id, event])
|
||||||
|
|
||||||
|
|
||||||
|
## INVENTORY ##
|
||||||
|
func left_click_on_inventory_item(inventory_item_global_id : String, event : InputEvent) -> void:
|
||||||
|
escoria.do("item_left_click", [inventory_item_global_id, event])
|
||||||
|
if escoria.esc_runner.current_action == "use":
|
||||||
|
var item = escoria.esc_runner.get_object(inventory_item_global_id)
|
||||||
|
if item.texture:
|
||||||
|
$ui/verbs_layer/verbs_menu.set_tool_texture(item.texture)
|
||||||
|
elif item.inventory_item_scene_file.instance().texture_normal:
|
||||||
|
$ui/verbs_layer/verbs_menu.set_tool_texture(item.inventory_item_scene_file.instance().texture_normal)
|
||||||
|
|
||||||
|
|
||||||
|
func right_click_on_inventory_item(inventory_item_global_id : String, event : InputEvent) -> void:
|
||||||
|
escoria.do("item_right_click", [inventory_item_global_id, event])
|
||||||
|
|
||||||
|
func left_double_click_on_inventory_item(inventory_item_global_id : String, event : InputEvent) -> void:
|
||||||
|
pass
|
||||||
|
|
||||||
|
func inventory_item_focused(inventory_item_global_id : String) -> void:
|
||||||
|
emit_signal("element_focused", inventory_item_global_id)
|
||||||
|
|
||||||
|
func inventory_item_unfocused() -> void:
|
||||||
|
emit_signal("element_focused", "")
|
||||||
|
|
||||||
|
|
||||||
|
func open_inventory():
|
||||||
|
$ui/inventory_layer/inventory_ui/inventory_button.show_inventory()
|
||||||
|
|
||||||
|
|
||||||
|
func close_inventory():
|
||||||
|
$ui/inventory_layer/inventory_ui/inventory_button.close_inventory()
|
||||||
@@ -1,15 +1,17 @@
|
|||||||
[gd_scene load_steps=7 format=2]
|
[gd_scene load_steps=8 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://addons/escoria-core/template_scenes/label/action_target_tooltip.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://addons/escoria-core/template_scenes/label/action_target_tooltip.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://game/ui/ui_9verbs/inventory_ui.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://game/ui/ui_9verbs/inventory_ui.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://game/ui/ui_9verbs/verbs_menu.tscn" type="PackedScene" id=3]
|
[ext_resource path="res://game/ui/ui_9verbs/verbs_menu.tscn" type="PackedScene" id=3]
|
||||||
[ext_resource path="res://addons/escoria-core/game/scenes/dialogs/dialog_player.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://addons/escoria-core/game/scenes/dialogs/dialog_player.tscn" type="PackedScene" id=4]
|
||||||
|
[ext_resource path="res://game/ui/ui_9verbs/game.gd" type="Script" id=5]
|
||||||
[ext_resource path="res://addons/escoria-core/game/scenes/camera_player/camera.tscn" type="PackedScene" id=6]
|
[ext_resource path="res://addons/escoria-core/game/scenes/camera_player/camera.tscn" type="PackedScene" id=6]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id=1]
|
[sub_resource type="StyleBoxFlat" id=1]
|
||||||
bg_color = Color( 0.6, 0.6, 0.6, 0.5 )
|
bg_color = Color( 0.6, 0.6, 0.6, 0.5 )
|
||||||
|
|
||||||
[node name="game" type="Node"]
|
[node name="game" type="Node"]
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
[node name="ui" type="CanvasLayer" parent="."]
|
[node name="ui" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[gd_scene load_steps=4 format=2]
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://addons/escoria-core/game/scenes/inventory/inventory_ui.gd" type="Script" id=1]
|
[ext_resource path="res://addons/escoria-core/game/scenes/inventory/inventory_ui.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://game/items/all_items.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://game/items/ESCORIA_ALL_ITEMS.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://game/ui/ui_9verbs/inventory_ui_container.gd" type="Script" id=3]
|
[ext_resource path="res://game/ui/ui_9verbs/inventory_ui_container.gd" type="Script" id=3]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
tool
|
tool
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
|
"""
|
||||||
|
This script is out of Escoria's scope. It controls the UI reaction to an
|
||||||
|
UI event (eg right click) to change the cursor accordingly.
|
||||||
|
"""
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
for but in $actions.get_children():
|
for but in $actions.get_children():
|
||||||
but.connect("pressed", self, "_on_action_selected", [but.name])
|
but.connect("pressed", self, "_on_action_selected", [but.name])
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ Implement methods to react to inputs.
|
|||||||
|
|
||||||
signal element_focused(element_global_id)
|
signal element_focused(element_global_id)
|
||||||
|
|
||||||
|
|
||||||
func _input(event):
|
func _input(event):
|
||||||
if event.is_action_pressed("switch_action_verb"):
|
if event.is_action_pressed("switch_action_verb"):
|
||||||
if event.button_index == BUTTON_WHEEL_UP:
|
if event.button_index == BUTTON_WHEEL_UP:
|
||||||
@@ -93,7 +94,7 @@ func left_click_on_inventory_item(inventory_item_global_id : String, event : Inp
|
|||||||
func right_click_on_inventory_item(inventory_item_global_id : String, event : InputEvent) -> void:
|
func right_click_on_inventory_item(inventory_item_global_id : String, event : InputEvent) -> void:
|
||||||
escoria.do("item_right_click", [inventory_item_global_id, event])
|
escoria.do("item_right_click", [inventory_item_global_id, event])
|
||||||
|
|
||||||
func double_left_click_on_inventory_item(inventory_item_global_id : String, event : InputEvent) -> void:
|
func left_double_click_on_inventory_item(inventory_item_global_id : String, event : InputEvent) -> void:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func inventory_item_focused(inventory_item_global_id : String) -> void:
|
func inventory_item_focused(inventory_item_global_id : String) -> void:
|
||||||
@@ -101,3 +102,11 @@ func inventory_item_focused(inventory_item_global_id : String) -> void:
|
|||||||
|
|
||||||
func inventory_item_unfocused() -> void:
|
func inventory_item_unfocused() -> void:
|
||||||
emit_signal("element_focused", "")
|
emit_signal("element_focused", "")
|
||||||
|
|
||||||
|
|
||||||
|
func open_inventory():
|
||||||
|
$ui/inventory_layer/inventory_ui/inventory_button.show_inventory()
|
||||||
|
|
||||||
|
|
||||||
|
func close_inventory():
|
||||||
|
$ui/inventory_layer/inventory_ui/inventory_button.close_inventory()
|
||||||
|
|||||||
@@ -6,13 +6,20 @@ func _ready():
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func _on_inventory_button_pressed():
|
func _on_inventory_button_pressed():
|
||||||
if !$AnimationPlayer.is_playing() and !showed:
|
if !$AnimationPlayer.is_playing() and !showed:
|
||||||
$AnimationPlayer.play("show")
|
show_inventory()
|
||||||
yield($AnimationPlayer, "animation_finished")
|
|
||||||
showed = true
|
|
||||||
elif !$AnimationPlayer.is_playing() and showed:
|
elif !$AnimationPlayer.is_playing() and showed:
|
||||||
$AnimationPlayer.play("hide")
|
close_inventory()
|
||||||
yield($AnimationPlayer, "animation_finished")
|
|
||||||
showed = false
|
|
||||||
|
func show_inventory():
|
||||||
|
$AnimationPlayer.play("show")
|
||||||
|
yield($AnimationPlayer, "animation_finished")
|
||||||
|
showed = true
|
||||||
|
|
||||||
|
|
||||||
|
func close_inventory():
|
||||||
|
$AnimationPlayer.play("hide")
|
||||||
|
yield($AnimationPlayer, "animation_finished")
|
||||||
|
showed = false
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
[ext_resource path="res://game/ui/ui_mouse_icons/inventory/inventory_showhide.gd" type="Script" id=4]
|
[ext_resource path="res://game/ui/ui_mouse_icons/inventory/inventory_showhide.gd" type="Script" id=4]
|
||||||
[ext_resource path="res://game/ui/ui_mouse_icons/images/frame.png" type="Texture" id=5]
|
[ext_resource path="res://game/ui/ui_mouse_icons/images/frame.png" type="Texture" id=5]
|
||||||
[ext_resource path="res://game/ui/ui_mouse_icons/images/inventory_icon.png" type="Texture" id=6]
|
[ext_resource path="res://game/ui/ui_mouse_icons/images/inventory_icon.png" type="Texture" id=6]
|
||||||
[ext_resource path="res://game/items/all_items.tscn" type="PackedScene" id=7]
|
[ext_resource path="res://game/items/ESCORIA_ALL_ITEMS.tscn" type="PackedScene" id=7]
|
||||||
|
|
||||||
[sub_resource type="Animation" id=1]
|
[sub_resource type="Animation" id=1]
|
||||||
resource_name = "hide"
|
resource_name = "hide"
|
||||||
@@ -100,7 +100,7 @@ __meta__ = {
|
|||||||
}
|
}
|
||||||
items_container = NodePath("inventory_button/panel/MarginContainer/ScrollContainer/container")
|
items_container = NodePath("inventory_button/panel/MarginContainer/ScrollContainer/container")
|
||||||
|
|
||||||
[node name="all_items" parent="." instance=ExtResource( 7 )]
|
[node name="ESCORIA_ALL_ITEMS" parent="." instance=ExtResource( 7 )]
|
||||||
position = Vector2( 269.391, 275.003 )
|
position = Vector2( 269.391, 275.003 )
|
||||||
|
|
||||||
[node name="inventory_button" type="TextureButton" parent="."]
|
[node name="inventory_button" type="TextureButton" parent="."]
|
||||||
|
|||||||
@@ -117,11 +117,11 @@ debug/terminate_on_warnings=false
|
|||||||
main/force_quit=true
|
main/force_quit=true
|
||||||
internals/save_data=""
|
internals/save_data=""
|
||||||
debug/development_lang="en"
|
debug/development_lang="en"
|
||||||
ui/dialogs_folder="res://game/ui/commons/dialogs"
|
|
||||||
ui/default_dialog_scene="res://game/ui/commons/dialogs/dialog_label.tscn"
|
|
||||||
ui/tooltip_follows_mouse=true
|
ui/tooltip_follows_mouse=true
|
||||||
|
ui/game_scene="res://game/ui/ui_9verbs/game.tscn"
|
||||||
ui/main_menu_scene="res://game/ui/commons/main_menu.tscn"
|
ui/main_menu_scene="res://game/ui/commons/main_menu.tscn"
|
||||||
ui/game_scene="res://game/ui/ui_mouse_icons/game.tscn"
|
ui/default_dialog_scene="res://game/ui/commons/dialogs/dialog_label.tscn"
|
||||||
|
ui/dialogs_folder="res://game/ui/commons/dialogs"
|
||||||
|
|
||||||
[input]
|
[input]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user