chore: storing version and changelog
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
## [4.0.0-alpha.119](https://github.com/godot-escoria/escoria-demo-game/compare/v0.0.0...v4.0.0-alpha.119) (2022-03-07)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [4.0.0-alpha.118](https://github.com/godot-escoria/escoria-demo-game/compare/v0.0.0...v4.0.0-alpha.118) (2022-03-07)
|
## [4.0.0-alpha.118](https://github.com/godot-escoria/escoria-demo-game/compare/v0.0.0...v4.0.0-alpha.118) (2022-03-07)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ func validate(arguments: Array):
|
|||||||
{"t_type":arguments[3],"allowed_types":SUPPORTED_TRANSITIONS})
|
{"t_type":arguments[3],"allowed_types":SUPPORTED_TRANSITIONS})
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
return false
|
return false
|
||||||
|
|
||||||
return .validate(arguments)
|
return .validate(arguments)
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export(Color, RGB) var color_hover = Color(165.0,42.0,42.0, 1.0)
|
|||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
hide_chooser()
|
hide_chooser()
|
||||||
pause_mode = PAUSE_MODE_STOP
|
pause_mode = PAUSE_MODE_STOP
|
||||||
|
|
||||||
|
|
||||||
# Process the timeout display
|
# Process the timeout display
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
@@ -25,9 +25,9 @@ func show_chooser():
|
|||||||
var _vbox = $MarginContainer/ScrollContainer/VBoxContainer
|
var _vbox = $MarginContainer/ScrollContainer/VBoxContainer
|
||||||
for option_node in _vbox.get_children():
|
for option_node in _vbox.get_children():
|
||||||
_vbox.remove_child(option_node)
|
_vbox.remove_child(option_node)
|
||||||
|
|
||||||
_remove_avatar()
|
_remove_avatar()
|
||||||
|
|
||||||
for option in self.dialog.options:
|
for option in self.dialog.options:
|
||||||
if option.is_valid():
|
if option.is_valid():
|
||||||
var _option_node = Button.new()
|
var _option_node = Button.new()
|
||||||
@@ -39,14 +39,14 @@ func show_chooser():
|
|||||||
_option_node.connect("pressed", self, "_on_answer_selected", [
|
_option_node.connect("pressed", self, "_on_answer_selected", [
|
||||||
option
|
option
|
||||||
])
|
])
|
||||||
|
|
||||||
if self.dialog.avatar != "-":
|
if self.dialog.avatar != "-":
|
||||||
$AvatarContainer.add_child(
|
$AvatarContainer.add_child(
|
||||||
ResourceLoader.load(self.dialog.avatar).instance()
|
ResourceLoader.load(self.dialog.avatar).instance()
|
||||||
)
|
)
|
||||||
|
|
||||||
$MarginContainer.show()
|
$MarginContainer.show()
|
||||||
|
|
||||||
if self.dialog.timeout > 0:
|
if self.dialog.timeout > 0:
|
||||||
$Timer.start(self.dialog.timeout)
|
$Timer.start(self.dialog.timeout)
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ func show_chooser():
|
|||||||
# Hide the chooser
|
# Hide the chooser
|
||||||
func hide_chooser():
|
func hide_chooser():
|
||||||
$MarginContainer.hide()
|
$MarginContainer.hide()
|
||||||
|
|
||||||
|
|
||||||
# An option was choosen, emit the option
|
# An option was choosen, emit the option
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ func _init() -> void:
|
|||||||
# Register ourselves after setup
|
# Register ourselves after setup
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
call_deferred("_register")
|
call_deferred("_register")
|
||||||
|
|
||||||
|
|
||||||
# Unregister ourselves
|
# Unregister ourselves
|
||||||
func _exit_tree() -> void:
|
func _exit_tree() -> void:
|
||||||
@@ -34,7 +34,7 @@ func _register():
|
|||||||
"hint": PROPERTY_HINT_DIR
|
"hint": PROPERTY_HINT_DIR
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
_escoria.project_settings_manager.register_setting(
|
_escoria.project_settings_manager.register_setting(
|
||||||
_escoria.project_settings_manager.TEXT_SPEED_PER_CHARACTER,
|
_escoria.project_settings_manager.TEXT_SPEED_PER_CHARACTER,
|
||||||
0.1,
|
0.1,
|
||||||
@@ -42,7 +42,7 @@ func _register():
|
|||||||
"type": TYPE_REAL
|
"type": TYPE_REAL
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
_escoria.project_settings_manager.register_setting(
|
_escoria.project_settings_manager.register_setting(
|
||||||
_escoria.project_settings_manager.FAST_TEXT_SPEED_PER_CHARACTER,
|
_escoria.project_settings_manager.FAST_TEXT_SPEED_PER_CHARACTER,
|
||||||
0.25,
|
0.25,
|
||||||
@@ -50,7 +50,7 @@ func _register():
|
|||||||
"type": TYPE_REAL
|
"type": TYPE_REAL
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
_escoria.project_settings_manager.register_setting(
|
_escoria.project_settings_manager.register_setting(
|
||||||
_escoria.project_settings_manager.MAX_TIME_TO_DISAPPEAR,
|
_escoria.project_settings_manager.MAX_TIME_TO_DISAPPEAR,
|
||||||
1.0,
|
1.0,
|
||||||
|
|||||||
@@ -47,11 +47,11 @@ func _ready():
|
|||||||
)
|
)
|
||||||
text_node.bbcode_enabled = true
|
text_node.bbcode_enabled = true
|
||||||
tween.connect(
|
tween.connect(
|
||||||
"tween_completed",
|
"tween_completed",
|
||||||
self,
|
self,
|
||||||
"_on_dialog_line_typed"
|
"_on_dialog_line_typed"
|
||||||
)
|
)
|
||||||
|
|
||||||
escoria.connect("paused", self, "_on_paused")
|
escoria.connect("paused", self, "_on_paused")
|
||||||
escoria.connect("resumed", self, "_on_resumed")
|
escoria.connect("resumed", self, "_on_resumed")
|
||||||
|
|
||||||
@@ -78,19 +78,19 @@ func say(character: String, line: String):
|
|||||||
_is_speeding_up = false
|
_is_speeding_up = false
|
||||||
popup_centered()
|
popup_centered()
|
||||||
set_current_character(character)
|
set_current_character(character)
|
||||||
|
|
||||||
text_node.bbcode_text = tr(line)
|
text_node.bbcode_text = tr(line)
|
||||||
|
|
||||||
text_node.percent_visible = 0.0
|
text_node.percent_visible = 0.0
|
||||||
var time_show_full_text = _text_speed_per_character * len(line)
|
var time_show_full_text = _text_speed_per_character * len(line)
|
||||||
|
|
||||||
tween.interpolate_property(text_node, "percent_visible",
|
tween.interpolate_property(text_node, "percent_visible",
|
||||||
0.0, 1.0, time_show_full_text,
|
0.0, 1.0, time_show_full_text,
|
||||||
Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
|
Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
|
||||||
tween.start()
|
tween.start()
|
||||||
|
|
||||||
|
|
||||||
# Called by the dialog player when the
|
# Called by the dialog player when the
|
||||||
func speedup():
|
func speedup():
|
||||||
if not _is_speeding_up:
|
if not _is_speeding_up:
|
||||||
_is_speeding_up = true
|
_is_speeding_up = true
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ onready var inventory_ui = $ui/Control/panel_down/VBoxContainer/HBoxContainer\
|
|||||||
func _enter_tree():
|
func _enter_tree():
|
||||||
var room_selector_parent = $ui/Control/panel_down/VBoxContainer\
|
var room_selector_parent = $ui/Control/panel_down/VBoxContainer\
|
||||||
/HBoxContainer/MainMargin/VBoxContainer
|
/HBoxContainer/MainMargin/VBoxContainer
|
||||||
|
|
||||||
if ProjectSettings.get_setting("escoria/debug/enable_room_selector") and \
|
if ProjectSettings.get_setting("escoria/debug/enable_room_selector") and \
|
||||||
room_selector_parent.get_node_or_null("room_select") == null:
|
room_selector_parent.get_node_or_null("room_select") == null:
|
||||||
room_selector_parent.add_child(
|
room_selector_parent.add_child(
|
||||||
@@ -64,12 +64,12 @@ func _enter_tree():
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
## BACKGROUND ##
|
## BACKGROUND ##
|
||||||
|
|
||||||
func left_click_on_bg(position: Vector2) -> void:
|
func left_click_on_bg(position: Vector2) -> void:
|
||||||
if escoria.main.current_scene.player:
|
if escoria.main.current_scene.player:
|
||||||
escoria.action_manager.do(
|
escoria.action_manager.do(
|
||||||
escoria.action_manager.ACTION.BACKGROUND_CLICK,
|
escoria.action_manager.ACTION.BACKGROUND_CLICK,
|
||||||
[escoria.main.current_scene.player.global_id, position],
|
[escoria.main.current_scene.player.global_id, position],
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
@@ -77,12 +77,12 @@ func left_click_on_bg(position: Vector2) -> void:
|
|||||||
escoria.action_manager.clear_current_tool()
|
escoria.action_manager.clear_current_tool()
|
||||||
tooltip.clear()
|
tooltip.clear()
|
||||||
verbs_menu.unselect_actions()
|
verbs_menu.unselect_actions()
|
||||||
|
|
||||||
|
|
||||||
func right_click_on_bg(position: Vector2) -> void:
|
func right_click_on_bg(position: Vector2) -> void:
|
||||||
if escoria.main.current_scene.player:
|
if escoria.main.current_scene.player:
|
||||||
escoria.action_manager.do(
|
escoria.action_manager.do(
|
||||||
escoria.action_manager.ACTION.BACKGROUND_CLICK,
|
escoria.action_manager.ACTION.BACKGROUND_CLICK,
|
||||||
[escoria.main.current_scene.player.global_id, position],
|
[escoria.main.current_scene.player.global_id, position],
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
@@ -90,146 +90,146 @@ func right_click_on_bg(position: Vector2) -> void:
|
|||||||
escoria.action_manager.clear_current_tool()
|
escoria.action_manager.clear_current_tool()
|
||||||
tooltip.clear()
|
tooltip.clear()
|
||||||
verbs_menu.unselect_actions()
|
verbs_menu.unselect_actions()
|
||||||
|
|
||||||
|
|
||||||
func left_double_click_on_bg(position: Vector2) -> void:
|
func left_double_click_on_bg(position: Vector2) -> void:
|
||||||
if escoria.main.current_scene.player:
|
if escoria.main.current_scene.player:
|
||||||
escoria.action_manager.do(
|
escoria.action_manager.do(
|
||||||
escoria.action_manager.ACTION.BACKGROUND_CLICK,
|
escoria.action_manager.ACTION.BACKGROUND_CLICK,
|
||||||
[escoria.main.current_scene.player.global_id, position, true],
|
[escoria.main.current_scene.player.global_id, position, true],
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
escoria.action_manager.clear_current_action()
|
escoria.action_manager.clear_current_action()
|
||||||
verbs_menu.unselect_actions()
|
verbs_menu.unselect_actions()
|
||||||
|
|
||||||
|
|
||||||
## ITEM FOCUS ##
|
## ITEM FOCUS ##
|
||||||
|
|
||||||
func element_focused(element_id: String) -> void:
|
func element_focused(element_id: String) -> void:
|
||||||
var target_obj = escoria.object_manager.get_object(element_id).node
|
var target_obj = escoria.object_manager.get_object(element_id).node
|
||||||
|
|
||||||
match escoria.action_manager.action_state:
|
match escoria.action_manager.action_state:
|
||||||
# Don't change the tooltip if an action input is completed
|
# Don't change the tooltip if an action input is completed
|
||||||
# (ie verb+item(+target)) because the action is now being executed
|
# (ie verb+item(+target)) because the action is now being executed
|
||||||
# and the tooltip is already set because the item was focused
|
# and the tooltip is already set because the item was focused
|
||||||
# (see element_focused() and inventory_item_focused())
|
# (see element_focused() and inventory_item_focused())
|
||||||
ESCActionManager.ACTION_INPUT_STATE.COMPLETED:
|
ESCActionManager.ACTION_INPUT_STATE.COMPLETED:
|
||||||
return
|
return
|
||||||
|
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_VERB_OR_ITEM, \
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_VERB_OR_ITEM, \
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_ITEM:
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_ITEM:
|
||||||
tooltip.set_target(target_obj.tooltip_name)
|
tooltip.set_target(target_obj.tooltip_name)
|
||||||
|
|
||||||
# Hovering an ESCItem highlights its default action
|
# Hovering an ESCItem highlights its default action
|
||||||
if escoria.action_manager.current_action != VERB_USE and target_obj is ESCItem:
|
if escoria.action_manager.current_action != VERB_USE and target_obj is ESCItem:
|
||||||
verbs_menu.set_by_name(target_obj.default_action)
|
verbs_menu.set_by_name(target_obj.default_action)
|
||||||
|
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_TARGET_ITEM:
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_TARGET_ITEM:
|
||||||
tooltip.set_target2(target_obj.tooltip_name)
|
tooltip.set_target2(target_obj.tooltip_name)
|
||||||
|
|
||||||
|
|
||||||
func element_unfocused() -> void:
|
func element_unfocused() -> void:
|
||||||
match escoria.action_manager.action_state:
|
match escoria.action_manager.action_state:
|
||||||
# Don't change the tooltip if an action input is completed
|
# Don't change the tooltip if an action input is completed
|
||||||
# (ie verb+item(+target)) because the action is now being executed
|
# (ie verb+item(+target)) because the action is now being executed
|
||||||
# and the tooltip is already set because the item was focused
|
# and the tooltip is already set because the item was focused
|
||||||
# (see element_focused() and inventory_item_focused())
|
# (see element_focused() and inventory_item_focused())
|
||||||
ESCActionManager.ACTION_INPUT_STATE.COMPLETED:
|
ESCActionManager.ACTION_INPUT_STATE.COMPLETED:
|
||||||
return
|
return
|
||||||
|
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_VERB_OR_ITEM, \
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_VERB_OR_ITEM, \
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_ITEM:
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_ITEM:
|
||||||
tooltip.set_target("")
|
tooltip.set_target("")
|
||||||
verbs_menu.unselect_actions()
|
verbs_menu.unselect_actions()
|
||||||
|
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_TARGET_ITEM:
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_TARGET_ITEM:
|
||||||
tooltip.set_target2("")
|
tooltip.set_target2("")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## ITEMS ##
|
## ITEMS ##
|
||||||
func left_click_on_item(item_global_id: String, event: InputEvent) -> void:
|
func left_click_on_item(item_global_id: String, event: InputEvent) -> void:
|
||||||
escoria.action_manager.do(
|
escoria.action_manager.do(
|
||||||
escoria.action_manager.ACTION.ITEM_LEFT_CLICK,
|
escoria.action_manager.ACTION.ITEM_LEFT_CLICK,
|
||||||
[item_global_id, event],
|
[item_global_id, event],
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
|
|
||||||
var target_obj = escoria.object_manager.get_object(
|
var target_obj = escoria.object_manager.get_object(
|
||||||
item_global_id
|
item_global_id
|
||||||
).node
|
).node
|
||||||
|
|
||||||
match escoria.action_manager.action_state:
|
match escoria.action_manager.action_state:
|
||||||
# Don't change the tooltip if an action input is completed
|
# Don't change the tooltip if an action input is completed
|
||||||
# (ie verb+item(+target)) because the action is now being executed
|
# (ie verb+item(+target)) because the action is now being executed
|
||||||
# and the tooltip is already set because the item was focused
|
# and the tooltip is already set because the item was focused
|
||||||
# (see element_focused() and inventory_item_focused())
|
# (see element_focused() and inventory_item_focused())
|
||||||
ESCActionManager.ACTION_INPUT_STATE.COMPLETED:
|
ESCActionManager.ACTION_INPUT_STATE.COMPLETED:
|
||||||
return
|
return
|
||||||
|
|
||||||
# Just clicked on the item
|
# Just clicked on the item
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_VERB_OR_ITEM, \
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_VERB_OR_ITEM, \
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_ITEM:
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_ITEM:
|
||||||
tooltip.set_target(target_obj.tooltip_name)
|
tooltip.set_target(target_obj.tooltip_name)
|
||||||
|
|
||||||
# Clicked on item and now we're awaiting a target item
|
# Clicked on item and now we're awaiting a target item
|
||||||
# This means we clicked the tool and we now need a target
|
# This means we clicked the tool and we now need a target
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_TARGET_ITEM:
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_TARGET_ITEM:
|
||||||
tooltip.set_target(target_obj.tooltip_name, true)
|
tooltip.set_target(target_obj.tooltip_name, true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func right_click_on_item(item_global_id: String, event: InputEvent) -> void:
|
func right_click_on_item(item_global_id: String, event: InputEvent) -> void:
|
||||||
escoria.action_manager.set_current_action(verbs_menu.selected_action)
|
escoria.action_manager.set_current_action(verbs_menu.selected_action)
|
||||||
escoria.action_manager.do(
|
escoria.action_manager.do(
|
||||||
escoria.action_manager.ACTION.ITEM_RIGHT_CLICK,
|
escoria.action_manager.ACTION.ITEM_RIGHT_CLICK,
|
||||||
[item_global_id, event],
|
[item_global_id, event],
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
func left_double_click_on_item(item_global_id: String, event: InputEvent) -> void:
|
func left_double_click_on_item(item_global_id: String, event: InputEvent) -> void:
|
||||||
escoria.action_manager.do(
|
escoria.action_manager.do(
|
||||||
escoria.action_manager.ACTION.ITEM_LEFT_CLICK,
|
escoria.action_manager.ACTION.ITEM_LEFT_CLICK,
|
||||||
[item_global_id, event],
|
[item_global_id, event],
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
## INVENTORY ##
|
## INVENTORY ##
|
||||||
func left_click_on_inventory_item(inventory_item_global_id: String, event: InputEvent) -> void:
|
func left_click_on_inventory_item(inventory_item_global_id: String, event: InputEvent) -> void:
|
||||||
escoria.action_manager.do(
|
escoria.action_manager.do(
|
||||||
escoria.action_manager.ACTION.ITEM_LEFT_CLICK,
|
escoria.action_manager.ACTION.ITEM_LEFT_CLICK,
|
||||||
[inventory_item_global_id, event]
|
[inventory_item_global_id, event]
|
||||||
)
|
)
|
||||||
|
|
||||||
var target_obj = escoria.object_manager.get_object(
|
var target_obj = escoria.object_manager.get_object(
|
||||||
inventory_item_global_id
|
inventory_item_global_id
|
||||||
).node
|
).node
|
||||||
|
|
||||||
match escoria.action_manager.action_state:
|
match escoria.action_manager.action_state:
|
||||||
# Don't change the tooltip if an action input is completed
|
# Don't change the tooltip if an action input is completed
|
||||||
# (ie verb+item(+target)) because the action is now being executed
|
# (ie verb+item(+target)) because the action is now being executed
|
||||||
# and the tooltip is already set because the item was focused
|
# and the tooltip is already set because the item was focused
|
||||||
# (see element_focused() and inventory_item_focused())
|
# (see element_focused() and inventory_item_focused())
|
||||||
ESCActionManager.ACTION_INPUT_STATE.COMPLETED:
|
ESCActionManager.ACTION_INPUT_STATE.COMPLETED:
|
||||||
return
|
return
|
||||||
|
|
||||||
# Just clicked on the inventory item: do nothing special
|
# Just clicked on the inventory item: do nothing special
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_VERB_OR_ITEM, \
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_VERB_OR_ITEM, \
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_ITEM:
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_ITEM:
|
||||||
return
|
return
|
||||||
|
|
||||||
# Clicked on inventory item and now we're awaiting a target item
|
# Clicked on inventory item and now we're awaiting a target item
|
||||||
# This means we clicked the tool and we now need a target
|
# This means we clicked the tool and we now need a target
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_TARGET_ITEM:
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_TARGET_ITEM:
|
||||||
tooltip.set_target(target_obj.tooltip_name, true)
|
tooltip.set_target(target_obj.tooltip_name, true)
|
||||||
|
|
||||||
|
|
||||||
func right_click_on_inventory_item(inventory_item_global_id: String, event: InputEvent) -> void:
|
func right_click_on_inventory_item(inventory_item_global_id: String, event: InputEvent) -> void:
|
||||||
escoria.action_manager.set_current_action(verbs_menu.selected_action)
|
escoria.action_manager.set_current_action(verbs_menu.selected_action)
|
||||||
escoria.action_manager.do(
|
escoria.action_manager.do(
|
||||||
escoria.action_manager.ACTION.ITEM_RIGHT_CLICK,
|
escoria.action_manager.ACTION.ITEM_RIGHT_CLICK,
|
||||||
[inventory_item_global_id, event]
|
[inventory_item_global_id, event]
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -242,43 +242,43 @@ func inventory_item_focused(inventory_item_global_id: String) -> void:
|
|||||||
var target_obj = escoria.object_manager.get_object(
|
var target_obj = escoria.object_manager.get_object(
|
||||||
inventory_item_global_id
|
inventory_item_global_id
|
||||||
).node
|
).node
|
||||||
|
|
||||||
match escoria.action_manager.action_state:
|
match escoria.action_manager.action_state:
|
||||||
# Don't change the tooltip if an action input is completed
|
# Don't change the tooltip if an action input is completed
|
||||||
# (ie verb+item(+target)) because the action is now being executed
|
# (ie verb+item(+target)) because the action is now being executed
|
||||||
# and the tooltip is already set because the item was focused
|
# and the tooltip is already set because the item was focused
|
||||||
# (see element_focused() and inventory_item_focused())
|
# (see element_focused() and inventory_item_focused())
|
||||||
ESCActionManager.ACTION_INPUT_STATE.COMPLETED:
|
ESCActionManager.ACTION_INPUT_STATE.COMPLETED:
|
||||||
return
|
return
|
||||||
|
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_VERB_OR_ITEM, \
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_VERB_OR_ITEM, \
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_ITEM:
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_ITEM:
|
||||||
tooltip.set_target(target_obj.tooltip_name)
|
tooltip.set_target(target_obj.tooltip_name)
|
||||||
|
|
||||||
# Hovering an ESCItem highlights its default action
|
# Hovering an ESCItem highlights its default action
|
||||||
if escoria.action_manager.current_action != VERB_USE and target_obj is ESCItem:
|
if escoria.action_manager.current_action != VERB_USE and target_obj is ESCItem:
|
||||||
verbs_menu.set_by_name(target_obj.default_action)
|
verbs_menu.set_by_name(target_obj.default_action)
|
||||||
|
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_TARGET_ITEM:
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_TARGET_ITEM:
|
||||||
tooltip.set_target2(target_obj.tooltip_name)
|
tooltip.set_target2(target_obj.tooltip_name)
|
||||||
|
|
||||||
|
|
||||||
func inventory_item_unfocused() -> void:
|
func inventory_item_unfocused() -> void:
|
||||||
|
|
||||||
match escoria.action_manager.action_state:
|
match escoria.action_manager.action_state:
|
||||||
ESCActionManager.ACTION_INPUT_STATE.COMPLETED:
|
ESCActionManager.ACTION_INPUT_STATE.COMPLETED:
|
||||||
# Don't change the tooltip if an action input is completed
|
# Don't change the tooltip if an action input is completed
|
||||||
# (ie verb+item(+target)) because the action is now being executed
|
# (ie verb+item(+target)) because the action is now being executed
|
||||||
return
|
return
|
||||||
|
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_VERB_OR_ITEM, \
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_VERB_OR_ITEM, \
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_ITEM:
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_ITEM:
|
||||||
tooltip.set_target("")
|
tooltip.set_target("")
|
||||||
verbs_menu.unselect_actions()
|
verbs_menu.unselect_actions()
|
||||||
|
|
||||||
ESCActionManager.ACTION_INPUT_STATE.AWAITING_TARGET_ITEM:
|
ESCActionManager.ACTION_INPUT_STATE.AWAITING_TARGET_ITEM:
|
||||||
tooltip.set_target2("")
|
tooltip.set_target2("")
|
||||||
|
|
||||||
|
|
||||||
func open_inventory():
|
func open_inventory():
|
||||||
pass
|
pass
|
||||||
@@ -313,13 +313,13 @@ func hide_main_menu():
|
|||||||
if get_node(main_menu).visible:
|
if get_node(main_menu).visible:
|
||||||
get_node(main_menu).hide()
|
get_node(main_menu).hide()
|
||||||
show_ui()
|
show_ui()
|
||||||
|
|
||||||
func show_main_menu():
|
func show_main_menu():
|
||||||
if not get_node(main_menu).visible:
|
if not get_node(main_menu).visible:
|
||||||
hide_ui()
|
hide_ui()
|
||||||
get_node(main_menu).reset()
|
get_node(main_menu).reset()
|
||||||
get_node(main_menu).show()
|
get_node(main_menu).show()
|
||||||
|
|
||||||
func unpause_game():
|
func unpause_game():
|
||||||
if get_node(pause_menu).visible:
|
if get_node(pause_menu).visible:
|
||||||
get_node(pause_menu).hide()
|
get_node(pause_menu).hide()
|
||||||
@@ -341,8 +341,8 @@ func pause_game():
|
|||||||
|
|
||||||
func _on_MenuButton_pressed() -> void:
|
func _on_MenuButton_pressed() -> void:
|
||||||
pause_game()
|
pause_game()
|
||||||
|
|
||||||
|
|
||||||
func _on_action_finished() -> void:
|
func _on_action_finished() -> void:
|
||||||
verbs_menu.unselect_actions()
|
verbs_menu.unselect_actions()
|
||||||
tooltip.clear()
|
tooltip.clear()
|
||||||
@@ -355,7 +355,7 @@ func _on_event_done(_return_code: int, _event_name: String):
|
|||||||
func apply_custom_settings(custom_settings: Dictionary):
|
func apply_custom_settings(custom_settings: Dictionary):
|
||||||
if custom_settings.has("a_custom_setting"):
|
if custom_settings.has("a_custom_setting"):
|
||||||
escoria.logger.info(
|
escoria.logger.info(
|
||||||
"custom setting value loaded:",
|
"custom setting value loaded:",
|
||||||
[custom_settings["a_custom_setting"]]
|
[custom_settings["a_custom_setting"]]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -6,16 +6,16 @@ func update_tooltip_text():
|
|||||||
if !current_action.empty():
|
if !current_action.empty():
|
||||||
bbcode_text += current_action + "\t"
|
bbcode_text += current_action + "\t"
|
||||||
bbcode_text += current_target
|
bbcode_text += current_target
|
||||||
|
|
||||||
if waiting_for_target2 and current_target2.empty():
|
if waiting_for_target2 and current_target2.empty():
|
||||||
bbcode_text += "\t" + current_prep
|
bbcode_text += "\t" + current_prep
|
||||||
|
|
||||||
if !current_target2.empty():
|
if !current_target2.empty():
|
||||||
bbcode_text += "\t" + current_prep + "\t" + current_target2
|
bbcode_text += "\t" + current_prep + "\t" + current_target2
|
||||||
|
|
||||||
bbcode_text += "[/color]"
|
bbcode_text += "[/color]"
|
||||||
bbcode_text += "[/center]"
|
bbcode_text += "[/center]"
|
||||||
|
|
||||||
# push_align(RichTextLabel.ALIGN_CENTER)
|
# push_align(RichTextLabel.ALIGN_CENTER)
|
||||||
# if !current_action.empty():
|
# if !current_action.empty():
|
||||||
# add_text(current_action + "\t")
|
# add_text(current_action + "\t")
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ func _on_action_selected(action: String):
|
|||||||
|
|
||||||
for but in get_children():
|
for but in get_children():
|
||||||
but.set_pressed(but.get_name() == action)
|
but.set_pressed(but.get_name() == action)
|
||||||
|
|
||||||
func unselect_actions():
|
func unselect_actions():
|
||||||
for but in get_children():
|
for but in get_children():
|
||||||
but.set_pressed(false)
|
but.set_pressed(false)
|
||||||
@@ -30,5 +30,5 @@ func set_by_name(action_name: String):
|
|||||||
selected_action = action_name
|
selected_action = action_name
|
||||||
for but in get_children():
|
for but in get_children():
|
||||||
but.set_pressed(but.get_name() == action_name)
|
but.set_pressed(but.get_name() == action_name)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ Implement methods to react to inputs.
|
|||||||
|
|
||||||
func _enter_tree():
|
func _enter_tree():
|
||||||
var room_selector_parent = $CanvasLayer/ui/HBoxContainer/VBoxContainer
|
var room_selector_parent = $CanvasLayer/ui/HBoxContainer/VBoxContainer
|
||||||
|
|
||||||
if ProjectSettings.get_setting("escoria/debug/enable_room_selector") and \
|
if ProjectSettings.get_setting("escoria/debug/enable_room_selector") and \
|
||||||
room_selector_parent.get_node_or_null("room_select") == null:
|
room_selector_parent.get_node_or_null("room_select") == null:
|
||||||
room_selector_parent.add_child(
|
room_selector_parent.add_child(
|
||||||
@@ -53,7 +53,7 @@ func _enter_tree():
|
|||||||
).instance()
|
).instance()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
if escoria.main.current_scene and escoria.main.current_scene.game:
|
if escoria.main.current_scene and escoria.main.current_scene.game:
|
||||||
if event is InputEventMouseMotion:
|
if event is InputEventMouseMotion:
|
||||||
@@ -61,32 +61,32 @@ func _input(event: InputEvent) -> void:
|
|||||||
update_tooltip_following_mouse_position(event.position)
|
update_tooltip_following_mouse_position(event.position)
|
||||||
|
|
||||||
|
|
||||||
## BACKGROUND ##
|
## BACKGROUND ##
|
||||||
|
|
||||||
func left_click_on_bg(position: Vector2) -> void:
|
func left_click_on_bg(position: Vector2) -> void:
|
||||||
if escoria.main.current_scene.player:
|
if escoria.main.current_scene.player:
|
||||||
escoria.action_manager.do(
|
escoria.action_manager.do(
|
||||||
escoria.action_manager.ACTION.BACKGROUND_CLICK,
|
escoria.action_manager.ACTION.BACKGROUND_CLICK,
|
||||||
[escoria.main.current_scene.player.global_id, position],
|
[escoria.main.current_scene.player.global_id, position],
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
$mouse_layer/verbs_menu.set_by_name(VERB_WALK)
|
$mouse_layer/verbs_menu.set_by_name(VERB_WALK)
|
||||||
$mouse_layer/verbs_menu.clear_tool_texture()
|
$mouse_layer/verbs_menu.clear_tool_texture()
|
||||||
|
|
||||||
func right_click_on_bg(position: Vector2) -> void:
|
func right_click_on_bg(position: Vector2) -> void:
|
||||||
mousewheel_action(1)
|
mousewheel_action(1)
|
||||||
|
|
||||||
func left_double_click_on_bg(position: Vector2) -> void:
|
func left_double_click_on_bg(position: Vector2) -> void:
|
||||||
if escoria.main.current_scene.player:
|
if escoria.main.current_scene.player:
|
||||||
escoria.action_manager.do(
|
escoria.action_manager.do(
|
||||||
escoria.action_manager.ACTION.BACKGROUND_CLICK,
|
escoria.action_manager.ACTION.BACKGROUND_CLICK,
|
||||||
[escoria.main.current_scene.player.global_id, position, true],
|
[escoria.main.current_scene.player.global_id, position, true],
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
$mouse_layer/verbs_menu.set_by_name(VERB_WALK)
|
$mouse_layer/verbs_menu.set_by_name(VERB_WALK)
|
||||||
$mouse_layer/verbs_menu.clear_tool_texture()
|
$mouse_layer/verbs_menu.clear_tool_texture()
|
||||||
|
|
||||||
## ITEM/HOTSPOT FOCUS ##
|
## ITEM/HOTSPOT FOCUS ##
|
||||||
|
|
||||||
func element_focused(element_id: String) -> void:
|
func element_focused(element_id: String) -> void:
|
||||||
var target_obj = escoria.object_manager.get_object(element_id).node
|
var target_obj = escoria.object_manager.get_object(element_id).node
|
||||||
@@ -105,8 +105,8 @@ func element_unfocused() -> void:
|
|||||||
|
|
||||||
func left_click_on_item(item_global_id: String, event: InputEvent) -> void:
|
func left_click_on_item(item_global_id: String, event: InputEvent) -> void:
|
||||||
escoria.action_manager.do(
|
escoria.action_manager.do(
|
||||||
escoria.action_manager.ACTION.ITEM_LEFT_CLICK,
|
escoria.action_manager.ACTION.ITEM_LEFT_CLICK,
|
||||||
[item_global_id, event],
|
[item_global_id, event],
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -115,19 +115,19 @@ func right_click_on_item(item_global_id: String, event: InputEvent) -> void:
|
|||||||
|
|
||||||
func left_double_click_on_item(item_global_id: String, event: InputEvent) -> void:
|
func left_double_click_on_item(item_global_id: String, event: InputEvent) -> void:
|
||||||
escoria.action_manager.do(
|
escoria.action_manager.do(
|
||||||
escoria.action_manager.ACTION.ITEM_LEFT_CLICK,
|
escoria.action_manager.ACTION.ITEM_LEFT_CLICK,
|
||||||
[item_global_id, event],
|
[item_global_id, event],
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
## INVENTORY ##
|
## INVENTORY ##
|
||||||
func left_click_on_inventory_item(inventory_item_global_id: String, event: InputEvent) -> void:
|
func left_click_on_inventory_item(inventory_item_global_id: String, event: InputEvent) -> void:
|
||||||
escoria.action_manager.do(
|
escoria.action_manager.do(
|
||||||
escoria.action_manager.ACTION.ITEM_LEFT_CLICK,
|
escoria.action_manager.ACTION.ITEM_LEFT_CLICK,
|
||||||
[inventory_item_global_id, event]
|
[inventory_item_global_id, event]
|
||||||
)
|
)
|
||||||
|
|
||||||
if escoria.action_manager.current_action == "use":
|
if escoria.action_manager.current_action == "use":
|
||||||
var item = escoria.object_manager.get_object(
|
var item = escoria.object_manager.get_object(
|
||||||
inventory_item_global_id
|
inventory_item_global_id
|
||||||
@@ -140,7 +140,7 @@ func left_click_on_inventory_item(inventory_item_global_id: String, event: Input
|
|||||||
$mouse_layer/verbs_menu.set_tool_texture(
|
$mouse_layer/verbs_menu.set_tool_texture(
|
||||||
item.inventory_item.texture_normal
|
item.inventory_item.texture_normal
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
func right_click_on_inventory_item(inventory_item_global_id: String, event: InputEvent) -> void:
|
func right_click_on_inventory_item(inventory_item_global_id: String, event: InputEvent) -> void:
|
||||||
mousewheel_action(1)
|
mousewheel_action(1)
|
||||||
@@ -176,8 +176,8 @@ func mousewheel_action(direction: int):
|
|||||||
|
|
||||||
func hide_ui():
|
func hide_ui():
|
||||||
$CanvasLayer/ui/HBoxContainer/inventory_ui.hide()
|
$CanvasLayer/ui/HBoxContainer/inventory_ui.hide()
|
||||||
|
|
||||||
|
|
||||||
func show_ui():
|
func show_ui():
|
||||||
$CanvasLayer/ui/HBoxContainer/inventory_ui.show()
|
$CanvasLayer/ui/HBoxContainer/inventory_ui.show()
|
||||||
|
|
||||||
@@ -212,7 +212,7 @@ func pause_game():
|
|||||||
func apply_custom_settings(custom_settings: Dictionary):
|
func apply_custom_settings(custom_settings: Dictionary):
|
||||||
if custom_settings.has("a_custom_setting"):
|
if custom_settings.has("a_custom_setting"):
|
||||||
escoria.logger.info(
|
escoria.logger.info(
|
||||||
"custom setting value loaded:",
|
"custom setting value loaded:",
|
||||||
[custom_settings["a_custom_setting"]]
|
[custom_settings["a_custom_setting"]]
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -221,7 +221,7 @@ func get_custom_data() -> Dictionary:
|
|||||||
return {
|
return {
|
||||||
"ui_type": "simplemouse"
|
"ui_type": "simplemouse"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Update the tooltip
|
# Update the tooltip
|
||||||
#
|
#
|
||||||
@@ -230,15 +230,15 @@ func get_custom_data() -> Dictionary:
|
|||||||
# - p_position: Position of the mouse
|
# - p_position: Position of the mouse
|
||||||
func update_tooltip_following_mouse_position(p_position: Vector2):
|
func update_tooltip_following_mouse_position(p_position: Vector2):
|
||||||
var corrected_position = p_position
|
var corrected_position = p_position
|
||||||
|
|
||||||
# clamp TOP
|
# clamp TOP
|
||||||
if tooltip_node.tooltip_distance_to_edge_top(p_position) <= mouse_tooltip_margin:
|
if tooltip_node.tooltip_distance_to_edge_top(p_position) <= mouse_tooltip_margin:
|
||||||
corrected_position.y = mouse_tooltip_margin
|
corrected_position.y = mouse_tooltip_margin
|
||||||
|
|
||||||
# clamp BOTTOM
|
# clamp BOTTOM
|
||||||
if tooltip_node.tooltip_distance_to_edge_bottom(p_position + tooltip_node.rect_size) <= mouse_tooltip_margin:
|
if tooltip_node.tooltip_distance_to_edge_bottom(p_position + tooltip_node.rect_size) <= mouse_tooltip_margin:
|
||||||
corrected_position.y = escoria.game_size.y - mouse_tooltip_margin - tooltip_node.rect_size.y
|
corrected_position.y = escoria.game_size.y - mouse_tooltip_margin - tooltip_node.rect_size.y
|
||||||
|
|
||||||
# clamp LEFT
|
# clamp LEFT
|
||||||
if tooltip_node.tooltip_distance_to_edge_left(p_position - tooltip_node.rect_size/2) <= mouse_tooltip_margin:
|
if tooltip_node.tooltip_distance_to_edge_left(p_position - tooltip_node.rect_size/2) <= mouse_tooltip_margin:
|
||||||
corrected_position.x = mouse_tooltip_margin
|
corrected_position.x = mouse_tooltip_margin
|
||||||
@@ -246,7 +246,7 @@ func update_tooltip_following_mouse_position(p_position: Vector2):
|
|||||||
# clamp RIGHT
|
# clamp RIGHT
|
||||||
if tooltip_node.tooltip_distance_to_edge_right(p_position + tooltip_node.rect_size/2) <= mouse_tooltip_margin:
|
if tooltip_node.tooltip_distance_to_edge_right(p_position + tooltip_node.rect_size/2) <= mouse_tooltip_margin:
|
||||||
corrected_position.x = escoria.game_size.x - mouse_tooltip_margin - tooltip_node.rect_size.x
|
corrected_position.x = escoria.game_size.x - mouse_tooltip_margin - tooltip_node.rect_size.x
|
||||||
|
|
||||||
tooltip_node.anchor_right = 0.2
|
tooltip_node.anchor_right = 0.2
|
||||||
tooltip_node.rect_position = corrected_position + tooltip_node.offset_from_cursor
|
tooltip_node.rect_position = corrected_position + tooltip_node.offset_from_cursor
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ func _on_inventory_button_pressed():
|
|||||||
hide_inventory()
|
hide_inventory()
|
||||||
else:
|
else:
|
||||||
show_inventory()
|
show_inventory()
|
||||||
|
|
||||||
|
|
||||||
func show_inventory():
|
func show_inventory():
|
||||||
$FloatingInventory/InventoryTween.stop_all()
|
$FloatingInventory/InventoryTween.stop_all()
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ func _ready():
|
|||||||
if !Engine.is_editor_hint():
|
if !Engine.is_editor_hint():
|
||||||
current_cursor_id = cursors.size()
|
current_cursor_id = cursors.size()
|
||||||
iterate_actions_cursor(UI_ACTIONS_DIRECTION.UP)
|
iterate_actions_cursor(UI_ACTIONS_DIRECTION.UP)
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
$mouse_position.rect_global_position = get_global_mouse_position()
|
$mouse_position.rect_global_position = get_global_mouse_position()
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ func iterate_actions_cursor(direction: int):
|
|||||||
current_cursor_id = 0
|
current_cursor_id = 0
|
||||||
elif current_cursor_id < 0:
|
elif current_cursor_id < 0:
|
||||||
current_cursor_id = cursors.size() - 1
|
current_cursor_id = cursors.size() - 1
|
||||||
|
|
||||||
Input.set_custom_mouse_cursor(cursors[current_cursor_id].texture)
|
Input.set_custom_mouse_cursor(cursors[current_cursor_id].texture)
|
||||||
escoria.action_manager.set_current_action(cursors[current_cursor_id].name)
|
escoria.action_manager.set_current_action(cursors[current_cursor_id].name)
|
||||||
if $mouse_position/tool.texture != null:
|
if $mouse_position/tool.texture != null:
|
||||||
@@ -40,7 +40,7 @@ func set_by_name(name: String) -> void:
|
|||||||
if cursors[i].name == name:
|
if cursors[i].name == name:
|
||||||
current_cursor_id = i
|
current_cursor_id = i
|
||||||
break
|
break
|
||||||
|
|
||||||
Input.set_custom_mouse_cursor(cursors[current_cursor_id].texture)
|
Input.set_custom_mouse_cursor(cursors[current_cursor_id].texture)
|
||||||
escoria.action_manager.set_current_action(cursors[current_cursor_id].name)
|
escoria.action_manager.set_current_action(cursors[current_cursor_id].name)
|
||||||
|
|
||||||
|
|||||||
@@ -5,21 +5,21 @@ var next_to_be_pressed: int = 1
|
|||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
randomize()
|
randomize()
|
||||||
|
|
||||||
initialize()
|
initialize()
|
||||||
reset()
|
reset()
|
||||||
|
|
||||||
for button in $GridContainer.get_children():
|
for button in $GridContainer.get_children():
|
||||||
button.connect("pressed", self, "_button_pressed", [button])
|
button.connect("pressed", self, "_button_pressed", [button])
|
||||||
|
|
||||||
escoria.main.current_scene.game.hide_ui()
|
escoria.main.current_scene.game.hide_ui()
|
||||||
escoria.main.current_scene.hide()
|
escoria.main.current_scene.hide()
|
||||||
|
|
||||||
|
|
||||||
func initialize():
|
func initialize():
|
||||||
numbers_array = range(1, 11)
|
numbers_array = range(1, 11)
|
||||||
numbers_array.shuffle()
|
numbers_array.shuffle()
|
||||||
|
|
||||||
func reset():
|
func reset():
|
||||||
$win_label.hide()
|
$win_label.hide()
|
||||||
next_to_be_pressed = 1
|
next_to_be_pressed = 1
|
||||||
@@ -39,7 +39,7 @@ func _button_pressed(button: Button):
|
|||||||
else:
|
else:
|
||||||
button.disabled = true
|
button.disabled = true
|
||||||
next_to_be_pressed += 1
|
next_to_be_pressed += 1
|
||||||
|
|
||||||
if next_to_be_pressed == 11:
|
if next_to_be_pressed == 11:
|
||||||
win()
|
win()
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ func win():
|
|||||||
$win_label.show()
|
$win_label.show()
|
||||||
yield(get_tree().create_timer(2), "timeout")
|
yield(get_tree().create_timer(2), "timeout")
|
||||||
hide()
|
hide()
|
||||||
|
|
||||||
escoria.main.current_scene.game.show_ui()
|
escoria.main.current_scene.game.show_ui()
|
||||||
escoria.main.current_scene.show()
|
escoria.main.current_scene.show()
|
||||||
escoria.globals_manager.set_global("r8_m_door_open", true)
|
escoria.globals_manager.set_global("r8_m_door_open", true)
|
||||||
|
|||||||
Reference in New Issue
Block a user