Added bg_sound manager and according ESC command.

Started transitions scene.
This commit is contained in:
Julian Murgia
2021-03-24 14:12:40 +01:00
parent 4acb971d54
commit 40dd4a6718
79 changed files with 1240 additions and 456 deletions

18
CREDITS
View File

@@ -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/

View File

@@ -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")

View File

@@ -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,

View File

@@ -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

View File

@@ -399,9 +399,16 @@ func jump(command_params : Array):
"""
set_sound_state bg_music|bg_sound off|default|<path/to/music.file> 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
"""

View File

@@ -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

View File

@@ -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")

View File

@@ -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:

View File

@@ -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)
"""

View File

@@ -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"]

View File

@@ -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()

View File

@@ -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:

View File

@@ -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 )]

View File

@@ -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

View File

@@ -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)

View File

@@ -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)

View File

@@ -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="."]

View File

@@ -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)

View File

@@ -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="."]

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

View File

@@ -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")

View File

@@ -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 )

View File

@@ -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"]

View File

@@ -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",

Binary file not shown.

View File

@@ -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="."]

View File

@@ -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"]

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"]

View File

@@ -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

View File

@@ -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

View File

@@ -8,3 +8,5 @@
teleport player player_start
stop
:ready
set_sound_state bg_music res://game/sfx/contemplation.ogg true

View File

@@ -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 )

View File

@@ -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_": ""
}

View File

@@ -0,0 +1,2 @@
:use
set_sound_state bg_music res://game/sfx/contemplation.ogg true

View File

@@ -0,0 +1,3 @@
:use
set_sound_state bg_sound res://game/sfx/sounds/laser1.ogg false

View File

@@ -0,0 +1,2 @@
:use
set_sound_state bg_music off true

View File

@@ -0,0 +1,5 @@
:exit_scene
set_sound_state bg_sound res://game/sfx/sounds/doorOpen_2.ogg false
change_scene "res://game/rooms/room9/room9.tscn"

View File

@@ -0,0 +1,2 @@
:exit_scene

View File

@@ -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

View File

@@ -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 )

View File

@@ -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 )

View File

@@ -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_": ""
}

View File

@@ -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 )

View File

@@ -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 )

View File

@@ -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

View File

@@ -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 )

View File

@@ -1,2 +1,2 @@
:exit_scene
change_scene "res://game/rooms/room10/room10.tscn"

View File

@@ -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

View File

@@ -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"]

Binary file not shown.

Binary file not shown.

BIN
game/sfx/contemplation.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
game/sfx/sounds/laser1.ogg Normal file

Binary file not shown.

BIN
game/sfx/sounds/laser2.ogg Normal file

Binary file not shown.

BIN
game/sfx/sounds/laser3.ogg Normal file

Binary file not shown.

BIN
game/sfx/sounds/laser4.ogg Normal file

Binary file not shown.

BIN
game/sfx/sounds/laser5.ogg Normal file

Binary file not shown.

View File

@@ -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 )

View File

@@ -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()

View File

@@ -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"]

View File

@@ -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.

View File

@@ -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"]

View File

@@ -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()

View File

@@ -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"]

View File

@@ -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()

View File

@@ -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 )]

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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]