Event flags implementation (#382)
* Added event flags * Added transition ESC command * Also edited .gitignore to ignore .translation files * docs: Automatic update of API docs Co-authored-by: StraToN <StraToN@users.noreply.github.com>
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
bin
|
bin
|
||||||
*.import
|
*.import
|
||||||
.import
|
.import
|
||||||
|
*.translation
|
||||||
|
|||||||
@@ -173,7 +173,6 @@ func _test_event_flags() -> bool:
|
|||||||
:test | TK
|
:test | TK
|
||||||
:test2 | TK NO_TT
|
:test2 | TK NO_TT
|
||||||
:test3 | TK NO_TT NO_HUD
|
:test3 | TK NO_TT NO_HUD
|
||||||
:test4 | TK NO_TT CUT_BLACK
|
|
||||||
"""
|
"""
|
||||||
var script = escoria.esc_compiler.compile(esc.split("\n"))
|
var script = escoria.esc_compiler.compile(esc.split("\n"))
|
||||||
|
|
||||||
@@ -200,12 +199,6 @@ func _test_event_flags() -> bool:
|
|||||||
assert(subject.flags & ESCEvent.FLAG_NO_TT != 0)
|
assert(subject.flags & ESCEvent.FLAG_NO_TT != 0)
|
||||||
assert(subject.flags & ESCEvent.FLAG_NO_HUD != 0)
|
assert(subject.flags & ESCEvent.FLAG_NO_HUD != 0)
|
||||||
|
|
||||||
subject = script.events["test4"]
|
|
||||||
assert(subject.name == "test4")
|
|
||||||
assert(subject.flags & ESCEvent.FLAG_TK != 0)
|
|
||||||
assert(subject.flags & ESCEvent.FLAG_NO_TT != 0)
|
|
||||||
assert(subject.flags & ESCEvent.FLAG_NO_HUD == 0)
|
|
||||||
assert(subject.flags & ESCEvent.FLAG_CUT_BLACK != 0)
|
|
||||||
return true
|
return true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
# `change_scene path run_events`
|
# `change_scene path [disable_automatic_transition] [run_events]`
|
||||||
#
|
#
|
||||||
# Loads a new scene, specified by "path". The `run_events` variable is a
|
# Loads a new scene, specified by "path".
|
||||||
# boolean (default true) which you never want to set manually! It's there only
|
# The `disable_automatic_transition` is a boolean (default false) can be set
|
||||||
# to benefit save games, so they don't conflict with the scene's events.
|
# to true to disable automatic transitions between scenes, to allow you
|
||||||
|
# to control your transitions manually using the `transition` command.
|
||||||
|
# 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.
|
||||||
#
|
#
|
||||||
# @ESC
|
# @ESC
|
||||||
extends ESCBaseCommand
|
extends ESCBaseCommand
|
||||||
@@ -13,8 +17,8 @@ class_name ChangeSceneCommand
|
|||||||
func configure() -> ESCCommandArgumentDescriptor:
|
func configure() -> ESCCommandArgumentDescriptor:
|
||||||
return ESCCommandArgumentDescriptor.new(
|
return ESCCommandArgumentDescriptor.new(
|
||||||
1,
|
1,
|
||||||
[TYPE_STRING, TYPE_BOOL],
|
[TYPE_STRING, TYPE_BOOL, TYPE_BOOL],
|
||||||
[null, true]
|
[null, false, true]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -42,9 +46,11 @@ func validate(arguments: Array) -> bool:
|
|||||||
|
|
||||||
# Run the command
|
# Run the command
|
||||||
func run(command_params: Array) -> int:
|
func run(command_params: Array) -> int:
|
||||||
escoria.logger.info("Changing scene to %s (run_events = %s)" % [
|
escoria.logger.info(
|
||||||
|
"Changing scene to %s (disable_automatic_transition = %s, run_events = %s)" % [
|
||||||
command_params[0],
|
command_params[0],
|
||||||
command_params[1]
|
command_params[1],
|
||||||
|
command_params[2]
|
||||||
])
|
])
|
||||||
|
|
||||||
if escoria.main.current_scene:
|
if escoria.main.current_scene:
|
||||||
@@ -54,8 +60,9 @@ func run(command_params: Array) -> int:
|
|||||||
true
|
true
|
||||||
)
|
)
|
||||||
|
|
||||||
escoria.main.scene_transition.fade_out()
|
if !command_params[1]:
|
||||||
yield(escoria.main.scene_transition, "transition_done")
|
escoria.main.scene_transition.transition_out()
|
||||||
|
yield(escoria.main.scene_transition, "transition_done")
|
||||||
|
|
||||||
escoria.inputs_manager.clear_stack()
|
escoria.inputs_manager.clear_stack()
|
||||||
|
|
||||||
@@ -85,7 +92,7 @@ func run(command_params: Array) -> int:
|
|||||||
escoria.main.set_scene(room_scene)
|
escoria.main.set_scene(room_scene)
|
||||||
|
|
||||||
if "esc_script" in room_scene and room_scene.esc_script \
|
if "esc_script" in room_scene and room_scene.esc_script \
|
||||||
and command_params[1]:
|
and command_params[2]:
|
||||||
|
|
||||||
var script = escoria.esc_compiler.load_esc_file(
|
var script = escoria.esc_compiler.load_esc_file(
|
||||||
room_scene.esc_script
|
room_scene.esc_script
|
||||||
@@ -99,8 +106,9 @@ func run(command_params: Array) -> int:
|
|||||||
if rc[0] != ESCExecution.RC_OK:
|
if rc[0] != ESCExecution.RC_OK:
|
||||||
return rc[0]
|
return rc[0]
|
||||||
|
|
||||||
escoria.main.scene_transition.fade_in()
|
if !command_params[1]:
|
||||||
yield(escoria.main.scene_transition, "transition_done")
|
escoria.main.scene_transition.transition_in()
|
||||||
|
yield(escoria.main.scene_transition, "transition_done")
|
||||||
|
|
||||||
if script.events.has("ready"):
|
if script.events.has("ready"):
|
||||||
escoria.event_manager.queue_event(script.events["ready"])
|
escoria.event_manager.queue_event(script.events["ready"])
|
||||||
@@ -110,6 +118,11 @@ func run(command_params: Array) -> int:
|
|||||||
if rc[0] != ESCExecution.RC_OK:
|
if rc[0] != ESCExecution.RC_OK:
|
||||||
return rc[0]
|
return rc[0]
|
||||||
|
|
||||||
|
else:
|
||||||
|
if !command_params[1]:
|
||||||
|
escoria.main.scene_transition.transition_in()
|
||||||
|
yield(escoria.main.scene_transition, "transition_done")
|
||||||
|
|
||||||
# Clear queued resources
|
# Clear queued resources
|
||||||
escoria.resource_cache.clear()
|
escoria.resource_cache.clear()
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
# `transition transition_name in|out`
|
||||||
|
#
|
||||||
|
# Performs a transition in our out manually.
|
||||||
|
#
|
||||||
|
# @ESC
|
||||||
|
extends ESCBaseCommand
|
||||||
|
class_name TransitionCommand
|
||||||
|
|
||||||
|
|
||||||
|
# Return the descriptor of the arguments of this command
|
||||||
|
func configure() -> ESCCommandArgumentDescriptor:
|
||||||
|
return ESCCommandArgumentDescriptor.new(
|
||||||
|
2,
|
||||||
|
[TYPE_STRING, TYPE_STRING],
|
||||||
|
[null, null]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Validate wether the given arguments match the command descriptor
|
||||||
|
func validate(arguments: Array):
|
||||||
|
if not escoria.main.scene_transition.has_transition(arguments[0]):
|
||||||
|
escoria.logger.report_errors(
|
||||||
|
"transition: argument invalid",
|
||||||
|
[
|
||||||
|
"transition with name '%s' doesn't exist" % arguments[0]
|
||||||
|
]
|
||||||
|
)
|
||||||
|
return false
|
||||||
|
if not arguments[1] in ["in", "out"]:
|
||||||
|
escoria.logger.report_errors(
|
||||||
|
"transition: argument invalid",
|
||||||
|
[
|
||||||
|
"'in' or 'out' expected, but got '%s'" % arguments[1]
|
||||||
|
]
|
||||||
|
)
|
||||||
|
return false
|
||||||
|
return .validate(arguments)
|
||||||
|
|
||||||
|
|
||||||
|
# Run the command
|
||||||
|
func run(command_params: Array) -> int:
|
||||||
|
var transition_player = escoria.main.scene_transition
|
||||||
|
transition_player.call("transition_%s" % command_params[1], command_params[0])
|
||||||
|
var animation_finished = yield(transition_player, "transition_done")
|
||||||
|
return ESCExecution.RC_OK
|
||||||
@@ -12,8 +12,8 @@ class_name ESCEvent
|
|||||||
|
|
||||||
# Regex identifying an ESC event
|
# Regex identifying an ESC event
|
||||||
const REGEX = \
|
const REGEX = \
|
||||||
'^:(?<name>[^|]+)( \\|(?<flags>( ' + \
|
'^:(?<name>[^|]+)( \\|\\s*(?<flags>( ' + \
|
||||||
'(TK|NO_TT|NO_HUD|NO_SAVE|CUT_BLACK|LEAVE_BLACK)' + \
|
'(TK|NO_TT|NO_HUD|NO_SAVE)' + \
|
||||||
')+))?$'
|
')+))?$'
|
||||||
|
|
||||||
|
|
||||||
@@ -28,19 +28,11 @@ const REGEX = \
|
|||||||
# disable input for skipping dialog.
|
# disable input for skipping dialog.
|
||||||
# * NO_SAVE: disables saving. Use this in cut scenes and anywhere a
|
# * NO_SAVE: disables saving. Use this in cut scenes and anywhere a
|
||||||
# badly-timed autosave would leave your game in a messed-up state.
|
# badly-timed autosave would leave your game in a messed-up state.
|
||||||
# * CUT_BLACK: applies only to `:setup`. It makes the screen go black
|
|
||||||
# during the setup phase. You will probably see a quick black flash, so use
|
|
||||||
# it only if you prefer it over the standard cut.
|
|
||||||
# * LEAVE_BLACK: applies only to `:setup`. In case your `:ready` starts with
|
|
||||||
# `cut_scene telon fade_in`, you must apply this flag or you will see a
|
|
||||||
# flash of your new scene before going black again for the fade_in.
|
|
||||||
enum {
|
enum {
|
||||||
FLAG_TK = 1,
|
FLAG_TK = 1,
|
||||||
FLAG_NO_TT = 2,
|
FLAG_NO_TT = 2,
|
||||||
FLAG_NO_HUD = 4,
|
FLAG_NO_HUD = 4,
|
||||||
FLAG_NO_SAVE = 8,
|
FLAG_NO_SAVE = 8
|
||||||
FLAG_CUT_BLACK = 16,
|
|
||||||
FLAG_LEAVE_BLACK = 32
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -74,10 +66,6 @@ func _init(event_string: String):
|
|||||||
self.flags |= FLAG_NO_HUD
|
self.flags |= FLAG_NO_HUD
|
||||||
if "NO_SAVE" in _flags:
|
if "NO_SAVE" in _flags:
|
||||||
self.flags |= FLAG_NO_SAVE
|
self.flags |= FLAG_NO_SAVE
|
||||||
if "CUT_BLACK" in _flags:
|
|
||||||
self.flags |= FLAG_CUT_BLACK
|
|
||||||
if "LEAVE_BLACK" in _flags:
|
|
||||||
self.flags |= FLAG_LEAVE_BLACK
|
|
||||||
else:
|
else:
|
||||||
escoria.logger.report_errors(
|
escoria.logger.report_errors(
|
||||||
"Invalid event detected: %s" % event_string,
|
"Invalid event detected: %s" % event_string,
|
||||||
|
|||||||
@@ -96,6 +96,12 @@ func perform_inputevent_on_object(
|
|||||||
|
|
||||||
escoria.logger.info("%s left-clicked with event " % obj.global_id, [event])
|
escoria.logger.info("%s left-clicked with event " % obj.global_id, [event])
|
||||||
|
|
||||||
|
var event_flags = 0
|
||||||
|
var has_current_action: bool = false
|
||||||
|
if obj.events.has(escoria.action_manager.current_action):
|
||||||
|
event_flags = obj.events[escoria.action_manager.current_action].flags
|
||||||
|
has_current_action = true
|
||||||
|
|
||||||
# Don't interact after player movement towards object
|
# Don't interact after player movement towards object
|
||||||
# (because object is inactive for example)
|
# (because object is inactive for example)
|
||||||
var dont_interact = false
|
var dont_interact = false
|
||||||
@@ -105,20 +111,21 @@ func perform_inputevent_on_object(
|
|||||||
|
|
||||||
# If clicked object not in inventory, player walks towards it
|
# If clicked object not in inventory, player walks towards it
|
||||||
if not obj.node is ESCPlayer and \
|
if not obj.node is ESCPlayer and \
|
||||||
not escoria.inventory_manager.inventory_has(obj.global_id):
|
not escoria.inventory_manager.inventory_has(obj.global_id) and \
|
||||||
var context = _walk_towards_object(
|
(not has_current_action or not event_flags & ESCEvent.FLAG_TK):
|
||||||
obj,
|
var context = _walk_towards_object(
|
||||||
event.position,
|
|
||||||
event.doubleclick
|
|
||||||
)
|
|
||||||
if context is GDScriptFunctionState:
|
|
||||||
context = yield(_walk_towards_object(
|
|
||||||
obj,
|
obj,
|
||||||
event.position,
|
event.position,
|
||||||
event.doubleclick
|
event.doubleclick
|
||||||
), "completed")
|
)
|
||||||
destination_position = context.target_position
|
if context is GDScriptFunctionState:
|
||||||
dont_interact = context.dont_interact_on_arrival
|
context = yield(_walk_towards_object(
|
||||||
|
obj,
|
||||||
|
event.position,
|
||||||
|
event.doubleclick
|
||||||
|
), "completed")
|
||||||
|
destination_position = context.target_position
|
||||||
|
dont_interact = context.dont_interact_on_arrival
|
||||||
|
|
||||||
# If no interaction should happen after player has arrived, leave
|
# If no interaction should happen after player has arrived, leave
|
||||||
# immediately.
|
# immediately.
|
||||||
@@ -131,6 +138,50 @@ func perform_inputevent_on_object(
|
|||||||
# If player has arrived at the position he was supposed to reach
|
# If player has arrived at the position he was supposed to reach
|
||||||
# so he can interact
|
# so he can interact
|
||||||
if player_global_pos == destination_position:
|
if player_global_pos == destination_position:
|
||||||
|
|
||||||
|
# If NO_TT flag is active, hide tooltip and connect for
|
||||||
|
# event finished to show it back
|
||||||
|
if event_flags & ESCEvent.FLAG_NO_TT \
|
||||||
|
and not escoria.event_manager.is_connected(
|
||||||
|
"event_finished",
|
||||||
|
self,
|
||||||
|
"_on_no_tooltip_event_finished"
|
||||||
|
):
|
||||||
|
escoria.main.current_scene.game.tooltip_node.hide()
|
||||||
|
escoria.event_manager.connect(
|
||||||
|
"event_finished",
|
||||||
|
self,
|
||||||
|
"_on_no_tooltip_event_finished"
|
||||||
|
)
|
||||||
|
|
||||||
|
if event_flags & ESCEvent.FLAG_NO_HUD and \
|
||||||
|
not escoria.event_manager.is_connected(
|
||||||
|
"event_finished",
|
||||||
|
self,
|
||||||
|
"_on_no_hud_event_finished"
|
||||||
|
):
|
||||||
|
escoria.main.current_scene.game.hide_ui()
|
||||||
|
escoria.event_manager.connect(
|
||||||
|
"event_finished",
|
||||||
|
self,
|
||||||
|
"_on_no_hud_event_finished"
|
||||||
|
)
|
||||||
|
|
||||||
|
if event_flags & ESCEvent.FLAG_NO_SAVE and \
|
||||||
|
not escoria.event_manager.is_connected(
|
||||||
|
"event_finished",
|
||||||
|
self,
|
||||||
|
"_on_no_save_event_finished"
|
||||||
|
):
|
||||||
|
escoria.save_manager.save_enabled = false
|
||||||
|
escoria.event_manager.connect(
|
||||||
|
"event_finished",
|
||||||
|
self,
|
||||||
|
"_on_no_save_event_finished"
|
||||||
|
)
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
# Manage exits
|
# Manage exits
|
||||||
if obj.node.is_exit and escoria.action_manager.current_action \
|
if obj.node.is_exit and escoria.action_manager.current_action \
|
||||||
in ["", "walk"]:
|
in ["", "walk"]:
|
||||||
@@ -246,3 +297,63 @@ func _walk_towards_object(
|
|||||||
walk_context.dont_interact_on_arrival = true
|
walk_context.dont_interact_on_arrival = true
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
|
# Called when an event having "NO_TT" flag is finished.
|
||||||
|
#
|
||||||
|
# ## Parameters
|
||||||
|
#
|
||||||
|
# - _return_code: The ESCExecution return code sent by the events manager.
|
||||||
|
# - _event_name: the name of the event
|
||||||
|
func _on_no_tooltip_event_finished(_return_code: int, _event_name: String):
|
||||||
|
escoria.main.current_scene.game.tooltip_node.show()
|
||||||
|
if escoria.event_manager.is_connected(
|
||||||
|
"event_finished",
|
||||||
|
self,
|
||||||
|
"_on_no_tooltip_event_finished"
|
||||||
|
):
|
||||||
|
escoria.event_manager.disconnect(
|
||||||
|
"event_finished",
|
||||||
|
self,
|
||||||
|
"_on_no_tooltip_event_finished"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Called when an event having "NO_HUD" flag is finished.
|
||||||
|
#
|
||||||
|
# ## Parameters
|
||||||
|
#
|
||||||
|
# - _return_code: The ESCExecution return code sent by the events manager.
|
||||||
|
# - _event_name: the name of the event
|
||||||
|
func _on_no_hud_event_finished(_return_code: int, _event_name: String):
|
||||||
|
escoria.main.current_scene.game.show_ui()
|
||||||
|
if escoria.event_manager.is_connected(
|
||||||
|
"event_finished",
|
||||||
|
self,
|
||||||
|
"_on_no_hud_event_finished"
|
||||||
|
):
|
||||||
|
escoria.event_manager.disconnect(
|
||||||
|
"event_finished",
|
||||||
|
self,
|
||||||
|
"_on_no_hud_event_finished"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Called when an event having "NO_SAVE" flag is finished.
|
||||||
|
#
|
||||||
|
# ## Parameters
|
||||||
|
#
|
||||||
|
# - _return_code: The ESCExecution return code sent by the events manager.
|
||||||
|
# - _event_name: the name of the event
|
||||||
|
func _on_no_save_event_finished(_return_code: int, _event_name: String):
|
||||||
|
escoria.save_manager.save_enabled = true
|
||||||
|
if escoria.event_manager.is_connected(
|
||||||
|
"event_finished",
|
||||||
|
self,
|
||||||
|
"_on_no_save_event_finished"
|
||||||
|
):
|
||||||
|
escoria.event_manager.disconnect(
|
||||||
|
"event_finished",
|
||||||
|
self,
|
||||||
|
"_on_no_save_event_finished"
|
||||||
|
)
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
# Saves and loads savegame and settings files
|
# Saves and loads savegame and settings files
|
||||||
class_name ESCSaveManager
|
class_name ESCSaveManager
|
||||||
|
|
||||||
|
# If true, saving a game is enabled. Else, saving is disabled
|
||||||
|
var save_enabled: bool = true
|
||||||
|
|
||||||
# Variable containing the saves folder obtained from Project Settings
|
# Variable containing the saves folder obtained from Project Settings
|
||||||
var save_folder: String
|
var save_folder: String
|
||||||
|
|
||||||
@@ -65,6 +68,12 @@ func save_game_exists(id: int) -> bool:
|
|||||||
# - id: integer suffix of the savegame file
|
# - id: integer suffix of the savegame file
|
||||||
# - p_savename: name of the savegame
|
# - p_savename: name of the savegame
|
||||||
func save_game(id: int, p_savename: String):
|
func save_game(id: int, p_savename: String):
|
||||||
|
if not save_enabled:
|
||||||
|
escoria.logger.debug(
|
||||||
|
"esc_save_data_resources.gd",
|
||||||
|
["Save requested while saving is not possible. Save canceled."])
|
||||||
|
return
|
||||||
|
|
||||||
var save_game := ESCSaveGame.new()
|
var save_game := ESCSaveGame.new()
|
||||||
save_game.escoria_version = escoria.ESCORIA_VERSION
|
save_game.escoria_version = escoria.ESCORIA_VERSION
|
||||||
save_game.game_version = ProjectSettings.get_setting(
|
save_game.game_version = ProjectSettings.get_setting(
|
||||||
|
|||||||
Binary file not shown.
@@ -1,40 +1,68 @@
|
|||||||
# A transition player for scene changes
|
# A transition player for scene changes
|
||||||
extends ColorRect
|
extends ColorRect
|
||||||
|
|
||||||
|
|
||||||
# Emitted when the transition was played
|
# Emitted when the transition was played
|
||||||
signal transition_done
|
signal transition_done
|
||||||
|
|
||||||
|
|
||||||
# The name of the transition to play
|
# The name of the default transition to play
|
||||||
export(
|
export(
|
||||||
String,
|
String,
|
||||||
"fade_black",
|
"fade_black",
|
||||||
"fade_white",
|
"fade_white",
|
||||||
"transition_in",
|
"curtain"
|
||||||
"transition_out"
|
|
||||||
) var transition_name: String
|
) var transition_name: String
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Reference to the _AnimationPlayer_ node
|
# Reference to the _AnimationPlayer_ node
|
||||||
onready var _anim_player := $AnimationPlayer
|
onready var _anim_player := $AnimationPlayer
|
||||||
|
|
||||||
|
|
||||||
# Fade in when the scene is starting
|
# Fade in when the scene is starting
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
fade_in()
|
transition_in()
|
||||||
|
|
||||||
|
|
||||||
# Fade out the transition
|
# Transition out
|
||||||
func fade_out() -> void:
|
#
|
||||||
_anim_player.play(transition_name)
|
# ## Parameters
|
||||||
|
#
|
||||||
|
# - p_transition_name: name of the transition to play (if empty string, uses
|
||||||
|
# the default transition)
|
||||||
|
func transition_out(p_transition_name: String = "") -> void:
|
||||||
|
if p_transition_name.empty():
|
||||||
|
_anim_player.play(transition_name)
|
||||||
|
else:
|
||||||
|
_anim_player.play(p_transition_name)
|
||||||
yield(_anim_player, "animation_finished")
|
yield(_anim_player, "animation_finished")
|
||||||
emit_signal("transition_done")
|
emit_signal("transition_done")
|
||||||
|
_anim_player.seek(0.0)
|
||||||
|
|
||||||
|
|
||||||
# Fade in the transition
|
# Transition in
|
||||||
func fade_in() -> void:
|
#
|
||||||
# Plays the Fade animation and wait until it finishes
|
# ## Parameters
|
||||||
_anim_player.play_backwards(transition_name)
|
#
|
||||||
|
# - p_transition_name: name of the transition to play (if empty string, uses
|
||||||
|
# the default transition)
|
||||||
|
func transition_in(p_transition_name: String = "") -> void:
|
||||||
|
if p_transition_name.empty():
|
||||||
|
_anim_player.play_backwards(transition_name)
|
||||||
|
else:
|
||||||
|
_anim_player.play_backwards(p_transition_name)
|
||||||
yield(_anim_player, "animation_finished")
|
yield(_anim_player, "animation_finished")
|
||||||
emit_signal("transition_done")
|
emit_signal("transition_done")
|
||||||
|
_anim_player.seek(0.0)
|
||||||
|
|
||||||
|
|
||||||
|
# Returns true whether the transition scene has a transition corresponding
|
||||||
|
# to name provided.
|
||||||
|
#
|
||||||
|
# ## Parameters
|
||||||
|
#
|
||||||
|
# - p_name: The name of the transition to test
|
||||||
|
#
|
||||||
|
# *Returns* true if a transition exists with given name.
|
||||||
|
func has_transition(p_name: String) -> bool:
|
||||||
|
return _anim_player.has_animation(p_name)
|
||||||
|
|||||||
@@ -1,8 +1,47 @@
|
|||||||
[gd_scene load_steps=7 format=2]
|
[gd_scene load_steps=6 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://addons/escoria-core/game/scenes/transitions/transition.gd" type="Script" id=1]
|
[ext_resource path="res://addons/escoria-core/game/scenes/transitions/transition.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://addons/escoria-core/game/scenes/transitions/shaders/transition.material" type="Material" id=2]
|
[ext_resource path="res://addons/escoria-core/game/scenes/transitions/shaders/transition.material" type="Material" id=2]
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=3]
|
||||||
|
resource_name = "curtain"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath(".:material:shader_param/cutoff")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PoolRealArray( 0, 1 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ 0.0, 1.0 ]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/path = NodePath(".:material:shader_param/color")
|
||||||
|
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": 0,
|
||||||
|
"values": [ Color( 0, 0, 0, 1 ) ]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/path = NodePath(".:modulate")
|
||||||
|
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": [ Color( 1, 1, 1, 1 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=1]
|
[sub_resource type="Animation" id=1]
|
||||||
resource_name = "fade_black"
|
resource_name = "fade_black"
|
||||||
length = 0.5
|
length = 0.5
|
||||||
@@ -18,6 +57,30 @@ tracks/0/keys = {
|
|||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Color( 0, 0, 0, 0 ), Color( 0, 0, 0, 1 ) ]
|
"values": [ Color( 0, 0, 0, 0 ), Color( 0, 0, 0, 1 ) ]
|
||||||
}
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/path = NodePath(".:material:shader_param/cutoff")
|
||||||
|
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": 0,
|
||||||
|
"values": [ 0.0 ]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/path = NodePath(".:material:shader_param/color")
|
||||||
|
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": [ Color( 0, 0, 0, 1 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=2]
|
[sub_resource type="Animation" id=2]
|
||||||
resource_name = "fade_white"
|
resource_name = "fade_white"
|
||||||
@@ -34,38 +97,33 @@ tracks/0/keys = {
|
|||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
|
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
|
||||||
}
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
[sub_resource type="Animation" id=3]
|
tracks/1/path = NodePath(".:material:shader_param/cutoff")
|
||||||
resource_name = "transition_in"
|
tracks/1/interp = 1
|
||||||
tracks/0/type = "value"
|
tracks/1/loop_wrap = true
|
||||||
tracks/0/path = NodePath(".:material:shader_param/cutoff")
|
tracks/1/imported = false
|
||||||
tracks/0/interp = 1
|
tracks/1/enabled = true
|
||||||
tracks/0/loop_wrap = true
|
tracks/1/keys = {
|
||||||
tracks/0/imported = false
|
"times": PoolRealArray( 0 ),
|
||||||
tracks/0/enabled = true
|
"transitions": PoolRealArray( 1 ),
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PoolRealArray( 0, 1 ),
|
|
||||||
"transitions": PoolRealArray( 1, 1 ),
|
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ 0.0, 1.0 ]
|
"values": [ 0.0 ]
|
||||||
}
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
[sub_resource type="Animation" id=4]
|
tracks/2/path = NodePath(".:material:shader_param/color")
|
||||||
resource_name = "transition_out"
|
tracks/2/interp = 1
|
||||||
tracks/0/type = "value"
|
tracks/2/loop_wrap = true
|
||||||
tracks/0/path = NodePath(".:material:shader_param/cutoff")
|
tracks/2/imported = false
|
||||||
tracks/0/interp = 1
|
tracks/2/enabled = true
|
||||||
tracks/0/loop_wrap = true
|
tracks/2/keys = {
|
||||||
tracks/0/imported = false
|
"times": PoolRealArray( 0 ),
|
||||||
tracks/0/enabled = true
|
"transitions": PoolRealArray( 1 ),
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PoolRealArray( 0, 1 ),
|
|
||||||
"transitions": PoolRealArray( 1, 1 ),
|
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ 1.0, 0.0 ]
|
"values": [ Color( 1, 1, 1, 1 ) ]
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="scene_transition" type="ColorRect"]
|
[node name="scene_transition" type="ColorRect"]
|
||||||
|
modulate = Color( 0, 0, 0, 0 )
|
||||||
material = ExtResource( 2 )
|
material = ExtResource( 2 )
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
@@ -74,10 +132,9 @@ script = ExtResource( 1 )
|
|||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
transition_name = "transition_out"
|
transition_name = "curtain"
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
anims/curtain = SubResource( 3 )
|
||||||
anims/fade_black = SubResource( 1 )
|
anims/fade_black = SubResource( 1 )
|
||||||
anims/fade_white = SubResource( 2 )
|
anims/fade_white = SubResource( 2 )
|
||||||
anims/transition_in = SubResource( 3 )
|
|
||||||
anims/transition_out = SubResource( 4 )
|
|
||||||
|
|||||||
@@ -178,6 +178,7 @@ func pause_game():
|
|||||||
escoria.main.current_scene.show()
|
escoria.main.current_scene.show()
|
||||||
escoria.set_game_paused(false)
|
escoria.set_game_paused(false)
|
||||||
else:
|
else:
|
||||||
|
$ui/pause_menu.set_save_enabled(escoria.save_manager.save_enabled)
|
||||||
$ui/pause_menu.show()
|
$ui/pause_menu.show()
|
||||||
escoria.main.current_scene.game.get_node("camera").current = false
|
escoria.main.current_scene.game.get_node("camera").current = false
|
||||||
escoria.main.current_scene.game.hide_ui()
|
escoria.main.current_scene.game.hide_ui()
|
||||||
|
|||||||
@@ -159,6 +159,7 @@ func pause_game():
|
|||||||
escoria.main.current_scene.game.show_ui()
|
escoria.main.current_scene.game.show_ui()
|
||||||
escoria.main.current_scene.show()
|
escoria.main.current_scene.show()
|
||||||
else:
|
else:
|
||||||
|
$ui/pause_menu.set_save_enabled(escoria.save_manager.save_enabled)
|
||||||
$ui/pause_menu.show()
|
$ui/pause_menu.show()
|
||||||
escoria.main.current_scene.game.get_node("camera").current = false
|
escoria.main.current_scene.game.get_node("camera").current = false
|
||||||
escoria.main.current_scene.game.hide_ui()
|
escoria.main.current_scene.game.hide_ui()
|
||||||
|
|||||||
@@ -6,11 +6,15 @@
|
|||||||
|
|
||||||
## Description
|
## Description
|
||||||
|
|
||||||
`change_scene path run_events`
|
`change_scene path [disable_automatic_transition] [run_events]`
|
||||||
|
|
||||||
Loads a new scene, specified by "path". The `run_events` variable is a
|
Loads a new scene, specified by "path".
|
||||||
boolean (default true) which you never want to set manually! It's there only
|
The `disable_automatic_transition` is a boolean (default false) can be set
|
||||||
to benefit save games, so they don't conflict with the scene's events.
|
to true to disable automatic transitions between scenes, to allow you
|
||||||
|
to control your transitions manually using the `transition` command.
|
||||||
|
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.
|
||||||
|
|
||||||
@ESC
|
@ESC
|
||||||
|
|
||||||
|
|||||||
@@ -17,18 +17,6 @@ Events are triggered from various sources. Common events include
|
|||||||
|
|
||||||
## Constants Descriptions
|
## Constants Descriptions
|
||||||
|
|
||||||
### FLAG\_CUT\_BLACK
|
|
||||||
|
|
||||||
```gdscript
|
|
||||||
const FLAG_CUT_BLACK: int = 16
|
|
||||||
```
|
|
||||||
|
|
||||||
### FLAG\_LEAVE\_BLACK
|
|
||||||
|
|
||||||
```gdscript
|
|
||||||
const FLAG_LEAVE_BLACK: int = 32
|
|
||||||
```
|
|
||||||
|
|
||||||
### FLAG\_NO\_HUD
|
### FLAG\_NO\_HUD
|
||||||
|
|
||||||
```gdscript
|
```gdscript
|
||||||
@@ -56,7 +44,7 @@ const FLAG_TK: int = 1
|
|||||||
### REGEX
|
### REGEX
|
||||||
|
|
||||||
```gdscript
|
```gdscript
|
||||||
const REGEX: String = "^:(?<name>[^|]+)( \\|(?<flags>( (TK|NO_TT|NO_HUD|NO_SAVE|CUT_BLACK|LEAVE_BLACK))+))?$"
|
const REGEX: String = "^:(?<name>[^|]+)( \\|\\s*(?<flags>( (TK|NO_TT|NO_HUD|NO_SAVE))+))?$"
|
||||||
```
|
```
|
||||||
|
|
||||||
Regex identifying an ESC event
|
Regex identifying an ESC event
|
||||||
|
|||||||
@@ -22,6 +22,14 @@ Template for settings filename
|
|||||||
|
|
||||||
## Property Descriptions
|
## Property Descriptions
|
||||||
|
|
||||||
|
### save\_enabled
|
||||||
|
|
||||||
|
```gdscript
|
||||||
|
var save_enabled: bool = true
|
||||||
|
```
|
||||||
|
|
||||||
|
If true, saving a game is enabled. Else, saving is disabled
|
||||||
|
|
||||||
### save\_folder
|
### save\_folder
|
||||||
|
|
||||||
```gdscript
|
```gdscript
|
||||||
|
|||||||
39
docs/api/TransitionCommand.md
Normal file
39
docs/api/TransitionCommand.md
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
|
||||||
|
|
||||||
|
# TransitionCommand
|
||||||
|
|
||||||
|
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
`transition transition_name in|out`
|
||||||
|
|
||||||
|
Performs a transition in our out manually.
|
||||||
|
|
||||||
|
@ESC
|
||||||
|
|
||||||
|
## Method Descriptions
|
||||||
|
|
||||||
|
### configure
|
||||||
|
|
||||||
|
```gdscript
|
||||||
|
func configure() -> ESCCommandArgumentDescriptor
|
||||||
|
```
|
||||||
|
|
||||||
|
Return the descriptor of the arguments of this command
|
||||||
|
|
||||||
|
### validate
|
||||||
|
|
||||||
|
```gdscript
|
||||||
|
func validate(arguments: Array)
|
||||||
|
```
|
||||||
|
|
||||||
|
Validate wether the given arguments match the command descriptor
|
||||||
|
|
||||||
|
### run
|
||||||
|
|
||||||
|
```gdscript
|
||||||
|
func run(command_params: Array) -> var
|
||||||
|
```
|
||||||
|
|
||||||
|
Run the command
|
||||||
@@ -18,21 +18,46 @@ export var transition_name: String = ""
|
|||||||
|
|
||||||
## Method Descriptions
|
## Method Descriptions
|
||||||
|
|
||||||
### fade\_out
|
### transition\_out
|
||||||
|
|
||||||
```gdscript
|
```gdscript
|
||||||
func fade_out() -> var
|
func transition_out(p_transition_name: String = "") -> var
|
||||||
```
|
```
|
||||||
|
|
||||||
Fade out the transition
|
Transition out
|
||||||
|
|
||||||
### fade\_in
|
## Parameters
|
||||||
|
|
||||||
|
- p_transition_name: name of the transition to play (if empty string, uses
|
||||||
|
the default transition)
|
||||||
|
|
||||||
|
### transition\_in
|
||||||
|
|
||||||
```gdscript
|
```gdscript
|
||||||
func fade_in() -> var
|
func transition_in(p_transition_name: String = "") -> var
|
||||||
```
|
```
|
||||||
|
|
||||||
Fade in the transition
|
Transition in
|
||||||
|
|
||||||
|
## Parameters
|
||||||
|
|
||||||
|
- p_transition_name: name of the transition to play (if empty string, uses
|
||||||
|
the default transition)
|
||||||
|
|
||||||
|
### has\_transition
|
||||||
|
|
||||||
|
```gdscript
|
||||||
|
func has_transition(p_name: String) -> bool
|
||||||
|
```
|
||||||
|
|
||||||
|
Returns true whether the transition scene has a transition corresponding
|
||||||
|
to name provided.
|
||||||
|
|
||||||
|
## Parameters
|
||||||
|
|
||||||
|
- p_name: The name of the transition to test
|
||||||
|
|
||||||
|
*Returns* true if a transition exists with given name.
|
||||||
|
|
||||||
## Signals
|
## Signals
|
||||||
|
|
||||||
|
|||||||
15
docs/esc.md
15
docs/esc.md
@@ -193,11 +193,15 @@ to zoom into position.
|
|||||||
Shift camera by `x` and `y` pixels over `time` seconds. `type` is any of the
|
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;
|
Tween.TransitionType values without the prefix, eg. LINEAR, QUART or CIRC;
|
||||||
defaults to QUART.
|
defaults to QUART.
|
||||||
#### <a name="ChangeSceneCommand.md"></a>`change_scene path run_events` [API-Doc](api/ChangeSceneCommand.md)
|
#### <a name="ChangeSceneCommand.md"></a>`change_scene path [disable_automatic_transition] [run_events]` [API-Doc](api/ChangeSceneCommand.md)
|
||||||
|
|
||||||
Loads a new scene, specified by "path". The `run_events` variable is a
|
Loads a new scene, specified by "path".
|
||||||
boolean (default true) which you never want to set manually! It's there only
|
The `disable_automatic_transition` is a boolean (default false) can be set
|
||||||
to benefit save games, so they don't conflict with the scene's events.
|
to true to disable automatic transitions between scenes, to allow you
|
||||||
|
to control your transitions manually using the `transition` command.
|
||||||
|
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.
|
||||||
#### <a name="CustomCommand.md"></a>`custom object node func_name [params]` [API-Doc](api/CustomCommand.md)
|
#### <a name="CustomCommand.md"></a>`custom object node func_name [params]` [API-Doc](api/CustomCommand.md)
|
||||||
|
|
||||||
Calls the function `func_name` of the node `node` of object `object` with
|
Calls the function `func_name` of the node `node` of object `object` with
|
||||||
@@ -344,6 +348,9 @@ Sets the position of object1 to the position of object2.
|
|||||||
#### <a name="TeleportPosCommand.md"></a>`teleport_pos object1 x y` [API-Doc](api/TeleportPosCommand.md)
|
#### <a name="TeleportPosCommand.md"></a>`teleport_pos object1 x y` [API-Doc](api/TeleportPosCommand.md)
|
||||||
|
|
||||||
Sets the position of object1 to the position (x,y).
|
Sets the position of object1 to the position (x,y).
|
||||||
|
#### <a name="TransitionCommand.md"></a>`transition transition_name in|out` [API-Doc](api/TransitionCommand.md)
|
||||||
|
|
||||||
|
Performs a transition in our out manually.
|
||||||
#### <a name="TurnToCommand.md"></a>`turn_to object degrees [immediate]` [API-Doc](api/TurnToCommand.md)
|
#### <a name="TurnToCommand.md"></a>`turn_to object degrees [immediate]` [API-Doc](api/TurnToCommand.md)
|
||||||
|
|
||||||
Turns object to a degrees angle with a directions animation.
|
Turns object to a degrees angle with a directions animation.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_inventory_item.gd" type="Script" id=1]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_inventory_item.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://game/items/textures/genericItem_color_127.png" type="Texture" id=2]
|
[ext_resource path="res://game/items/textures/genericItem_color_127.png" type="Texture" id=2]
|
||||||
|
|
||||||
[node name="empty_sheet" type="TextureButton"]
|
[node name="bottle" type="TextureButton"]
|
||||||
margin_right = 50.0
|
margin_right = 50.0
|
||||||
margin_bottom = 140.0
|
margin_bottom = 140.0
|
||||||
texture_normal = ExtResource( 2 )
|
texture_normal = ExtResource( 2 )
|
||||||
@@ -11,4 +11,3 @@ script = ExtResource( 1 )
|
|||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
global_id = "r9_bottle"
|
|
||||||
|
|||||||
25
game/rooms/room01/r_door.tscn
Normal file
25
game/rooms/room01/r_door.tscn
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=2]
|
||||||
|
|
||||||
|
[node name="r_door" type="Area2D"]
|
||||||
|
pause_mode = 1
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
__meta__ = {
|
||||||
|
"_editor_description_": ""
|
||||||
|
}
|
||||||
|
global_id = "r1_r_exit"
|
||||||
|
esc_script = "res://game/rooms/room01/esc/right_exit.esc"
|
||||||
|
is_exit = true
|
||||||
|
tooltip_name = "Exit"
|
||||||
|
default_action = "walk"
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||||
|
polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 )
|
||||||
|
|
||||||
|
[node name="Position2D" type="Position2D" parent="."]
|
||||||
|
position = Vector2( 1225.47, 353.99 )
|
||||||
|
script = ExtResource( 2 )
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=8 format=2]
|
[gd_scene load_steps=9 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://game/rooms/room01/walkable_area.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://game/rooms/room01/walkable_area.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://game/rooms/room01/background.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://game/rooms/room01/background.tscn" type="PackedScene" id=2]
|
||||||
@@ -7,6 +7,7 @@
|
|||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=5]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=5]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_room.gd" type="Script" id=6]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_room.gd" type="Script" id=6]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=7]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=7]
|
||||||
|
[ext_resource path="res://game/rooms/room01/r_door.tscn" type="PackedScene" id=8]
|
||||||
|
|
||||||
[node name="room1" type="Node2D"]
|
[node name="room1" type="Node2D"]
|
||||||
script = ExtResource( 6 )
|
script = ExtResource( 6 )
|
||||||
@@ -47,26 +48,7 @@ position = Vector2( 3.5636, 0 )
|
|||||||
|
|
||||||
[node name="Hotspots" type="Node2D" parent="."]
|
[node name="Hotspots" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="r_door" type="Area2D" parent="Hotspots"]
|
[node name="r_door" parent="Hotspots" instance=ExtResource( 8 )]
|
||||||
pause_mode = 1
|
|
||||||
script = ExtResource( 5 )
|
|
||||||
__meta__ = {
|
|
||||||
"_editor_description_": ""
|
|
||||||
}
|
|
||||||
global_id = "r1_r_exit"
|
|
||||||
esc_script = "res://game/rooms/room01/esc/right_exit.esc"
|
|
||||||
is_exit = true
|
|
||||||
tooltip_name = "Exit"
|
|
||||||
default_action = "walk"
|
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
|
||||||
animations = null
|
|
||||||
|
|
||||||
[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 )
|
|
||||||
|
|
||||||
[node name="Position2D" type="Position2D" parent="Hotspots/r_door"]
|
|
||||||
position = Vector2( 1225.47, 353.99 )
|
|
||||||
script = ExtResource( 7 )
|
|
||||||
|
|
||||||
[node name="item" type="Area2D" parent="Hotspots"]
|
[node name="item" type="Area2D" parent="Hotspots"]
|
||||||
pause_mode = 1
|
pause_mode = 1
|
||||||
|
|||||||
@@ -21,3 +21,10 @@ points = PoolVector2Array( 6.61201, 704.409, 6.61203, 389.558, 87.755, 339.775,
|
|||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_editor_description_": ""
|
"_editor_description_": ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[node name="r_door" type="Line2D" parent="."]
|
||||||
|
position = Vector2( 0, -267.828 )
|
||||||
|
points = PoolVector2Array( 1175.07, 620.086, 1171.24, 311.267, 1274.8, 356.87, 1278.31, 672.412, 1188.64, 624.843 )
|
||||||
|
__meta__ = {
|
||||||
|
"_editor_description_": ""
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
:exit_scene
|
:exit_scene
|
||||||
|
set_sound_state bg_sound res://game/sfx/sounds/doorOpen_2.ogg false
|
||||||
|
change_scene "res://game/rooms/room11/room11.tscn"
|
||||||
|
|||||||
@@ -1,130 +1,25 @@
|
|||||||
[gd_scene load_steps=4 format=2]
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=1]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=2]
|
||||||
[sub_resource type="Animation" id=1]
|
|
||||||
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(".:is_exit")
|
|
||||||
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": 1,
|
|
||||||
"values": [ false ]
|
|
||||||
}
|
|
||||||
tracks/3/type = "value"
|
|
||||||
tracks/3/path = NodePath(".:default_action")
|
|
||||||
tracks/3/interp = 1
|
|
||||||
tracks/3/loop_wrap = true
|
|
||||||
tracks/3/imported = false
|
|
||||||
tracks/3/enabled = true
|
|
||||||
tracks/3/keys = {
|
|
||||||
"times": PoolRealArray( 0 ),
|
|
||||||
"transitions": PoolRealArray( 1 ),
|
|
||||||
"update": 1,
|
|
||||||
"values": [ "look" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id=2]
|
|
||||||
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(".:is_exit")
|
|
||||||
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": 1,
|
|
||||||
"values": [ true ]
|
|
||||||
}
|
|
||||||
tracks/3/type = "value"
|
|
||||||
tracks/3/path = NodePath(".:default_action")
|
|
||||||
tracks/3/interp = 1
|
|
||||||
tracks/3/loop_wrap = true
|
|
||||||
tracks/3/imported = false
|
|
||||||
tracks/3/enabled = true
|
|
||||||
tracks/3/keys = {
|
|
||||||
"times": PoolRealArray( 0 ),
|
|
||||||
"transitions": PoolRealArray( 1 ),
|
|
||||||
"update": 1,
|
|
||||||
"values": [ "walk" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="r_door" type="Area2D"]
|
[node name="r_door" type="Area2D"]
|
||||||
|
pause_mode = 1
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
global_id = "r9_door"
|
__meta__ = {
|
||||||
esc_script = "res://game/rooms/room9/esc/r9_door.esc"
|
"_editor_description_": ""
|
||||||
tooltip_name = "Door"
|
}
|
||||||
default_action = "look"
|
global_id = "r1_r_exit"
|
||||||
|
esc_script = "res://game/rooms/room01/esc/right_exit.esc"
|
||||||
|
is_exit = true
|
||||||
|
tooltip_name = "Exit"
|
||||||
|
default_action = "walk"
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
[node name="r_door_closed" type="Polygon2D" parent="."]
|
|
||||||
color = Color( 0.482353, 0.568627, 1, 1 )
|
|
||||||
polygon = PoolVector2Array( 1172.3, 44.8186, 1172.3, 348.012, 1273.9, 401.983, 1277.07, 89.2657 )
|
|
||||||
|
|
||||||
[node name="r_door_opened" type="Polygon2D" parent="."]
|
|
||||||
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="AnimationPlayer" type="AnimationPlayer" parent="."]
|
|
||||||
anims/r_door_close = SubResource( 1 )
|
|
||||||
anims/r_door_open = SubResource( 2 )
|
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||||
polygon = PoolVector2Array( 1169.35, 41.7644, 1168.09, 347.925, 1275.18, 407.141, 1278.96, 88.3814 )
|
polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 )
|
||||||
|
|
||||||
|
[node name="Position2D" type="Position2D" parent="."]
|
||||||
|
position = Vector2( 1225.47, 353.99 )
|
||||||
|
script = ExtResource( 2 )
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ __meta__ = {
|
|||||||
[node name="Hotspots" type="Node2D" parent="."]
|
[node name="Hotspots" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="l_door" type="Area2D" parent="Hotspots"]
|
[node name="l_door" type="Area2D" parent="Hotspots"]
|
||||||
|
pause_mode = 1
|
||||||
script = ExtResource( 7 )
|
script = ExtResource( 7 )
|
||||||
global_id = "r10_l_exit"
|
global_id = "r10_l_exit"
|
||||||
esc_script = "res://game/rooms/room10/esc/left_exit.esc"
|
esc_script = "res://game/rooms/room10/esc/left_exit.esc"
|
||||||
@@ -66,14 +67,15 @@ position = Vector2( 37.4521, 392.045 )
|
|||||||
script = ExtResource( 5 )
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
[node name="r_door" parent="Hotspots" instance=ExtResource( 9 )]
|
[node name="r_door" parent="Hotspots" instance=ExtResource( 9 )]
|
||||||
|
global_id = "r10_r_exit"
|
||||||
esc_script = "res://game/rooms/room10/esc/right_exit.esc"
|
esc_script = "res://game/rooms/room10/esc/right_exit.esc"
|
||||||
animations = null
|
|
||||||
|
|
||||||
[node name="Position2D" type="Position2D" parent="Hotspots/r_door"]
|
[node name="Position2D" type="Position2D" parent="Hotspots/r_door"]
|
||||||
position = Vector2( 1198.65, 391.058 )
|
position = Vector2( 1198.65, 391.058 )
|
||||||
script = ExtResource( 5 )
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
[node name="button_stop_bg_music" parent="Hotspots" instance=ExtResource( 8 )]
|
[node name="button_stop_bg_music" parent="Hotspots" instance=ExtResource( 8 )]
|
||||||
|
pause_mode = 1
|
||||||
position = Vector2( 243.165, 154.97 )
|
position = Vector2( 243.165, 154.97 )
|
||||||
global_id = "r10_btn_stop_bg_music"
|
global_id = "r10_btn_stop_bg_music"
|
||||||
esc_script = "res://game/rooms/room10/esc/button_stop_bg_music.esc"
|
esc_script = "res://game/rooms/room10/esc/button_stop_bg_music.esc"
|
||||||
@@ -95,6 +97,7 @@ __meta__ = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[node name="button_play_bg_music" parent="Hotspots" instance=ExtResource( 8 )]
|
[node name="button_play_bg_music" parent="Hotspots" instance=ExtResource( 8 )]
|
||||||
|
pause_mode = 1
|
||||||
position = Vector2( 377.976, 154.97 )
|
position = Vector2( 377.976, 154.97 )
|
||||||
global_id = "r10_btn_play_bg_music"
|
global_id = "r10_btn_play_bg_music"
|
||||||
esc_script = "res://game/rooms/room10/esc/button_play_bg_music.esc"
|
esc_script = "res://game/rooms/room10/esc/button_play_bg_music.esc"
|
||||||
@@ -116,6 +119,7 @@ __meta__ = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[node name="button_play_sound" parent="Hotspots" instance=ExtResource( 8 )]
|
[node name="button_play_sound" parent="Hotspots" instance=ExtResource( 8 )]
|
||||||
|
pause_mode = 1
|
||||||
position = Vector2( 646.339, 154.97 )
|
position = Vector2( 646.339, 154.97 )
|
||||||
global_id = "r10_btn_play_snd"
|
global_id = "r10_btn_play_snd"
|
||||||
esc_script = "res://game/rooms/room10/esc/button_play_snd.esc"
|
esc_script = "res://game/rooms/room10/esc/button_play_snd.esc"
|
||||||
@@ -137,6 +141,7 @@ __meta__ = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[node name="button_accept_input" parent="Hotspots" instance=ExtResource( 8 )]
|
[node name="button_accept_input" parent="Hotspots" instance=ExtResource( 8 )]
|
||||||
|
pause_mode = 1
|
||||||
position = Vector2( 823.113, 155.354 )
|
position = Vector2( 823.113, 155.354 )
|
||||||
global_id = "test_accept_input"
|
global_id = "test_accept_input"
|
||||||
esc_script = "res://game/rooms/room10/esc/button_accept_input_test.esc"
|
esc_script = "res://game/rooms/room10/esc/button_accept_input_test.esc"
|
||||||
@@ -161,6 +166,7 @@ script = ExtResource( 5 )
|
|||||||
global_id = "accept_input_location"
|
global_id = "accept_input_location"
|
||||||
|
|
||||||
[node name="button_slide" parent="Hotspots" instance=ExtResource( 8 )]
|
[node name="button_slide" parent="Hotspots" instance=ExtResource( 8 )]
|
||||||
|
pause_mode = 1
|
||||||
position = Vector2( 939.497, 154.301 )
|
position = Vector2( 939.497, 154.301 )
|
||||||
global_id = "button_slide"
|
global_id = "button_slide"
|
||||||
esc_script = "res://game/rooms/room10/esc/button_slide.esc"
|
esc_script = "res://game/rooms/room10/esc/button_slide.esc"
|
||||||
@@ -184,6 +190,7 @@ script = ExtResource( 5 )
|
|||||||
global_id = "slide_location"
|
global_id = "slide_location"
|
||||||
|
|
||||||
[node name="button_turn_to" parent="Hotspots" instance=ExtResource( 8 )]
|
[node name="button_turn_to" parent="Hotspots" instance=ExtResource( 8 )]
|
||||||
|
pause_mode = 1
|
||||||
position = Vector2( 1041.66, 152.721 )
|
position = Vector2( 1041.66, 152.721 )
|
||||||
global_id = "button_turn_to"
|
global_id = "button_turn_to"
|
||||||
esc_script = "res://game/rooms/room10/esc/button_turn_to.esc"
|
esc_script = "res://game/rooms/room10/esc/button_turn_to.esc"
|
||||||
|
|||||||
30
game/rooms/room11/background.tscn
Normal file
30
game/rooms/room11/background.tscn
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=1]
|
||||||
|
|
||||||
|
[node name="background" type="TextureRect"]
|
||||||
|
margin_right = 1289.0
|
||||||
|
margin_bottom = 555.0
|
||||||
|
mouse_filter = 2
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="l_platform" type="Line2D" parent="."]
|
||||||
|
position = Vector2( 2, -266 )
|
||||||
|
points = PoolVector2Array( -2.96298, 712.01, 129.973, 614.429, 1167.5, 612.894, 1274.59, 669.705, 1273.25, 812.694, 2.36697, 811.043, 2.36697, 713.389 )
|
||||||
|
|
||||||
|
[node name="l_door" type="Line2D" parent="."]
|
||||||
|
position = Vector2( 0, -266 )
|
||||||
|
points = PoolVector2Array( 6.61201, 704.409, 6.61203, 389.558, 87.755, 339.775, 87.5463, 649.784 )
|
||||||
|
__meta__ = {
|
||||||
|
"_editor_description_": ""
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="r_door" type="Line2D" parent="."]
|
||||||
|
position = Vector2( 0, -267.828 )
|
||||||
|
points = PoolVector2Array( 1175.07, 620.086, 1171.24, 311.267, 1274.8, 356.87, 1278.31, 672.412, 1188.64, 624.843 )
|
||||||
|
__meta__ = {
|
||||||
|
"_editor_description_": ""
|
||||||
|
}
|
||||||
5
game/rooms/room11/esc/left_exit.esc
Executable file
5
game/rooms/room11/esc/left_exit.esc
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
:exit_scene
|
||||||
|
set_sound_state bg_sound res://game/sfx/sounds/doorOpen_2.ogg false
|
||||||
|
change_scene "res://game/rooms/room10/room10.tscn"
|
||||||
|
|
||||||
|
|
||||||
5
game/rooms/room11/esc/mysterious_circle_fadein.esc
Normal file
5
game/rooms/room11/esc/mysterious_circle_fadein.esc
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
:use
|
||||||
|
transition curtain out
|
||||||
|
wait 2
|
||||||
|
transition fade_black in
|
||||||
|
|
||||||
3
game/rooms/room11/esc/mysterious_circle_nohud.esc
Executable file
3
game/rooms/room11/esc/mysterious_circle_nohud.esc
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
:look | NO_HUD
|
||||||
|
say player "NO_HUD"
|
||||||
|
|
||||||
3
game/rooms/room11/esc/mysterious_circle_nosave.esc
Normal file
3
game/rooms/room11/esc/mysterious_circle_nosave.esc
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
:look | NO_SAVE
|
||||||
|
say player "NO_SAVE"
|
||||||
|
|
||||||
3
game/rooms/room11/esc/mysterious_circle_nott.esc
Executable file
3
game/rooms/room11/esc/mysterious_circle_nott.esc
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
:look | NO_TT
|
||||||
|
say player "NO_TT."
|
||||||
|
|
||||||
3
game/rooms/room11/esc/mysterious_circle_tk.esc
Executable file
3
game/rooms/room11/esc/mysterious_circle_tk.esc
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
:look | TK
|
||||||
|
say player "TK"
|
||||||
|
|
||||||
5
game/rooms/room11/esc/right_exit.esc
Executable file
5
game/rooms/room11/esc/right_exit.esc
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
:exit_scene
|
||||||
|
set_sound_state bg_sound res://game/sfx/sounds/doorOpen_2.ogg false
|
||||||
|
transition fade_black out
|
||||||
|
change_scene "res://game/rooms/room12/room12.tscn" true
|
||||||
|
|
||||||
18
game/rooms/room11/esc/room11.esc
Executable file
18
game/rooms/room11/esc/room11.esc
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
:setup
|
||||||
|
set_state bg_music off false
|
||||||
|
|
||||||
|
> [eq ESC_LAST_SCENE room10]
|
||||||
|
teleport player r11_l_exit
|
||||||
|
# Set player look right
|
||||||
|
set_angle player 180
|
||||||
|
stop
|
||||||
|
> [eq ESC_LAST_SCENE room12]
|
||||||
|
teleport player r11_r_exit
|
||||||
|
# Set player look left
|
||||||
|
set_angle player 270
|
||||||
|
stop
|
||||||
|
> [!last_scene]
|
||||||
|
teleport player player_start
|
||||||
|
stop
|
||||||
|
|
||||||
20
game/rooms/room11/r_door.tscn
Normal file
20
game/rooms/room11/r_door.tscn
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=1]
|
||||||
|
|
||||||
|
[node name="r_door" type="Area2D"]
|
||||||
|
pause_mode = 1
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
__meta__ = {
|
||||||
|
"_editor_description_": ""
|
||||||
|
}
|
||||||
|
global_id = "r1_r_exit"
|
||||||
|
esc_script = "res://game/rooms/room01/esc/right_exit.esc"
|
||||||
|
is_exit = true
|
||||||
|
tooltip_name = "Exit"
|
||||||
|
default_action = "walk"
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||||
|
polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 )
|
||||||
243
game/rooms/room11/room11.tscn
Normal file
243
game/rooms/room11/room11.tscn
Normal file
@@ -0,0 +1,243 @@
|
|||||||
|
[gd_scene load_steps=11 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://game/rooms/room11/background.tscn" type="PackedScene" id=2]
|
||||||
|
[ext_resource path="res://game/ui/commons/fonts/caslonantique.tres" type="DynamicFont" id=3]
|
||||||
|
[ext_resource path="res://game/characters/mark/mark.tscn" type="PackedScene" id=4]
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=5]
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_room.gd" type="Script" id=6]
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=7]
|
||||||
|
[ext_resource path="res://game/rooms/room11/r_door.tscn" type="PackedScene" id=8]
|
||||||
|
|
||||||
|
[sub_resource type="NavigationPolygon" id=1]
|
||||||
|
vertices = PoolVector2Array( 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, 864.626, 613.518, 1143.08, 613.35, -9.16094, 803.802, 386.666, 618.012, 129.634, 615.792, 84.5821, 654.06, -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698 )
|
||||||
|
polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 0, 3, 6, 7 ), PoolIntArray( 8, 7, 6, 9 ), PoolIntArray( 9, 6, 10, 11, 12 ) ]
|
||||||
|
outlines = [ PoolVector2Array( -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698, 84.5821, 654.06, 129.634, 615.792, 386.666, 618.012, 864.626, 613.518, 1143.08, 613.35, 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, -9.16094, 803.802 ) ]
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id=2]
|
||||||
|
radius = 53.6249
|
||||||
|
|
||||||
|
[node name="room11" type="Node2D"]
|
||||||
|
script = ExtResource( 6 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_vertical_guides_": [ ]
|
||||||
|
}
|
||||||
|
global_id = "room11"
|
||||||
|
esc_script = "res://game/rooms/room11/esc/room11.esc"
|
||||||
|
player_scene = ExtResource( 4 )
|
||||||
|
camera_limits = [ Rect2( 0, 0, 1289, 555 ) ]
|
||||||
|
|
||||||
|
[node name="background" parent="." instance=ExtResource( 2 )]
|
||||||
|
|
||||||
|
[node name="room_label" type="Label" parent="background"]
|
||||||
|
margin_right = 92.0
|
||||||
|
margin_bottom = 21.0
|
||||||
|
custom_fonts/font = ExtResource( 3 )
|
||||||
|
text = "ROOM 11"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="walkable_area" type="Navigation2D" parent="."]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="platform" type="NavigationPolygonInstance" parent="walkable_area"]
|
||||||
|
position = Vector2( 6.73163, -264.779 )
|
||||||
|
navpoly = SubResource( 1 )
|
||||||
|
__meta__ = {
|
||||||
|
"_editor_description_": ""
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Hotspots" type="Node2D" parent="."]
|
||||||
|
|
||||||
|
[node name="l_door" type="Area2D" parent="Hotspots"]
|
||||||
|
pause_mode = 1
|
||||||
|
script = ExtResource( 7 )
|
||||||
|
global_id = "r11_l_exit"
|
||||||
|
esc_script = "res://game/rooms/room11/esc/left_exit.esc"
|
||||||
|
is_exit = true
|
||||||
|
tooltip_name = "Left exit"
|
||||||
|
default_action = "walk"
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"]
|
||||||
|
polygon = PoolVector2Array( 0.328762, 440.897, 1.85199, 119.926, 85.9517, 74.6212, 87.1409, 377.869 )
|
||||||
|
|
||||||
|
[node name="ESCLocation" type="Position2D" parent="Hotspots/l_door"]
|
||||||
|
position = Vector2( 37.4521, 392.045 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="r_door" parent="Hotspots" instance=ExtResource( 8 )]
|
||||||
|
global_id = "r11_r_exit"
|
||||||
|
esc_script = "res://game/rooms/room11/esc/right_exit.esc"
|
||||||
|
|
||||||
|
[node name="ESCLocation" type="Position2D" parent="Hotspots/r_door"]
|
||||||
|
position = Vector2( 1236.02, 366.281 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="circleTK" type="Area2D" parent="Hotspots"]
|
||||||
|
pause_mode = 1
|
||||||
|
position = Vector2( -422.136, 0 )
|
||||||
|
script = ExtResource( 7 )
|
||||||
|
global_id = "r11_circle_tk"
|
||||||
|
esc_script = "res://game/rooms/room11/esc/mysterious_circle_tk.esc"
|
||||||
|
tooltip_name = "Mysterious circle"
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="Polygon2D" type="Polygon2D" parent="Hotspots/circleTK"]
|
||||||
|
position = Vector2( 50.9425, -76.4136 )
|
||||||
|
polygon = PoolVector2Array( 555.881, 185.538, 519.921, 215.504, 525.914, 257.456, 552.884, 282.928, 587.345, 284.426, 623.305, 260.453, 623.305, 219.999, 594.837, 187.036 )
|
||||||
|
|
||||||
|
[node name="ESCLocation" type="Position2D" parent="Hotspots/circleTK"]
|
||||||
|
position = Vector2( 624.794, 379.072 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/circleTK"]
|
||||||
|
position = Vector2( 623.668, 159.806 )
|
||||||
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Hotspots/circleTK"]
|
||||||
|
margin_left = 700.416
|
||||||
|
margin_top = 152.655
|
||||||
|
margin_right = 756.416
|
||||||
|
margin_bottom = 166.655
|
||||||
|
text = "FLAG: TK"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="circleNoTT" type="Area2D" parent="Hotspots"]
|
||||||
|
pause_mode = 1
|
||||||
|
position = Vector2( -151.623, 0 )
|
||||||
|
script = ExtResource( 7 )
|
||||||
|
global_id = "r11_circle_nott"
|
||||||
|
esc_script = "res://game/rooms/room11/esc/mysterious_circle_nott.esc"
|
||||||
|
tooltip_name = "Mysterious circle"
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="Polygon2D" type="Polygon2D" parent="Hotspots/circleNoTT"]
|
||||||
|
position = Vector2( 50.9425, -76.4136 )
|
||||||
|
polygon = PoolVector2Array( 555.881, 185.538, 519.921, 215.504, 525.914, 257.456, 552.884, 282.928, 587.345, 284.426, 623.305, 260.453, 623.305, 219.999, 594.837, 187.036 )
|
||||||
|
|
||||||
|
[node name="ESCLocation" type="Position2D" parent="Hotspots/circleNoTT"]
|
||||||
|
position = Vector2( 624.794, 379.072 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/circleNoTT"]
|
||||||
|
position = Vector2( 623.668, 159.806 )
|
||||||
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Hotspots/circleNoTT"]
|
||||||
|
margin_left = 691.437
|
||||||
|
margin_top = 152.655
|
||||||
|
margin_right = 773.437
|
||||||
|
margin_bottom = 166.655
|
||||||
|
text = "FLAG: NO_TT"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="circleNoHUD" type="Area2D" parent="Hotspots"]
|
||||||
|
pause_mode = 1
|
||||||
|
position = Vector2( 118.891, 0 )
|
||||||
|
script = ExtResource( 7 )
|
||||||
|
global_id = "r11_circle_nohud"
|
||||||
|
esc_script = "res://game/rooms/room11/esc/mysterious_circle_nohud.esc"
|
||||||
|
tooltip_name = "Mysterious circle"
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="Polygon2D" type="Polygon2D" parent="Hotspots/circleNoHUD"]
|
||||||
|
position = Vector2( 50.9425, -76.4136 )
|
||||||
|
polygon = PoolVector2Array( 555.881, 185.538, 519.921, 215.504, 525.914, 257.456, 552.884, 282.928, 587.345, 284.426, 623.305, 260.453, 623.305, 219.999, 594.837, 187.036 )
|
||||||
|
|
||||||
|
[node name="ESCLocation" type="Position2D" parent="Hotspots/circleNoHUD"]
|
||||||
|
position = Vector2( 624.794, 379.072 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/circleNoHUD"]
|
||||||
|
position = Vector2( 623.668, 159.806 )
|
||||||
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Hotspots/circleNoHUD"]
|
||||||
|
margin_left = 691.437
|
||||||
|
margin_top = 152.655
|
||||||
|
margin_right = 773.437
|
||||||
|
margin_bottom = 166.655
|
||||||
|
text = "FLAG: NO_HUD"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="circleNoSave" type="Area2D" parent="Hotspots"]
|
||||||
|
pause_mode = 1
|
||||||
|
position = Vector2( 366.891, 0 )
|
||||||
|
script = ExtResource( 7 )
|
||||||
|
global_id = "r11_circle_nosave"
|
||||||
|
esc_script = "res://game/rooms/room11/esc/mysterious_circle_nosave.esc"
|
||||||
|
tooltip_name = "Mysterious circle"
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="Polygon2D" type="Polygon2D" parent="Hotspots/circleNoSave"]
|
||||||
|
position = Vector2( 50.9425, -76.4136 )
|
||||||
|
polygon = PoolVector2Array( 555.881, 185.538, 519.921, 215.504, 525.914, 257.456, 552.884, 282.928, 587.345, 284.426, 623.305, 260.453, 623.305, 219.999, 594.837, 187.036 )
|
||||||
|
|
||||||
|
[node name="ESCLocation" type="Position2D" parent="Hotspots/circleNoSave"]
|
||||||
|
position = Vector2( 624.794, 379.072 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/circleNoSave"]
|
||||||
|
position = Vector2( 623.668, 159.806 )
|
||||||
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Hotspots/circleNoSave"]
|
||||||
|
margin_left = 691.437
|
||||||
|
margin_top = 152.655
|
||||||
|
margin_right = 773.437
|
||||||
|
margin_bottom = 166.655
|
||||||
|
text = "FLAG: NO_SAVE"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="circleFadeIn" type="Area2D" parent="Hotspots"]
|
||||||
|
pause_mode = 1
|
||||||
|
position = Vector2( -11.1087, 107 )
|
||||||
|
script = ExtResource( 7 )
|
||||||
|
global_id = "r11_circle_fadein"
|
||||||
|
esc_script = "res://game/rooms/room11/esc/mysterious_circle_fadein.esc"
|
||||||
|
tooltip_name = "Mysterious circle"
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="Polygon2D" type="Polygon2D" parent="Hotspots/circleFadeIn"]
|
||||||
|
position = Vector2( 50.9425, -76.4136 )
|
||||||
|
polygon = PoolVector2Array( 555.881, 185.538, 519.921, 215.504, 525.914, 257.456, 552.884, 282.928, 587.345, 284.426, 623.305, 260.453, 623.305, 219.999, 594.837, 187.036 )
|
||||||
|
|
||||||
|
[node name="ESCLocation" type="Position2D" parent="Hotspots/circleFadeIn"]
|
||||||
|
position = Vector2( 624.794, 274.072 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/circleFadeIn"]
|
||||||
|
position = Vector2( 623.668, 159.806 )
|
||||||
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Hotspots/circleFadeIn"]
|
||||||
|
margin_left = 691.437
|
||||||
|
margin_top = 152.655
|
||||||
|
margin_right = 773.437
|
||||||
|
margin_bottom = 166.655
|
||||||
|
text = "FADE OUT -> FADE IN"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="player_start" type="Position2D" parent="."]
|
||||||
|
position = Vector2( 542.824, 468.193 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
global_id = "player_start"
|
||||||
|
is_start_location = true
|
||||||
18
game/rooms/room11/walkable_area.tscn
Normal file
18
game/rooms/room11/walkable_area.tscn
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" 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 )
|
||||||
|
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, 1143.08, 613.35, 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, -9.16094, 803.802 ) ]
|
||||||
|
|
||||||
|
[node name="walkable_area" type="Navigation2D"]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="platform" type="NavigationPolygonInstance" parent="."]
|
||||||
|
position = Vector2( 6.73163, -264.779 )
|
||||||
|
navpoly = SubResource( 1 )
|
||||||
|
__meta__ = {
|
||||||
|
"_editor_description_": ""
|
||||||
|
}
|
||||||
30
game/rooms/room12/background.tscn
Normal file
30
game/rooms/room12/background.tscn
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=1]
|
||||||
|
|
||||||
|
[node name="background" type="TextureRect"]
|
||||||
|
margin_right = 1289.0
|
||||||
|
margin_bottom = 555.0
|
||||||
|
mouse_filter = 2
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="l_platform" type="Line2D" parent="."]
|
||||||
|
position = Vector2( 2, -266 )
|
||||||
|
points = PoolVector2Array( -2.96298, 712.01, 129.973, 614.429, 1167.5, 612.894, 1274.59, 669.705, 1273.25, 812.694, 2.36697, 811.043, 2.36697, 713.389 )
|
||||||
|
|
||||||
|
[node name="l_door" type="Line2D" parent="."]
|
||||||
|
position = Vector2( 0, -266 )
|
||||||
|
points = PoolVector2Array( 6.61201, 704.409, 6.61203, 389.558, 87.755, 339.775, 87.5463, 649.784 )
|
||||||
|
__meta__ = {
|
||||||
|
"_editor_description_": ""
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="r_door" type="Line2D" parent="."]
|
||||||
|
position = Vector2( 0, -267.828 )
|
||||||
|
points = PoolVector2Array( 1175.07, 620.086, 1171.24, 311.267, 1274.8, 356.87, 1278.31, 672.412, 1188.64, 624.843 )
|
||||||
|
__meta__ = {
|
||||||
|
"_editor_description_": ""
|
||||||
|
}
|
||||||
5
game/rooms/room12/esc/left_exit.esc
Normal file
5
game/rooms/room12/esc/left_exit.esc
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
:exit_scene
|
||||||
|
set_sound_state bg_sound res://game/sfx/sounds/doorOpen_2.ogg false
|
||||||
|
change_scene "res://game/rooms/room11/room11.tscn"
|
||||||
|
|
||||||
|
|
||||||
3
game/rooms/room12/esc/right_exit.esc
Normal file
3
game/rooms/room12/esc/right_exit.esc
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
:exit_scene
|
||||||
|
#set_sound_state bg_sound res://game/sfx/sounds/doorOpen_2.ogg false
|
||||||
|
#change_scene "res://game/rooms/room13/room13.tscn"
|
||||||
21
game/rooms/room12/esc/room12.esc
Normal file
21
game/rooms/room12/esc/room12.esc
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
:setup
|
||||||
|
|
||||||
|
> [eq ESC_LAST_SCENE room11]
|
||||||
|
teleport player r12_l_exit
|
||||||
|
# Set player look right
|
||||||
|
set_angle player 180
|
||||||
|
stop
|
||||||
|
> [eq ESC_LAST_SCENE room13]
|
||||||
|
teleport player r12_r_exit
|
||||||
|
# Set player look left
|
||||||
|
set_angle player 270
|
||||||
|
stop
|
||||||
|
> [!last_scene]
|
||||||
|
teleport player player_start
|
||||||
|
stop
|
||||||
|
|
||||||
|
|
||||||
|
:ready
|
||||||
|
|
||||||
|
transition fade_white in
|
||||||
25
game/rooms/room12/r_door.tscn
Normal file
25
game/rooms/room12/r_door.tscn
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=2]
|
||||||
|
|
||||||
|
[node name="r_door" type="Area2D"]
|
||||||
|
pause_mode = 1
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
__meta__ = {
|
||||||
|
"_editor_description_": ""
|
||||||
|
}
|
||||||
|
global_id = "r1_r_exit"
|
||||||
|
esc_script = "res://game/rooms/room01/esc/right_exit.esc"
|
||||||
|
is_exit = true
|
||||||
|
tooltip_name = "Exit"
|
||||||
|
default_action = "walk"
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||||
|
polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 )
|
||||||
|
|
||||||
|
[node name="Position2D" type="Position2D" parent="."]
|
||||||
|
position = Vector2( 1225.47, 353.99 )
|
||||||
|
script = ExtResource( 2 )
|
||||||
82
game/rooms/room12/room12.tscn
Normal file
82
game/rooms/room12/room12.tscn
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
[gd_scene load_steps=10 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://game/rooms/room12/background.tscn" type="PackedScene" id=2]
|
||||||
|
[ext_resource path="res://game/ui/commons/fonts/caslonantique.tres" type="DynamicFont" id=3]
|
||||||
|
[ext_resource path="res://game/characters/mark/mark.tscn" type="PackedScene" id=4]
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=5]
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_room.gd" type="Script" id=6]
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=7]
|
||||||
|
[ext_resource path="res://game/rooms/room12/r_door.tscn" type="PackedScene" id=8]
|
||||||
|
|
||||||
|
[sub_resource type="NavigationPolygon" id=1]
|
||||||
|
vertices = PoolVector2Array( 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, 864.626, 613.518, 1143.08, 613.35, -9.16094, 803.802, 386.666, 618.012, 129.634, 615.792, 84.5821, 654.06, -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698 )
|
||||||
|
polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 0, 3, 6, 7 ), PoolIntArray( 8, 7, 6, 9 ), PoolIntArray( 9, 6, 10, 11, 12 ) ]
|
||||||
|
outlines = [ PoolVector2Array( -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698, 84.5821, 654.06, 129.634, 615.792, 386.666, 618.012, 864.626, 613.518, 1143.08, 613.35, 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, -9.16094, 803.802 ) ]
|
||||||
|
|
||||||
|
[node name="room12" type="Node2D"]
|
||||||
|
script = ExtResource( 6 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_vertical_guides_": [ ]
|
||||||
|
}
|
||||||
|
global_id = "room12"
|
||||||
|
esc_script = "res://game/rooms/room12/esc/room12.esc"
|
||||||
|
player_scene = ExtResource( 4 )
|
||||||
|
camera_limits = [ Rect2( 0, 0, 1289, 555 ) ]
|
||||||
|
|
||||||
|
[node name="background" parent="." instance=ExtResource( 2 )]
|
||||||
|
|
||||||
|
[node name="room_label" type="Label" parent="background"]
|
||||||
|
margin_right = 92.0
|
||||||
|
margin_bottom = 21.0
|
||||||
|
custom_fonts/font = ExtResource( 3 )
|
||||||
|
text = "ROOM 12
|
||||||
|
"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="walkable_area" type="Navigation2D" parent="."]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="platform" type="NavigationPolygonInstance" parent="walkable_area"]
|
||||||
|
position = Vector2( 6.73163, -264.779 )
|
||||||
|
navpoly = SubResource( 1 )
|
||||||
|
__meta__ = {
|
||||||
|
"_editor_description_": ""
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Hotspots" type="Node2D" parent="."]
|
||||||
|
|
||||||
|
[node name="l_door" type="Area2D" parent="Hotspots"]
|
||||||
|
pause_mode = 1
|
||||||
|
script = ExtResource( 7 )
|
||||||
|
global_id = "r12_l_exit"
|
||||||
|
esc_script = "res://game/rooms/room12/esc/left_exit.esc"
|
||||||
|
is_exit = true
|
||||||
|
tooltip_name = "Left exit"
|
||||||
|
default_action = "walk"
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"]
|
||||||
|
polygon = PoolVector2Array( 0.328762, 440.897, 1.85199, 119.926, 85.9517, 74.6212, 87.1409, 377.869 )
|
||||||
|
|
||||||
|
[node name="Position2D" type="Position2D" parent="Hotspots/l_door"]
|
||||||
|
position = Vector2( 37.4521, 392.045 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
global_id = "r12_l_exit"
|
||||||
|
|
||||||
|
[node name="r_door" parent="Hotspots" instance=ExtResource( 8 )]
|
||||||
|
global_id = "r12_r_exit"
|
||||||
|
esc_script = "res://game/rooms/room12/esc/right_exit.esc"
|
||||||
|
|
||||||
|
[node name="ESCLocation" type="Position2D" parent="Hotspots/r_door"]
|
||||||
|
position = Vector2( 1231.78, 360.624 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="player_start" type="Position2D" parent="."]
|
||||||
|
position = Vector2( 542.824, 468.193 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
global_id = "player_start"
|
||||||
|
is_start_location = true
|
||||||
18
game/rooms/room12/walkable_area.tscn
Normal file
18
game/rooms/room12/walkable_area.tscn
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" 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 )
|
||||||
|
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, 1143.08, 613.35, 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, -9.16094, 803.802 ) ]
|
||||||
|
|
||||||
|
[node name="walkable_area" type="Navigation2D"]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="platform" type="NavigationPolygonInstance" parent="."]
|
||||||
|
position = Vector2( 6.73163, -264.779 )
|
||||||
|
navpoly = SubResource( 1 )
|
||||||
|
__meta__ = {
|
||||||
|
"_editor_description_": ""
|
||||||
|
}
|
||||||
@@ -27,3 +27,12 @@ change_scene res://game/rooms/room01/room01.tscn
|
|||||||
|
|
||||||
# 9/ Indy4 3 closets
|
# 9/ Indy4 3 closets
|
||||||
#change_scene res://game/rooms/room09/room09.tscn
|
#change_scene res://game/rooms/room09/room09.tscn
|
||||||
|
|
||||||
|
# 10/
|
||||||
|
#change_scene res://game/rooms/room10/room10.tscn
|
||||||
|
|
||||||
|
# 11/ Event flags tests
|
||||||
|
#change_scene res://game/rooms/room11/room11.tscn
|
||||||
|
|
||||||
|
# 12/ Event flags tests 2
|
||||||
|
#change_scene res://game/rooms/room12/room12.tscn
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB |
@@ -1,34 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="StreamTexture"
|
|
||||||
path="res://.import/guybrush.jpeg-2fc39d8d3de855fdd1e6fd25540a16ab.stex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://game/ui/commons/dialogs/insets/guybrush.jpeg"
|
|
||||||
dest_files=[ "res://.import/guybrush.jpeg-2fc39d8d3de855fdd1e6fd25540a16ab.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
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[ext_resource path="res://game/ui/commons/main_menu/main_menu.gd" type="Script" id=1]
|
[ext_resource path="res://game/ui/commons/main_menu/main_menu.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://game/ui/commons/main_menu/main.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://game/ui/commons/main_menu/main.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://addons/escoria-core/logo/escoria-logo-small.png" type="Texture" id=3]
|
[ext_resource path="res://addons/escoria-core/design/escoria-logo-small.png" type="Texture" id=3]
|
||||||
[ext_resource path="res://game/ui/commons/options/options.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://game/ui/commons/options/options.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://game/ui/commons/load/load_game.tscn" type="PackedScene" id=5]
|
[ext_resource path="res://game/ui/commons/load/load_game.tscn" type="PackedScene" id=5]
|
||||||
|
|
||||||
@@ -28,9 +28,9 @@ anchor_bottom = 1.0
|
|||||||
|
|
||||||
[node name="main" type="VBoxContainer" parent="Panel/CenterContainer"]
|
[node name="main" type="VBoxContainer" parent="Panel/CenterContainer"]
|
||||||
margin_left = 332.0
|
margin_left = 332.0
|
||||||
margin_top = 150.0
|
margin_top = 151.0
|
||||||
margin_right = 948.0
|
margin_right = 948.0
|
||||||
margin_bottom = 749.0
|
margin_bottom = 748.0
|
||||||
custom_constants/separation = 100
|
custom_constants/separation = 100
|
||||||
|
|
||||||
[node name="TextureRect" type="TextureRect" parent="Panel/CenterContainer/main"]
|
[node name="TextureRect" type="TextureRect" parent="Panel/CenterContainer/main"]
|
||||||
@@ -49,19 +49,26 @@ anchor_bottom = 0.0
|
|||||||
margin_left = 0.0
|
margin_left = 0.0
|
||||||
margin_top = 336.0
|
margin_top = 336.0
|
||||||
margin_right = 616.0
|
margin_right = 616.0
|
||||||
margin_bottom = 599.0
|
margin_bottom = 597.0
|
||||||
|
|
||||||
[node name="new_game" parent="Panel/CenterContainer/main/buttons" index="0"]
|
[node name="new_game" parent="Panel/CenterContainer/main/buttons" index="0"]
|
||||||
margin_right = 616.0
|
margin_right = 616.0
|
||||||
|
margin_bottom = 150.0
|
||||||
|
|
||||||
[node name="load_game" parent="Panel/CenterContainer/main/buttons" index="1"]
|
[node name="load_game" parent="Panel/CenterContainer/main/buttons" index="1"]
|
||||||
|
margin_top = 160.0
|
||||||
margin_right = 616.0
|
margin_right = 616.0
|
||||||
|
margin_bottom = 187.0
|
||||||
|
|
||||||
[node name="options" parent="Panel/CenterContainer/main/buttons" index="2"]
|
[node name="options" parent="Panel/CenterContainer/main/buttons" index="2"]
|
||||||
|
margin_top = 197.0
|
||||||
margin_right = 616.0
|
margin_right = 616.0
|
||||||
|
margin_bottom = 224.0
|
||||||
|
|
||||||
[node name="quit" parent="Panel/CenterContainer/main/buttons" index="3"]
|
[node name="quit" parent="Panel/CenterContainer/main/buttons" index="3"]
|
||||||
|
margin_top = 234.0
|
||||||
margin_right = 616.0
|
margin_right = 616.0
|
||||||
|
margin_bottom = 261.0
|
||||||
|
|
||||||
[node name="options" parent="Panel" instance=ExtResource( 4 )]
|
[node name="options" parent="Panel" instance=ExtResource( 4 )]
|
||||||
visible = false
|
visible = false
|
||||||
|
|||||||
@@ -33,3 +33,7 @@ func _on_save_game_back_button_pressed():
|
|||||||
func _on_load_game_back_button_pressed():
|
func _on_load_game_back_button_pressed():
|
||||||
$Panel/CenterContainer/VBoxContainer.show()
|
$Panel/CenterContainer/VBoxContainer.show()
|
||||||
$load_game.hide()
|
$load_game.hide()
|
||||||
|
|
||||||
|
|
||||||
|
func set_save_enabled(p_enabled: bool):
|
||||||
|
$Panel/CenterContainer/VBoxContainer/menuitems/save_game.disabled = !p_enabled
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[ext_resource path="res://game/ui/commons/pause_menu/pause_menu.gd" type="Script" id=1]
|
[ext_resource path="res://game/ui/commons/pause_menu/pause_menu.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://game/ui/commons/fonts/caslonantique.tres" type="DynamicFont" id=2]
|
[ext_resource path="res://game/ui/commons/fonts/caslonantique.tres" type="DynamicFont" id=2]
|
||||||
[ext_resource path="res://addons/escoria-core/logo/escoria-logo-small.png" type="Texture" id=3]
|
[ext_resource path="res://addons/escoria-core/design/escoria-logo-small.png" type="Texture" id=3]
|
||||||
[ext_resource path="res://game/ui/commons/save/save_game.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://game/ui/commons/save/save_game.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://game/ui/commons/load/load_game.tscn" type="PackedScene" id=5]
|
[ext_resource path="res://game/ui/commons/load/load_game.tscn" type="PackedScene" id=5]
|
||||||
|
|
||||||
|
|||||||
@@ -465,6 +465,11 @@ _global_script_classes=[ {
|
|||||||
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/teleport_pos.gd"
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/teleport_pos.gd"
|
||||||
}, {
|
}, {
|
||||||
"base": "ESCBaseCommand",
|
"base": "ESCBaseCommand",
|
||||||
|
"class": "TransitionCommand",
|
||||||
|
"language": "GDScript",
|
||||||
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/transition.gd"
|
||||||
|
}, {
|
||||||
|
"base": "ESCBaseCommand",
|
||||||
"class": "TurnToCommand",
|
"class": "TurnToCommand",
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/turn_to.gd"
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/turn_to.gd"
|
||||||
@@ -586,6 +591,7 @@ _global_script_class_icons={
|
|||||||
"StopCommand": "",
|
"StopCommand": "",
|
||||||
"TeleportCommand": "",
|
"TeleportCommand": "",
|
||||||
"TeleportPosCommand": "",
|
"TeleportPosCommand": "",
|
||||||
|
"TransitionCommand": "",
|
||||||
"TurnToCommand": "",
|
"TurnToCommand": "",
|
||||||
"WaitCommand": "",
|
"WaitCommand": "",
|
||||||
"WalkBlockCommand": "",
|
"WalkBlockCommand": "",
|
||||||
@@ -598,7 +604,7 @@ _global_script_class_icons={
|
|||||||
|
|
||||||
config/name="Escoria"
|
config/name="Escoria"
|
||||||
run/main_scene="res://addons/escoria-core/game/main_scene.tscn"
|
run/main_scene="res://addons/escoria-core/game/main_scene.tscn"
|
||||||
boot_splash/image="res://addons/escoria-core/logo/escoria-logo-small.png"
|
boot_splash/image="res://addons/escoria-core/design/escoria-logo-small.png"
|
||||||
boot_splash/fullsize=false
|
boot_splash/fullsize=false
|
||||||
boot_splash/use_filter=false
|
boot_splash/use_filter=false
|
||||||
boot_splash/bg_color=Color( 0.960784, 0.384314, 0, 1 )
|
boot_splash/bg_color=Color( 0.960784, 0.384314, 0, 1 )
|
||||||
|
|||||||
Reference in New Issue
Block a user