diff --git a/CREDITS b/CREDITS index 06498871..03cf9d2b 100644 --- a/CREDITS +++ b/CREDITS @@ -48,3 +48,21 @@ Items Licence: CC0 Licence https://www.kenney.nl/assets/generic-items + + +Music +===== + +- “Game Menu Looping” (Licence CC-BY 4.0) +- “Mystical Ocean Puzzle Game” (Licence CC-BY 4.0) +by Eric Matyas +www.soundimage.org + + + +Sound +===== + +- Concrete footstep +Licence: CC0 Licence +https://www.kenney.nl/ diff --git a/addons/escoria-core/editor/plugin_escoria.gd b/addons/escoria-core/editor/plugin_escoria.gd index 2d3e94a9..f315eab4 100644 --- a/addons/escoria-core/editor/plugin_escoria.gd +++ b/addons/escoria-core/editor/plugin_escoria.gd @@ -6,30 +6,56 @@ const autoloads = { "esctypes": "res://addons/escoria-core/game/core-scripts/escoria_types.gd" } +const custom_types = [ + { + "type_name": "ESCBackground", + "parent_type": "Sprite", + "script_res": "res://addons/escoria-core/game/core-scripts/escbackground.gd" + }, + { + "type_name": "ESCItem", + "parent_type": "Area2D", + "script_res": "res://addons/escoria-core/game/core-scripts/escitem.gd" + }, + { + "type_name": "ESCItemsInventory", + "parent_type": "GridContainer", + "script_res": "res://addons/escoria-core/game/core-scripts/items_inventory.gd" + }, + { + "type_name": "ESCInventoryItem", + "parent_type": "TextureButton", + "script_res": "res://addons/escoria-core/game/core-scripts/escinventoryitem.gd" + }, + { + "type_name": "ESCPlayer", + "parent_type": "KinematicBody2D", + "script_res": "res://addons/escoria-core/game/core-scripts/escplayer.gd" + }, + { + "type_name": "ESCRoom", + "parent_type": "Node2D", + "script_res": "res://addons/escoria-core/game/core-scripts/escroom.gd" + }, + { + "type_name": "ESCTerrain", + "parent_type": "Navigation2D", + "script_res": "res://addons/escoria-core/game/core-scripts/escterrain.gd" + } +] + func _enter_tree(): add_autoloads() - add_custom_type("ESCBackground", "Sprite", - load("res://addons/escoria-core/game/core-scripts/escbackground.gd"), null) - add_custom_type("ESCCharacter", "KinematicBody2D", - load("res://addons/escoria-core/game/core-scripts/esccharacter.gd"), null) - add_custom_type("ESCItem", "Area2D", - load("res://addons/escoria-core/game/core-scripts/escitem.gd"), null) - add_custom_type("ESCItemsInventory", "GridContainer", - load("res://addons/escoria-core/game/core-scripts/items_inventory.gd"), null) - add_custom_type("ESCInventoryItem", "TextureButton", - load("res://addons/escoria-core/game/core-scripts/inventory_item.gd"), null) - add_custom_type("ESCPlayer", "KinematicBody2D", - load("res://addons/escoria-core/game/core-scripts/escplayer.gd"), null) - add_custom_type("ESCRoom", "Node2D", - load("res://addons/escoria-core/game/core-scripts/escroom.gd"), null) - add_custom_type("ESCTerrain", "Navigation2D", - load("res://addons/escoria-core/game/core-scripts/escterrain.gd"), null) + for custom_type in custom_types: + add_custom_type(custom_type.type_name, custom_type.parent_type, + load(custom_type.script_res), null) set_escoria_main_settings() set_escoria_debug_settings() set_escoria_ui_settings() set_escoria_internal_settings() + set_escoria_sound_settings() func set_escoria_ui_settings(): @@ -65,6 +91,16 @@ func set_escoria_ui_settings(): } ProjectSettings.add_property_info(main_menu_scene_property_info) + if !ProjectSettings.has_setting("escoria/ui/pause_menu_scene"): + ProjectSettings.set_setting("escoria/ui/pause_menu_scene", "") + var pause_menu_scene_property_info = { + "name": "escoria/ui/pause_menu_scene", + "type": TYPE_STRING, + "hint": PROPERTY_HINT_FILE, + "hint_string": "*.tscn, *.scn" + } + ProjectSettings.add_property_info(pause_menu_scene_property_info) + if !ProjectSettings.has_setting("escoria/ui/game_scene"): ProjectSettings.set_setting("escoria/ui/game_scene", "") var game_scene_property_info = { @@ -122,6 +158,30 @@ func set_escoria_internal_settings(): } ProjectSettings.add_property_info(save_data_property_info) + +func set_escoria_sound_settings(): + if !ProjectSettings.has_setting("escoria/sound/music_volume"): + ProjectSettings.set_setting("escoria/sound/music_volume", 5) + var music_data_property_info = { + "name": "escoria/sound/music_volume", + "type": TYPE_INT, + "hint": PROPERTY_HINT_RANGE, + "hint_string": "0,15" + } + ProjectSettings.add_property_info(music_data_property_info) + + if !ProjectSettings.has_setting("escoria/sound/sound_volume"): + ProjectSettings.set_setting("escoria/sound/sound_volume", 8) + var sound_data_property_info = { + "name": "escoria/sound/sound_volume", + "type": TYPE_INT, + "hint": PROPERTY_HINT_RANGE, + "hint_string": "0,15" + } + ProjectSettings.add_property_info(sound_data_property_info) + + + # Defines platform-specific parameters. Those are the ones that must be re-set for each platform export. func set_escoria_platform_settings(): # Skip cache - certain platforms (esp. mobile) lack memory for caching scenes @@ -143,7 +203,6 @@ func remove_autoloads(): func _exit_tree(): remove_custom_type("ESCBackground") - remove_custom_type("ESCCharacter") remove_custom_type("ESCItem") remove_custom_type("ESCInventoryItem") remove_custom_type("ESCItemsInventory") diff --git a/addons/escoria-core/game/core-scripts/esc/esc_compiler.gd b/addons/escoria-core/game/core-scripts/esc/esc_compiler.gd index 17ce644f..ba193209 100644 --- a/addons/escoria-core/game/core-scripts/esc/esc_compiler.gd +++ b/addons/escoria-core/game/core-scripts/esc/esc_compiler.gd @@ -52,7 +52,7 @@ var commands = { "inventory_display": { "min_args": 1, "types": [TYPE_BOOL] }, "jump": { "min_args": 1 }, "label": { "min_args": 1 }, - "play_snd": { "min_args": 2, "types": [TYPE_STRING, TYPE_STRING, TYPE_BOOL] }, + "set_sound_state": { "min_args": 2, "types": [TYPE_STRING, TYPE_STRING, TYPE_BOOL] }, "queue_animation": { "min_args": 2, "types": [TYPE_STRING, TYPE_STRING, TYPE_BOOL] }, "queue_resource": { "min_args": 1, "types": [TYPE_STRING, TYPE_BOOL] }, "repeat": true, diff --git a/addons/escoria-core/game/core-scripts/esc/esc_runner.gd b/addons/escoria-core/game/core-scripts/esc/esc_runner.gd index bf2274ec..7d27f2a0 100644 --- a/addons/escoria-core/game/core-scripts/esc/esc_runner.gd +++ b/addons/escoria-core/game/core-scripts/esc/esc_runner.gd @@ -349,7 +349,10 @@ func change_scene(params, context, run_events=true): # main.clear_scene() # camera = null event_queue = [] - + + escoria.main.scene_transition.fade_out() + yield(escoria.main.scene_transition, "transition_done") + # Regular events need to be reset immediately, so we don't # accidentally `yield()` on them, for performance reasons. # This does not affect `stack` so execution is fine anyway. @@ -381,6 +384,9 @@ func change_scene(params, context, run_events=true): room_scene.move_child(game_scene, 0) var events = escoria.main.set_scene(room_scene, run_events) + escoria.main.scene_transition.fade_in() + yield(escoria.main.scene_transition, "transition_done") + # If scene was never visited, add "ready" event to the events stack if !scenes_cache.has(room_scene.global_id) \ and "ready" in events: @@ -526,7 +532,7 @@ func register_object(name : String, val : Object, force : bool = false): # Most objects have states/animations, but don't count on it # if val.has_method("set_state"): - if val is ESCItem or val is ESCPlayer or val is ESCCharacter: + if val is ESCItem or val is ESCPlayer: if name in states: set_state(name, [states[name], true]) else: @@ -722,23 +728,9 @@ func object_exit_scene(name : String): if inventory_has(name): objects[name] = objects[name].duplicate() else: - escoria.logger.info("Object " + name + " removed from scene.") - objects.erase(name) - -#func jump(p_label): -# while stack.size() > 0: -# var top = stack[stack.size()-1] -# printt("top labels: ", top.labels, p_label) -# if p_label in top.labels: -# top.ip = top.labels[p_label] -# return -# else: -# if top.break_stop || stack.size() == 1: -# escoria.logger.report_errors("", ["Label not found: "+p_label+", can't jump"]) -# stack.remove(stack.size()-1) -# break -# else: -# stack.remove(stack.size()-1) + if name != "bg_music": + escoria.logger.info("Object " + name + " removed from scene.") + objects.erase(name) func check_obj(name, cmd): @@ -747,3 +739,4 @@ func check_obj(name, cmd): escoria.logger.report_errors("", ["Global id "+name+" not found for " + cmd]) return false return true + diff --git a/addons/escoria-core/game/core-scripts/esc/esc_runner_level.gd b/addons/escoria-core/game/core-scripts/esc/esc_runner_level.gd index 08f2fea9..7f54d23f 100644 --- a/addons/escoria-core/game/core-scripts/esc/esc_runner_level.gd +++ b/addons/escoria-core/game/core-scripts/esc/esc_runner_level.gd @@ -399,9 +399,16 @@ func jump(command_params : Array): """ +set_sound_state bg_music|bg_sound off|default| true|false """ -func play_snd(command_params : Array): - pass +func set_sound_state(command_params : Array): + var snd_player = command_params[0] + var snd_id = command_params[1] + var loop = false + if command_params.size() == 3 and command_params[2]: + loop = true + escoria.main.get_node(snd_player).set_state(snd_id, loop) + return esctypes.EVENT_LEVEL_STATE.RETURN """ diff --git a/addons/escoria-core/game/core-scripts/esccharacter.gd b/addons/escoria-core/game/core-scripts/esccharacter.gd deleted file mode 100644 index 36522996..00000000 --- a/addons/escoria-core/game/core-scripts/esccharacter.gd +++ /dev/null @@ -1,9 +0,0 @@ -tool -extends Node -class_name ESCCharacter - -export(String) var character_id -export(String, FILE, ".esc") var esc_script = "" - -func _ready(): - pass diff --git a/addons/escoria-core/game/core-scripts/inventory_item.gd b/addons/escoria-core/game/core-scripts/escinventoryitem.gd similarity index 100% rename from addons/escoria-core/game/core-scripts/inventory_item.gd rename to addons/escoria-core/game/core-scripts/escinventoryitem.gd diff --git a/addons/escoria-core/game/core-scripts/escoria_types.gd b/addons/escoria-core/game/core-scripts/escoria_types.gd index c00e3dc3..52d87439 100644 --- a/addons/escoria-core/game/core-scripts/escoria_types.gd +++ b/addons/escoria-core/game/core-scripts/escoria_types.gd @@ -4,7 +4,6 @@ const OBJ_DEFAULT_STATE = "default" ## Custom nodes: #var ESCBackground = preload("res://addons/escoria-core/game/core-scripts/escbackground.gd") -#var ESCCharacter = preload("res://addons/escoria-core/game/core-scripts/esccharacter.gd") #var ESCItem = preload("res://addons/escoria-core/game/core-scripts/escitem.gd") #var ESCItemsInventory = preload("res://addons/escoria-core/game/core-scripts/items_inventory.gd") #var ESCInventoryItem = preload("res://addons/escoria-core/game/core-scripts/inventory_item.gd") diff --git a/addons/escoria-core/game/core-scripts/esctooltip.gd b/addons/escoria-core/game/core-scripts/esctooltip.gd index 66bd7b03..88bbb6bc 100644 --- a/addons/escoria-core/game/core-scripts/esctooltip.gd +++ b/addons/escoria-core/game/core-scripts/esctooltip.gd @@ -57,7 +57,8 @@ func set_debug_mode(p_debug_mode : bool): debug_texturerect_node.mouse_filter = Control.MOUSE_FILTER_IGNORE move_child(debug_texturerect_node, 2) else: - remove_child(debug_texturerect_node) + if debug_texturerect_node: + remove_child(debug_texturerect_node) func on_action_selected() -> void: diff --git a/addons/escoria-core/game/escoria.gd b/addons/escoria-core/game/escoria.gd index e77a80b5..b40b71da 100644 --- a/addons/escoria-core/game/escoria.gd +++ b/addons/escoria-core/game/escoria.gd @@ -11,6 +11,7 @@ onready var utils = load("res://addons/escoria-core/game/core-scripts/utils/util # INSTANCES var main_menu_instance + ## Dialog player instantiator. This instance is called directly for dialogs. var dialog_player ## Inventory scene @@ -30,18 +31,14 @@ onready var game_size = get_viewport().size ################################################################################## -func _ready(): - pass - # Called by Main menu "start new game" func new_game(): var actions = esc_compiler.load_esc_file(ProjectSettings.get_setting("escoria/main/game_start_script")) $esc_runner.run_game(actions) - - -func set_main_menu(scene): - main_menu_instance = scene + + escoria.main.scene_transition.fade_in() + yield(escoria.main.scene_transition, "transition_done") @@ -83,6 +80,13 @@ func register_object(object : Object): if main.current_scene: main.current_scene.game.tooltip_node = object + if object is ESCBackgroundMusic: + $esc_runner.register_object(object_id, object, true) + + if object is ESCBackgroundSound: + $esc_runner.register_object(object_id, object, true) + + """ diff --git a/addons/escoria-core/game/escoria.tscn b/addons/escoria-core/game/escoria.tscn index a00dad30..906d3798 100644 --- a/addons/escoria-core/game/escoria.tscn +++ b/addons/escoria-core/game/escoria.tscn @@ -24,7 +24,4 @@ script = ExtResource( 4 ) [node name="main" parent="." instance=ExtResource( 2 )] -[node name="Viewport" type="Viewport" parent="."] -usage = 0 - [editable path="main"] diff --git a/addons/escoria-core/game/inputs_manager.gd b/addons/escoria-core/game/inputs_manager.gd index 25e1f8d0..1faa37c1 100644 --- a/addons/escoria-core/game/inputs_manager.gd +++ b/addons/escoria-core/game/inputs_manager.gd @@ -13,6 +13,9 @@ func _input(event): if event.is_action_pressed("esc_show_debug_prompt"): escoria.main.get_node("layers/debug_layer/esc_prompt_popup").popup() + if event.is_action_pressed("ui_cancel"): + _on_pause_menu_requested() + if ProjectSettings.get_setting("escoria/ui/tooltip_follows_mouse"): if escoria.main.current_scene and escoria.main.current_scene.game: if event is InputEventMouseMotion: @@ -124,3 +127,8 @@ func clean_hover_stack(): func hover_stack_pop(item): hover_stack.erase(item) + +################################################################################ + +func _on_pause_menu_requested(): + escoria.main.current_scene.game.pause_game() diff --git a/addons/escoria-core/game/main.gd b/addons/escoria-core/game/main.gd index 17f29bc7..f0b9cf5a 100644 --- a/addons/escoria-core/game/main.gd +++ b/addons/escoria-core/game/main.gd @@ -11,6 +11,10 @@ var wait_level var screen_ofs = Vector2(0, 0) +# ESCBackgroundMusic node +onready var bg_music = $bg_music +onready var scene_transition = $layers/curtain/scene_transition + func _ready(): $layers/wait_timer.connect("timeout", self, "_on_wait_finished") @@ -25,7 +29,8 @@ func set_scene(p_scene, run_events=true): if current_scene != null: clear_scene() - get_node("/root").add_child(p_scene) +# get_node("/root").add_child(p_scene) + add_child(p_scene) # Ensure we don't have a regular event running when changing scenes if escoria.esc_runner.running_event: diff --git a/addons/escoria-core/game/main.tscn b/addons/escoria-core/game/main.tscn index b7148cbd..a7fcf0b8 100644 --- a/addons/escoria-core/game/main.tscn +++ b/addons/escoria-core/game/main.tscn @@ -1,7 +1,10 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=6 format=2] [ext_resource path="res://addons/escoria-core/game/main.gd" type="Script" id=1] [ext_resource path="res://addons/escoria-core/game/scenes/esc_prompt/esc_prompt_popup.tscn" type="PackedScene" id=2] +[ext_resource path="res://addons/escoria-core/game/scenes/sound/bg_music.tscn" type="PackedScene" id=3] +[ext_resource path="res://addons/escoria-core/game/scenes/transitions/transition.tscn" type="PackedScene" id=4] +[ext_resource path="res://addons/escoria-core/game/scenes/sound/bg_sound.tscn" type="PackedScene" id=5] [node name="main" type="Node"] script = ExtResource( 1 ) @@ -9,6 +12,9 @@ script = ExtResource( 1 ) [node name="layers" type="Node" parent="."] [node name="curtain" type="CanvasLayer" parent="layers"] +layer = 20 + +[node name="scene_transition" parent="layers/curtain" instance=ExtResource( 4 )] [node name="menu" type="CanvasLayer" parent="layers"] @@ -17,3 +23,7 @@ script = ExtResource( 1 ) [node name="debug_layer" type="CanvasLayer" parent="layers"] [node name="esc_prompt_popup" parent="layers/debug_layer" instance=ExtResource( 2 )] + +[node name="bg_music" parent="." instance=ExtResource( 3 )] + +[node name="bg_sound" parent="." instance=ExtResource( 5 )] diff --git a/addons/escoria-core/game/main_scene.gd b/addons/escoria-core/game/main_scene.gd index e6692361..d2718e7d 100644 --- a/addons/escoria-core/game/main_scene.gd +++ b/addons/escoria-core/game/main_scene.gd @@ -6,7 +6,8 @@ extends Node func _ready(): var main_menu_path = ProjectSettings.get_setting("escoria/ui/main_menu_scene") var main_menu_scene = load(main_menu_path).instance() - get_tree().get_root().call_deferred("add_child", main_menu_scene) - escoria.set_main_menu(main_menu_scene) +# get_tree().get_root().call_deferred("add_child", main_menu_scene) + escoria.call_deferred("add_child", main_menu_scene) + escoria.main_menu_instance = main_menu_scene diff --git a/addons/escoria-core/game/scenes/inventory/inventory_ui.gd b/addons/escoria-core/game/scenes/inventory/inventory_ui.gd index 79a83edc..b7d4a762 100644 --- a/addons/escoria-core/game/scenes/inventory/inventory_ui.gd +++ b/addons/escoria-core/game/scenes/inventory/inventory_ui.gd @@ -15,7 +15,7 @@ The scene MUST contain the 2 following nodes: # Define the actual container node to add items as children of. Should be a Container. -export(NodePath) var items_container +export(NodePath) var inventory_ui_container onready var all_items = $ESCORIA_ALL_ITEMS var items_ids_in_inventory : Dictionary = {} # { item_id : TextureButton} @@ -30,10 +30,10 @@ func _ready(): escoria.register_object(self) - if items_container == null or items_container.is_empty(): + if inventory_ui_container == null or inventory_ui_container.is_empty(): escoria.logger.report_errors(self.get_path(), ["Items container is empty."]) return - for c in get_node(items_container).get_items(): + for c in get_node(inventory_ui_container).get_items(): items_ids_in_inventory[c.item_id] = c # c.connect("pressed", escoria.inputs_manager, "_on_inventory_item_pressed", [c.item_id]) @@ -55,7 +55,7 @@ func add_new_item_by_id(item_id : String) -> void: "Check item's id in ESCORIA_ALL_ITEMS scene."]) var item_inventory_button = all_items.get_inventory_item(item_id).duplicate() items_ids_in_inventory[item_id] = item_inventory_button - get_node(items_container).add_item(item_inventory_button) + get_node(inventory_ui_container).add_item(item_inventory_button) # Add the item to inventory if !escoria.esc_runner.objects.has(item_id): @@ -90,7 +90,7 @@ func remove_item_by_id(item_id : String) -> void: item_inventory_button.disconnect("inventory_item_unfocused", escoria.inputs_manager, "_on_mouse_exited_inventory_item") - get_node(items_container).remove_item(item_inventory_button) + get_node(inventory_ui_container).remove_item(item_inventory_button) item_inventory_button.queue_free() items_ids_in_inventory.erase(item_id) diff --git a/addons/escoria-core/game/scenes/sound/bg_music.gd b/addons/escoria-core/game/scenes/sound/bg_music.gd new file mode 100644 index 00000000..5e1e9054 --- /dev/null +++ b/addons/escoria-core/game/scenes/sound/bg_music.gd @@ -0,0 +1,42 @@ +extends Control +class_name ESCBackgroundMusic + +func get_class(): + return "ESCBackgroundMusic" + +onready var stream = $AudioStreamPlayer +var state = "default" +export var global_id = "bg_music" + + +func game_cleared(): + set_state("off", true) + self.disconnect("tree_exited", escoria.esc_runner, "object_exit_scene") + escoria.register_object(self) + + +func set_state(p_state, p_force = false): + # If already playing this stream, keep playing, unless p_force + if p_state == state and not p_force and stream.is_playing(): + return + + state = p_state + + # If state is "off"/"default", turn off music + if state == "off" or state == "default": + stream.stream = null + return + + var resource = load(p_state) + + stream.stream = resource + + if stream.stream: + resource.set_loop(true) + if ProjectSettings.has_setting("escoria/sound/music_volume"): + stream.volume_db = ProjectSettings.get_setting("escoria/sound/music_volume") + stream.play() + +func _ready(): + escoria.register_object(self) + diff --git a/addons/escoria-core/game/scenes/sound/bg_music.tscn b/addons/escoria-core/game/scenes/sound/bg_music.tscn new file mode 100644 index 00000000..38aaf480 --- /dev/null +++ b/addons/escoria-core/game/scenes/sound/bg_music.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://addons/escoria-core/game/scenes/sound/bg_music.gd" type="Script" id=1] + +[node name="bg_music" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_right = -1680.0 +margin_bottom = -1050.0 +mouse_filter = 2 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] diff --git a/addons/escoria-core/game/scenes/sound/bg_sound.gd b/addons/escoria-core/game/scenes/sound/bg_sound.gd new file mode 100644 index 00000000..410034ff --- /dev/null +++ b/addons/escoria-core/game/scenes/sound/bg_sound.gd @@ -0,0 +1,41 @@ +extends Control +class_name ESCBackgroundSound + +func get_class(): + return "ESCBackgroundSound" + +onready var stream = $AudioStreamPlayer +var state = "default" +export var global_id = "bg_sound" + + +func game_cleared(): + stream.stream = null + escoria.register_object(self) + + +func set_state(p_state, p_force = false): + # If already playing this stream, keep playing, unless p_force + if p_state == state and not p_force and stream.is_playing(): + return + + state = p_state + + # If state is "off"/"default", turn off music + if state == "off" or state == "default": + stream.stream = null + return + + var resource = load(p_state) + + stream.stream = resource + + if stream.stream: + resource.set_loop(false) + if ProjectSettings.has_setting("escoria/sound/sound_volume"): + stream.volume_db = ProjectSettings.get_setting("escoria/sound/sound_volume") + stream.play() + + +func _ready(): + escoria.register_object(self) diff --git a/addons/escoria-core/game/scenes/sound/bg_sound.tscn b/addons/escoria-core/game/scenes/sound/bg_sound.tscn new file mode 100644 index 00000000..3f2214b2 --- /dev/null +++ b/addons/escoria-core/game/scenes/sound/bg_sound.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://addons/escoria-core/game/scenes/sound/bg_sound.gd" type="Script" id=1] + +[node name="bg_sound" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_right = -1680.0 +margin_bottom = -1050.0 +mouse_filter = 2 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] diff --git a/addons/escoria-core/game/scenes/transitions/masks/curtain.png b/addons/escoria-core/game/scenes/transitions/masks/curtain.png new file mode 100644 index 00000000..befa82af Binary files /dev/null and b/addons/escoria-core/game/scenes/transitions/masks/curtain.png differ diff --git a/addons/escoria-core/game/scenes/transitions/masks/from_center.png b/addons/escoria-core/game/scenes/transitions/masks/from_center.png new file mode 100644 index 00000000..1c28b7af Binary files /dev/null and b/addons/escoria-core/game/scenes/transitions/masks/from_center.png differ diff --git a/addons/escoria-core/game/scenes/transitions/masks/shards.png b/addons/escoria-core/game/scenes/transitions/masks/shards.png new file mode 100644 index 00000000..1d62b47b Binary files /dev/null and b/addons/escoria-core/game/scenes/transitions/masks/shards.png differ diff --git a/addons/escoria-core/game/scenes/transitions/shaders/transition.material b/addons/escoria-core/game/scenes/transitions/shaders/transition.material new file mode 100644 index 00000000..fdefbda7 Binary files /dev/null and b/addons/escoria-core/game/scenes/transitions/shaders/transition.material differ diff --git a/addons/escoria-core/game/scenes/transitions/transition.gd b/addons/escoria-core/game/scenes/transitions/transition.gd new file mode 100644 index 00000000..b7232d34 --- /dev/null +++ b/addons/escoria-core/game/scenes/transitions/transition.gd @@ -0,0 +1,28 @@ +extends ColorRect + +export(String, "fade_black", "fade_white", "transition_in", "transition_out") var transition_name +# Reference to the _AnimationPlayer_ node +onready var _anim_player := $AnimationPlayer + + + +signal transition_done + + +func _ready() -> void: + # Plays the animation backward to fade in + _anim_player.play_backwards(transition_name) + + +func fade_out() -> void: + # Plays the Fade animation and wait until it finishes + _anim_player.play(transition_name) + yield(_anim_player, "animation_finished") + emit_signal("transition_done") + +func fade_in() -> void: + # Plays the Fade animation and wait until it finishes + _anim_player.play_backwards(transition_name) + yield(_anim_player, "animation_finished") + emit_signal("transition_done") + diff --git a/addons/escoria-core/game/scenes/transitions/transition.tscn b/addons/escoria-core/game/scenes/transitions/transition.tscn new file mode 100644 index 00000000..52777e84 --- /dev/null +++ b/addons/escoria-core/game/scenes/transitions/transition.tscn @@ -0,0 +1,83 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://addons/escoria-core/game/scenes/transitions/transition.gd" type="Script" id=1] +[ext_resource path="res://addons/escoria-core/game/scenes/transitions/shaders/transition.material" type="Material" id=2] + +[sub_resource type="Animation" id=1] +resource_name = "fade_black" +length = 0.5 +tracks/0/type = "value" +tracks/0/path = NodePath(".:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 0, 0, 0, 0 ), Color( 0, 0, 0, 1 ) ] +} + +[sub_resource type="Animation" id=2] +resource_name = "fade_white" +length = 0.5 +tracks/0/type = "value" +tracks/0/path = NodePath(".:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} + +[sub_resource type="Animation" id=3] +resource_name = "transition_in" +tracks/0/type = "value" +tracks/0/path = NodePath(".:material:shader_param/cutoff") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.0, 1.0 ] +} + +[sub_resource type="Animation" id=4] +resource_name = "transition_out" +tracks/0/type = "value" +tracks/0/path = NodePath(".:material:shader_param/cutoff") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 1.0, 0.0 ] +} + +[node name="scene_transition" type="ColorRect"] +material = ExtResource( 2 ) +anchor_right = 1.0 +anchor_bottom = 1.0 +mouse_filter = 2 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} +transition_name = "transition_out" + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/fade_black = SubResource( 1 ) +anims/fade_white = SubResource( 2 ) +anims/transition_in = SubResource( 3 ) +anims/transition_out = SubResource( 4 ) diff --git a/addons/escoria-core/template_scenes/inventory_item.tscn b/addons/escoria-core/template_scenes/inventory_item.tscn index 01899092..a3005708 100644 --- a/addons/escoria-core/template_scenes/inventory_item.tscn +++ b/addons/escoria-core/template_scenes/inventory_item.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=3 format=2] -[ext_resource path="res://addons/escoria-core/game/core-scripts/inventory_item.gd" type="Script" id=1] +[ext_resource path="res://addons/escoria-core/game/core-scripts/escinventoryitem.gd" type="Script" id=1] [ext_resource path="res://addons/escoria-core/game/assets/images/no_image.png" type="Texture" id=2] [node name="inventory_item" type="TextureButton"] diff --git a/game/characters/mark/mark.tscn b/game/characters/mark/mark.tscn index 3a610818..a996a2ec 100644 --- a/game/characters/mark/mark.tscn +++ b/game/characters/mark/mark.tscn @@ -10,186 +10,186 @@ [sub_resource type="AtlasTexture" id=1] atlas = ExtResource( 4 ) -region = Rect2( 216, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=2] -atlas = ExtResource( 4 ) -region = Rect2( 240, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=3] -atlas = ExtResource( 4 ) -region = Rect2( 264, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=4] -atlas = ExtResource( 4 ) -region = Rect2( 288, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=5] -atlas = ExtResource( 4 ) -region = Rect2( 312, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=6] -atlas = ExtResource( 4 ) region = Rect2( 72, 0, 24, 70 ) -[sub_resource type="AtlasTexture" id=7] +[sub_resource type="AtlasTexture" id=2] atlas = ExtResource( 5 ) region = Rect2( 0, 0, 24, 70 ) -[sub_resource type="AtlasTexture" id=8] +[sub_resource type="AtlasTexture" id=3] atlas = ExtResource( 5 ) region = Rect2( 24, 0, 24, 70 ) -[sub_resource type="AtlasTexture" id=9] +[sub_resource type="AtlasTexture" id=4] atlas = ExtResource( 5 ) region = Rect2( 48, 0, 24, 70 ) -[sub_resource type="AtlasTexture" id=10] +[sub_resource type="AtlasTexture" id=5] atlas = ExtResource( 7 ) region = Rect2( 0, 0, 24, 70 ) +[sub_resource type="AtlasTexture" id=6] +atlas = ExtResource( 7 ) +region = Rect2( 24, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=7] +atlas = ExtResource( 7 ) +region = Rect2( 48, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=8] +atlas = ExtResource( 7 ) +region = Rect2( 72, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=9] +atlas = ExtResource( 7 ) +region = Rect2( 96, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=10] +atlas = ExtResource( 4 ) +region = Rect2( 0, 0, 24, 70 ) + [sub_resource type="AtlasTexture" id=11] -atlas = ExtResource( 7 ) -region = Rect2( 24, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=12] -atlas = ExtResource( 7 ) -region = Rect2( 48, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=13] -atlas = ExtResource( 7 ) -region = Rect2( 72, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=14] -atlas = ExtResource( 7 ) -region = Rect2( 96, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=15] -atlas = ExtResource( 4 ) -region = Rect2( 0, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=16] -atlas = ExtResource( 4 ) -region = Rect2( 336, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=17] -atlas = ExtResource( 4 ) -region = Rect2( 360, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=18] -atlas = ExtResource( 4 ) -region = Rect2( 384, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=19] -atlas = ExtResource( 6 ) -region = Rect2( 0, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=20] -atlas = ExtResource( 6 ) -region = Rect2( 24, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=21] -atlas = ExtResource( 4 ) -region = Rect2( 48, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=22] -atlas = ExtResource( 4 ) -region = Rect2( 24, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=23] -atlas = ExtResource( 2 ) -region = Rect2( 0, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=24] -atlas = ExtResource( 2 ) -region = Rect2( 24, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=25] -atlas = ExtResource( 2 ) -region = Rect2( 48, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=26] atlas = ExtResource( 4 ) region = Rect2( 144, 0, 24, 70 ) -[sub_resource type="AtlasTexture" id=27] +[sub_resource type="AtlasTexture" id=12] atlas = ExtResource( 4 ) region = Rect2( 168, 0, 24, 70 ) -[sub_resource type="AtlasTexture" id=28] +[sub_resource type="AtlasTexture" id=13] atlas = ExtResource( 4 ) region = Rect2( 192, 0, 24, 70 ) -[sub_resource type="AtlasTexture" id=29] +[sub_resource type="AtlasTexture" id=14] +atlas = ExtResource( 6 ) +region = Rect2( 0, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=15] +atlas = ExtResource( 6 ) +region = Rect2( 24, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=16] +atlas = ExtResource( 4 ) +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=18] +atlas = ExtResource( 2 ) +region = Rect2( 0, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=19] +atlas = ExtResource( 2 ) +region = Rect2( 24, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=20] +atlas = ExtResource( 2 ) +region = Rect2( 48, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=21] +atlas = ExtResource( 4 ) +region = Rect2( 216, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=22] +atlas = ExtResource( 4 ) +region = Rect2( 240, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=23] +atlas = ExtResource( 4 ) +region = Rect2( 264, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=24] +atlas = ExtResource( 4 ) +region = Rect2( 288, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=25] +atlas = ExtResource( 4 ) +region = Rect2( 312, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=26] +atlas = ExtResource( 4 ) +region = Rect2( 24, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=27] +atlas = ExtResource( 4 ) +region = Rect2( 336, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=28] +atlas = ExtResource( 4 ) +region = Rect2( 360, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=29] +atlas = ExtResource( 4 ) +region = Rect2( 384, 0, 24, 70 ) + [sub_resource type="AtlasTexture" id=30] atlas = ExtResource( 4 ) region = Rect2( 120, 0, 24, 70 ) [sub_resource type="SpriteFrames" id=31] animations = [ { -"frames": [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ) ], -"loop": true, -"name": "walk_right", -"speed": 6.0 -}, { -"frames": [ SubResource( 6 ) ], +"frames": [ SubResource( 1 ) ], "loop": true, "name": "idle_up", "speed": 5.0 }, { -"frames": [ SubResource( 7 ), SubResource( 8 ), SubResource( 9 ) ], +"frames": [ SubResource( 2 ), SubResource( 3 ), SubResource( 4 ) ], "loop": true, "name": "speak_down_right", "speed": 6.0 }, { -"frames": [ SubResource( 10 ), SubResource( 11 ), SubResource( 12 ), SubResource( 13 ), SubResource( 14 ) ], +"frames": [ SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ) ], "loop": true, "name": "speak_right", "speed": 5.0 }, { -"frames": [ SubResource( 15 ) ], +"frames": [ SubResource( 10 ) ], "loop": true, "name": "idle_down", "speed": 5.0 }, { -"frames": [ SubResource( 16 ), SubResource( 17 ), SubResource( 18 ) ], -"loop": true, -"name": "walk_up", -"speed": 6.0 -}, { -"frames": [ SubResource( 19 ), SubResource( 20 ), SubResource( 19 ), SubResource( 20 ), SubResource( 20 ) ], -"loop": true, -"name": "speak_up", -"speed": 3.0 -}, { -"frames": [ SubResource( 21 ) ], -"loop": true, -"name": "idle_right", -"speed": 5.0 -}, { -"frames": [ SubResource( 22 ) ], -"loop": true, -"name": "idle_down_right", -"speed": 5.0 -}, { -"frames": [ SubResource( 23 ), SubResource( 24 ), SubResource( 25 ), SubResource( 24 ), SubResource( 25 ) ], -"loop": true, -"name": "speak_down", -"speed": 6.0 -}, { -"frames": [ SubResource( 26 ), SubResource( 27 ), SubResource( 28 ) ], +"frames": [ SubResource( 11 ), SubResource( 12 ), SubResource( 13 ), SubResource( 12 ) ], "loop": true, "name": "walk_down", "speed": 6.0 }, { -"frames": [ SubResource( 29 ) ], +"frames": [ SubResource( 14 ), SubResource( 15 ), SubResource( 14 ), SubResource( 15 ), SubResource( 15 ) ], +"loop": true, +"name": "speak_up", +"speed": 3.0 +}, { +"frames": [ SubResource( 16 ) ], +"loop": true, +"name": "idle_right", +"speed": 5.0 +}, { +"frames": [ SubResource( 17 ) ], "loop": true, "name": "idle_left", "speed": 5.0 }, { +"frames": [ SubResource( 18 ), SubResource( 19 ), SubResource( 20 ), SubResource( 19 ), SubResource( 20 ) ], +"loop": true, +"name": "speak_down", +"speed": 6.0 +}, { +"frames": [ SubResource( 21 ), SubResource( 22 ), SubResource( 23 ), SubResource( 24 ), SubResource( 25 ) ], +"loop": true, +"name": "walk_right", +"speed": 6.0 +}, { +"frames": [ SubResource( 26 ) ], +"loop": true, +"name": "idle_down_right", +"speed": 5.0 +}, { +"frames": [ SubResource( 27 ), SubResource( 28 ), SubResource( 29 ), SubResource( 28 ) ], +"loop": true, +"name": "walk_up", +"speed": 6.0 +}, { "frames": [ SubResource( 30 ) ], "loop": true, "name": "idle_down_left", diff --git a/game/characters/mark/sfx/footstep_concrete_000.ogg b/game/characters/mark/sfx/footstep_concrete_000.ogg new file mode 100644 index 00000000..163cc564 Binary files /dev/null and b/game/characters/mark/sfx/footstep_concrete_000.ogg differ diff --git a/game/characters/worker/worker.tscn b/game/characters/worker/worker.tscn index b20249e4..c8519e10 100644 --- a/game/characters/worker/worker.tscn +++ b/game/characters/worker/worker.tscn @@ -26,9 +26,6 @@ esc_script = "res://game/rooms/room6/esc/worker.esc" tooltip_name = "Worker" default_action = "look" dialog_color = Color( 0.196078, 0, 1, 1 ) -interact_positions = { -"default": Vector2( -1.662, -141.108 ) -} animations = ExtResource( 2 ) [node name="sprite" type="AnimatedSprite" parent="."] diff --git a/game/items/inventory/axe_escinventoryitem.tscn b/game/items/inventory/axe_escinventoryitem.tscn index 0a11af18..f014a0d9 100644 --- a/game/items/inventory/axe_escinventoryitem.tscn +++ b/game/items/inventory/axe_escinventoryitem.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=3 format=2] -[ext_resource path="res://addons/escoria-core/game/core-scripts/inventory_item.gd" type="Script" id=1] +[ext_resource path="res://addons/escoria-core/game/core-scripts/escinventoryitem.gd" type="Script" id=1] [ext_resource path="res://game/items/textures/genericItem_color_020.png" type="Texture" id=2] [node name="axe" type="TextureButton"] diff --git a/game/items/inventory/bottle_escinventoryitem.tscn b/game/items/inventory/bottle_escinventoryitem.tscn index 0fa4d1f0..304287ea 100644 --- a/game/items/inventory/bottle_escinventoryitem.tscn +++ b/game/items/inventory/bottle_escinventoryitem.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=3 format=2] [ext_resource path="res://game/items/textures/genericItem_color_127.png" type="Texture" id=1] -[ext_resource path="res://addons/escoria-core/game/core-scripts/inventory_item.gd" type="Script" id=2] +[ext_resource path="res://addons/escoria-core/game/core-scripts/escinventoryitem.gd" type="Script" id=2] [node name="empty_sheet" type="TextureButton"] margin_right = 50.0 diff --git a/game/items/inventory/empty_sheet_escinventoryitem.tscn b/game/items/inventory/empty_sheet_escinventoryitem.tscn index 4d942cf7..3054a79b 100644 --- a/game/items/inventory/empty_sheet_escinventoryitem.tscn +++ b/game/items/inventory/empty_sheet_escinventoryitem.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=3 format=2] [ext_resource path="res://game/items/textures/genericItem_color_038.png" type="Texture" id=1] -[ext_resource path="res://addons/escoria-core/game/core-scripts/inventory_item.gd" type="Script" id=2] +[ext_resource path="res://addons/escoria-core/game/core-scripts/escinventoryitem.gd" type="Script" id=2] [node name="empty_sheet" type="TextureButton"] margin_right = 98.0 diff --git a/game/items/inventory/filled_sheet_escinventoryitem.tscn b/game/items/inventory/filled_sheet_escinventoryitem.tscn index 74a891cf..f00eb37e 100644 --- a/game/items/inventory/filled_sheet_escinventoryitem.tscn +++ b/game/items/inventory/filled_sheet_escinventoryitem.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=3 format=2] [ext_resource path="res://game/rooms/room5/items/filled_sheet.png" type="Texture" id=1] -[ext_resource path="res://addons/escoria-core/game/core-scripts/inventory_item.gd" type="Script" id=2] +[ext_resource path="res://addons/escoria-core/game/core-scripts/escinventoryitem.gd" type="Script" id=2] [node name="filled_sheet" type="TextureButton"] margin_right = 88.0 diff --git a/game/items/inventory/hammer_escinventoryitem.tscn b/game/items/inventory/hammer_escinventoryitem.tscn index 8e7e9162..4caea16d 100644 --- a/game/items/inventory/hammer_escinventoryitem.tscn +++ b/game/items/inventory/hammer_escinventoryitem.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=3 format=2] -[ext_resource path="res://addons/escoria-core/game/core-scripts/inventory_item.gd" type="Script" id=1] +[ext_resource path="res://addons/escoria-core/game/core-scripts/escinventoryitem.gd" type="Script" id=1] [ext_resource path="res://game/items/textures/genericItem_color_010.png" type="Texture" id=2] [node name="hammer" type="TextureButton"] diff --git a/game/items/inventory/pen_escinventoryitem.tscn b/game/items/inventory/pen_escinventoryitem.tscn index 07cb4ee3..fc330ed9 100644 --- a/game/items/inventory/pen_escinventoryitem.tscn +++ b/game/items/inventory/pen_escinventoryitem.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=3 format=2] [ext_resource path="res://game/items/textures/genericItem_color_026.png" type="Texture" id=1] -[ext_resource path="res://addons/escoria-core/game/core-scripts/inventory_item.gd" type="Script" id=2] +[ext_resource path="res://addons/escoria-core/game/core-scripts/escinventoryitem.gd" type="Script" id=2] [node name="pen" type="TextureButton"] margin_right = 42.0 diff --git a/game/items/inventory/wrench_escinventoryitem.tscn b/game/items/inventory/wrench_escinventoryitem.tscn index 02380dc8..95e3956e 100644 --- a/game/items/inventory/wrench_escinventoryitem.tscn +++ b/game/items/inventory/wrench_escinventoryitem.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=3 format=2] [ext_resource path="res://game/items/textures/genericItem_color_004.png" type="Texture" id=1] -[ext_resource path="res://addons/escoria-core/game/core-scripts/inventory_item.gd" type="Script" id=2] +[ext_resource path="res://addons/escoria-core/game/core-scripts/escinventoryitem.gd" type="Script" id=2] [node name="wrench" type="TextureButton"] margin_right = 70.0 diff --git a/game/rooms/room1/esc/room1.esc b/game/rooms/room1/esc/room1.esc index 8626e340..14dade66 100755 --- a/game/rooms/room1/esc/room1.esc +++ b/game/rooms/room1/esc/room1.esc @@ -8,3 +8,5 @@ teleport player player_start stop +:ready +set_sound_state bg_music res://game/sfx/contemplation.ogg true diff --git a/game/rooms/room1/room1.tscn b/game/rooms/room1/room1.tscn index a91380ba..ff73a4d5 100644 --- a/game/rooms/room1/room1.tscn +++ b/game/rooms/room1/room1.tscn @@ -15,11 +15,12 @@ __meta__ = { global_id = "room1" esc_script = "res://game/rooms/room1/esc/room1.esc" player_scene = ExtResource( 4 ) -camera_limits = [ Rect2( 0, 0, 1289, 555 ) ] +camera_limits = [ Rect2( 0, 0, 1285, 550 ) ] +editor_debug_mode = 1 [node name="background" parent="." instance=ExtResource( 2 )] -[node name="Advice" type="Label" parent="background"] +[node name="advice" type="Label" parent="background"] margin_left = 90.2752 margin_top = 120.824 margin_right = 270.275 @@ -41,6 +42,7 @@ __meta__ = { } [node name="walkable_area" parent="." instance=ExtResource( 1 )] +position = Vector2( 3.5636, 0 ) [node name="Hotspots" type="Node2D" parent="."] @@ -55,9 +57,6 @@ is_exit = true tooltip_name = "Exit" default_action = "walk" dialog_color = Color( 1, 1, 1, 1 ) -interact_positions = { -"default": Vector2( 1225.47, 353.99 ) -} [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"] polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 ) @@ -73,9 +72,6 @@ esc_script = "res://game/rooms/room1/esc/wall_item.esc" tooltip_name = "Item on the wall" default_action = "look" dialog_color = Color( 1, 1, 1, 1 ) -interact_positions = { -"default": Vector2( 454.608, 373.035 ) -} [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/item"] polygon = PoolVector2Array( 635.586, 253.345, 568.928, 60.1716, 709.047, 120.028, 699.524, 247.903 ) @@ -109,9 +105,6 @@ esc_script = "res://game/rooms/room1/esc/wall_item_popupdialog.esc" tooltip_name = "Item on the wall" default_action = "look" dialog_color = Color( 1, 1, 1, 1 ) -interact_positions = { -"default": Vector2( 861.442, 373.035 ) -} [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/item2"] polygon = PoolVector2Array( 635.586, 253.345, 568.928, 60.1716, 709.047, 120.028, 699.524, 247.903 ) diff --git a/game/rooms/room10/background.tscn b/game/rooms/room10/background.tscn new file mode 100644 index 00000000..4caa8e09 --- /dev/null +++ b/game/rooms/room10/background.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://addons/escoria-core/game/core-scripts/escbackground.gd" type="Script" id=1] + +[node name="background" type="TextureRect"] +margin_right = 1289.0 +margin_bottom = 555.0 +mouse_filter = 2 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="l_platform" type="Line2D" parent="."] +position = Vector2( 2, -266 ) +points = PoolVector2Array( -2.96298, 712.01, 129.973, 614.429, 1167.5, 612.894, 1274.59, 669.705, 1273.25, 812.694, 2.36697, 811.043, 2.36697, 713.389 ) + +[node name="l_door" type="Line2D" parent="."] +position = Vector2( 0, -266 ) +points = PoolVector2Array( 6.61201, 704.409, 6.61203, 389.558, 87.755, 339.775, 87.5463, 649.784 ) +__meta__ = { +"_editor_description_": "" +} diff --git a/game/rooms/room10/esc/button_play_bg_music.esc b/game/rooms/room10/esc/button_play_bg_music.esc new file mode 100644 index 00000000..90e1b7e9 --- /dev/null +++ b/game/rooms/room10/esc/button_play_bg_music.esc @@ -0,0 +1,2 @@ +:use +set_sound_state bg_music res://game/sfx/contemplation.ogg true diff --git a/game/rooms/room10/esc/button_play_snd.esc b/game/rooms/room10/esc/button_play_snd.esc new file mode 100644 index 00000000..61c45cd2 --- /dev/null +++ b/game/rooms/room10/esc/button_play_snd.esc @@ -0,0 +1,3 @@ +:use + +set_sound_state bg_sound res://game/sfx/sounds/laser1.ogg false diff --git a/game/rooms/room10/esc/button_stop_bg_music.esc b/game/rooms/room10/esc/button_stop_bg_music.esc new file mode 100644 index 00000000..20768e9f --- /dev/null +++ b/game/rooms/room10/esc/button_stop_bg_music.esc @@ -0,0 +1,2 @@ +:use +set_sound_state bg_music off true diff --git a/game/rooms/room10/esc/left_exit.esc b/game/rooms/room10/esc/left_exit.esc new file mode 100755 index 00000000..7e5443d5 --- /dev/null +++ b/game/rooms/room10/esc/left_exit.esc @@ -0,0 +1,5 @@ +:exit_scene +set_sound_state bg_sound res://game/sfx/sounds/doorOpen_2.ogg false +change_scene "res://game/rooms/room9/room9.tscn" + + diff --git a/game/rooms/room10/esc/right_exit.esc b/game/rooms/room10/esc/right_exit.esc new file mode 100755 index 00000000..25d9ba02 --- /dev/null +++ b/game/rooms/room10/esc/right_exit.esc @@ -0,0 +1,2 @@ +:exit_scene + diff --git a/game/rooms/room10/esc/room10.esc b/game/rooms/room10/esc/room10.esc new file mode 100755 index 00000000..96dd194c --- /dev/null +++ b/game/rooms/room10/esc/room10.esc @@ -0,0 +1,25 @@ +# :SETUP is called EVERY TIME the room is loaded +# :READY is called only the FIRST TIME the room is loaded + +:setup +> [eq ESC_LAST_SCENE room8] + teleport player r9_l_exit + # Set player look right + set_angle player 180 + stop +> [eq ESC_LAST_SCENE room10] + teleport player r9_r_exit + # Set player look left + set_angle player 270 + stop +> [!last_scene] + teleport player player_start + stop + + + +:ready +set_global open_closets 0 +#set_state r9_closet_left closed +#set_state r9_closet_middle closed +#set_state r9_closet_right closed diff --git a/game/rooms/room10/r_door.tscn b/game/rooms/room10/r_door.tscn new file mode 100644 index 00000000..67f90545 --- /dev/null +++ b/game/rooms/room10/r_door.tscn @@ -0,0 +1,130 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=1] + +[sub_resource type="Animation" id=1] +resource_name = "r_door_close" +tracks/0/type = "value" +tracks/0/path = NodePath("r_door_closed:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("r_door_opened:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/2/type = "value" +tracks/2/path = NodePath(".:is_exit") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/3/type = "value" +tracks/3/path = NodePath(".:default_action") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ "look" ] +} + +[sub_resource type="Animation" id=2] +resource_name = "r_door_open" +length = 0.3 +tracks/0/type = "value" +tracks/0/path = NodePath("r_door_closed:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("r_door_opened:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/2/type = "value" +tracks/2/path = NodePath(".:is_exit") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/3/type = "value" +tracks/3/path = NodePath(".:default_action") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ "walk" ] +} + +[node name="r_door" type="Area2D"] +script = ExtResource( 1 ) +global_id = "r9_door" +esc_script = "res://game/rooms/room9/esc/r9_door.esc" +tooltip_name = "Door" +default_action = "look" +dialog_color = Color( 1, 1, 1, 1 ) + +[node name="r_door_closed" type="Polygon2D" parent="."] +color = Color( 0.482353, 0.568627, 1, 1 ) +polygon = PoolVector2Array( 1172.3, 44.8186, 1172.3, 348.012, 1273.9, 401.983, 1277.07, 89.2657 ) + +[node name="r_door_opened" type="Polygon2D" parent="."] +visible = false +color = Color( 0.482353, 0.568627, 1, 1 ) +polygon = PoolVector2Array( 1172.3, 44.8186, 1172.3, 348.012, 1029.82, 349.887, 1025.19, 42.1269 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/r_door_close = SubResource( 1 ) +anims/r_door_open = SubResource( 2 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] +polygon = PoolVector2Array( 1169.35, 41.7644, 1168.09, 347.925, 1275.18, 407.141, 1278.96, 88.3814 ) diff --git a/game/rooms/room10/room10.tscn b/game/rooms/room10/room10.tscn new file mode 100644 index 00000000..0479cf73 --- /dev/null +++ b/game/rooms/room10/room10.tscn @@ -0,0 +1,129 @@ +[gd_scene load_steps=10 format=2] + +[ext_resource path="res://addons/escoria-core/game/core-scripts/escterrain.gd" type="Script" id=1] +[ext_resource path="res://game/rooms/room10/background.tscn" type="PackedScene" id=2] +[ext_resource path="res://game/ui/commons/fonts/caslonantique.tres" type="DynamicFont" id=3] +[ext_resource path="res://game/characters/mark/mark.tscn" type="PackedScene" id=4] +[ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6] +[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=7] +[ext_resource path="res://game/rooms/room2/button/button.tscn" type="PackedScene" id=8] +[ext_resource path="res://game/rooms/room10/r_door.tscn" type="PackedScene" id=9] + +[sub_resource type="NavigationPolygon" id=1] +vertices = PoolVector2Array( 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, 864.626, 613.518, 1143.08, 613.35, -9.16094, 803.802, 386.666, 618.012, 129.634, 615.792, 84.5821, 654.06, -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698 ) +polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 0, 3, 6, 7 ), PoolIntArray( 8, 7, 6, 9 ), PoolIntArray( 9, 6, 10, 11, 12 ) ] +outlines = [ PoolVector2Array( -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698, 84.5821, 654.06, 129.634, 615.792, 386.666, 618.012, 864.626, 613.518, 1143.08, 613.35, 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, -9.16094, 803.802 ) ] + +[node name="room10" type="Node2D"] +script = ExtResource( 6 ) +__meta__ = { +"_edit_vertical_guides_": [ ] +} +global_id = "room10" +esc_script = "res://game/rooms/room10/esc/room10.esc" +player_scene = ExtResource( 4 ) +camera_limits = [ Rect2( 0, 0, 1289, 555 ) ] + +[node name="background" parent="." instance=ExtResource( 2 )] + +[node name="room_label" type="Label" parent="background"] +margin_right = 70.0 +margin_bottom = 16.0 +custom_fonts/font = ExtResource( 3 ) +text = "ROOM 10" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="walkable_area" type="Navigation2D" parent="."] +script = ExtResource( 1 ) + +[node name="platform" type="NavigationPolygonInstance" parent="walkable_area"] +position = Vector2( 6.73163, -264.779 ) +navpoly = SubResource( 1 ) +__meta__ = { +"_editor_description_": "" +} + +[node name="Hotspots" type="Node2D" parent="."] + +[node name="l_door" type="Area2D" parent="Hotspots"] +script = ExtResource( 7 ) +global_id = "r10_l_exit" +esc_script = "res://game/rooms/room10/esc/left_exit.esc" +is_exit = true +tooltip_name = "Left exit" +default_action = "walk" +dialog_color = Color( 1, 1, 1, 1 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"] +polygon = PoolVector2Array( 0.328762, 440.897, 1.85199, 119.926, 85.9517, 74.6212, 87.1409, 377.869 ) + +[node name="Position2D" type="Position2D" parent="Hotspots/l_door"] +position = Vector2( 37.4521, 392.045 ) + +[node name="r_door" parent="Hotspots" instance=ExtResource( 9 )] +esc_script = "res://game/rooms/room10/esc/right_exit.esc" + +[node name="Position2D" type="Position2D" parent="Hotspots/r_door"] +position = Vector2( 1198.65, 391.058 ) + +[node name="button_stop_bg_music" parent="Hotspots" instance=ExtResource( 8 )] +position = Vector2( 243.165, 154.97 ) +global_id = "r10_btn_stop_bg_music" +esc_script = "res://game/rooms/room10/esc/button_stop_bg_music.esc" + +[node name="Position2D" type="Position2D" parent="Hotspots/button_stop_bg_music"] +position = Vector2( 22.6786, 212.927 ) + +[node name="Label" type="Label" parent="Hotspots/button_stop_bg_music"] +margin_left = -8.81946 +margin_top = -30.2381 +margin_right = 61.1805 +margin_bottom = -14.2381 +custom_fonts/font = ExtResource( 3 ) +text = "Stop bg music" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="button_play_bg_music" parent="Hotspots" instance=ExtResource( 8 )] +position = Vector2( 377.976, 154.97 ) +global_id = "r10_btn_play_bg_music" +esc_script = "res://game/rooms/room10/esc/button_play_bg_music.esc" + +[node name="Position2D" type="Position2D" parent="Hotspots/button_play_bg_music"] +position = Vector2( 22.6786, 212.927 ) + +[node name="Label" type="Label" parent="Hotspots/button_play_bg_music"] +margin_left = -8.81946 +margin_top = -30.2381 +margin_right = 61.1805 +margin_bottom = -14.2381 +custom_fonts/font = ExtResource( 3 ) +text = "Play bg music" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="button_play_sound" parent="Hotspots" instance=ExtResource( 8 )] +position = Vector2( 646.339, 154.97 ) +global_id = "r10_btn_play_snd" +esc_script = "res://game/rooms/room10/esc/button_play_snd.esc" + +[node name="Position2D" type="Position2D" parent="Hotspots/button_play_sound"] +position = Vector2( 22.6786, 212.927 ) + +[node name="Label" type="Label" parent="Hotspots/button_play_sound"] +margin_left = -8.81946 +margin_top = -30.2381 +margin_right = 61.1805 +margin_bottom = -14.2381 +custom_fonts/font = ExtResource( 3 ) +text = "Play sound" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="player_start" type="Position2D" parent="."] +position = Vector2( 76.7617, 437.649 ) diff --git a/game/rooms/room10/walkable_area.tscn b/game/rooms/room10/walkable_area.tscn new file mode 100644 index 00000000..9e64765c --- /dev/null +++ b/game/rooms/room10/walkable_area.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://addons/escoria-core/game/core-scripts/escterrain.gd" type="Script" id=1] + +[sub_resource type="NavigationPolygon" id=1] +vertices = PoolVector2Array( 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, 129.634, 615.792, 1143.08, 613.35, -9.16094, 803.802, 84.5821, 654.06, -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698 ) +polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 0, 3, 6, 7 ), PoolIntArray( 7, 6, 8, 9, 10 ) ] +outlines = [ PoolVector2Array( -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698, 84.5821, 654.06, 129.634, 615.792, 1143.08, 613.35, 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, -9.16094, 803.802 ) ] + +[node name="walkable_area" type="Navigation2D"] +script = ExtResource( 1 ) + +[node name="platform" type="NavigationPolygonInstance" parent="."] +position = Vector2( 6.73163, -264.779 ) +navpoly = SubResource( 1 ) +__meta__ = { +"_editor_description_": "" +} diff --git a/game/rooms/room3/room3.tscn b/game/rooms/room3/room3.tscn index 321f8d0c..0c44230e 100644 --- a/game/rooms/room3/room3.tscn +++ b/game/rooms/room3/room3.tscn @@ -38,9 +38,6 @@ __meta__ = { global_id = "r3_right_platform" esc_script = "res://game/rooms/room3/esc/right_platform.esc" dialog_color = Color( 1, 1, 1, 1 ) -interact_positions = { -"default": Vector2( 430.893, 451.052 ) -} [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_platform"] polygon = PoolVector2Array( 870.974, 538.342, 827.536, 353.995, 1181.4, 357.174, 1287.34, 413.325, 1289.46, 545.758 ) @@ -64,9 +61,6 @@ esc_script = "res://game/rooms/room3/esc/right_exit.esc" is_exit = true tooltip_name = "Exit" dialog_color = Color( 1, 1, 1, 1 ) -interact_positions = { -"default": Vector2( 1225.47, 353.99 ) -} [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"] polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 ) @@ -84,9 +78,6 @@ esc_script = "res://game/rooms/room3/esc/left_exit.esc" is_exit = true tooltip_name = "Exit" dialog_color = Color( 1, 1, 1, 1 ) -interact_positions = { -"default": Vector2( 44.1375, 384.691 ) -} [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"] polygon = PoolVector2Array( -2.71457, 437.818, 6.6293, 121.462, 89.3893, 74.7422, 88.0545, 376.416 ) @@ -97,9 +88,6 @@ position = Vector2( 44.1375, 384.691 ) [node name="button" parent="Hotspots" instance=ExtResource( 7 )] global_id = "r3_button" esc_script = "res://game/rooms/room3/esc/button.esc" -interact_positions = { -"default": Vector2( 347.767, 378.011 ) -} [node name="Position2D" type="Position2D" parent="Hotspots/button"] position = Vector2( 347.767, 378.011 ) diff --git a/game/rooms/room4/room4.tscn b/game/rooms/room4/room4.tscn index b009d7d4..34372756 100644 --- a/game/rooms/room4/room4.tscn +++ b/game/rooms/room4/room4.tscn @@ -20,6 +20,7 @@ global_id = "room4" esc_script = "res://game/rooms/room4/esc/room4.esc" player_scene = ExtResource( 4 ) camera_limits = [ Rect2( 0, 0, 1666, 574 ) ] +editor_debug_mode = 1 [node name="background" type="TextureRect" parent="."] margin_right = 1666.0 @@ -35,20 +36,6 @@ scale = Vector2( 0.692794, 0.692794 ) texture = ExtResource( 7 ) centered = false -[node name="l_platform" type="Line2D" parent="background"] -visible = false -position = Vector2( 2, -266 ) -points = PoolVector2Array( 80.1882, 575.221, 161.613, 664.655, 472.392, 662.45, 685.125, 526.838, 860.996, 526.838, 1114.43, 647.617, 2242.97, 610.492, 2385.84, 672.401, 2389.93, 804.937, 1000, 795.942, 805.904, 564.979, 733.86, 562.86, 580.457, 806.537, -4.3772, 811.004, 4.10239, 576.556, 78.8534, 576.556 ) - -[node name="r_door" type="Line2D" parent="background"] -visible = false -position = Vector2( 0, -267.828 ) -points = PoolVector2Array( 2252.91, 610.733, 2251.32, 332.938, 2384.66, 386.909, 2386.25, 674.229, 2254.5, 615.495 ) - -[node name="l_door" type="Line2D" parent="background"] -visible = false -points = PoolVector2Array( 6.10242, 307.886, 2.0979, 129.017, 84.858, 129.017, 84.858, 311.89, 4.76758, 307.886 ) - [node name="room_label" type="Label" parent="background"] margin_right = 40.0 margin_bottom = 14.0 @@ -88,9 +75,6 @@ global_id = "l_exit" esc_script = "res://game/rooms/room4/esc/left_exit.esc" is_exit = true dialog_color = Color( 1, 1, 1, 1 ) -interact_positions = { -"default": Vector2( 83.6298, 279.703 ) -} [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"] polygon = PoolVector2Array( 29.1046, 292.156, 31.0151, 76.8949, 147.177, 74.4792, 151.415, 293.788 ) @@ -104,9 +88,6 @@ global_id = "r_exit" esc_script = "res://game/rooms/room4/esc/right_exit.esc" is_exit = true dialog_color = Color( 1, 1, 1, 1 ) -interact_positions = { -"default": Vector2( 1611.46, 301.017 ) -} [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"] polygon = PoolVector2Array( 1567.92, 294.848, 1573.21, 92.4902, 1657.34, 129.485, 1654.79, 343.583 ) diff --git a/game/rooms/room6/esc/worker.esc b/game/rooms/room6/esc/worker.esc index 63badd25..64e565d0 100755 --- a/game/rooms/room6/esc/worker.esc +++ b/game/rooms/room6/esc/worker.esc @@ -1,9 +1,11 @@ :look say player "He's looking a bit odd." +#################################################################################################### :pickup say player "I don't think he'd like that." +#################################################################################################### :talk > [!talked_once] say player "Uhm..." @@ -31,16 +33,17 @@ say player "I don't think he'd like that." say worker "Go away, kid." stop - +#################################################################################################### :use r5_filled_sheet jump give r5_filled_sheet +#################################################################################################### :give r5_filled_sheet inventory_remove r5_filled_sheet - say worker "Hey! That's perfect!" say worker "I can finally get away from here!" -walk_to_pos worker 1200 400 +walk_to_pos_block worker 1200 400 + #set_angle worker 45 # Open the door diff --git a/game/rooms/room6/room6.tscn b/game/rooms/room6/room6.tscn index 8c2955c9..e0424293 100644 --- a/game/rooms/room6/room6.tscn +++ b/game/rooms/room6/room6.tscn @@ -46,15 +46,6 @@ width = 4.0 [node name="walkable_area" type="Navigation2D" parent="."] script = ExtResource( 1 ) -scales = null -bitmaps_scale = Vector2( 1, 1 ) -lightmap = null -player_speed_multiplier = 1.0 -player_doubleclick_speed_multiplier = 1.5 -lightmap_modulate = Color( 1, 1, 1, 1 ) -debug_mode = 1 -scale_min = 0.3 -scale_max = 1.0 [node name="platform" type="NavigationPolygonInstance" parent="walkable_area"] position = Vector2( 6.73163, -264.779 ) diff --git a/game/rooms/room9/esc/right_exit.esc b/game/rooms/room9/esc/right_exit.esc index 25d9ba02..82b6a2f6 100755 --- a/game/rooms/room9/esc/right_exit.esc +++ b/game/rooms/room9/esc/right_exit.esc @@ -1,2 +1,2 @@ :exit_scene - +change_scene "res://game/rooms/room10/room10.tscn" diff --git a/game/rooms/room9/esc/stand.esc b/game/rooms/room9/esc/stand.esc index e565ab80..d0fd0583 100755 --- a/game/rooms/room9/esc/stand.esc +++ b/game/rooms/room9/esc/stand.esc @@ -1,4 +1,4 @@ :use r9_bottle set_state r9_stand set_bottle -set_state r9_door r_door_open +set_state r9_r_exit r_door_open diff --git a/game/rooms/room9/room9.tscn b/game/rooms/room9/room9.tscn index 08aadea0..fb3bb9ad 100644 --- a/game/rooms/room9/room9.tscn +++ b/game/rooms/room9/room9.tscn @@ -81,6 +81,7 @@ polygon = PoolVector2Array( 0.328762, 440.897, 1.85199, 119.926, 85.9517, 74.621 position = Vector2( 37.4521, 392.045 ) [node name="r_door" parent="Hotspots" instance=ExtResource( 9 )] +global_id = "r9_r_exit" esc_script = "res://game/rooms/room9/esc/right_exit.esc" [node name="Position2D" type="Position2D" parent="Hotspots/r_door"] diff --git a/game/sfx/Game-Menu_Looping.mp3 b/game/sfx/Game-Menu_Looping.mp3 new file mode 100644 index 00000000..4ce5d7a7 Binary files /dev/null and b/game/sfx/Game-Menu_Looping.mp3 differ diff --git a/game/sfx/Mystical-Ocean-Puzzle-Game.mp3 b/game/sfx/Mystical-Ocean-Puzzle-Game.mp3 new file mode 100644 index 00000000..4bedd5ae Binary files /dev/null and b/game/sfx/Mystical-Ocean-Puzzle-Game.mp3 differ diff --git a/game/sfx/contemplation.ogg b/game/sfx/contemplation.ogg new file mode 100644 index 00000000..339b3836 Binary files /dev/null and b/game/sfx/contemplation.ogg differ diff --git a/game/sfx/sounds/doorClose_2.ogg b/game/sfx/sounds/doorClose_2.ogg new file mode 100644 index 00000000..f64212b9 Binary files /dev/null and b/game/sfx/sounds/doorClose_2.ogg differ diff --git a/game/sfx/sounds/doorOpen_2.ogg b/game/sfx/sounds/doorOpen_2.ogg new file mode 100644 index 00000000..d57087c1 Binary files /dev/null and b/game/sfx/sounds/doorOpen_2.ogg differ diff --git a/game/sfx/sounds/laser1.ogg b/game/sfx/sounds/laser1.ogg new file mode 100644 index 00000000..3888e4c9 Binary files /dev/null and b/game/sfx/sounds/laser1.ogg differ diff --git a/game/sfx/sounds/laser2.ogg b/game/sfx/sounds/laser2.ogg new file mode 100644 index 00000000..46f6a9a0 Binary files /dev/null and b/game/sfx/sounds/laser2.ogg differ diff --git a/game/sfx/sounds/laser3.ogg b/game/sfx/sounds/laser3.ogg new file mode 100644 index 00000000..799b106d Binary files /dev/null and b/game/sfx/sounds/laser3.ogg differ diff --git a/game/sfx/sounds/laser4.ogg b/game/sfx/sounds/laser4.ogg new file mode 100644 index 00000000..4ab508bf Binary files /dev/null and b/game/sfx/sounds/laser4.ogg differ diff --git a/game/sfx/sounds/laser5.ogg b/game/sfx/sounds/laser5.ogg new file mode 100644 index 00000000..fdd7f9bb Binary files /dev/null and b/game/sfx/sounds/laser5.ogg differ diff --git a/game/ui/commons/fonts/caslonantique.tres b/game/ui/commons/fonts/caslonantique.tres index 9c26f12d..f97c851e 100644 --- a/game/ui/commons/fonts/caslonantique.tres +++ b/game/ui/commons/fonts/caslonantique.tres @@ -3,4 +3,5 @@ [ext_resource path="res://addons/escoria-core/game/assets/fonts/efmi/efmi.TTF" type="DynamicFontData" id=1] [resource] +size = 21 font_data = ExtResource( 1 ) diff --git a/game/ui/commons/main_menu.gd b/game/ui/commons/main_menu.gd deleted file mode 100644 index fc1c50ee..00000000 --- a/game/ui/commons/main_menu.gd +++ /dev/null @@ -1,12 +0,0 @@ -extends Control - - -func _on_new_game_pressed(): - escoria.new_game() - -func _on_load_game_pressed(): - # Show Loading screen - pass - -func _on_quit_pressed(): - get_tree().quit() diff --git a/game/ui/commons/main_menu.tscn b/game/ui/commons/main_menu.tscn deleted file mode 100644 index 52131723..00000000 --- a/game/ui/commons/main_menu.tscn +++ /dev/null @@ -1,60 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://game/ui/commons/main_menu.gd" type="Script" id=1] -[ext_resource path="res://game/ui/commons/fonts/caslonantique.tres" type="DynamicFont" id=2] - -[node name="main_menu" type="Control"] -anchor_right = 1.0 -anchor_bottom = 1.0 -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="VBoxContainer" type="VBoxContainer" parent="."] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -92.0 -margin_top = -73.5 -margin_right = 92.0 -margin_bottom = 73.5 -custom_constants/separation = 10 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="new_game" type="Button" parent="VBoxContainer"] -margin_right = 184.0 -margin_bottom = 83.0 -size_flags_vertical = 3 -custom_fonts/font = ExtResource( 2 ) -text = "New game" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="load_game" type="Button" parent="VBoxContainer"] -margin_top = 93.0 -margin_right = 184.0 -margin_bottom = 115.0 -custom_fonts/font = ExtResource( 2 ) -text = "Load game" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="quit" type="Button" parent="VBoxContainer"] -margin_top = 125.0 -margin_right = 184.0 -margin_bottom = 147.0 -custom_fonts/font = ExtResource( 2 ) -text = "Quit" -__meta__ = { -"_edit_use_anchors_": false -} - -[connection signal="pressed" from="VBoxContainer/new_game" to="." method="_on_new_game_pressed"] -[connection signal="pressed" from="VBoxContainer/load_game" to="." method="_on_load_game_pressed"] -[connection signal="pressed" from="VBoxContainer/quit" to="." method="_on_quit_pressed"] diff --git a/game/ui/commons/main_menu/main_menu.gd b/game/ui/commons/main_menu/main_menu.gd new file mode 100644 index 00000000..354ac3cc --- /dev/null +++ b/game/ui/commons/main_menu/main_menu.gd @@ -0,0 +1,20 @@ +extends Control + + +func _ready(): + escoria.esc_level_runner.set_sound_state(["bg_music", + "res://game/sfx/Game-Menu_Looping.mp3", true]) + +func _on_new_game_pressed(): + escoria.new_game() + +func _on_load_game_pressed(): + # Show Loading screen + pass + +func _on_quit_pressed(): + get_tree().quit() + + +func _on_continue_pressed(): + pass # Replace with function body. diff --git a/game/ui/commons/main_menu/main_menu.tscn b/game/ui/commons/main_menu/main_menu.tscn new file mode 100644 index 00000000..01e226ae --- /dev/null +++ b/game/ui/commons/main_menu/main_menu.tscn @@ -0,0 +1,81 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://game/ui/commons/main_menu/main_menu.gd" type="Script" id=1] +[ext_resource path="res://game/ui/commons/fonts/caslonantique.tres" type="DynamicFont" id=2] +[ext_resource path="res://addons/escoria-core/logo/escoria-logo-small.png" type="Texture" id=3] + +[node name="main_menu" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Panel" type="Panel" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +__meta__ = { +"_edit_use_anchors_": false, +"_editor_description_": "" +} + +[node name="TextureRect" type="TextureRect" parent="Panel"] +anchor_left = 0.5 +anchor_right = 0.5 +margin_left = -308.0 +margin_top = 52.0 +margin_right = 308.0 +margin_bottom = 288.0 +texture = ExtResource( 3 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VBoxContainer" type="VBoxContainer" parent="Panel"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -179.0 +margin_top = -35.746 +margin_right = 179.0 +margin_bottom = 227.254 +custom_constants/separation = 10 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="new_game" type="Button" parent="Panel/VBoxContainer"] +margin_right = 358.0 +margin_bottom = 189.0 +size_flags_vertical = 3 +custom_fonts/font = ExtResource( 2 ) +text = "New game" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="load_game" type="Button" parent="Panel/VBoxContainer"] +margin_top = 199.0 +margin_right = 358.0 +margin_bottom = 226.0 +custom_fonts/font = ExtResource( 2 ) +text = "Load game" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="quit" type="Button" parent="Panel/VBoxContainer"] +margin_top = 236.0 +margin_right = 358.0 +margin_bottom = 263.0 +custom_fonts/font = ExtResource( 2 ) +text = "Quit" +__meta__ = { +"_edit_use_anchors_": false +} + +[connection signal="pressed" from="Panel/VBoxContainer/new_game" to="." method="_on_new_game_pressed"] +[connection signal="pressed" from="Panel/VBoxContainer/load_game" to="." method="_on_load_game_pressed"] +[connection signal="pressed" from="Panel/VBoxContainer/quit" to="." method="_on_quit_pressed"] diff --git a/game/ui/commons/pause_menu/pause_menu.gd b/game/ui/commons/pause_menu/pause_menu.gd new file mode 100644 index 00000000..84da0002 --- /dev/null +++ b/game/ui/commons/pause_menu/pause_menu.gd @@ -0,0 +1,17 @@ +extends Control + + +func _on_continue_pressed(): + escoria.main.current_scene.game.pause_game() + + +func _on_save_game_pressed(): + pass + + +func _on_load_game_pressed(): + pass + + +func _on_quit_pressed(): + get_tree().quit() diff --git a/game/ui/commons/pause_menu/pause_menu.tscn b/game/ui/commons/pause_menu/pause_menu.tscn new file mode 100644 index 00000000..d03d539b --- /dev/null +++ b/game/ui/commons/pause_menu/pause_menu.tscn @@ -0,0 +1,93 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://game/ui/commons/pause_menu/pause_menu.gd" type="Script" id=1] +[ext_resource path="res://game/ui/commons/fonts/caslonantique.tres" type="DynamicFont" id=2] +[ext_resource path="res://addons/escoria-core/logo/escoria-logo-small.png" type="Texture" id=3] + +[node name="pause_menu" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Panel" type="Panel" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="TextureRect" type="TextureRect" parent="Panel"] +anchor_left = 0.5 +anchor_right = 0.5 +margin_left = -308.0 +margin_right = 308.0 +margin_bottom = 236.0 +texture = ExtResource( 3 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VBoxContainer" type="VBoxContainer" parent="Panel"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -127.8 +margin_top = -80.62 +margin_right = 127.8 +margin_bottom = 80.62 +custom_constants/separation = 10 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="continue" type="Button" parent="Panel/VBoxContainer"] +margin_right = 255.0 +margin_bottom = 32.0 +size_flags_vertical = 3 +custom_fonts/font = ExtResource( 2 ) +text = "Continue" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="save_game" type="Button" parent="Panel/VBoxContainer"] +margin_top = 42.0 +margin_right = 255.0 +margin_bottom = 75.0 +size_flags_vertical = 3 +custom_fonts/font = ExtResource( 2 ) +text = "Save game" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="load_game" type="Button" parent="Panel/VBoxContainer"] +margin_top = 85.0 +margin_right = 255.0 +margin_bottom = 118.0 +size_flags_vertical = 3 +custom_fonts/font = ExtResource( 2 ) +text = "Load game" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="quit" type="Button" parent="Panel/VBoxContainer"] +margin_top = 128.0 +margin_right = 255.0 +margin_bottom = 161.0 +size_flags_vertical = 3 +custom_fonts/font = ExtResource( 2 ) +text = "Quit" +__meta__ = { +"_edit_use_anchors_": false +} + +[connection signal="pressed" from="Panel/VBoxContainer/continue" to="." method="_on_continue_pressed"] +[connection signal="pressed" from="Panel/VBoxContainer/save_game" to="." method="_on_save_game_pressed"] +[connection signal="pressed" from="Panel/VBoxContainer/load_game" to="." method="_on_load_game_pressed"] +[connection signal="pressed" from="Panel/VBoxContainer/quit" to="." method="_on_quit_pressed"] diff --git a/game/ui/ui_9verbs/game.gd b/game/ui/ui_9verbs/game.gd index 3e184006..62f79d8a 100644 --- a/game/ui/ui_9verbs/game.gd +++ b/game/ui/ui_9verbs/game.gd @@ -31,6 +31,9 @@ Implement methods to react to inputs. - _on_event_done(event_name: String) """ +onready var verbs_menu = $ui/panel_down/verbs_layer/verbs_menu +onready var tooltip = $ui/panel_down/tooltip_layer/tooltip + func _ready(): ProjectSettings.set_setting("escoria/ui/tooltip_follows_mouse", false) @@ -47,32 +50,32 @@ func _input(event): func left_click_on_bg(position : Vector2) -> void: escoria.do("walk", ["player", position]) escoria.esc_runner.clear_current_action() - $ui/verbs_layer/verbs_menu.unselect_actions() + verbs_menu.unselect_actions() func right_click_on_bg(position : Vector2) -> void: escoria.do("walk", ["player", position]) escoria.esc_runner.clear_current_action() - $ui/verbs_layer/verbs_menu.unselect_actions() + verbs_menu.unselect_actions() func left_double_click_on_bg(position : Vector2) -> void: escoria.do("walk", ["player", position, true]) escoria.esc_runner.clear_current_action() - $ui/verbs_layer/verbs_menu.unselect_actions() + verbs_menu.unselect_actions() ## ITEM FOCUS ## func element_focused(element_id : String) -> void: var target_obj = escoria.esc_runner.get_object(element_id) - $ui/tooltip_layer/tooltip.set_target(target_obj.tooltip_name) + tooltip.set_target(target_obj.tooltip_name) if escoria.esc_runner.current_action != "use" && escoria.esc_runner.current_tool == null: if target_obj is ESCItem: - $ui/verbs_layer/verbs_menu.set_by_name(target_obj.default_action) + verbs_menu.set_by_name(target_obj.default_action) func element_unfocused() -> void: - $ui/tooltip_layer/tooltip.clear() - $ui/verbs_layer/verbs_menu.unselect_actions() + tooltip.clear() + verbs_menu.unselect_actions() ## ITEMS ## @@ -80,7 +83,7 @@ func left_click_on_item(item_global_id : String, event : InputEvent) -> void: escoria.do("item_left_click", [item_global_id, event]) func right_click_on_item(item_global_id : String, event : InputEvent) -> void: - escoria.esc_runner.set_current_action($ui/verbs_layer/verbs_menu.selected_action) + escoria.esc_runner.set_current_action(verbs_menu.selected_action) escoria.do("item_right_click", [item_global_id, event]) func left_double_click_on_item(item_global_id : String, event : InputEvent) -> void: @@ -93,54 +96,70 @@ func left_click_on_inventory_item(inventory_item_global_id : String, event : Inp # if escoria.esc_runner.current_action == "use": # var item = escoria.esc_runner.get_object(inventory_item_global_id) # if item.texture: -# $ui/verbs_layer/verbs_menu.set_tool_texture(item.texture) +# verbs_menu.set_tool_texture(item.texture) # elif item.inventory_item_scene_file.instance().texture_normal: -# $ui/verbs_layer/verbs_menu.set_tool_texture(item.inventory_item_scene_file.instance().texture_normal) +# verbs_menu.set_tool_texture(item.inventory_item_scene_file.instance().texture_normal) func right_click_on_inventory_item(inventory_item_global_id : String, event : InputEvent) -> void: - escoria.esc_runner.set_current_action($ui/verbs_layer/verbs_menu.selected_action) + escoria.esc_runner.set_current_action(verbs_menu.selected_action) escoria.do("item_right_click", [inventory_item_global_id, event]) -func left_double_click_on_inventory_item(inventory_item_global_id : String, event : InputEvent) -> void: +func left_double_click_on_inventory_item(_inventory_item_global_id : String, _event : InputEvent) -> void: pass func inventory_item_focused(inventory_item_global_id : String) -> void: var target_obj = escoria.esc_runner.get_object(inventory_item_global_id) - $ui/tooltip_layer/tooltip.set_target(target_obj.tooltip_name) + tooltip.set_target(target_obj.tooltip_name) if escoria.esc_runner.current_action != "use" && escoria.esc_runner.current_tool == null: if target_obj is ESCItem: - $ui/verbs_layer/verbs_menu.set_by_name(target_obj.default_action_inventory) + verbs_menu.set_by_name(target_obj.default_action_inventory) func inventory_item_unfocused() -> void: - $ui/tooltip_layer/tooltip.set_target("") - $ui/verbs_layer/verbs_menu.unselect_actions() + tooltip.set_target("") + verbs_menu.unselect_actions() func open_inventory(): - $ui/inventory_layer/inventory_ui/inventory_button.show_inventory() + pass func close_inventory(): - $ui/inventory_layer/inventory_ui/inventory_button.close_inventory() - -func mousewheel_action(direction : int): pass + +func mousewheel_action(_direction : int): + pass + + func hide_ui(): $ui/panel_down.hide() - $ui/verbs_layer/verbs_menu.hide() - $ui/inventory_layer/inventory_ui.hide() - $ui/tooltip_layer/tooltip.hide() + verbs_menu.hide() + $ui/panel_down/inventory_layer/inventory_ui.hide() + tooltip.hide() + func show_ui(): $ui/panel_down.show() - $ui/verbs_layer/verbs_menu.show() - $ui/inventory_layer/inventory_ui.show() - $ui/tooltip_layer/tooltip.show() + verbs_menu.show() + $ui/panel_down/inventory_layer/inventory_ui.show() + tooltip.show() -func _on_event_done(event_name: String): +func _on_event_done(_event_name: String): escoria.esc_runner.clear_current_action() - $ui/verbs_layer/verbs_menu.unselect_actions() + verbs_menu.unselect_actions() + + +func pause_game(): + if $ui/pause_menu.visible: + $ui/pause_menu.hide() + escoria.main.current_scene.game.get_node("camera").current = true + escoria.main.current_scene.game.show_ui() + escoria.main.current_scene.show() + else: + $ui/pause_menu.show() + escoria.main.current_scene.game.get_node("camera").current = false + escoria.main.current_scene.game.hide_ui() + escoria.main.current_scene.hide() diff --git a/game/ui/ui_9verbs/game.tscn b/game/ui/ui_9verbs/game.tscn index 629f6fb9..0a9a1812 100644 --- a/game/ui/ui_9verbs/game.tscn +++ b/game/ui/ui_9verbs/game.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=11 format=2] [ext_resource path="res://game/ui/ui_9verbs/tooltip/action_target_tooltip.tscn" type="PackedScene" id=1] [ext_resource path="res://game/ui/ui_9verbs/inventory/inventory_ui.tscn" type="PackedScene" id=2] @@ -8,6 +8,7 @@ [ext_resource path="res://addons/escoria-core/game/scenes/camera_player/camera.tscn" type="PackedScene" id=6] [ext_resource path="res://game/ui/commons/room_select.tscn" type="PackedScene" id=7] [ext_resource path="res://game/ui/ui_9verbs/tooltip/tooltip_action_target.gd" type="Script" id=8] +[ext_resource path="res://game/ui/commons/pause_menu/pause_menu.tscn" type="PackedScene" id=9] [sub_resource type="StyleBoxFlat" id=1] bg_color = Color( 0.6, 0.6, 0.6, 0.5 ) @@ -27,34 +28,40 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="verbs_layer" type="CanvasLayer" parent="ui"] +[node name="verbs_layer" type="CanvasLayer" parent="ui/panel_down"] layer = 2 -[node name="verbs_menu" parent="ui/verbs_layer" instance=ExtResource( 3 )] -margin_left = 21.097 -margin_top = 615.331 -margin_right = 21.097 -margin_bottom = 615.331 +[node name="verbs_menu" parent="ui/panel_down/verbs_layer" instance=ExtResource( 3 )] +anchor_top = 0.715 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 52.0 +margin_top = 38.5 +margin_right = -959.0 +margin_bottom = -63.0 -[node name="room_select" parent="ui/verbs_layer" instance=ExtResource( 7 )] -margin_left = 394.817 -margin_top = 756.336 -margin_right = 423.817 -margin_bottom = 776.336 +[node name="room_select" parent="ui/panel_down/verbs_layer" instance=ExtResource( 7 )] +margin_left = 503.504 +margin_top = 820.091 +margin_right = 686.504 +margin_bottom = 840.091 -[node name="inventory_layer" type="CanvasLayer" parent="ui"] +[node name="inventory_layer" type="CanvasLayer" parent="ui/panel_down"] layer = 2 -[node name="inventory_ui" parent="ui/inventory_layer" instance=ExtResource( 2 )] -margin_left = 661.041 -margin_top = 615.331 -margin_right = 661.041 -margin_bottom = 615.331 +[node name="inventory_ui" parent="ui/panel_down/inventory_layer" instance=ExtResource( 2 )] +anchor_top = 0.722 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 752.0 +margin_top = 31.2 +margin_right = -63.0 +margin_bottom = -61.0 -[node name="tooltip_layer" type="CanvasLayer" parent="ui"] +[node name="tooltip_layer" type="CanvasLayer" parent="ui/panel_down"] layer = 2 -[node name="tooltip" parent="ui/tooltip_layer" instance=ExtResource( 1 )] +[node name="tooltip" parent="ui/panel_down/tooltip_layer" instance=ExtResource( 1 )] anchor_left = 0.132 anchor_top = 0.719 anchor_right = 0.832 @@ -81,4 +88,7 @@ __meta__ = { "_edit_use_anchors_": false } +[node name="pause_menu" parent="ui" instance=ExtResource( 9 )] +visible = false + [node name="camera" parent="." instance=ExtResource( 6 )] diff --git a/game/ui/ui_9verbs/inventory/inventory_ui.tscn b/game/ui/ui_9verbs/inventory/inventory_ui.tscn index 02864df9..f6de2f32 100644 --- a/game/ui/ui_9verbs/inventory/inventory_ui.tscn +++ b/game/ui/ui_9verbs/inventory/inventory_ui.tscn @@ -4,27 +4,22 @@ [ext_resource path="res://game/items/ESCORIA_ALL_ITEMS.tscn" type="PackedScene" id=2] [ext_resource path="res://game/ui/ui_9verbs/inventory/inventory_ui_container.gd" type="Script" id=3] -[node name="inventory_ui" type="Control"] +[node name="inventory_ui" type="PanelContainer"] +margin_right = 600.0 +margin_bottom = 175.0 script = ExtResource( 1 ) __meta__ = { "_edit_use_anchors_": false } -items_container = NodePath("PanelContainer/ScrollContainer/GridContainer") +inventory_ui_container = NodePath("ScrollContainer/GridContainer") -[node name="PanelContainer" type="PanelContainer" parent="."] -margin_right = 600.0 -margin_bottom = 175.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="ScrollContainer" type="ScrollContainer" parent="PanelContainer"] +[node name="ScrollContainer" type="ScrollContainer" parent="."] margin_left = 7.0 margin_top = 7.0 margin_right = 593.0 margin_bottom = 168.0 -[node name="GridContainer" type="GridContainer" parent="PanelContainer/ScrollContainer"] +[node name="GridContainer" type="GridContainer" parent="ScrollContainer"] margin_right = 586.0 size_flags_horizontal = 3 custom_constants/vseparation = 16 diff --git a/game/ui/ui_9verbs/verbs_menu.gd b/game/ui/ui_9verbs/verbs_menu.gd index 257171d8..d29742a9 100644 --- a/game/ui/ui_9verbs/verbs_menu.gd +++ b/game/ui/ui_9verbs/verbs_menu.gd @@ -9,23 +9,23 @@ UI event (eg right click) to change the cursor accordingly. var selected_action func _ready(): - for but in $actions.get_children(): + for but in get_children(): but.connect("pressed", self, "_on_action_selected", [but.name]) but.toggle_mode = true func _on_action_selected(action : String): escoria.esc_runner.set_current_action(action) - for but in $actions.get_children(): + for but in get_children(): but.set_pressed(but.get_name() == action) func unselect_actions(): - for but in $actions.get_children(): + for but in get_children(): but.set_pressed(false) func set_by_name(action_name : String): selected_action = action_name - for but in $actions.get_children(): + for but in get_children(): but.set_pressed(but.get_name() == action_name) diff --git a/game/ui/ui_9verbs/verbs_menu.tscn b/game/ui/ui_9verbs/verbs_menu.tscn index fdc7d477..7106d793 100644 --- a/game/ui/ui_9verbs/verbs_menu.tscn +++ b/game/ui/ui_9verbs/verbs_menu.tscn @@ -2,25 +2,20 @@ [ext_resource path="res://game/ui/ui_9verbs/verbs_menu.gd" type="Script" id=1] -[node name="verbs_menu" type="Control"] -margin_left = 1.0 -margin_right = 1.0 +[node name="actions" type="GridContainer"] +margin_right = 493.0 +margin_bottom = 263.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +columns = 3 script = ExtResource( 1 ) __meta__ = { "_edit_use_anchors_": false } -[node name="actions" type="GridContainer" parent="."] -margin_right = 333.0 -margin_bottom = 175.0 -columns = 3 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="open" type="Button" parent="actions"] -margin_right = 108.0 -margin_bottom = 55.0 +[node name="open" type="Button" parent="."] +margin_right = 161.0 +margin_bottom = 85.0 size_flags_horizontal = 3 size_flags_vertical = 3 toggle_mode = true @@ -29,10 +24,10 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="pickup" type="Button" parent="actions"] -margin_left = 112.0 -margin_right = 220.0 -margin_bottom = 55.0 +[node name="pickup" type="Button" parent="."] +margin_left = 165.0 +margin_right = 326.0 +margin_bottom = 85.0 size_flags_horizontal = 3 size_flags_vertical = 3 toggle_mode = true @@ -41,10 +36,10 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="push" type="Button" parent="actions"] -margin_left = 224.0 -margin_right = 332.0 -margin_bottom = 55.0 +[node name="push" type="Button" parent="."] +margin_left = 330.0 +margin_right = 491.0 +margin_bottom = 85.0 size_flags_horizontal = 3 size_flags_vertical = 3 toggle_mode = true @@ -53,10 +48,10 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="close" type="Button" parent="actions"] -margin_top = 59.0 -margin_right = 108.0 -margin_bottom = 114.0 +[node name="close" type="Button" parent="."] +margin_top = 89.0 +margin_right = 161.0 +margin_bottom = 174.0 size_flags_horizontal = 3 size_flags_vertical = 3 toggle_mode = true @@ -65,11 +60,11 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="look" type="Button" parent="actions"] -margin_left = 112.0 -margin_top = 59.0 -margin_right = 220.0 -margin_bottom = 114.0 +[node name="look" type="Button" parent="."] +margin_left = 165.0 +margin_top = 89.0 +margin_right = 326.0 +margin_bottom = 174.0 size_flags_horizontal = 3 size_flags_vertical = 3 toggle_mode = true @@ -78,11 +73,11 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="pull" type="Button" parent="actions"] -margin_left = 224.0 -margin_top = 59.0 -margin_right = 332.0 -margin_bottom = 114.0 +[node name="pull" type="Button" parent="."] +margin_left = 330.0 +margin_top = 89.0 +margin_right = 491.0 +margin_bottom = 174.0 size_flags_horizontal = 3 size_flags_vertical = 3 toggle_mode = true @@ -91,10 +86,10 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="give" type="Button" parent="actions"] -margin_top = 118.0 -margin_right = 108.0 -margin_bottom = 173.0 +[node name="give" type="Button" parent="."] +margin_top = 178.0 +margin_right = 161.0 +margin_bottom = 263.0 size_flags_horizontal = 3 size_flags_vertical = 3 toggle_mode = true @@ -103,11 +98,11 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="use" type="Button" parent="actions"] -margin_left = 112.0 -margin_top = 118.0 -margin_right = 220.0 -margin_bottom = 173.0 +[node name="use" type="Button" parent="."] +margin_left = 165.0 +margin_top = 178.0 +margin_right = 326.0 +margin_bottom = 263.0 size_flags_horizontal = 3 size_flags_vertical = 3 toggle_mode = true @@ -116,11 +111,11 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="talk" type="Button" parent="actions"] -margin_left = 224.0 -margin_top = 118.0 -margin_right = 332.0 -margin_bottom = 173.0 +[node name="talk" type="Button" parent="."] +margin_left = 330.0 +margin_top = 178.0 +margin_right = 491.0 +margin_bottom = 263.0 size_flags_horizontal = 3 size_flags_vertical = 3 toggle_mode = true diff --git a/project.godot b/project.godot index 95fe1b2f..b5e9b264 100644 --- a/project.godot +++ b/project.godot @@ -14,16 +14,21 @@ _global_script_classes=[ { "language": "GDScript", "path": "res://addons/escoria-core/game/core-scripts/escbackground.gd" }, { +"base": "Control", +"class": "ESCBackgroundMusic", +"language": "GDScript", +"path": "res://addons/escoria-core/game/scenes/sound/bg_music.gd" +}, { +"base": "Control", +"class": "ESCBackgroundSound", +"language": "GDScript", +"path": "res://addons/escoria-core/game/scenes/sound/bg_sound.gd" +}, { "base": "Camera2D", "class": "ESCCamera", "language": "GDScript", "path": "res://addons/escoria-core/game/scenes/camera_player/esccamera.gd" }, { -"base": "Node", -"class": "ESCCharacter", -"language": "GDScript", -"path": "res://addons/escoria-core/game/core-scripts/esccharacter.gd" -}, { "base": "ResourcePreloader", "class": "ESCDialogsPlayer", "language": "GDScript", @@ -42,7 +47,7 @@ _global_script_classes=[ { "base": "TextureButton", "class": "ESCInventoryItem", "language": "GDScript", -"path": "res://addons/escoria-core/game/core-scripts/inventory_item.gd" +"path": "res://addons/escoria-core/game/core-scripts/escinventoryitem.gd" }, { "base": "Area2D", "class": "ESCItem", @@ -76,8 +81,9 @@ _global_script_classes=[ { } ] _global_script_class_icons={ "ESCBackground": "", +"ESCBackgroundMusic": "", +"ESCBackgroundSound": "", "ESCCamera": "", -"ESCCharacter": "", "ESCDialogsPlayer": "", "ESCGame": "", "ESCInventory": "", @@ -108,7 +114,9 @@ esctypes="*res://addons/escoria-core/game/core-scripts/escoria_types.gd" [display] window/size/width=1280 -window/size/height=800 +window/size/height=900 +window/stretch/mode="2d" +window/stretch/aspect="keep" [editor] @@ -116,7 +124,7 @@ search_in_file_extensions=PoolStringArray( "gd", "shader", "esc" ) [editor_plugins] -enabled=PoolStringArray( "escoria-core" ) +enabled=PoolStringArray( "res://addons/escoria-core/plugin.cfg" ) [escoria] @@ -125,12 +133,15 @@ main/force_quit=true debug/terminate_on_warnings=false debug/terminate_on_errors=true debug/development_lang="en" +ui/tooltip_follows_mouse=false ui/dialogs_folder="res://game/ui/commons/dialogs" ui/default_dialog_scene="res://game/ui/commons/dialogs/dialog_label.tscn" -ui/main_menu_scene="res://game/ui/commons/main_menu.tscn" +ui/main_menu_scene="res://game/ui/commons/main_menu/main_menu.tscn" +ui/pause_menu_scene="res://game/ui/commons/pause_menu/pause_menu.tscn" ui/game_scene="res://game/ui/ui_9verbs/game.tscn" internals/save_data="" -ui/tooltip_follows_mouse=false +sound/music_volume=5 +sound/sound_volume=8 [input]