Fix when ESCPlayer is not selectable or interactive manage click through
This commit is contained in:
@@ -100,7 +100,17 @@ func run(command_params: Array) -> int:
|
|||||||
"[%s]: No dialog player was registered and the say command was encountered."
|
"[%s]: No dialog player was registered and the say command was encountered."
|
||||||
% get_command_name()
|
% get_command_name()
|
||||||
)
|
)
|
||||||
|
escoria.current_state = escoria.GAME_STATE.DEFAULT
|
||||||
return ESCExecution.RC_ERROR
|
return ESCExecution.RC_ERROR
|
||||||
|
|
||||||
|
if not escoria.main.current_scene.player:
|
||||||
|
escoria.logger.warn(
|
||||||
|
self,
|
||||||
|
"[%s]: No player item in the current scene was registered and the say command was encountered."
|
||||||
|
% get_command_name()
|
||||||
|
)
|
||||||
|
escoria.current_state = escoria.GAME_STATE.DEFAULT
|
||||||
|
return ESCExecution.RC_CANCEL
|
||||||
|
|
||||||
# Replace the names of any globals in "{ }" with their value
|
# Replace the names of any globals in "{ }" with their value
|
||||||
command_params[1] = escoria.globals_manager.replace_globals(command_params[1])
|
command_params[1] = escoria.globals_manager.replace_globals(command_params[1])
|
||||||
|
|||||||
@@ -748,13 +748,13 @@ func _is_object_actionable(obj: ESCObject) -> bool:
|
|||||||
return false
|
return false
|
||||||
|
|
||||||
if not obj.active:
|
if not obj.active:
|
||||||
escoria.logger.debug(
|
escoria.logger.trace(
|
||||||
self,
|
self,
|
||||||
"Item %s is not active." % obj.global_id
|
"Item %s is not active." % obj.global_id
|
||||||
)
|
)
|
||||||
object_is_actionable = false
|
object_is_actionable = false
|
||||||
elif not obj.interactive:
|
elif not obj.interactive:
|
||||||
escoria.logger.debug(
|
escoria.logger.trace(
|
||||||
self,
|
self,
|
||||||
"Item %s is not interactive." % obj.global_id
|
"Item %s is not interactive." % obj.global_id
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ func change_scene(room_path: String, enable_automatic_transitions: bool) -> void
|
|||||||
if escoria.dialog_player:
|
if escoria.dialog_player:
|
||||||
escoria.dialog_player.interrupt()
|
escoria.dialog_player.interrupt()
|
||||||
|
|
||||||
escoria.inputs_manager.clear_stack()
|
escoria.inputs_manager.hover_stack_clear()
|
||||||
|
|
||||||
# Check if game scene was loaded
|
# Check if game scene was loaded
|
||||||
if not escoria.game_scene:
|
if not escoria.game_scene:
|
||||||
|
|||||||
@@ -97,6 +97,9 @@ func _get_interactive() -> bool:
|
|||||||
func _set_interactive(value: bool):
|
func _set_interactive(value: bool):
|
||||||
if "is_interactive" in self.node:
|
if "is_interactive" in self.node:
|
||||||
self.node.is_interactive = value
|
self.node.is_interactive = value
|
||||||
|
if not value:
|
||||||
|
escoria.game_scene.clear_tooltip()
|
||||||
|
escoria.inputs_manager.on_item_non_interactive(self.node)
|
||||||
|
|
||||||
|
|
||||||
# Return the data of the object to be inserted in a savegame file.
|
# Return the data of the object to be inserted in a savegame file.
|
||||||
|
|||||||
@@ -111,6 +111,12 @@ func _draw():
|
|||||||
draw_rect(mouse_limits, ColorN("red"), false, 10.0)
|
draw_rect(mouse_limits, ColorN("red"), false, 10.0)
|
||||||
|
|
||||||
|
|
||||||
|
# Clears the tooltip content (if an ESCTooltip node exists in UI)
|
||||||
|
func clear_tooltip():
|
||||||
|
if tooltip_node != null:
|
||||||
|
(tooltip_node as ESCTooltip).clear()
|
||||||
|
|
||||||
|
|
||||||
# Sets up and performs default walking action
|
# Sets up and performs default walking action
|
||||||
#
|
#
|
||||||
# #### Parameters
|
# #### Parameters
|
||||||
|
|||||||
@@ -188,8 +188,8 @@ func _ready():
|
|||||||
|
|
||||||
validate_animations(animations)
|
validate_animations(animations)
|
||||||
|
|
||||||
if not self.is_connected("mouse_entered", self, "_on_mouse_entered"):
|
if not self.is_connected("input_event", self, "_on_input_event"):
|
||||||
connect("mouse_entered", self, "_on_mouse_entered")
|
connect("input_event", self, "_on_input_event")
|
||||||
if not self.is_connected("mouse_exited", self, "_on_mouse_exited"):
|
if not self.is_connected("mouse_exited", self, "_on_mouse_exited"):
|
||||||
connect("mouse_exited", self, "_on_mouse_exited")
|
connect("mouse_exited", self, "_on_mouse_exited")
|
||||||
|
|
||||||
@@ -294,6 +294,47 @@ func _ready():
|
|||||||
_movable.last_scale = scale
|
_movable.last_scale = scale
|
||||||
_movable.update_terrain()
|
_movable.update_terrain()
|
||||||
|
|
||||||
|
|
||||||
|
# Mouse exited happens on any item that mouse cursor exited, even those UNDER
|
||||||
|
# the top level of overlapping stack.
|
||||||
|
func _on_mouse_exited():
|
||||||
|
if escoria.inputs_manager.hover_stack.has(self):
|
||||||
|
escoria.inputs_manager.hover_stack_erase_item(self)
|
||||||
|
escoria.inputs_manager.unset_hovered_node(self)
|
||||||
|
|
||||||
|
|
||||||
|
class HoverStackSorter:
|
||||||
|
static func sort_ascending_z_index(a, b):
|
||||||
|
if a.z_index < b.z_index:
|
||||||
|
return true
|
||||||
|
return false
|
||||||
|
|
||||||
|
|
||||||
|
# Manage input events on the item
|
||||||
|
#
|
||||||
|
# #### Parameters
|
||||||
|
#
|
||||||
|
# - _viewport: the viewport node the event entered
|
||||||
|
# - event: the input event
|
||||||
|
# - _shape_idx is the child index of the clicked Shape2D.
|
||||||
|
func _on_input_event(_viewport: Object, event: InputEvent, _shape_idx: int):
|
||||||
|
if event is InputEventMouseMotion:
|
||||||
|
var physics2d_dss: Physics2DDirectSpaceState = get_world_2d().direct_space_state
|
||||||
|
var colliding: Array = physics2d_dss.intersect_point(event.global_position, 32, [], 0x7FFFFFFF, true, true)
|
||||||
|
var colliding_nodes = []
|
||||||
|
for c in colliding:
|
||||||
|
if c.collider.get("global_id") \
|
||||||
|
and escoria.action_manager.is_object_actionable(c.collider.global_id):
|
||||||
|
colliding_nodes.push_back(c.collider)
|
||||||
|
|
||||||
|
if colliding_nodes.empty():
|
||||||
|
return
|
||||||
|
colliding_nodes.sort_custom(HoverStackSorter, "sort_ascending_z_index")
|
||||||
|
escoria.inputs_manager.hover_stack_clear()
|
||||||
|
escoria.inputs_manager.hover_stack_add_items(colliding_nodes)
|
||||||
|
escoria.inputs_manager.set_hovered_node(colliding_nodes.back())
|
||||||
|
|
||||||
|
|
||||||
# Manage mouse button clicks on this item by sending out signals
|
# Manage mouse button clicks on this item by sending out signals
|
||||||
#
|
#
|
||||||
# #### Parameters
|
# #### Parameters
|
||||||
@@ -334,7 +375,7 @@ func _unhandled_input(input_event: InputEvent) -> void:
|
|||||||
)
|
)
|
||||||
return
|
return
|
||||||
var p = get_global_mouse_position()
|
var p = get_global_mouse_position()
|
||||||
if _is_in_shape(p):
|
if _is_in_shape(p) and escoria.action_manager.is_object_actionable(global_id):
|
||||||
if event.doubleclick and event.button_index == BUTTON_LEFT:
|
if event.doubleclick and event.button_index == BUTTON_LEFT:
|
||||||
emit_signal("mouse_double_left_clicked_item", self, event)
|
emit_signal("mouse_double_left_clicked_item", self, event)
|
||||||
get_tree().set_input_as_handled()
|
get_tree().set_input_as_handled()
|
||||||
@@ -472,12 +513,13 @@ func get_interact_position() -> Vector2:
|
|||||||
|
|
||||||
|
|
||||||
# React to the mouse entering the item by emitting the respective signal
|
# React to the mouse entering the item by emitting the respective signal
|
||||||
func _on_mouse_entered():
|
func mouse_entered():
|
||||||
emit_signal("mouse_entered_item", self)
|
if escoria.action_manager.is_object_actionable(global_id):
|
||||||
|
emit_signal("mouse_entered_item", self)
|
||||||
|
|
||||||
|
|
||||||
# React to the mouse exiting the item by emitting the respective signal
|
# React to the mouse exiting the item by emitting the respective signal
|
||||||
func _on_mouse_exited():
|
func mouse_exited():
|
||||||
emit_signal("mouse_exited_item", self)
|
emit_signal("mouse_exited_item", self)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -22,5 +22,3 @@ func _ready():
|
|||||||
._ready()
|
._ready()
|
||||||
else:
|
else:
|
||||||
tooltip_name = ""
|
tooltip_name = ""
|
||||||
if is_connected("input_event", self, "manage_input"):
|
|
||||||
disconnect("input_event", self, "manage_input")
|
|
||||||
|
|||||||
@@ -48,6 +48,27 @@ var hotspot_focused: String = ""
|
|||||||
# **Returns** Whether the function processed the event.
|
# **Returns** Whether the function processed the event.
|
||||||
var custom_input_handler = null
|
var custom_input_handler = null
|
||||||
|
|
||||||
|
# The currently hovered element. Usually the one on top of the hover stack.
|
||||||
|
var _hovered_element = null
|
||||||
|
|
||||||
|
|
||||||
|
# Constructor
|
||||||
|
func _init():
|
||||||
|
escoria.event_manager.connect("event_finished", self, "_on_event_finished")
|
||||||
|
|
||||||
|
|
||||||
|
# Called when an event is finished, so that the current hotspot is reset
|
||||||
|
#
|
||||||
|
# #### Parameters
|
||||||
|
#
|
||||||
|
# - return_code: The return code of the event
|
||||||
|
# - event_name: the name of the event
|
||||||
|
#
|
||||||
|
func _on_event_finished(return_code: int, event_name: String):
|
||||||
|
if _hovered_element == null:
|
||||||
|
hotspot_focused = ""
|
||||||
|
|
||||||
|
|
||||||
# Register core signals (from escoria.gd)
|
# Register core signals (from escoria.gd)
|
||||||
func register_core():
|
func register_core():
|
||||||
escoria.game_scene.connect(
|
escoria.game_scene.connect(
|
||||||
@@ -154,9 +175,44 @@ func try_custom_input_handler(event: InputEvent, is_default_state: bool) -> bool
|
|||||||
return false
|
return false
|
||||||
|
|
||||||
|
|
||||||
# Clear the stack of hovered items
|
|
||||||
func clear_stack():
|
# Unsets the hovered node.
|
||||||
hover_stack = []
|
#
|
||||||
|
# **Parameters**
|
||||||
|
#
|
||||||
|
# - item: the item that was unfocused (mouse_exited)
|
||||||
|
func unset_hovered_node(item: ESCItem):
|
||||||
|
if _hovered_element == item:
|
||||||
|
_hovered_element.mouse_exited()
|
||||||
|
_hovered_element = null
|
||||||
|
hotspot_focused = ""
|
||||||
|
|
||||||
|
|
||||||
|
# Sets the hovered node and calls its mouse_entered() method if it was the top
|
||||||
|
# most item in hover_stack.
|
||||||
|
#
|
||||||
|
# #### Parameters
|
||||||
|
#
|
||||||
|
# - item: the item that was focused (mouse_entered)
|
||||||
|
#
|
||||||
|
# **Returns**
|
||||||
|
# True if item is the new top hovered object
|
||||||
|
func set_hovered_node(item: ESCItem) -> bool:
|
||||||
|
# If tested item was already hovered
|
||||||
|
# or is not actionable (not selectable for ESCPlayer) then do nothing
|
||||||
|
if _hovered_element == item \
|
||||||
|
or not escoria.action_manager.is_object_actionable(item.global_id) \
|
||||||
|
or (item is ESCPlayer and not (item as ESCPlayer).selectable):
|
||||||
|
return true
|
||||||
|
# Else if the tested item is on top of hover stack (or null)
|
||||||
|
# Set that item as hovered and call that item's mouse_entered()
|
||||||
|
if _hovered_element == null or hover_stack.back() != item:
|
||||||
|
_hovered_element = item
|
||||||
|
_hovered_element.mouse_entered()
|
||||||
|
return true
|
||||||
|
# Else, the tested item is currently on top of hover stack, then do nothing
|
||||||
|
else:
|
||||||
|
return false
|
||||||
|
|
||||||
|
|
||||||
# The background was clicked with the LMB
|
# The background was clicked with the LMB
|
||||||
@@ -165,7 +221,8 @@ func clear_stack():
|
|||||||
#
|
#
|
||||||
# - position: Position of the click
|
# - position: Position of the click
|
||||||
func _on_left_click_on_bg(position: Vector2) -> void:
|
func _on_left_click_on_bg(position: Vector2) -> void:
|
||||||
if input_mode == INPUT_ALL and hotspot_focused.empty():
|
if input_mode == INPUT_ALL: # and hotspot_focused.empty():
|
||||||
|
hotspot_focused = ""
|
||||||
escoria.logger.info(
|
escoria.logger.info(
|
||||||
self,
|
self,
|
||||||
"Left click on background at %s." % str(position)
|
"Left click on background at %s." % str(position)
|
||||||
@@ -179,7 +236,8 @@ func _on_left_click_on_bg(position: Vector2) -> void:
|
|||||||
#
|
#
|
||||||
# - position: Position of the click
|
# - position: Position of the click
|
||||||
func _on_double_left_click_on_bg(position: Vector2) -> void:
|
func _on_double_left_click_on_bg(position: Vector2) -> void:
|
||||||
if input_mode == INPUT_ALL and hotspot_focused.empty():
|
if input_mode == INPUT_ALL: # and hotspot_focused.empty():
|
||||||
|
hotspot_focused = ""
|
||||||
escoria.logger.info(
|
escoria.logger.info(
|
||||||
self,
|
self,
|
||||||
"Double left click on background at %s." % str(position)
|
"Double left click on background at %s." % str(position)
|
||||||
@@ -295,31 +353,32 @@ func _on_mouse_exited_inventory_item() -> void:
|
|||||||
# - item: The Escoria item hovered
|
# - item: The Escoria item hovered
|
||||||
func _on_mouse_entered_item(item: ESCItem) -> void:
|
func _on_mouse_entered_item(item: ESCItem) -> void:
|
||||||
if item as ESCPlayer and not (item as ESCPlayer).selectable:
|
if item as ESCPlayer and not (item as ESCPlayer).selectable:
|
||||||
escoria.logger.debug(
|
escoria.logger.trace(
|
||||||
self,
|
self,
|
||||||
"Ignoring mouse entering player %s: Player not selectable." % [item.global_id]
|
"Ignoring mouse entering player %s: Player not selectable." % [item.global_id]
|
||||||
)
|
)
|
||||||
return
|
if hover_stack.empty():
|
||||||
|
hotspot_focused = ""
|
||||||
|
escoria.main.current_scene.game.element_unfocused()
|
||||||
|
else:
|
||||||
|
hotspot_focused = hover_stack.back().global_id
|
||||||
|
escoria.main.current_scene.game.element_focused(hotspot_focused)
|
||||||
|
return
|
||||||
|
|
||||||
if not escoria.action_manager.is_object_actionable(item.global_id):
|
if not escoria.action_manager.is_object_actionable(item.global_id):
|
||||||
escoria.logger.debug(
|
escoria.logger.debug(
|
||||||
self,
|
self,
|
||||||
"Ignoring mouse entering item %s." % [item.global_id]
|
"Ignoring mouse entering item %s." % [item.global_id]
|
||||||
)
|
)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
escoria.logger.info(
|
escoria.logger.info(
|
||||||
self,
|
self,
|
||||||
"Item focused: %s" % item.global_id
|
"Item focused: %s" % item.global_id
|
||||||
)
|
)
|
||||||
_clean_hover_stack()
|
|
||||||
|
|
||||||
hover_stack.push_back(item)
|
hotspot_focused = item.global_id
|
||||||
hover_stack.sort_custom(HoverStackSorter, "sort_ascending_z_index")
|
escoria.main.current_scene.game.element_focused(item.global_id)
|
||||||
|
|
||||||
hotspot_focused = hover_stack.back().global_id
|
|
||||||
escoria.main.current_scene.game.element_focused(hotspot_focused)
|
|
||||||
|
|
||||||
|
|
||||||
# The mouse exited an Escoria item
|
# The mouse exited an Escoria item
|
||||||
@@ -328,11 +387,23 @@ func _on_mouse_entered_item(item: ESCItem) -> void:
|
|||||||
#
|
#
|
||||||
# - item: The Escoria item hovered
|
# - item: The Escoria item hovered
|
||||||
func _on_mouse_exited_item(item: ESCItem) -> void:
|
func _on_mouse_exited_item(item: ESCItem) -> void:
|
||||||
|
var object: ESCObject = escoria.object_manager.get_object(item.global_id)
|
||||||
|
if object and not object.interactive:
|
||||||
|
hover_stack_erase_item(item)
|
||||||
|
escoria.main.current_scene.game.element_unfocused()
|
||||||
|
return
|
||||||
|
|
||||||
|
if object and not object.interactive:
|
||||||
|
return
|
||||||
|
if object and object.node is ESCPlayer and not (object.node as ESCPlayer).selectable:
|
||||||
|
hotspot_focused = ""
|
||||||
|
return
|
||||||
|
|
||||||
escoria.logger.info(
|
escoria.logger.info(
|
||||||
self,
|
self,
|
||||||
"Item unfocused: %s" % item.global_id
|
"Item unfocused: %s" % hotspot_focused
|
||||||
)
|
)
|
||||||
_hover_stack_erase_item(item)
|
|
||||||
if hover_stack.empty():
|
if hover_stack.empty():
|
||||||
hotspot_focused = ""
|
hotspot_focused = ""
|
||||||
escoria.main.current_scene.game.element_unfocused()
|
escoria.main.current_scene.game.element_unfocused()
|
||||||
@@ -341,6 +412,25 @@ func _on_mouse_exited_item(item: ESCItem) -> void:
|
|||||||
escoria.main.current_scene.game.element_focused(hotspot_focused)
|
escoria.main.current_scene.game.element_focused(hotspot_focused)
|
||||||
|
|
||||||
|
|
||||||
|
# Function called when the item is set interactive, to re-trigger an input on
|
||||||
|
# underlying item.
|
||||||
|
#
|
||||||
|
# #### Parameters
|
||||||
|
#
|
||||||
|
# - item: The ESCCItem that was set non-interactive
|
||||||
|
func on_item_non_interactive(item: ESCItem) -> void:
|
||||||
|
var object: ESCObject = escoria.object_manager.get_object(item.global_id)
|
||||||
|
if object and not object.interactive:
|
||||||
|
hover_stack_erase_item(item)
|
||||||
|
escoria.main.current_scene.game.element_unfocused()
|
||||||
|
hover_stack.sort_custom(HoverStackSorter, "sort_ascending_z_index")
|
||||||
|
if hover_stack.empty():
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
var new_item = hover_stack.back()
|
||||||
|
escoria.action_manager.set_action_input_state(ESCActionManager.ACTION_INPUT_STATE.AWAITING_VERB_OR_ITEM)
|
||||||
|
new_item.mouse_entered()
|
||||||
|
|
||||||
# An Escoria item was clicked with the LMB
|
# An Escoria item was clicked with the LMB
|
||||||
#
|
#
|
||||||
# #### Parameters
|
# #### Parameters
|
||||||
@@ -349,39 +439,37 @@ func _on_mouse_exited_item(item: ESCItem) -> void:
|
|||||||
# - event: The input event from the click
|
# - event: The input event from the click
|
||||||
func _on_mouse_left_clicked_item(item: ESCItem, event: InputEvent) -> void:
|
func _on_mouse_left_clicked_item(item: ESCItem, event: InputEvent) -> void:
|
||||||
if input_mode == INPUT_ALL:
|
if input_mode == INPUT_ALL:
|
||||||
|
# Manage clicking through ESCPlayer (if ESCPlayer.selectable is false)
|
||||||
if item as ESCPlayer and not (item as ESCPlayer).selectable:
|
if item as ESCPlayer and not (item as ESCPlayer).selectable:
|
||||||
escoria.logger.debug(
|
escoria.logger.trace(
|
||||||
self,
|
self,
|
||||||
"Ignoring left click on player %s: Player not selectable." % [item.global_id]
|
"Ignoring left click on player %s: Player not selectable."
|
||||||
|
% [item.global_id]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Get next object in hover stack and forward event to it
|
||||||
if not hover_stack.empty():
|
if not hover_stack.empty():
|
||||||
var next_item = hover_stack.pop_back()
|
var next_item = hover_stack.pop_back()
|
||||||
_on_mouse_left_clicked_item(next_item, event)
|
_on_mouse_left_clicked_item(next_item, event)
|
||||||
|
else: # if no next object, consider this click as background click
|
||||||
|
hotspot_focused = ""
|
||||||
|
_on_left_click_on_bg(event.position)
|
||||||
return
|
return
|
||||||
|
|
||||||
if not escoria.action_manager.is_object_actionable(item.global_id):
|
# Clicked object can't be actioned and there is no other object behind
|
||||||
escoria.logger.debug(
|
# We consider this click as a background click
|
||||||
self,
|
if not escoria.action_manager.is_object_actionable(item.global_id) \
|
||||||
"Ignoring left click on %s with event %s." % [item.global_id, event]
|
and hover_stack.empty():
|
||||||
)
|
hotspot_focused = ""
|
||||||
|
|
||||||
# Treat this as a background click now
|
|
||||||
_on_left_click_on_bg(event.position)
|
_on_left_click_on_bg(event.position)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
if hover_stack.empty() or hover_stack.back() == item:
|
# Finally, execute the action on the ESCItem
|
||||||
escoria.logger.info(
|
hotspot_focused = item.global_id
|
||||||
self,
|
escoria.main.current_scene.game.left_click_on_item(
|
||||||
"Item %s left clicked with event %s." % [item.global_id, event]
|
item.global_id,
|
||||||
)
|
event
|
||||||
hotspot_focused = item.global_id
|
)
|
||||||
escoria.main.current_scene.game.left_click_on_item(
|
|
||||||
item.global_id,
|
|
||||||
event
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
# An Escoria item was double-clicked with the LMB
|
# An Escoria item was double-clicked with the LMB
|
||||||
@@ -395,33 +483,32 @@ func _on_mouse_left_double_clicked_item(
|
|||||||
event: InputEvent
|
event: InputEvent
|
||||||
) -> void:
|
) -> void:
|
||||||
if input_mode == INPUT_ALL:
|
if input_mode == INPUT_ALL:
|
||||||
|
# Manage clicking through ESCPlayer (if ESCPlayer.selectable is false)
|
||||||
if item as ESCPlayer and not (item as ESCPlayer).selectable:
|
if item as ESCPlayer and not (item as ESCPlayer).selectable:
|
||||||
escoria.logger.debug(
|
escoria.logger.trace(
|
||||||
self,
|
self,
|
||||||
"Ignoring double-left click on player %s: Player not selectable." % [item.global_id]
|
"Ignoring double left click on player %s: Player not selectable."
|
||||||
|
% [item.global_id]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Get next object in hover stack and forward event to it
|
||||||
if not hover_stack.empty():
|
if not hover_stack.empty():
|
||||||
var next_item = hover_stack.pop_back()
|
var next_item = hover_stack.pop_back()
|
||||||
_on_mouse_left_double_clicked_item(next_item, event)
|
_on_mouse_left_double_clicked_item(next_item, event)
|
||||||
|
else: # if no next object, consider this click as background click
|
||||||
|
hotspot_focused = ""
|
||||||
|
_on_double_left_click_on_bg(event.position)
|
||||||
return
|
return
|
||||||
|
|
||||||
if not escoria.action_manager.is_object_actionable(item.global_id):
|
# Clicked object can't be actioned and there is no other object behind
|
||||||
escoria.logger.debug(
|
# We consider this click as a background click
|
||||||
self,
|
if not escoria.action_manager.is_object_actionable(item.global_id) \
|
||||||
"Ignoring double-left click on %s with event %s." % [item.global_id, event]
|
and hover_stack.empty():
|
||||||
)
|
hotspot_focused = ""
|
||||||
|
|
||||||
# Treat this as a background click now
|
|
||||||
_on_double_left_click_on_bg(event.position)
|
_on_double_left_click_on_bg(event.position)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
escoria.logger.info(
|
# Finally, execute the action on the ESCItem
|
||||||
self,
|
|
||||||
"Item %s left double clicked with event %s." % [item.global_id, event]
|
|
||||||
)
|
|
||||||
hotspot_focused = item.global_id
|
hotspot_focused = item.global_id
|
||||||
escoria.main.current_scene.game.left_double_click_on_item(
|
escoria.main.current_scene.game.left_double_click_on_item(
|
||||||
item.global_id,
|
item.global_id,
|
||||||
@@ -446,29 +533,46 @@ func _on_mouse_right_clicked_item(item: ESCItem, event: InputEvent) -> void:
|
|||||||
if not hover_stack.empty():
|
if not hover_stack.empty():
|
||||||
var next_item = hover_stack.pop_back()
|
var next_item = hover_stack.pop_back()
|
||||||
_on_mouse_right_clicked_item(next_item, event)
|
_on_mouse_right_clicked_item(next_item, event)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
if not escoria.action_manager.is_object_actionable(item.global_id):
|
if not escoria.action_manager.is_object_actionable(item.global_id) \
|
||||||
escoria.logger.debug(
|
and hover_stack.empty():
|
||||||
|
# Treat this as a background click now
|
||||||
|
hotspot_focused = ""
|
||||||
|
_on_right_click_on_bg(event.position)
|
||||||
|
return
|
||||||
|
|
||||||
|
var actual_item
|
||||||
|
|
||||||
|
# We check if the clicked object is ESCPlayer and not selectable. If so
|
||||||
|
# we consider we clicked through it.
|
||||||
|
var object: ESCObject = escoria.object_manager.get_object(item.global_id)
|
||||||
|
if object.node is ESCPlayer and not (object.node as ESCPlayer).selectable:
|
||||||
|
actual_item = hover_stack.back()
|
||||||
|
else:
|
||||||
|
actual_item = item
|
||||||
|
|
||||||
|
if actual_item == null:
|
||||||
|
if event.position:
|
||||||
|
(escoria.main.current_scene.game as ESCGame).right_click_on_bg(event.position)
|
||||||
|
else:
|
||||||
|
escoria.logger.info(
|
||||||
|
self,
|
||||||
|
"Clicked item %s with event %s cannot be activated (player not selectable or not interactive).\n"
|
||||||
|
% [item.global_id, event] +
|
||||||
|
"No valid item found in the items stack. Action cancelled."
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
escoria.logger.info(
|
||||||
self,
|
self,
|
||||||
"Ignoring right click on %s with event %s." % [item.global_id, event]
|
"Item %s right clicked with event %s." % [actual_item.global_id, event]
|
||||||
|
)
|
||||||
|
hotspot_focused = actual_item.global_id
|
||||||
|
escoria.main.current_scene.game.right_click_on_item(
|
||||||
|
actual_item.global_id,
|
||||||
|
event
|
||||||
)
|
)
|
||||||
|
|
||||||
# Treat this as a background click now
|
|
||||||
_on_right_click_on_bg(event.position)
|
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
escoria.logger.info(
|
|
||||||
self,
|
|
||||||
"Item %s right clicked with event %s." % [item.global_id, event]
|
|
||||||
)
|
|
||||||
hotspot_focused = item.global_id
|
|
||||||
escoria.main.current_scene.game.right_click_on_item(
|
|
||||||
item.global_id,
|
|
||||||
event
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
# The mousewheel was turned
|
# The mousewheel was turned
|
||||||
@@ -485,6 +589,27 @@ func _on_pause_menu_requested():
|
|||||||
escoria.main.current_scene.game.pause_game()
|
escoria.main.current_scene.game.pause_game()
|
||||||
|
|
||||||
|
|
||||||
|
# Add the given item to the stack if not already in it.
|
||||||
|
#
|
||||||
|
# #### Parameters
|
||||||
|
# - item: the item to add to the hover stack
|
||||||
|
func hover_stack_add_item(item):
|
||||||
|
if item is ESCPlayer and not (item as ESCPlayer).selectable:
|
||||||
|
return
|
||||||
|
if not hover_stack.has(item):
|
||||||
|
hover_stack.push_back(item)
|
||||||
|
hover_stack.sort_custom(HoverStackSorter, "sort_ascending_z_index")
|
||||||
|
|
||||||
|
|
||||||
|
# Add the items contained in given list to the stack if not already in it.
|
||||||
|
#
|
||||||
|
# #### Parameters
|
||||||
|
# - items: the items list (array) to add to the hover stack
|
||||||
|
func hover_stack_add_items(items: Array):
|
||||||
|
for item in items:
|
||||||
|
hover_stack_add_item(item)
|
||||||
|
|
||||||
|
|
||||||
# Clean the hover stack
|
# Clean the hover stack
|
||||||
func _clean_hover_stack():
|
func _clean_hover_stack():
|
||||||
for e in hover_stack:
|
for e in hover_stack:
|
||||||
@@ -496,8 +621,14 @@ func _clean_hover_stack():
|
|||||||
#
|
#
|
||||||
# #### Parameters
|
# #### Parameters
|
||||||
# - item: the item to remove from the hover stack
|
# - item: the item to remove from the hover stack
|
||||||
func _hover_stack_erase_item(item):
|
func hover_stack_erase_item(item):
|
||||||
hover_stack.erase(item)
|
hover_stack.erase(item)
|
||||||
|
hover_stack.sort_custom(HoverStackSorter, "sort_ascending_z_index")
|
||||||
|
|
||||||
|
|
||||||
|
# Clear the stack of hovered items
|
||||||
|
func hover_stack_clear():
|
||||||
|
hover_stack = []
|
||||||
|
|
||||||
|
|
||||||
class HoverStackSorter:
|
class HoverStackSorter:
|
||||||
|
|||||||
@@ -357,7 +357,7 @@ func _on_MenuButton_pressed() -> void:
|
|||||||
|
|
||||||
func _on_action_finished() -> void:
|
func _on_action_finished() -> void:
|
||||||
verbs_menu.unselect_actions()
|
verbs_menu.unselect_actions()
|
||||||
tooltip.clear()
|
|
||||||
|
|
||||||
func _on_event_done(_return_code: int, _event_name: String):
|
func _on_event_done(_return_code: int, _event_name: String):
|
||||||
if _return_code == ESCExecution.RC_OK:
|
if _return_code == ESCExecution.RC_OK:
|
||||||
|
|||||||
@@ -10,27 +10,57 @@
|
|||||||
[ext_resource path="res://game/characters/mark/mark_animations.tres" type="Resource" id=8]
|
[ext_resource path="res://game/characters/mark/mark_animations.tres" type="Resource" id=8]
|
||||||
[ext_resource path="res://game/characters/mark/png/markjester_talk.png" type="Texture" id=9]
|
[ext_resource path="res://game/characters/mark/png/markjester_talk.png" type="Texture" id=9]
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=71]
|
[sub_resource type="AtlasTexture" id=18]
|
||||||
atlas = ExtResource( 3 )
|
atlas = ExtResource( 4 )
|
||||||
region = Rect2( 408, 0, 24, 70 )
|
region = Rect2( 0, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=72]
|
[sub_resource type="AtlasTexture" id=67]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 3 )
|
atlas = ExtResource( 3 )
|
||||||
region = Rect2( 432, 0, 24, 70 )
|
region = Rect2( 0, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=73]
|
[sub_resource type="AtlasTexture" id=4]
|
||||||
atlas = ExtResource( 3 )
|
atlas = ExtResource( 4 )
|
||||||
region = Rect2( 456, 0, 24, 70 )
|
region = Rect2( 120, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=74]
|
[sub_resource type="AtlasTexture" id=66]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 3 )
|
atlas = ExtResource( 3 )
|
||||||
region = Rect2( 480, 0, 24, 70 )
|
region = Rect2( 120, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=75]
|
[sub_resource type="AtlasTexture" id=11]
|
||||||
|
atlas = ExtResource( 4 )
|
||||||
|
region = Rect2( 24, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=69]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 3 )
|
atlas = ExtResource( 3 )
|
||||||
region = Rect2( 504, 0, 24, 70 )
|
region = Rect2( 24, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=17]
|
||||||
|
atlas = ExtResource( 4 )
|
||||||
|
region = Rect2( 96, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=70]
|
||||||
|
flags = 4
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 96, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=27]
|
||||||
|
atlas = ExtResource( 4 )
|
||||||
|
region = Rect2( 48, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=65]
|
||||||
|
flags = 4
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 48, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=5]
|
||||||
|
atlas = ExtResource( 4 )
|
||||||
|
region = Rect2( 72, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=68]
|
[sub_resource type="AtlasTexture" id=68]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 3 )
|
atlas = ExtResource( 3 )
|
||||||
region = Rect2( 72, 0, 24, 70 )
|
region = Rect2( 72, 0, 24, 70 )
|
||||||
|
|
||||||
@@ -46,102 +76,88 @@ region = Rect2( 24, 0, 24, 70 )
|
|||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 48, 0, 24, 70 )
|
region = Rect2( 48, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=17]
|
|
||||||
atlas = ExtResource( 4 )
|
|
||||||
region = Rect2( 96, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=67]
|
|
||||||
atlas = ExtResource( 3 )
|
|
||||||
region = Rect2( 0, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=56]
|
[sub_resource type="AtlasTexture" id=56]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 9 )
|
atlas = ExtResource( 9 )
|
||||||
region = Rect2( 0, 0, 24, 70 )
|
region = Rect2( 0, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=57]
|
[sub_resource type="AtlasTexture" id=57]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 9 )
|
atlas = ExtResource( 9 )
|
||||||
region = Rect2( 24, 0, 24, 70 )
|
region = Rect2( 24, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=58]
|
[sub_resource type="AtlasTexture" id=58]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 9 )
|
atlas = ExtResource( 9 )
|
||||||
region = Rect2( 48, 0, 24, 70 )
|
region = Rect2( 48, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=70]
|
[sub_resource type="AtlasTexture" id=59]
|
||||||
atlas = ExtResource( 3 )
|
flags = 4
|
||||||
region = Rect2( 96, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=17]
|
|
||||||
atlas = ExtResource( 4 )
|
|
||||||
region = Rect2( 96, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=22]
|
|
||||||
atlas = ExtResource( 4 )
|
|
||||||
region = Rect2( 216, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=23]
|
|
||||||
atlas = ExtResource( 4 )
|
|
||||||
region = Rect2( 240, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=24]
|
|
||||||
atlas = ExtResource( 4 )
|
|
||||||
region = Rect2( 264, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=25]
|
|
||||||
atlas = ExtResource( 4 )
|
|
||||||
region = Rect2( 288, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=26]
|
|
||||||
atlas = ExtResource( 4 )
|
|
||||||
region = Rect2( 312, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=53]
|
|
||||||
atlas = ExtResource( 3 )
|
|
||||||
region = Rect2( 144, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=54]
|
|
||||||
atlas = ExtResource( 3 )
|
|
||||||
region = Rect2( 168, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=55]
|
|
||||||
atlas = ExtResource( 3 )
|
|
||||||
region = Rect2( 192, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=33]
|
|
||||||
atlas = ExtResource( 9 )
|
atlas = ExtResource( 9 )
|
||||||
region = Rect2( 264, 0, 24, 70 )
|
region = Rect2( 432, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=34]
|
[sub_resource type="AtlasTexture" id=60]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 9 )
|
atlas = ExtResource( 9 )
|
||||||
region = Rect2( 288, 0, 24, 70 )
|
region = Rect2( 456, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=35]
|
[sub_resource type="AtlasTexture" id=61]
|
||||||
atlas = ExtResource( 3 )
|
flags = 4
|
||||||
region = Rect2( 336, 0, 24, 70 )
|
atlas = ExtResource( 9 )
|
||||||
|
region = Rect2( 480, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=36]
|
[sub_resource type="AtlasTexture" id=28]
|
||||||
atlas = ExtResource( 3 )
|
atlas = ExtResource( 5 )
|
||||||
region = Rect2( 360, 0, 24, 70 )
|
region = Rect2( 0, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=37]
|
[sub_resource type="AtlasTexture" id=29]
|
||||||
atlas = ExtResource( 3 )
|
atlas = ExtResource( 5 )
|
||||||
region = Rect2( 384, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=69]
|
|
||||||
atlas = ExtResource( 3 )
|
|
||||||
region = Rect2( 24, 0, 24, 70 )
|
region = Rect2( 24, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=30]
|
||||||
|
atlas = ExtResource( 5 )
|
||||||
|
region = Rect2( 48, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=62]
|
[sub_resource type="AtlasTexture" id=62]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 9 )
|
atlas = ExtResource( 9 )
|
||||||
region = Rect2( 72, 0, 24, 70 )
|
region = Rect2( 72, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=63]
|
[sub_resource type="AtlasTexture" id=63]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 9 )
|
atlas = ExtResource( 9 )
|
||||||
region = Rect2( 96, 0, 24, 70 )
|
region = Rect2( 96, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=64]
|
[sub_resource type="AtlasTexture" id=64]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 9 )
|
atlas = ExtResource( 9 )
|
||||||
region = Rect2( 120, 0, 24, 70 )
|
region = Rect2( 120, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=48]
|
||||||
|
flags = 4
|
||||||
|
atlas = ExtResource( 9 )
|
||||||
|
region = Rect2( 312, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=49]
|
||||||
|
flags = 4
|
||||||
|
atlas = ExtResource( 9 )
|
||||||
|
region = Rect2( 336, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=50]
|
||||||
|
flags = 4
|
||||||
|
atlas = ExtResource( 9 )
|
||||||
|
region = Rect2( 360, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=51]
|
||||||
|
flags = 4
|
||||||
|
atlas = ExtResource( 9 )
|
||||||
|
region = Rect2( 384, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=52]
|
||||||
|
flags = 4
|
||||||
|
atlas = ExtResource( 9 )
|
||||||
|
region = Rect2( 408, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=6]
|
[sub_resource type="AtlasTexture" id=6]
|
||||||
atlas = ExtResource( 7 )
|
atlas = ExtResource( 7 )
|
||||||
region = Rect2( 0, 0, 24, 70 )
|
region = Rect2( 0, 0, 24, 70 )
|
||||||
@@ -163,37 +179,30 @@ atlas = ExtResource( 7 )
|
|||||||
region = Rect2( 96, 0, 24, 70 )
|
region = Rect2( 96, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=38]
|
[sub_resource type="AtlasTexture" id=38]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 9 )
|
atlas = ExtResource( 9 )
|
||||||
region = Rect2( 144, 0, 24, 70 )
|
region = Rect2( 144, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=39]
|
[sub_resource type="AtlasTexture" id=39]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 9 )
|
atlas = ExtResource( 9 )
|
||||||
region = Rect2( 168, 0, 24, 70 )
|
region = Rect2( 168, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=40]
|
[sub_resource type="AtlasTexture" id=40]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 9 )
|
atlas = ExtResource( 9 )
|
||||||
region = Rect2( 192, 0, 24, 70 )
|
region = Rect2( 192, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=41]
|
[sub_resource type="AtlasTexture" id=41]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 9 )
|
atlas = ExtResource( 9 )
|
||||||
region = Rect2( 216, 0, 24, 70 )
|
region = Rect2( 216, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=42]
|
[sub_resource type="AtlasTexture" id=42]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 9 )
|
atlas = ExtResource( 9 )
|
||||||
region = Rect2( 240, 0, 24, 70 )
|
region = Rect2( 240, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=59]
|
|
||||||
atlas = ExtResource( 9 )
|
|
||||||
region = Rect2( 432, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=60]
|
|
||||||
atlas = ExtResource( 9 )
|
|
||||||
region = Rect2( 456, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=61]
|
|
||||||
atlas = ExtResource( 9 )
|
|
||||||
region = Rect2( 480, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=12]
|
[sub_resource type="AtlasTexture" id=12]
|
||||||
atlas = ExtResource( 6 )
|
atlas = ExtResource( 6 )
|
||||||
region = Rect2( 0, 0, 24, 70 )
|
region = Rect2( 0, 0, 24, 70 )
|
||||||
@@ -202,13 +211,15 @@ region = Rect2( 0, 0, 24, 70 )
|
|||||||
atlas = ExtResource( 6 )
|
atlas = ExtResource( 6 )
|
||||||
region = Rect2( 24, 0, 24, 70 )
|
region = Rect2( 24, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=66]
|
[sub_resource type="AtlasTexture" id=33]
|
||||||
atlas = ExtResource( 3 )
|
flags = 4
|
||||||
region = Rect2( 120, 0, 24, 70 )
|
atlas = ExtResource( 9 )
|
||||||
|
region = Rect2( 264, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=11]
|
[sub_resource type="AtlasTexture" id=34]
|
||||||
atlas = ExtResource( 4 )
|
flags = 4
|
||||||
region = Rect2( 24, 0, 24, 70 )
|
atlas = ExtResource( 9 )
|
||||||
|
region = Rect2( 288, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=19]
|
[sub_resource type="AtlasTexture" id=19]
|
||||||
atlas = ExtResource( 4 )
|
atlas = ExtResource( 4 )
|
||||||
@@ -222,54 +233,91 @@ region = Rect2( 168, 0, 24, 70 )
|
|||||||
atlas = ExtResource( 4 )
|
atlas = ExtResource( 4 )
|
||||||
region = Rect2( 192, 0, 24, 70 )
|
region = Rect2( 192, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=53]
|
||||||
|
flags = 4
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 144, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=54]
|
||||||
|
flags = 4
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 168, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=55]
|
||||||
|
flags = 4
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 192, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=71]
|
||||||
|
flags = 4
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 408, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=72]
|
||||||
|
flags = 4
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 432, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=73]
|
||||||
|
flags = 4
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 456, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=74]
|
||||||
|
flags = 4
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 480, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=75]
|
||||||
|
flags = 4
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 504, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=22]
|
||||||
|
atlas = ExtResource( 4 )
|
||||||
|
region = Rect2( 216, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=23]
|
||||||
|
atlas = ExtResource( 4 )
|
||||||
|
region = Rect2( 240, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=24]
|
||||||
|
atlas = ExtResource( 4 )
|
||||||
|
region = Rect2( 264, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=25]
|
||||||
|
atlas = ExtResource( 4 )
|
||||||
|
region = Rect2( 288, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=26]
|
||||||
|
atlas = ExtResource( 4 )
|
||||||
|
region = Rect2( 312, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=43]
|
[sub_resource type="AtlasTexture" id=43]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 3 )
|
atlas = ExtResource( 3 )
|
||||||
region = Rect2( 216, 0, 24, 70 )
|
region = Rect2( 216, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=44]
|
[sub_resource type="AtlasTexture" id=44]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 3 )
|
atlas = ExtResource( 3 )
|
||||||
region = Rect2( 240, 0, 24, 70 )
|
region = Rect2( 240, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=45]
|
[sub_resource type="AtlasTexture" id=45]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 3 )
|
atlas = ExtResource( 3 )
|
||||||
region = Rect2( 264, 0, 24, 70 )
|
region = Rect2( 264, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=46]
|
[sub_resource type="AtlasTexture" id=46]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 3 )
|
atlas = ExtResource( 3 )
|
||||||
region = Rect2( 288, 0, 24, 70 )
|
region = Rect2( 288, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=47]
|
[sub_resource type="AtlasTexture" id=47]
|
||||||
|
flags = 4
|
||||||
atlas = ExtResource( 3 )
|
atlas = ExtResource( 3 )
|
||||||
region = Rect2( 312, 0, 24, 70 )
|
region = Rect2( 312, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=27]
|
|
||||||
atlas = ExtResource( 4 )
|
|
||||||
region = Rect2( 48, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=5]
|
|
||||||
atlas = ExtResource( 4 )
|
|
||||||
region = Rect2( 72, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=65]
|
|
||||||
atlas = ExtResource( 3 )
|
|
||||||
region = Rect2( 48, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=28]
|
|
||||||
atlas = ExtResource( 5 )
|
|
||||||
region = Rect2( 0, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=29]
|
|
||||||
atlas = ExtResource( 5 )
|
|
||||||
region = Rect2( 24, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=30]
|
|
||||||
atlas = ExtResource( 5 )
|
|
||||||
region = Rect2( 48, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=4]
|
|
||||||
atlas = ExtResource( 4 )
|
|
||||||
region = Rect2( 120, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=14]
|
[sub_resource type="AtlasTexture" id=14]
|
||||||
atlas = ExtResource( 4 )
|
atlas = ExtResource( 4 )
|
||||||
region = Rect2( 336, 0, 24, 70 )
|
region = Rect2( 336, 0, 24, 70 )
|
||||||
@@ -282,35 +330,76 @@ region = Rect2( 360, 0, 24, 70 )
|
|||||||
atlas = ExtResource( 4 )
|
atlas = ExtResource( 4 )
|
||||||
region = Rect2( 384, 0, 24, 70 )
|
region = Rect2( 384, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=48]
|
[sub_resource type="AtlasTexture" id=35]
|
||||||
atlas = ExtResource( 9 )
|
flags = 4
|
||||||
region = Rect2( 312, 0, 24, 70 )
|
atlas = ExtResource( 3 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=49]
|
|
||||||
atlas = ExtResource( 9 )
|
|
||||||
region = Rect2( 336, 0, 24, 70 )
|
region = Rect2( 336, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=50]
|
[sub_resource type="AtlasTexture" id=36]
|
||||||
atlas = ExtResource( 9 )
|
flags = 4
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
region = Rect2( 360, 0, 24, 70 )
|
region = Rect2( 360, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=51]
|
[sub_resource type="AtlasTexture" id=37]
|
||||||
atlas = ExtResource( 9 )
|
flags = 4
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
region = Rect2( 384, 0, 24, 70 )
|
region = Rect2( 384, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=52]
|
|
||||||
atlas = ExtResource( 9 )
|
|
||||||
region = Rect2( 408, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=18]
|
|
||||||
atlas = ExtResource( 4 )
|
|
||||||
region = Rect2( 0, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=31]
|
[sub_resource type="SpriteFrames" id=31]
|
||||||
animations = [ {
|
animations = [ {
|
||||||
"frames": [ SubResource( 71 ), SubResource( 72 ), SubResource( 73 ), SubResource( 74 ), SubResource( 75 ) ],
|
"frames": [ SubResource( 18 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "walk_left_jester",
|
"name": "idle_down",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 67 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_down_jester",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 4 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_down_left",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 66 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_down_left_jester",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 11 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_down_right",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 69 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_down_right_jester",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 17 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_left",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 70 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_left_jester",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 27 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_right",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 65 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_right_jester",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 5 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "idle_up",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ SubResource( 68 ) ],
|
"frames": [ SubResource( 68 ) ],
|
||||||
@@ -323,56 +412,31 @@ animations = [ {
|
|||||||
"name": "speak_down",
|
"name": "speak_down",
|
||||||
"speed": 6.0
|
"speed": 6.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ SubResource( 17 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "idle_left",
|
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 67 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "idle_down_jester",
|
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 56 ), SubResource( 57 ), SubResource( 58 ) ],
|
"frames": [ SubResource( 56 ), SubResource( 57 ), SubResource( 58 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "speak_down_jester",
|
"name": "speak_down_jester",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ SubResource( 70 ) ],
|
"frames": [ SubResource( 59 ), SubResource( 60 ), SubResource( 61 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "idle_left_jester",
|
"name": "speak_down_left_jester",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ SubResource( 22 ), SubResource( 23 ), SubResource( 24 ), SubResource( 25 ), SubResource( 26 ) ],
|
"frames": [ SubResource( 28 ), SubResource( 29 ), SubResource( 30 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "walk_right",
|
"name": "speak_down_right",
|
||||||
"speed": 6.0
|
"speed": 6.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ SubResource( 53 ), SubResource( 54 ), SubResource( 55 ), SubResource( 54 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "walk_down_jester",
|
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 33 ), SubResource( 34 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "speak_up_jester",
|
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 35 ), SubResource( 36 ), SubResource( 37 ), SubResource( 36 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "walk_up_jester",
|
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 69 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "idle_down_right_jester",
|
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 62 ), SubResource( 63 ), SubResource( 64 ) ],
|
"frames": [ SubResource( 62 ), SubResource( 63 ), SubResource( 64 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "speak_down_right_jester",
|
"name": "speak_down_right_jester",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
|
"frames": [ SubResource( 48 ), SubResource( 49 ), SubResource( 50 ), SubResource( 51 ), SubResource( 52 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "speak_left_jester",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
"frames": [ SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ) ],
|
"frames": [ SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "speak_right",
|
"name": "speak_right",
|
||||||
@@ -383,24 +447,14 @@ animations = [ {
|
|||||||
"name": "speak_right_jester",
|
"name": "speak_right_jester",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ SubResource( 59 ), SubResource( 60 ), SubResource( 61 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "speak_down_left_jester",
|
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 12 ), SubResource( 13 ), SubResource( 12 ), SubResource( 13 ), SubResource( 13 ) ],
|
"frames": [ SubResource( 12 ), SubResource( 13 ), SubResource( 12 ), SubResource( 13 ), SubResource( 13 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "speak_up",
|
"name": "speak_up",
|
||||||
"speed": 3.0
|
"speed": 3.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ SubResource( 66 ) ],
|
"frames": [ SubResource( 33 ), SubResource( 34 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "idle_down_left_jester",
|
"name": "speak_up_jester",
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 11 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "idle_down_right",
|
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ SubResource( 19 ), SubResource( 20 ), SubResource( 21 ), SubResource( 20 ) ],
|
"frames": [ SubResource( 19 ), SubResource( 20 ), SubResource( 21 ), SubResource( 20 ) ],
|
||||||
@@ -408,6 +462,21 @@ animations = [ {
|
|||||||
"name": "walk_down",
|
"name": "walk_down",
|
||||||
"speed": 6.0
|
"speed": 6.0
|
||||||
}, {
|
}, {
|
||||||
|
"frames": [ SubResource( 53 ), SubResource( 54 ), SubResource( 55 ), SubResource( 54 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "walk_down_jester",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 71 ), SubResource( 72 ), SubResource( 73 ), SubResource( 74 ), SubResource( 75 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "walk_left_jester",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 22 ), SubResource( 23 ), SubResource( 24 ), SubResource( 25 ), SubResource( 26 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "walk_right",
|
||||||
|
"speed": 6.0
|
||||||
|
}, {
|
||||||
"frames": [ SubResource( 43 ), SubResource( 44 ), SubResource( 45 ), SubResource( 46 ), SubResource( 47 ) ],
|
"frames": [ SubResource( 43 ), SubResource( 44 ), SubResource( 45 ), SubResource( 46 ), SubResource( 47 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "walk_right_jester",
|
"name": "walk_right_jester",
|
||||||
@@ -418,44 +487,9 @@ animations = [ {
|
|||||||
"name": "walk_up",
|
"name": "walk_up",
|
||||||
"speed": 6.0
|
"speed": 6.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ SubResource( 27 ) ],
|
"frames": [ SubResource( 35 ), SubResource( 36 ), SubResource( 37 ), SubResource( 36 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "idle_right",
|
"name": "walk_up_jester",
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 5 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "idle_up",
|
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 65 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "idle_right_jester",
|
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 28 ), SubResource( 29 ), SubResource( 30 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "speak_down_right",
|
|
||||||
"speed": 6.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 4 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "idle_down_left",
|
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 14 ), SubResource( 15 ), SubResource( 16 ), SubResource( 15 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "walk_up",
|
|
||||||
"speed": 6.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 48 ), SubResource( 49 ), SubResource( 50 ), SubResource( 51 ), SubResource( 52 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "speak_left_jester",
|
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 18 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "idle_down",
|
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
} ]
|
} ]
|
||||||
|
|
||||||
@@ -470,6 +504,8 @@ global_id = "player"
|
|||||||
esc_script = "res://game/characters/mark/mark.esc"
|
esc_script = "res://game/characters/mark/mark.esc"
|
||||||
is_movable = true
|
is_movable = true
|
||||||
tooltip_name = "Me"
|
tooltip_name = "Me"
|
||||||
|
default_action = "look"
|
||||||
|
combine_when_selected_action_is_in = [ ]
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
selectable = true
|
selectable = true
|
||||||
animations = ExtResource( 8 )
|
animations = ExtResource( 8 )
|
||||||
|
|||||||
@@ -8,6 +8,22 @@
|
|||||||
[ext_resource path="res://game/characters/worker/png/worker_talk_down.png" type="Texture" id=6]
|
[ext_resource path="res://game/characters/worker/png/worker_talk_down.png" type="Texture" id=6]
|
||||||
[ext_resource path="res://game/characters/worker/png/worker_talk_right.png" type="Texture" id=7]
|
[ext_resource path="res://game/characters/worker/png/worker_talk_right.png" type="Texture" id=7]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=1]
|
||||||
|
atlas = ExtResource( 4 )
|
||||||
|
region = Rect2( 0, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=29]
|
||||||
|
atlas = ExtResource( 3 )
|
||||||
|
region = Rect2( 0, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=28]
|
||||||
|
atlas = ExtResource( 4 )
|
||||||
|
region = Rect2( 48, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=14]
|
||||||
|
atlas = ExtResource( 4 )
|
||||||
|
region = Rect2( 384, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=4]
|
[sub_resource type="AtlasTexture" id=4]
|
||||||
atlas = ExtResource( 6 )
|
atlas = ExtResource( 6 )
|
||||||
region = Rect2( 0, 0, 24, 70 )
|
region = Rect2( 0, 0, 24, 70 )
|
||||||
@@ -20,14 +36,6 @@ region = Rect2( 24, 0, 24, 70 )
|
|||||||
atlas = ExtResource( 6 )
|
atlas = ExtResource( 6 )
|
||||||
region = Rect2( 48, 0, 24, 70 )
|
region = Rect2( 48, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=7]
|
|
||||||
atlas = ExtResource( 5 )
|
|
||||||
region = Rect2( 0, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=8]
|
|
||||||
atlas = ExtResource( 5 )
|
|
||||||
region = Rect2( 24, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=9]
|
[sub_resource type="AtlasTexture" id=9]
|
||||||
atlas = ExtResource( 7 )
|
atlas = ExtResource( 7 )
|
||||||
region = Rect2( 0, 0, 24, 70 )
|
region = Rect2( 0, 0, 24, 70 )
|
||||||
@@ -48,14 +56,14 @@ region = Rect2( 72, 0, 24, 70 )
|
|||||||
atlas = ExtResource( 7 )
|
atlas = ExtResource( 7 )
|
||||||
region = Rect2( 96, 0, 24, 70 )
|
region = Rect2( 96, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=14]
|
[sub_resource type="AtlasTexture" id=7]
|
||||||
atlas = ExtResource( 4 )
|
atlas = ExtResource( 5 )
|
||||||
region = Rect2( 384, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=1]
|
|
||||||
atlas = ExtResource( 4 )
|
|
||||||
region = Rect2( 0, 0, 24, 70 )
|
region = Rect2( 0, 0, 24, 70 )
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id=8]
|
||||||
|
atlas = ExtResource( 5 )
|
||||||
|
region = Rect2( 24, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=15]
|
[sub_resource type="AtlasTexture" id=15]
|
||||||
atlas = ExtResource( 4 )
|
atlas = ExtResource( 4 )
|
||||||
region = Rect2( 144, 0, 24, 70 )
|
region = Rect2( 144, 0, 24, 70 )
|
||||||
@@ -108,29 +116,21 @@ region = Rect2( 408, 0, 24, 70 )
|
|||||||
atlas = ExtResource( 4 )
|
atlas = ExtResource( 4 )
|
||||||
region = Rect2( 432, 0, 24, 70 )
|
region = Rect2( 432, 0, 24, 70 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=28]
|
|
||||||
atlas = ExtResource( 4 )
|
|
||||||
region = Rect2( 48, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=29]
|
|
||||||
atlas = ExtResource( 3 )
|
|
||||||
region = Rect2( 0, 0, 24, 70 )
|
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=2]
|
[sub_resource type="SpriteFrames" id=2]
|
||||||
animations = [ {
|
animations = [ {
|
||||||
"frames": [ SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 5 ) ],
|
"frames": [ SubResource( 1 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "speak_down",
|
"name": "idle_down",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ SubResource( 7 ), SubResource( 8 ) ],
|
"frames": [ SubResource( 29 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "speak_up",
|
"name": "idle_down_right",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ SubResource( 9 ), SubResource( 10 ), SubResource( 11 ), SubResource( 12 ), SubResource( 13 ) ],
|
"frames": [ SubResource( 28 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "speak_right",
|
"name": "idle_right",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ SubResource( 14 ) ],
|
"frames": [ SubResource( 14 ) ],
|
||||||
@@ -138,9 +138,19 @@ animations = [ {
|
|||||||
"name": "idle_up",
|
"name": "idle_up",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ SubResource( 1 ) ],
|
"frames": [ SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 5 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "idle_down",
|
"name": "speak_down",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 9 ), SubResource( 10 ), SubResource( 11 ), SubResource( 12 ), SubResource( 13 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "speak_right",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [ SubResource( 7 ), SubResource( 8 ) ],
|
||||||
|
"loop": true,
|
||||||
|
"name": "speak_up",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [ SubResource( 15 ), SubResource( 16 ), SubResource( 17 ), SubResource( 18 ) ],
|
"frames": [ SubResource( 15 ), SubResource( 16 ), SubResource( 17 ), SubResource( 18 ) ],
|
||||||
@@ -157,16 +167,6 @@ animations = [ {
|
|||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "walk_up",
|
"name": "walk_up",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 28 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "idle_right",
|
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ SubResource( 29 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "idle_down_right",
|
|
||||||
"speed": 5.0
|
|
||||||
} ]
|
} ]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=3]
|
[sub_resource type="RectangleShape2D" id=3]
|
||||||
@@ -180,6 +180,7 @@ esc_script = "res://game/rooms/room6/esc/worker.esc"
|
|||||||
is_movable = true
|
is_movable = true
|
||||||
tooltip_name = "Worker"
|
tooltip_name = "Worker"
|
||||||
default_action = "look"
|
default_action = "look"
|
||||||
|
combine_when_selected_action_is_in = [ ]
|
||||||
dialog_color = Color( 0.501961, 0.882353, 1, 1 )
|
dialog_color = Color( 0.501961, 0.882353, 1, 1 )
|
||||||
animations = ExtResource( 2 )
|
animations = ExtResource( 2 )
|
||||||
|
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ esc_script = "res://game/rooms/room01/esc/right_exit.esc"
|
|||||||
is_exit = true
|
is_exit = true
|
||||||
tooltip_name = "Exit to room 2"
|
tooltip_name = "Exit to room 2"
|
||||||
default_action = "walk"
|
default_action = "walk"
|
||||||
|
combine_when_selected_action_is_in = [ ]
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
animations = null
|
animations = null
|
||||||
|
|
||||||
@@ -110,6 +111,7 @@ global_id = "r1_wall_item1"
|
|||||||
esc_script = "res://game/rooms/room01/esc/wall_item.esc"
|
esc_script = "res://game/rooms/room01/esc/wall_item.esc"
|
||||||
tooltip_name = "Artwork"
|
tooltip_name = "Artwork"
|
||||||
default_action = "look"
|
default_action = "look"
|
||||||
|
combine_when_selected_action_is_in = [ ]
|
||||||
inventory_texture = ExtResource( 10 )
|
inventory_texture = ExtResource( 10 )
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
animations = null
|
animations = null
|
||||||
@@ -146,6 +148,7 @@ global_id = "r1_wall_item2"
|
|||||||
esc_script = "res://game/rooms/room01/esc/wall_item_popupdialog.esc"
|
esc_script = "res://game/rooms/room01/esc/wall_item_popupdialog.esc"
|
||||||
tooltip_name = "Artwork 2"
|
tooltip_name = "Artwork 2"
|
||||||
default_action = "look"
|
default_action = "look"
|
||||||
|
combine_when_selected_action_is_in = [ ]
|
||||||
inventory_texture = ExtResource( 9 )
|
inventory_texture = ExtResource( 9 )
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
animations = null
|
animations = null
|
||||||
@@ -182,6 +185,7 @@ global_id = "trigger_talk"
|
|||||||
esc_script = "res://game/rooms/room01/esc/trigger.esc"
|
esc_script = "res://game/rooms/room01/esc/trigger.esc"
|
||||||
is_trigger = true
|
is_trigger = true
|
||||||
player_orients_on_arrival = false
|
player_orients_on_arrival = false
|
||||||
|
combine_when_selected_action_is_in = [ ]
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
animations = null
|
animations = null
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,13 @@ esc_script = "res://game/rooms/room06/esc/room06.esc"
|
|||||||
player_scene = ExtResource( 4 )
|
player_scene = ExtResource( 4 )
|
||||||
camera_limits = [ Rect2( 0, 0, 1280, 555 ) ]
|
camera_limits = [ Rect2( 0, 0, 1280, 555 ) ]
|
||||||
|
|
||||||
|
[node name="ESCBackground" type="TextureRect" parent="."]
|
||||||
|
margin_right = 1280.0
|
||||||
|
margin_bottom = 550.0
|
||||||
|
mouse_filter = 2
|
||||||
|
texture = ExtResource( 12 )
|
||||||
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="walkable_area" type="Navigation2D" parent="."]
|
[node name="walkable_area" type="Navigation2D" parent="."]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
scale_min = 0.7
|
scale_min = 0.7
|
||||||
@@ -186,13 +193,6 @@ position = Vector2( 640, 427 )
|
|||||||
z_index = 400
|
z_index = 400
|
||||||
texture = ExtResource( 11 )
|
texture = ExtResource( 11 )
|
||||||
|
|
||||||
[node name="ESCBackground" type="TextureRect" parent="."]
|
|
||||||
margin_right = 1280.0
|
|
||||||
margin_bottom = 550.0
|
|
||||||
mouse_filter = 2
|
|
||||||
texture = ExtResource( 12 )
|
|
||||||
script = ExtResource( 2 )
|
|
||||||
|
|
||||||
[node name="Text" type="Node2D" parent="."]
|
[node name="Text" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="Polygon2D" type="Polygon2D" parent="Text"]
|
[node name="Polygon2D" type="Polygon2D" parent="Text"]
|
||||||
|
|||||||
4
game/rooms/room18/esc/middle_item.esc
Normal file
4
game/rooms/room18/esc/middle_item.esc
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
:use
|
||||||
|
set_interactive middle_item false
|
||||||
|
set_state middle_item folded
|
||||||
|
|
||||||
4
game/rooms/room18/esc/upper_item.esc
Normal file
4
game/rooms/room18/esc/upper_item.esc
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
:use
|
||||||
|
set_interactive upper_item false
|
||||||
|
set_state upper_item folded
|
||||||
|
|
||||||
135
game/rooms/room18/room18.tscn
Normal file
135
game/rooms/room18/room18.tscn
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
[gd_scene load_steps=8 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_room.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=2]
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=3]
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=3]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("Polygon2D:polygon")
|
||||||
|
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": 0,
|
||||||
|
"values": [ PoolVector2Array( 393, 334, 243, 564, 460, 682, 948, 598, 1020, 517, 802, 285, 608, 245 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=4]
|
||||||
|
resource_name = "folded"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("Polygon2D:polygon")
|
||||||
|
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": [ PoolVector2Array( 393, 334, 243, 564, 460, 682, 948, 598, 1020, 517, 802, 285, 608, 245 ), PoolVector2Array( 950, 337, 988, 484, 962, 639, 1002, 667, 1020, 517, 986, 258, 967, 277 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=1]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("Polygon2D:polygon")
|
||||||
|
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": 0,
|
||||||
|
"values": [ PoolVector2Array( 191, 80, 159, 753, 405, 751, 1066, 815, 1143, 637, 1180, 314, 827, 126 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=2]
|
||||||
|
resource_name = "folded"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("Polygon2D:polygon")
|
||||||
|
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": [ PoolVector2Array( 191, 80, 159, 753, 405, 751, 1066, 815, 1143, 637, 1180, 314, 827, 126 ), PoolVector2Array( 191, 80, 159, 753, 213, 755, 203, 570, 222, 489, 272, 223, 246, 99 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="room18" type="Node2D"]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
global_id = "room18"
|
||||||
|
|
||||||
|
[node name="ESCBackground" type="TextureRect" parent="."]
|
||||||
|
mouse_filter = 2
|
||||||
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
|
[node name="items" type="Node2D" parent="."]
|
||||||
|
|
||||||
|
[node name="bottom_item" type="Area2D" parent="items"]
|
||||||
|
pause_mode = 1
|
||||||
|
script = ExtResource( 3 )
|
||||||
|
global_id = "bottom_item"
|
||||||
|
tooltip_name = "Bottom item"
|
||||||
|
default_action = "use"
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="Polygon2D" type="Polygon2D" parent="items/bottom_item"]
|
||||||
|
color = Color( 0.552941, 0, 0, 1 )
|
||||||
|
polygon = PoolVector2Array( 460, 418, 413, 568, 672, 693, 906, 484, 679, 346 )
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="items/bottom_item"]
|
||||||
|
polygon = PoolVector2Array( 466, 424, 418, 570, 679, 701, 904, 485, 682, 347 )
|
||||||
|
|
||||||
|
[node name="middle_item" type="Area2D" parent="items"]
|
||||||
|
pause_mode = 1
|
||||||
|
z_index = 2
|
||||||
|
script = ExtResource( 3 )
|
||||||
|
global_id = "middle_item"
|
||||||
|
esc_script = "res://game/rooms/room18/esc/middle_item.esc"
|
||||||
|
tooltip_name = "Middle item"
|
||||||
|
default_action = "use"
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="Polygon2D" type="Polygon2D" parent="items/middle_item"]
|
||||||
|
color = Color( 0.254902, 0.388235, 0, 1 )
|
||||||
|
polygon = PoolVector2Array( 393, 334, 243, 564, 460, 682, 948, 598, 1020, 517, 802, 285, 608, 245 )
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="items/middle_item"]
|
||||||
|
polygon = PoolVector2Array( 396, 336, 239, 565, 466, 680, 948, 592, 1024, 514, 802, 282, 603, 246 )
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="items/middle_item"]
|
||||||
|
anims/RESET = SubResource( 3 )
|
||||||
|
anims/folded = SubResource( 4 )
|
||||||
|
|
||||||
|
[node name="upper_item" type="Area2D" parent="items"]
|
||||||
|
pause_mode = 1
|
||||||
|
z_index = 4
|
||||||
|
script = ExtResource( 3 )
|
||||||
|
global_id = "upper_item"
|
||||||
|
esc_script = "res://game/rooms/room18/esc/upper_item.esc"
|
||||||
|
tooltip_name = "Upper item"
|
||||||
|
default_action = "use"
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="Polygon2D" type="Polygon2D" parent="items/upper_item"]
|
||||||
|
color = Color( 0.0666667, 0, 0.541176, 1 )
|
||||||
|
polygon = PoolVector2Array( 191, 80, 159, 753, 405, 751, 1066, 815, 1143, 637, 1180, 314, 827, 126 )
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="items/upper_item"]
|
||||||
|
polygon = PoolVector2Array( 190, 73, 156, 763, 420, 751, 1064, 818, 1144, 630, 1177, 318, 833, 123 )
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="items/upper_item"]
|
||||||
|
anims/RESET = SubResource( 1 )
|
||||||
|
anims/folded = SubResource( 2 )
|
||||||
4
game/rooms/room19/esc/bottom_item.esc
Normal file
4
game/rooms/room19/esc/bottom_item.esc
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
:use
|
||||||
|
set_interactive bottom_item false
|
||||||
|
set_state bottom_item folded
|
||||||
|
|
||||||
4
game/rooms/room19/esc/middle_item.esc
Normal file
4
game/rooms/room19/esc/middle_item.esc
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
:use
|
||||||
|
set_interactive middle_item false
|
||||||
|
set_state middle_item folded
|
||||||
|
|
||||||
4
game/rooms/room19/esc/upper_item.esc
Normal file
4
game/rooms/room19/esc/upper_item.esc
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
:use
|
||||||
|
set_interactive upper_item false
|
||||||
|
set_state upper_item folded
|
||||||
|
|
||||||
173
game/rooms/room19/room19.tscn
Normal file
173
game/rooms/room19/room19.tscn
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
[gd_scene load_steps=10 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_room.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=2]
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=3]
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=1]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("Polygon2D:polygon")
|
||||||
|
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": 0,
|
||||||
|
"values": [ PoolVector2Array( 191, 80, 159, 753, 405, 751, 1066, 815, 1143, 637, 1180, 314, 827, 126 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=2]
|
||||||
|
resource_name = "folded"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("Polygon2D:polygon")
|
||||||
|
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": [ PoolVector2Array( 191, 80, 159, 753, 405, 751, 1066, 815, 1143, 637, 1180, 314, 827, 126 ), PoolVector2Array( 191, 80, 159, 753, 213, 755, 203, 570, 222, 489, 272, 223, 246, 99 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=3]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("Polygon2D:polygon")
|
||||||
|
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": 0,
|
||||||
|
"values": [ PoolVector2Array( 393, 334, 243, 564, 460, 682, 948, 598, 1020, 517, 802, 285, 608, 245 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=4]
|
||||||
|
resource_name = "folded"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("Polygon2D:polygon")
|
||||||
|
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": [ PoolVector2Array( 393, 334, 243, 564, 460, 682, 948, 598, 1020, 517, 802, 285, 608, 245 ), PoolVector2Array( 950, 337, 988, 484, 962, 639, 1002, 667, 1020, 517, 986, 258, 967, 277 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=5]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("Polygon2D:polygon")
|
||||||
|
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": 0,
|
||||||
|
"values": [ PoolVector2Array( 460, 418, 413, 568, 672, 693, 906, 484, 679, 346 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=6]
|
||||||
|
resource_name = "folded"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("Polygon2D:polygon")
|
||||||
|
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": [ PoolVector2Array( 460, 418, 413, 568, 672, 693, 906, 484, 679, 346 ), PoolVector2Array( 646, 366, 665, 382, 684, 377, 697, 367, 679, 346 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="room19" type="Node2D"]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
global_id = "room19"
|
||||||
|
|
||||||
|
[node name="ESCBackground" type="TextureRect" parent="."]
|
||||||
|
mouse_filter = 2
|
||||||
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
|
[node name="items" type="Node2D" parent="."]
|
||||||
|
|
||||||
|
[node name="bottom_item" type="Area2D" parent="items"]
|
||||||
|
pause_mode = 1
|
||||||
|
script = ExtResource( 3 )
|
||||||
|
global_id = "bottom_item"
|
||||||
|
esc_script = "res://game/rooms/room19/esc/bottom_item.esc"
|
||||||
|
tooltip_name = "Bottom item"
|
||||||
|
default_action = "use"
|
||||||
|
combine_when_selected_action_is_in = [ ]
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="Polygon2D" type="Polygon2D" parent="items/bottom_item"]
|
||||||
|
color = Color( 0.0666667, 0, 0.541176, 1 )
|
||||||
|
polygon = PoolVector2Array( 191, 80, 159, 753, 405, 751, 1066, 815, 1143, 637, 1180, 314, 827, 126 )
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="items/bottom_item"]
|
||||||
|
polygon = PoolVector2Array( 190, 73, 156, 763, 420, 751, 1064, 818, 1144, 630, 1177, 318, 833, 123 )
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="items/bottom_item"]
|
||||||
|
anims/RESET = SubResource( 1 )
|
||||||
|
anims/folded = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="middle_item" type="Area2D" parent="items"]
|
||||||
|
pause_mode = 1
|
||||||
|
z_index = 2
|
||||||
|
script = ExtResource( 3 )
|
||||||
|
global_id = "middle_item"
|
||||||
|
esc_script = "res://game/rooms/room19/esc/middle_item.esc"
|
||||||
|
tooltip_name = "Middle item"
|
||||||
|
default_action = "use"
|
||||||
|
combine_when_selected_action_is_in = [ ]
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="Polygon2D" type="Polygon2D" parent="items/middle_item"]
|
||||||
|
color = Color( 0.254902, 0.388235, 0, 1 )
|
||||||
|
polygon = PoolVector2Array( 393, 334, 243, 564, 460, 682, 948, 598, 1020, 517, 802, 285, 608, 245 )
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="items/middle_item"]
|
||||||
|
polygon = PoolVector2Array( 396, 336, 239, 565, 466, 680, 948, 592, 1024, 514, 802, 282, 603, 246 )
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="items/middle_item"]
|
||||||
|
anims/RESET = SubResource( 3 )
|
||||||
|
anims/folded = SubResource( 4 )
|
||||||
|
|
||||||
|
[node name="upper_item" type="Area2D" parent="items"]
|
||||||
|
pause_mode = 1
|
||||||
|
z_index = 3
|
||||||
|
script = ExtResource( 3 )
|
||||||
|
global_id = "upper_item"
|
||||||
|
esc_script = "res://game/rooms/room19/esc/upper_item.esc"
|
||||||
|
tooltip_name = "Upper item"
|
||||||
|
default_action = "use"
|
||||||
|
combine_when_selected_action_is_in = [ ]
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="Polygon2D" type="Polygon2D" parent="items/upper_item"]
|
||||||
|
color = Color( 0.552941, 0, 0, 1 )
|
||||||
|
polygon = PoolVector2Array( 460, 418, 413, 568, 672, 693, 906, 484, 679, 346 )
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="items/upper_item"]
|
||||||
|
polygon = PoolVector2Array( 466, 424, 418, 570, 679, 701, 904, 485, 682, 347 )
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="items/upper_item"]
|
||||||
|
anims/RESET = SubResource( 5 )
|
||||||
|
anims/folded = SubResource( 6 )
|
||||||
@@ -25,6 +25,11 @@ _global_script_classes=[ {
|
|||||||
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/anim.gd"
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/anim.gd"
|
||||||
}, {
|
}, {
|
||||||
"base": "ESCCameraBaseCommand",
|
"base": "ESCCameraBaseCommand",
|
||||||
|
"class": "CameraPushBlockCommand",
|
||||||
|
"language": "GDScript",
|
||||||
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_push_block.gd"
|
||||||
|
}, {
|
||||||
|
"base": "ESCCameraBaseCommand",
|
||||||
"class": "CameraPushCommand",
|
"class": "CameraPushCommand",
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_push.gd"
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_push.gd"
|
||||||
@@ -35,26 +40,51 @@ _global_script_classes=[ {
|
|||||||
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_set_limits.gd"
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_set_limits.gd"
|
||||||
}, {
|
}, {
|
||||||
"base": "ESCCameraBaseCommand",
|
"base": "ESCCameraBaseCommand",
|
||||||
|
"class": "CameraSetPosBlockCommand",
|
||||||
|
"language": "GDScript",
|
||||||
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_set_pos_block.gd"
|
||||||
|
}, {
|
||||||
|
"base": "ESCCameraBaseCommand",
|
||||||
"class": "CameraSetPosCommand",
|
"class": "CameraSetPosCommand",
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_set_pos.gd"
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_set_pos.gd"
|
||||||
}, {
|
}, {
|
||||||
"base": "ESCCameraBaseCommand",
|
"base": "ESCCameraBaseCommand",
|
||||||
|
"class": "CameraSetTargetBlockCommand",
|
||||||
|
"language": "GDScript",
|
||||||
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_set_target_block.gd"
|
||||||
|
}, {
|
||||||
|
"base": "ESCCameraBaseCommand",
|
||||||
"class": "CameraSetTargetCommand",
|
"class": "CameraSetTargetCommand",
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_set_target.gd"
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_set_target.gd"
|
||||||
}, {
|
}, {
|
||||||
"base": "ESCCameraBaseCommand",
|
"base": "ESCCameraBaseCommand",
|
||||||
|
"class": "CameraSetZoomBlockCommand",
|
||||||
|
"language": "GDScript",
|
||||||
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_set_zoom_block.gd"
|
||||||
|
}, {
|
||||||
|
"base": "ESCCameraBaseCommand",
|
||||||
"class": "CameraSetZoomCommand",
|
"class": "CameraSetZoomCommand",
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_set_zoom.gd"
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_set_zoom.gd"
|
||||||
}, {
|
}, {
|
||||||
"base": "ESCBaseCommand",
|
"base": "ESCBaseCommand",
|
||||||
|
"class": "CameraSetZoomHeightBlockCommand",
|
||||||
|
"language": "GDScript",
|
||||||
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_set_zoom_height_block.gd"
|
||||||
|
}, {
|
||||||
|
"base": "ESCBaseCommand",
|
||||||
"class": "CameraSetZoomHeightCommand",
|
"class": "CameraSetZoomHeightCommand",
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_set_zoom_height.gd"
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_set_zoom_height.gd"
|
||||||
}, {
|
}, {
|
||||||
"base": "ESCCameraBaseCommand",
|
"base": "ESCCameraBaseCommand",
|
||||||
|
"class": "CameraShiftBlockCommand",
|
||||||
|
"language": "GDScript",
|
||||||
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_shift_block.gd"
|
||||||
|
}, {
|
||||||
|
"base": "ESCCameraBaseCommand",
|
||||||
"class": "CameraShiftCommand",
|
"class": "CameraShiftCommand",
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_shift.gd"
|
"path": "res://addons/escoria-core/game/core-scripts/esc/commands/camera_shift.gd"
|
||||||
@@ -603,12 +633,18 @@ _global_script_class_icons={
|
|||||||
"AcceptInputCommand": "",
|
"AcceptInputCommand": "",
|
||||||
"AnimBlockCommand": "",
|
"AnimBlockCommand": "",
|
||||||
"AnimCommand": "",
|
"AnimCommand": "",
|
||||||
|
"CameraPushBlockCommand": "",
|
||||||
"CameraPushCommand": "",
|
"CameraPushCommand": "",
|
||||||
"CameraSetLimitsCommand": "",
|
"CameraSetLimitsCommand": "",
|
||||||
|
"CameraSetPosBlockCommand": "",
|
||||||
"CameraSetPosCommand": "",
|
"CameraSetPosCommand": "",
|
||||||
|
"CameraSetTargetBlockCommand": "",
|
||||||
"CameraSetTargetCommand": "",
|
"CameraSetTargetCommand": "",
|
||||||
|
"CameraSetZoomBlockCommand": "",
|
||||||
"CameraSetZoomCommand": "",
|
"CameraSetZoomCommand": "",
|
||||||
|
"CameraSetZoomHeightBlockCommand": "",
|
||||||
"CameraSetZoomHeightCommand": "",
|
"CameraSetZoomHeightCommand": "",
|
||||||
|
"CameraShiftBlockCommand": "",
|
||||||
"CameraShiftCommand": "",
|
"CameraShiftCommand": "",
|
||||||
"ChangeSceneCommand": "",
|
"ChangeSceneCommand": "",
|
||||||
"CustomCommand": "",
|
"CustomCommand": "",
|
||||||
|
|||||||
Reference in New Issue
Block a user