Fixed a bug where bottle in magical closet room 9 had wrong interaction position.

This commit is contained in:
Julian Murgia
2021-02-26 21:31:50 +01:00
parent f743d1089c
commit b8f668df0a
25 changed files with 298 additions and 350 deletions

View File

@@ -105,15 +105,20 @@ func teleport(target, angle : Object = null) -> void:
Teleports the item on target position. Teleports the item on target position.
target can be Vector2 or Object target can be Vector2 or Object
""" """
if typeof(target) == TYPE_VECTOR2: if typeof(target) == TYPE_VECTOR2 :
escoria.logger.info("Object " + target + " teleported at position" + escoria.logger.info("Object " + parent.global_id + " teleported at position " +
str(target) + "with angle", [angle]) str(target) + " with angle", [angle])
parent.position = target parent.position = target
elif target is Position2D:
escoria.logger.info("Object " + parent.global_id + " teleported at position " +
str(target.position) + " with angle", [angle])
parent.position = target.position
elif typeof(target) == TYPE_OBJECT: elif typeof(target) == TYPE_OBJECT:
if target.get("interact_positions") != null: # if target.get("interact_positions") != null:
parent.position = target.interact_positions.default #.global_position # parent.position = target.interact_positions.default #.global_position
else: # else:
parent.position = target.position # parent.position = target.position
parent.position = target.get_interact_position()
escoria.logger.info("Object " + target.name + " teleported at position " escoria.logger.info("Object " + target.name + " teleported at position "
+ str(parent.position) + " with angle ", str(angle)) + str(parent.position) + " with angle ", str(angle))
else: else:
@@ -221,6 +226,8 @@ func update_terrain(on_event_finished_name = null):
return return
if parent.get("is_exit"): if parent.get("is_exit"):
return return
if parent.get("dont_apply_terrain_scaling"):
return
var pos = parent.position var pos = parent.position
parent.z_index = pos.y if pos.y <= VisualServer.CANVAS_ITEM_Z_MAX else VisualServer.CANVAS_ITEM_Z_MAX parent.z_index = pos.y if pos.y <= VisualServer.CANVAS_ITEM_Z_MAX else VisualServer.CANVAS_ITEM_Z_MAX

View File

@@ -53,12 +53,13 @@ export(bool) var use_from_inventory_only = false
# Scene used in inventory for the object if it is picked up # Scene used in inventory for the object if it is picked up
export(PackedScene) var inventory_item_scene_file : PackedScene export(PackedScene) var inventory_item_scene_file : PackedScene
# Color used for dialogs
export(Color) var dialog_color = ColorN("white") export(Color) var dialog_color = ColorN("white")
# Detected interact position set by a Position2D node OUTSIDE OF THE SCENE. # Detected interact position set by a Position2D node OUTSIDE OF THE SCENE.
# You have to add a child to the INSTANCED SCENE, IN THE ROOM SCENE. # You have to add a child to the INSTANCED SCENE, IN THE ROOM SCENE.
export(Dictionary) var interact_positions : Dictionary = { "default": null} #var interact_positions : Dictionary = { "default": null}
# Animation node (null if none was found) # Animation node (null if none was found)
var animation_sprite var animation_sprite
@@ -72,6 +73,9 @@ var terrain : ESCTerrain
var terrain_is_scalenodes : bool var terrain_is_scalenodes : bool
var check_maps = true var check_maps = true
var collision var collision
# If dont_apply_terrain_scaling is true, terrain scaling will not be applied and
# node will remain at the scale set in the scene.
export(bool) var dont_apply_terrain_scaling = false
export(int) var speed : int = 300 export(int) var speed : int = 300
export(float) var v_speed_damp : float = 1.0 export(float) var v_speed_damp : float = 1.0
@@ -111,10 +115,13 @@ func _ready():
connect("mouse_entered", self, "_on_mouse_entered") connect("mouse_entered", self, "_on_mouse_entered")
connect("mouse_exited", self, "_on_mouse_exited") connect("mouse_exited", self, "_on_mouse_exited")
connect("input_event", self, "manage_input") connect("input_event", self, "manage_input")
init_interact_position_with_node()
# Initialize collision variable.
for c in get_children():
if c is CollisionShape2D or c is CollisionPolygon2D:
collision = c
# Register and connect all elements to Escoria backoffice.
if !Engine.is_editor_hint(): if !Engine.is_editor_hint():
escoria.register_object(self) escoria.register_object(self)
terrain = escoria.room_terrain terrain = escoria.room_terrain
@@ -131,7 +138,8 @@ func _ready():
connect("body_entered", self, "element_entered") connect("body_entered", self, "element_entered")
connect("body_exited", self, "element_exited") connect("body_exited", self, "element_exited")
if !is_exit: # Perform a first terrain scaling if we have to.
if !is_exit or dont_apply_terrain_scaling:
Movable.last_scale = scale Movable.last_scale = scale
Movable.update_terrain() Movable.update_terrain()
@@ -144,28 +152,46 @@ func get_animation_player():
return animation_sprite return animation_sprite
""" #"""
Initialize the interact_position attribute by searching for a Position2D #Initialize the interact_position attribute by searching for a Position2D
node in children nodes. #node in children nodes.
If any is found, the first one is used as interaction position with this hotspot. #If any is found, the first one is used as interaction position with this hotspot.
If none is found, we use the CollisionShape2D or CollisionPolygon2D child node's #If none is found, we use the CollisionShape2D or CollisionPolygon2D child node's
position instead. #position instead.
""" #"""
func init_interact_position_with_node(): #func init_interact_position_with_node():
interact_positions.default = null # interact_positions.default = null
# for c in get_children():
# if c is Position2D:
# # If the position2D node is part of the hotspot, it means it is not an interact position
# # but a dialog position for example. Interact position node must be set in the room scene.
# if c.get_owner() == self:
# continue
# var globalpos = c.global_position
# interact_positions.default = c.global_position
#
# if c is CollisionShape2D or c is CollisionPolygon2D:
# collision = c
# if interact_positions.default == null:
# interact_positions.default = c.global_position
func get_interact_position() -> Vector2:
var interact_position = null
for c in get_children(): for c in get_children():
if c is Position2D: if c is Position2D:
# If the position2D node is part of the hotspot, it means it is not an interact position # If the position2D node is part of the hotspot, it means it is not an interact position
# but a dialog position for example. Interact position node must be set in the room scene. # but a dialog position for example. Interact position node must be set in the room scene.
if c.get_owner() == self: if c.get_owner() == self:
continue continue
interact_positions.default = c.global_position interact_position = c.global_position
if c is CollisionShape2D or c is CollisionPolygon2D: if c is CollisionShape2D or c is CollisionPolygon2D:
collision = c if interact_position == null:
if interact_positions.default == null: interact_position = c.global_position
interact_positions.default = c.global_position
return interact_position
func manage_input(viewport : Viewport, event : InputEvent, shape_idx : int): func manage_input(viewport : Viewport, event : InputEvent, shape_idx : int):
if event is InputEventMouseButton: if event is InputEventMouseButton:

View File

@@ -94,7 +94,7 @@ func update_size():
var nb_visible_characters = visible_characters var nb_visible_characters = visible_characters
var nb_visible_lines = get_visible_line_count() var nb_visible_lines = get_visible_line_count()
printt("BEFORE", "text_height", content_height, "rtl_height", rect_size.y) # printt("BEFORE", "text_height", content_height, "rtl_height", rect_size.y)
# if text is too long and is wrapped # if text is too long and is wrapped
# var nblines = float(get_content_height()) / float(ONE_LINE_HEIGHT) # var nblines = float(get_content_height()) / float(ONE_LINE_HEIGHT)
@@ -127,7 +127,7 @@ func update_size():
anchor_right = 0.0 anchor_right = 0.0
anchor_bottom = 0.0 anchor_bottom = 0.0
anchor_left = 0.0 anchor_left = 0.0
printt("AFTER", "text_height", get_content_height(), "rtl_height", rect_size.y) # printt("AFTER", "text_height", get_content_height(), "rtl_height", rect_size.y)
func _offset(position): func _offset(position):
@@ -151,3 +151,8 @@ func tooltip_distance_to_edge_left(position : Vector2):
func tooltip_distance_to_edge_right(position : Vector2): func tooltip_distance_to_edge_right(position : Vector2):
return escoria.game_size.x - position.x return escoria.game_size.x - position.x
func clear():
set_target("")
set_target2("")

View File

@@ -8,8 +8,15 @@ func warning(string : String, args = []):
func info(string : String, args = []): func info(string : String, args = []):
var argsstr = str(args) if !args.empty() else "" var argsstr = []
print("(I)\t" + string + " \t" + argsstr) if !args.empty():
for arg in args:
if arg is Array:
for p in arg:
argsstr.append(p.global_id)
else:
argsstr.append(str(arg))
print("(I)\t" + string + " \t" + str(argsstr))
func error(string : String, args = []): func error(string : String, args = []):

View File

@@ -202,8 +202,13 @@ func ev_left_click_on_item(obj, event, default_action = false):
var clicked_object_has_interact_position = false var clicked_object_has_interact_position = false
if esc_runner.get_interactive(obj.global_id): if esc_runner.get_interactive(obj.global_id):
if obj.interact_positions.default != null: # if obj.interact_positions.default != null:
destination_position = obj.interact_positions.default#.global_position # destination_position = obj.interact_positions.default#.global_position
# clicked_object_has_interact_position = true
# else:
# destination_position = obj.position
if obj.get_interact_position() != null:
destination_position = obj.get_interact_position()
clicked_object_has_interact_position = true clicked_object_has_interact_position = true
else: else:
destination_position = obj.position destination_position = obj.position

View File

@@ -9,105 +9,105 @@
[ext_resource path="res://game/characters/mark/png/mark_talk_right.png" type="Texture" id=7] [ext_resource path="res://game/characters/mark/png/mark_talk_right.png" type="Texture" id=7]
[sub_resource type="AtlasTexture" id=1] [sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 7 )
region = Rect2( 0, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=2]
atlas = ExtResource( 7 )
region = Rect2( 24, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=3]
atlas = ExtResource( 7 )
region = Rect2( 48, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=4]
atlas = ExtResource( 7 )
region = Rect2( 72, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=5]
atlas = ExtResource( 7 )
region = Rect2( 96, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=6]
atlas = ExtResource( 4 )
region = Rect2( 0, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=7]
atlas = ExtResource( 4 )
region = Rect2( 336, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=8]
atlas = ExtResource( 4 )
region = Rect2( 360, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=9]
atlas = ExtResource( 4 )
region = Rect2( 384, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=10]
atlas = ExtResource( 6 )
region = Rect2( 0, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=11]
atlas = ExtResource( 6 )
region = Rect2( 24, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=12]
atlas = ExtResource( 4 ) atlas = ExtResource( 4 )
region = Rect2( 120, 0, 24, 70 ) region = Rect2( 120, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=13] [sub_resource type="AtlasTexture" id=2]
atlas = ExtResource( 4 ) atlas = ExtResource( 4 )
region = Rect2( 72, 0, 24, 70 ) region = Rect2( 72, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=14] [sub_resource type="AtlasTexture" id=3]
atlas = ExtResource( 5 ) atlas = ExtResource( 5 )
region = Rect2( 0, 0, 24, 70 ) region = Rect2( 0, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=15] [sub_resource type="AtlasTexture" id=4]
atlas = ExtResource( 5 ) atlas = ExtResource( 5 )
region = Rect2( 24, 0, 24, 70 ) region = Rect2( 24, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=16] [sub_resource type="AtlasTexture" id=5]
atlas = ExtResource( 5 ) atlas = ExtResource( 5 )
region = Rect2( 48, 0, 24, 70 ) region = Rect2( 48, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=17] [sub_resource type="AtlasTexture" id=6]
atlas = ExtResource( 4 ) atlas = ExtResource( 4 )
region = Rect2( 48, 0, 24, 70 ) region = Rect2( 48, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=18] [sub_resource type="AtlasTexture" id=7]
atlas = ExtResource( 4 )
region = Rect2( 24, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=8]
atlas = ExtResource( 2 ) atlas = ExtResource( 2 )
region = Rect2( 0, 0, 24, 70 ) region = Rect2( 0, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=19] [sub_resource type="AtlasTexture" id=9]
atlas = ExtResource( 2 ) atlas = ExtResource( 2 )
region = Rect2( 24, 0, 24, 70 ) region = Rect2( 24, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=20] [sub_resource type="AtlasTexture" id=10]
atlas = ExtResource( 2 ) atlas = ExtResource( 2 )
region = Rect2( 48, 0, 24, 70 ) region = Rect2( 48, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=21] [sub_resource type="AtlasTexture" id=11]
atlas = ExtResource( 4 ) atlas = ExtResource( 4 )
region = Rect2( 144, 0, 24, 70 ) region = Rect2( 144, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=22] [sub_resource type="AtlasTexture" id=12]
atlas = ExtResource( 4 ) atlas = ExtResource( 4 )
region = Rect2( 168, 0, 24, 70 ) region = Rect2( 168, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=23] [sub_resource type="AtlasTexture" id=13]
atlas = ExtResource( 4 ) atlas = ExtResource( 4 )
region = Rect2( 192, 0, 24, 70 ) region = Rect2( 192, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=24] [sub_resource type="AtlasTexture" id=14]
atlas = ExtResource( 4 ) atlas = ExtResource( 4 )
region = Rect2( 96, 0, 24, 70 ) region = Rect2( 96, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=25] [sub_resource type="AtlasTexture" id=15]
atlas = ExtResource( 4 ) 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 ) region = Rect2( 24, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=21]
atlas = ExtResource( 7 )
region = Rect2( 0, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=22]
atlas = ExtResource( 7 )
region = Rect2( 24, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=23]
atlas = ExtResource( 7 )
region = Rect2( 48, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=24]
atlas = ExtResource( 7 )
region = Rect2( 72, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=25]
atlas = ExtResource( 7 )
region = Rect2( 96, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=26] [sub_resource type="AtlasTexture" id=26]
atlas = ExtResource( 4 ) atlas = ExtResource( 4 )
region = Rect2( 216, 0, 24, 70 ) region = Rect2( 216, 0, 24, 70 )
@@ -130,64 +130,64 @@ region = Rect2( 312, 0, 24, 70 )
[sub_resource type="SpriteFrames" id=31] [sub_resource type="SpriteFrames" id=31]
animations = [ { animations = [ {
"frames": [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ) ], "frames": [ SubResource( 1 ) ],
"loop": true,
"name": "speak_right",
"speed": 5.0
}, {
"frames": [ SubResource( 6 ) ],
"loop": true,
"name": "idle_down",
"speed": 5.0
}, {
"frames": [ SubResource( 7 ), SubResource( 8 ), SubResource( 9 ) ],
"loop": true,
"name": "walk_up",
"speed": 6.0
}, {
"frames": [ SubResource( 10 ), SubResource( 11 ), SubResource( 10 ), SubResource( 11 ), SubResource( 11 ) ],
"loop": true,
"name": "speak_up",
"speed": 3.0
}, {
"frames": [ SubResource( 12 ) ],
"loop": true, "loop": true,
"name": "idle_down_left", "name": "idle_down_left",
"speed": 5.0 "speed": 5.0
}, { }, {
"frames": [ SubResource( 13 ) ], "frames": [ SubResource( 2 ) ],
"loop": true, "loop": true,
"name": "idle_up", "name": "idle_up",
"speed": 5.0 "speed": 5.0
}, { }, {
"frames": [ SubResource( 14 ), SubResource( 15 ), SubResource( 16 ) ], "frames": [ SubResource( 3 ), SubResource( 4 ), SubResource( 5 ) ],
"loop": true, "loop": true,
"name": "speak_down_right", "name": "speak_down_right",
"speed": 6.0 "speed": 6.0
}, { }, {
"frames": [ SubResource( 17 ) ], "frames": [ SubResource( 6 ) ],
"loop": true, "loop": true,
"name": "idle_right", "name": "idle_right",
"speed": 5.0 "speed": 5.0
}, { }, {
"frames": [ SubResource( 18 ), SubResource( 19 ), SubResource( 20 ), SubResource( 19 ), SubResource( 20 ) ], "frames": [ SubResource( 7 ) ],
"loop": true,
"name": "idle_down_right",
"speed": 5.0
}, {
"frames": [ SubResource( 8 ), SubResource( 9 ), SubResource( 10 ), SubResource( 9 ), SubResource( 10 ) ],
"loop": true, "loop": true,
"name": "speak_down", "name": "speak_down",
"speed": 6.0 "speed": 6.0
}, { }, {
"frames": [ SubResource( 21 ), SubResource( 22 ), SubResource( 23 ) ], "frames": [ SubResource( 11 ), SubResource( 12 ), SubResource( 13 ) ],
"loop": true, "loop": true,
"name": "walk_down", "name": "walk_down",
"speed": 6.0 "speed": 6.0
}, { }, {
"frames": [ SubResource( 24 ) ], "frames": [ SubResource( 14 ) ],
"loop": true, "loop": true,
"name": "idle_left", "name": "idle_left",
"speed": 5.0 "speed": 5.0
}, { }, {
"frames": [ SubResource( 25 ) ], "frames": [ SubResource( 15 ) ],
"loop": true, "loop": true,
"name": "idle_down_right", "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 ), SubResource( 22 ), SubResource( 23 ), SubResource( 24 ), SubResource( 25 ) ],
"loop": true,
"name": "speak_right",
"speed": 5.0 "speed": 5.0
}, { }, {
"frames": [ SubResource( 26 ), SubResource( 27 ), SubResource( 28 ), SubResource( 29 ), SubResource( 30 ) ], "frames": [ SubResource( 26 ), SubResource( 27 ), SubResource( 28 ), SubResource( 29 ), SubResource( 30 ) ],

View File

@@ -4,5 +4,7 @@ stop
:pickup :pickup
inventory_add r9_bottle true inventory_add r9_bottle true
set_active r9_bottle false set_active r9_bottle_left false
set_active r9_bottle_middle false
set_active r9_bottle_right false

View File

@@ -18,9 +18,6 @@ combine_if_action_used_among = PoolStringArray( "use" )
use_from_inventory_only = true use_from_inventory_only = true
inventory_item_scene_file = ExtResource( 3 ) inventory_item_scene_file = ExtResource( 3 )
dialog_color = Color( 1, 1, 1, 1 ) dialog_color = Color( 1, 1, 1, 1 )
interact_positions = {
"default": Vector2( 0, 0 )
}
[node name="sprite" type="Sprite" parent="."] [node name="sprite" type="Sprite" parent="."]
texture = ExtResource( 2 ) texture = ExtResource( 2 )

View File

@@ -17,9 +17,6 @@ combine_if_action_used_among = PoolStringArray( "use" )
use_from_inventory_only = true use_from_inventory_only = true
inventory_item_scene_file = ExtResource( 3 ) inventory_item_scene_file = ExtResource( 3 )
dialog_color = Color( 1, 1, 1, 1 ) dialog_color = Color( 1, 1, 1, 1 )
interact_positions = {
"default": Vector2( 0, 0 )
}
[node name="sprite" type="Sprite" parent="."] [node name="sprite" type="Sprite" parent="."]
texture = ExtResource( 2 ) texture = ExtResource( 2 )

View File

@@ -77,15 +77,6 @@ text = "ROOM 5"
[node name="walkable_area" type="Navigation2D" parent="."] [node name="walkable_area" type="Navigation2D" parent="."]
script = ExtResource( 1 ) 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"] [node name="platform" type="NavigationPolygonInstance" parent="walkable_area"]
position = Vector2( 6.73163, -264.779 ) position = Vector2( 6.73163, -264.779 )
@@ -103,9 +94,6 @@ esc_script = "res://game/rooms/room5/esc/left_exit.esc"
is_exit = true is_exit = true
tooltip_name = "Left exit" tooltip_name = "Left exit"
dialog_color = Color( 1, 1, 1, 1 ) dialog_color = Color( 1, 1, 1, 1 )
interact_positions = {
"default": Vector2( 37.4521, 392.045 )
}
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"] [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 ) polygon = PoolVector2Array( 0.328762, 440.897, 1.85199, 119.926, 85.9517, 74.6212, 87.1409, 377.869 )
@@ -121,9 +109,6 @@ esc_script = "res://game/rooms/room5/esc/right_exit.esc"
is_exit = true is_exit = true
tooltip_name = "Right exit" tooltip_name = "Right exit"
dialog_color = Color( 1, 1, 1, 1 ) dialog_color = Color( 1, 1, 1, 1 )
interact_positions = {
"default": Vector2( 1224.47, 353.99 )
}
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"] [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 ) polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 )
@@ -137,9 +122,6 @@ global_id = "r5_wall_item"
esc_script = "res://game/rooms/room5/esc/wall_item.esc" esc_script = "res://game/rooms/room5/esc/wall_item.esc"
tooltip_name = "Item on the wall" tooltip_name = "Item on the wall"
default_action = "look" default_action = "look"
interact_positions = {
"default": Vector2( 622.513, 359.162 )
}
[node name="Position2D2" type="Position2D" parent="Hotspots/item_wall"] [node name="Position2D2" type="Position2D" parent="Hotspots/item_wall"]
position = Vector2( 620.135, 613.652 ) position = Vector2( 620.135, 613.652 )
@@ -150,25 +132,16 @@ __meta__ = {
[node name="wrench" parent="Hotspots" instance=ExtResource( 8 )] [node name="wrench" parent="Hotspots" instance=ExtResource( 8 )]
position = Vector2( 257.269, 435.892 ) position = Vector2( 257.269, 435.892 )
interaction_direction = 2 interaction_direction = 2
interact_positions = {
"default": Vector2( 179.848, 435.892 )
}
[node name="Position2D" type="Position2D" parent="Hotspots/wrench"] [node name="Position2D" type="Position2D" parent="Hotspots/wrench"]
position = Vector2( -77.4207, 0 ) position = Vector2( -77.4207, 0 )
[node name="pen" parent="Hotspots" instance=ExtResource( 10 )] [node name="pen" parent="Hotspots" instance=ExtResource( 10 )]
position = Vector2( 909.908, 443.451 ) position = Vector2( 909.908, 443.451 )
interact_positions = {
"default": Vector2( 909.908, 443.451 )
}
[node name="empty_sheet" parent="Hotspots" instance=ExtResource( 9 )] [node name="empty_sheet" parent="Hotspots" instance=ExtResource( 9 )]
position = Vector2( 1059.84, 440.932 ) position = Vector2( 1059.84, 440.932 )
dialog_color = Color( 1, 1, 1, 1 ) dialog_color = Color( 1, 1, 1, 1 )
interact_positions = {
"default": Vector2( 1059.84, 440.932 )
}
[node name="player_start" type="Position2D" parent="."] [node name="player_start" type="Position2D" parent="."]
position = Vector2( 76.7617, 437.649 ) position = Vector2( 76.7617, 437.649 )

View File

@@ -46,6 +46,15 @@ width = 4.0
[node name="walkable_area" type="Navigation2D" parent="."] [node name="walkable_area" type="Navigation2D" parent="."]
script = ExtResource( 1 ) 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"] [node name="platform" type="NavigationPolygonInstance" parent="walkable_area"]
position = Vector2( 6.73163, -264.779 ) position = Vector2( 6.73163, -264.779 )
@@ -57,9 +66,6 @@ __meta__ = {
[node name="Hotspots" type="Node2D" parent="."] [node name="Hotspots" type="Node2D" parent="."]
[node name="l_exit" parent="Hotspots" instance=ExtResource( 3 )] [node name="l_exit" parent="Hotspots" instance=ExtResource( 3 )]
interact_positions = {
"default": Vector2( 37.4521, 392.045 )
}
[node name="Position2D" type="Position2D" parent="Hotspots/l_exit"] [node name="Position2D" type="Position2D" parent="Hotspots/l_exit"]
position = Vector2( 37.4521, 392.045 ) position = Vector2( 37.4521, 392.045 )
@@ -68,9 +74,6 @@ __meta__ = {
} }
[node name="r_door" parent="Hotspots" instance=ExtResource( 5 )] [node name="r_door" parent="Hotspots" instance=ExtResource( 5 )]
interact_positions = {
"default": Vector2( 1180.52, 395.193 )
}
[node name="Position2D" type="Position2D" parent="Hotspots/r_door"] [node name="Position2D" type="Position2D" parent="Hotspots/r_door"]
position = Vector2( 1180.52, 395.193 ) position = Vector2( 1180.52, 395.193 )
@@ -81,9 +84,6 @@ __meta__ = {
[node name="worker" parent="Hotspots" instance=ExtResource( 7 )] [node name="worker" parent="Hotspots" instance=ExtResource( 7 )]
position = Vector2( 480, 430 ) position = Vector2( 480, 430 )
interaction_direction = 2 interaction_direction = 2
interact_positions = {
"default": Vector2( 322.472, 428.374 )
}
[node name="Position2D2" type="Position2D" parent="Hotspots/worker"] [node name="Position2D2" type="Position2D" parent="Hotspots/worker"]
position = Vector2( -157.528, -1.62589 ) position = Vector2( -157.528, -1.62589 )

View File

@@ -1,7 +1,6 @@
[gd_scene load_steps=7 format=2] [gd_scene load_steps=5 format=2]
[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=1] [ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=1]
[ext_resource path="res://game/items/escitems/bottle_escitem.tscn" type="PackedScene" id=2]
[sub_resource type="RectangleShape2D" id=1] [sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 66.4415, 154.457 ) extents = Vector2( 66.4415, 154.457 )
@@ -21,7 +20,7 @@ tracks/0/keys = {
"values": [ true ] "values": [ true ]
} }
tracks/1/type = "value" tracks/1/type = "value"
tracks/1/path = NodePath("base/open_no_object:visible") tracks/1/path = NodePath("base/open:visible")
tracks/1/interp = 1 tracks/1/interp = 1
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/imported = false tracks/1/imported = false
@@ -33,7 +32,7 @@ tracks/1/keys = {
"values": [ false ] "values": [ false ]
} }
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/path = NodePath("base/open_object:visible") tracks/2/path = NodePath(".:default_action")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/imported = false tracks/2/imported = false
@@ -42,22 +41,11 @@ tracks/2/keys = {
"times": PoolRealArray( 0 ), "times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ), "transitions": PoolRealArray( 1 ),
"update": 1, "update": 1,
"values": [ false ] "values": [ "use" ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("bottle:visible")
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": [ false ]
} }
[sub_resource type="Animation" id=3] [sub_resource type="Animation" id=3]
resource_name = "open"
length = 0.5 length = 0.5
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/path = NodePath("base/closed:visible") tracks/0/path = NodePath("base/closed:visible")
@@ -72,7 +60,7 @@ tracks/0/keys = {
"values": [ false ] "values": [ false ]
} }
tracks/1/type = "value" tracks/1/type = "value"
tracks/1/path = NodePath("base/open_no_object:visible") tracks/1/path = NodePath("base/open:visible")
tracks/1/interp = 1 tracks/1/interp = 1
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/imported = false tracks/1/imported = false
@@ -84,7 +72,7 @@ tracks/1/keys = {
"values": [ true ] "values": [ true ]
} }
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/path = NodePath("base/open_object:visible") tracks/2/path = NodePath(".:default_action")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/imported = false tracks/2/imported = false
@@ -93,78 +81,13 @@ tracks/2/keys = {
"times": PoolRealArray( 0 ), "times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ), "transitions": PoolRealArray( 1 ),
"update": 1, "update": 1,
"values": [ false ] "values": [ "walk" ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("bottle:visible")
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": [ false ]
}
[sub_resource type="Animation" id=4]
length = 0.5
tracks/0/type = "value"
tracks/0/path = NodePath("base/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("base/open_no_object: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("base/open_object:visible")
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("bottle:visible")
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": [ true ]
} }
[node name="closet" type="Area2D"] [node name="closet" type="Area2D"]
script = ExtResource( 1 ) script = ExtResource( 1 )
default_action = "use"
dialog_color = Color( 1, 1, 1, 1 ) dialog_color = Color( 1, 1, 1, 1 )
interact_positions = {
"default": Vector2( 64.2172, 153.408 )
}
[node name="base" type="Line2D" parent="."] [node name="base" type="Line2D" parent="."]
position = Vector2( 1.12247, 0 ) position = Vector2( 1.12247, 0 )
@@ -189,52 +112,25 @@ polygon = PoolVector2Array( 29.051, 47.3419, 29.9949, 71.8826, 105.033, 71.8826,
points = PoolVector2Array( 106.643, 175.739, 105.894, 144.275 ) points = PoolVector2Array( 106.643, 175.739, 105.894, 144.275 )
default_color = Color( 0.478431, 0.478431, 0.478431, 1 ) default_color = Color( 0.478431, 0.478431, 0.478431, 1 )
[node name="open_no_object" type="Node2D" parent="base"] [node name="open" type="Node2D" parent="base"]
visible = false visible = false
[node name="black" type="Polygon2D" parent="base/open_no_object"] [node name="black" type="Polygon2D" parent="base/open"]
color = Color( 0.141176, 0.141176, 0.141176, 1 ) color = Color( 0.141176, 0.141176, 0.141176, 1 )
polygon = PoolVector2Array( 5.79657, 8.23298, 5.79657, 297.059, 121.893, 299.89, 123.781, 6.34522 ) polygon = PoolVector2Array( 5.79657, 8.23298, 5.79657, 297.059, 121.893, 299.89, 123.781, 6.34522 )
[node name="shelf" type="Line2D" parent="base/open_no_object"] [node name="shelf" type="Line2D" parent="base/open"]
points = PoolVector2Array( 10.112, 86.2807, 118.234, 86.2807 ) points = PoolVector2Array( 10.112, 86.2807, 118.234, 86.2807 )
default_color = Color( 0.4, 0.501961, 1, 1 ) default_color = Color( 0.4, 0.501961, 1, 1 )
[node name="door" type="Polygon2D" parent="base/open_no_object"] [node name="door" type="Polygon2D" parent="base/open"]
color = Color( 0.4, 0.501961, 1, 1 ) color = Color( 0.4, 0.501961, 1, 1 )
polygon = PoolVector2Array( 1.07718, 7.2891, -37.6216, 23.335, -37.6216, 328.206, 2.02106, 302.722 ) polygon = PoolVector2Array( 1.07718, 7.2891, -37.6216, 23.335, -37.6216, 328.206, 2.02106, 302.722 )
[node name="open_object" type="Node2D" parent="base"]
visible = false
[node name="black" type="Polygon2D" parent="base/open_object"]
color = Color( 0.141176, 0.141176, 0.141176, 1 )
polygon = PoolVector2Array( 5.79657, 8.23298, 5.79657, 297.059, 121.893, 299.89, 123.781, 6.34522 )
[node name="shelf" type="Line2D" parent="base/open_object"]
points = PoolVector2Array( 10.112, 86.2807, 118.234, 86.2807 )
default_color = Color( 0.4, 0.501961, 1, 1 )
[node name="door" type="Polygon2D" parent="base/open_object"]
color = Color( 0.4, 0.501961, 1, 1 )
polygon = PoolVector2Array( 1.07718, 7.2891, -37.6216, 23.335, -37.6216, 328.206, 2.02106, 302.722 )
[node name="bottle" parent="." instance=ExtResource( 2 )]
visible = false
position = Vector2( 51.1535, 45.7845 )
scale = Vector2( 0.507, 0.507 )
interact_positions = {
"default": Vector2( 45.4966, 321.556 )
}
[node name="Position2D" type="Position2D" parent="bottle"]
position = Vector2( -11.1576, 543.928 )
[node name="CollisionPolygon2D" type="CollisionShape2D" parent="."] [node name="CollisionPolygon2D" type="CollisionShape2D" parent="."]
position = Vector2( 64.2172, 153.408 ) position = Vector2( 64.2172, 153.408 )
shape = SubResource( 1 ) shape = SubResource( 1 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="."] [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/closed = SubResource( 2 ) anims/closed = SubResource( 2 )
anims/open_no_object = SubResource( 3 ) anims/open = SubResource( 3 )
anims/open_object = SubResource( 4 )

View File

@@ -8,11 +8,12 @@ set_global left_closet_open true
inc_global open_closets 1 inc_global open_closets 1
> [lt open_closets 3] > [lt open_closets 3]
set_state r9_closet_left open_no_object set_state r9_closet_left open
stop stop
> [eq open_closets 3] > [eq open_closets 3]
set_state r9_closet_left open_object set_state r9_closet_left open
set_active r9_bottle_left true
stop stop
@@ -24,9 +25,10 @@ set_global left_closet_open true
inc_global open_closets 1 inc_global open_closets 1
> [lt open_closets 3] > [lt open_closets 3]
set_state r9_closet_left open_no_object set_state r9_closet_left open
stop stop
> [eq open_closets 3] > [eq open_closets 3]
set_state r9_closet_left open_object set_state r9_closet_left open
set_active r9_bottle_left true
stop stop

View File

@@ -8,11 +8,12 @@ set_global middle_closet_open true
inc_global open_closets 1 inc_global open_closets 1
> [lt open_closets 3] > [lt open_closets 3]
set_state r9_closet_middle open_no_object set_state r9_closet_middle open
stop stop
> [eq open_closets 3] > [eq open_closets 3]
set_state r9_closet_middle open_object set_state r9_closet_middle open
set_active r9_bottle_middle true
stop stop
@@ -24,9 +25,10 @@ set_global middle_closet_open true
inc_global open_closets 1 inc_global open_closets 1
> [lt open_closets 3] > [lt open_closets 3]
set_state r9_closet_middle open_no_object set_state r9_closet_middle open
stop stop
> [eq open_closets 3] > [eq open_closets 3]
set_state r9_closet_middle open_object set_state r9_closet_middle open
set_active r9_bottle_middle true
stop stop

View File

@@ -8,11 +8,12 @@ set_global right_closet_open true
inc_global open_closets 1 inc_global open_closets 1
> [lt open_closets 3] > [lt open_closets 3]
set_state r9_closet_right open_no_object set_state r9_closet_right open
stop stop
> [eq open_closets 3] > [eq open_closets 3]
set_state r9_closet_right open_object set_state r9_closet_right open
set_active r9_bottle_right true
stop stop
@@ -24,9 +25,10 @@ set_global right_closet_open true
inc_global open_closets 1 inc_global open_closets 1
> [lt open_closets 3] > [lt open_closets 3]
set_state r9_closet_right open_no_object set_state r9_closet_right open
stop stop
> [eq open_closets 3] > [eq open_closets 3]
set_state r9_closet_right open_object set_state r9_closet_right open
set_active r9_bottle_right true
stop stop

View File

@@ -1,4 +1,4 @@
:use r9_bottle :use r9_bottle
set_state r9_stand set_bottle set_state r9_stand set_bottle
set_state r9_right_exit open set_state r9_door r_door_open

View File

@@ -112,9 +112,6 @@ esc_script = "res://game/rooms/room9/esc/r9_door.esc"
tooltip_name = "Door" tooltip_name = "Door"
default_action = "look" default_action = "look"
dialog_color = Color( 1, 1, 1, 1 ) dialog_color = Color( 1, 1, 1, 1 )
interact_positions = {
"default": Vector2( 0, 0 )
}
[node name="r_door_closed" type="Polygon2D" parent="."] [node name="r_door_closed" type="Polygon2D" parent="."]
color = Color( 0.482353, 0.568627, 1, 1 ) color = Color( 0.482353, 0.568627, 1, 1 )

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=13 format=2] [gd_scene load_steps=14 format=2]
[ext_resource path="res://addons/escoria-core/game/core-scripts/escterrain.gd" type="Script" id=1] [ext_resource path="res://addons/escoria-core/game/core-scripts/escterrain.gd" type="Script" id=1]
[ext_resource path="res://game/rooms/room9/background.tscn" type="PackedScene" id=2] [ext_resource path="res://game/rooms/room9/background.tscn" type="PackedScene" id=2]
@@ -10,6 +10,7 @@
[ext_resource path="res://game/rooms/room2/button/button.tscn" type="PackedScene" id=8] [ext_resource path="res://game/rooms/room2/button/button.tscn" type="PackedScene" id=8]
[ext_resource path="res://game/rooms/room9/r_door.tscn" type="PackedScene" id=9] [ext_resource path="res://game/rooms/room9/r_door.tscn" type="PackedScene" id=9]
[ext_resource path="res://game/items/textures/genericItem_color_127.png" type="Texture" id=10] [ext_resource path="res://game/items/textures/genericItem_color_127.png" type="Texture" id=10]
[ext_resource path="res://game/items/escitems/bottle_escitem.tscn" type="PackedScene" id=11]
[sub_resource type="NavigationPolygon" 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, 1143.08, 613.35, -9.16094, 803.802, -6.44019, 711.297, 846.646, 637.49, 3.15687, 646.051, 59.2201, 628.698, 84.5821, 654.06, 864.626, 613.518, 428.618, 640.487, 386.666, 618.012, 129.634, 615.792 ) vertices = PoolVector2Array( 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, 1143.08, 613.35, -9.16094, 803.802, -6.44019, 711.297, 846.646, 637.49, 3.15687, 646.051, 59.2201, 628.698, 84.5821, 654.06, 864.626, 613.518, 428.618, 640.487, 386.666, 618.012, 129.634, 615.792 )
@@ -54,15 +55,6 @@ __meta__ = {
[node name="walkable_area" type="Navigation2D" parent="."] [node name="walkable_area" type="Navigation2D" parent="."]
script = ExtResource( 1 ) 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"] [node name="platform" type="NavigationPolygonInstance" parent="walkable_area"]
position = Vector2( 6.73163, -264.779 ) position = Vector2( 6.73163, -264.779 )
@@ -81,9 +73,6 @@ is_exit = true
tooltip_name = "Left exit" tooltip_name = "Left exit"
default_action = "walk" default_action = "walk"
dialog_color = Color( 1, 1, 1, 1 ) dialog_color = Color( 1, 1, 1, 1 )
interact_positions = {
"default": Vector2( 37.4521, 392.045 )
}
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"] [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 ) polygon = PoolVector2Array( 0.328762, 440.897, 1.85199, 119.926, 85.9517, 74.6212, 87.1409, 377.869 )
@@ -93,9 +82,6 @@ position = Vector2( 37.4521, 392.045 )
[node name="r_door" parent="Hotspots" instance=ExtResource( 9 )] [node name="r_door" parent="Hotspots" instance=ExtResource( 9 )]
esc_script = "res://game/rooms/room9/esc/right_exit.esc" esc_script = "res://game/rooms/room9/esc/right_exit.esc"
interact_positions = {
"default": Vector2( 1198.65, 391.058 )
}
[node name="Position2D" type="Position2D" parent="Hotspots/r_door"] [node name="Position2D" type="Position2D" parent="Hotspots/r_door"]
position = Vector2( 1198.65, 391.058 ) position = Vector2( 1198.65, 391.058 )
@@ -105,47 +91,62 @@ position = Vector2( 435.233, 64.1518 )
global_id = "r9_closet_left" global_id = "r9_closet_left"
esc_script = "res://game/rooms/room9/esc/closet_left.esc" esc_script = "res://game/rooms/room9/esc/closet_left.esc"
tooltip_name = "Left closet" tooltip_name = "Left closet"
default_action = "use"
interact_positions = {
"default": Vector2( 505.158, 383.05 )
}
[node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_left"] [node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_left"]
position = Vector2( 69.9246, 318.898 ) position = Vector2( 69.9246, 318.898 )
[node name="bottle_left" parent="Hotspots/r9_closet_left" instance=ExtResource( 11 )]
visible = false
position = Vector2( 46.4878, 47.8335 )
scale = Vector2( 0.5, 0.5 )
global_id = "r9_bottle_left"
dont_apply_terrain_scaling = true
[node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_left/bottle_left"]
position = Vector2( -26.727, 543.448 )
[node name="r9_closet_middle" parent="Hotspots" instance=ExtResource( 5 )] [node name="r9_closet_middle" parent="Hotspots" instance=ExtResource( 5 )]
position = Vector2( 572.963, 65.2113 ) position = Vector2( 572.963, 65.2113 )
global_id = "r9_closet_middle" global_id = "r9_closet_middle"
esc_script = "res://game/rooms/room9/esc/closet_middle.esc" esc_script = "res://game/rooms/room9/esc/closet_middle.esc"
tooltip_name = "Middle closet" tooltip_name = "Middle closet"
default_action = "use"
interact_positions = {
"default": Vector2( 638.65, 383.05 )
}
[node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_middle"] [node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_middle"]
position = Vector2( 65.6867, 317.839 ) position = Vector2( 65.6867, 317.839 )
[node name="bottle_middle" parent="Hotspots/r9_closet_middle" instance=ExtResource( 11 )]
visible = false
position = Vector2( 45.9562, 46.774 )
scale = Vector2( 0.5, 0.5 )
global_id = "r9_bottle_middle"
dont_apply_terrain_scaling = true
[node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_middle/bottle_middle"]
position = Vector2( -26.727, 543.448 )
[node name="r9_closet_right" parent="Hotspots" instance=ExtResource( 5 )] [node name="r9_closet_right" parent="Hotspots" instance=ExtResource( 5 )]
position = Vector2( 710.693, 66.2707 ) position = Vector2( 710.693, 66.2707 )
global_id = "r9_closet_right" global_id = "r9_closet_right"
esc_script = "res://game/rooms/room9/esc/closet_right.esc" esc_script = "res://game/rooms/room9/esc/closet_right.esc"
tooltip_name = "Right closet" tooltip_name = "Right closet"
default_action = "use"
interact_positions = {
"default": Vector2( 775.32, 383.05 )
}
[node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_right"] [node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_right"]
position = Vector2( 64.6273, 316.779 ) position = Vector2( 64.6273, 316.779 )
[node name="bottle_right" parent="Hotspots/r9_closet_right" instance=ExtResource( 11 )]
visible = false
position = Vector2( 47.2065, 45.7146 )
scale = Vector2( 0.5, 0.5 )
global_id = "r9_bottle_right"
dont_apply_terrain_scaling = true
[node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_right/bottle_right"]
position = Vector2( -26.727, 543.448 )
[node name="button" parent="Hotspots" instance=ExtResource( 8 )] [node name="button" parent="Hotspots" instance=ExtResource( 8 )]
position = Vector2( 240.688, 160.459 ) position = Vector2( 240.688, 160.459 )
global_id = "r9_button_reset" global_id = "r9_button_reset"
esc_script = "res://game/rooms/room9/esc/button_reset.esc" esc_script = "res://game/rooms/room9/esc/button_reset.esc"
interact_positions = {
"default": Vector2( 270.892, 369.999 )
}
[node name="Position2D" type="Position2D" parent="Hotspots/button"] [node name="Position2D" type="Position2D" parent="Hotspots/button"]
position = Vector2( 30.204, 209.54 ) position = Vector2( 30.204, 209.54 )
@@ -166,13 +167,10 @@ position = Vector2( -125.617, 0.8909 )
script = ExtResource( 7 ) script = ExtResource( 7 )
global_id = "r9_stand" global_id = "r9_stand"
esc_script = "res://game/rooms/room9/esc/stand.esc" esc_script = "res://game/rooms/room9/esc/stand.esc"
interaction_direction = 2
tooltip_name = "Stand" tooltip_name = "Stand"
default_action = "look" default_action = "look"
use_from_inventory_only = true
dialog_color = Color( 1, 1, 1, 1 ) dialog_color = Color( 1, 1, 1, 1 )
interact_positions = {
"default": Vector2( -125.617, 0.8909 )
}
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/stand"] [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/stand"]
polygon = PoolVector2Array( 1086.57, 357.819, 1087.46, 226.857, 1134.68, 228.639, 1133.79, 358.71 ) polygon = PoolVector2Array( 1086.57, 357.819, 1087.46, 226.857, 1134.68, 228.639, 1133.79, 358.71 )
@@ -190,7 +188,7 @@ texture = ExtResource( 10 )
anims/set_bottle = SubResource( 2 ) anims/set_bottle = SubResource( 2 )
[node name="Position2D" type="Position2D" parent="Hotspots/stand"] [node name="Position2D" type="Position2D" parent="Hotspots/stand"]
position = Vector2( 1111.74, 380.57 ) position = Vector2( 1043.27, 359.243 )
[node name="player_start" type="Position2D" parent="."] [node name="player_start" type="Position2D" parent="."]
position = Vector2( 76.7617, 437.649 ) position = Vector2( 76.7617, 437.649 )

View File

@@ -31,6 +31,8 @@ Implement methods to react to inputs.
- _on_event_done(event_name: String) - _on_event_done(event_name: String)
""" """
func _ready():
ProjectSettings.set_setting("escoria/ui/tooltip_follows_mouse", false)
func _input(event): func _input(event):
if event.is_action_pressed("switch_action_verb"): if event.is_action_pressed("switch_action_verb"):
@@ -61,11 +63,16 @@ func left_double_click_on_bg(position : Vector2) -> void:
## ITEM FOCUS ## ## ITEM FOCUS ##
func element_focused(element_id : String) -> void: func element_focused(element_id : String) -> void:
$ui/tooltip_layer/tooltip.set_target(escoria.esc_runner.get_object(element_id).tooltip_name) var target_obj = escoria.esc_runner.get_object(element_id)
$ui/tooltip_layer/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)
func element_unfocused() -> void: func element_unfocused() -> void:
$ui/tooltip_layer/tooltip.set_target("") $ui/tooltip_layer/tooltip.clear()
$ui/verbs_layer/verbs_menu.unselect_actions()
## ITEMS ## ## ITEMS ##
@@ -73,6 +80,7 @@ func left_click_on_item(item_global_id : String, event : InputEvent) -> void:
escoria.do("item_left_click", [item_global_id, event]) escoria.do("item_left_click", [item_global_id, event])
func right_click_on_item(item_global_id : String, event : InputEvent) -> void: func right_click_on_item(item_global_id : String, event : InputEvent) -> void:
escoria.esc_runner.set_current_action($ui/verbs_layer/verbs_menu.selected_action)
escoria.do("item_right_click", [item_global_id, event]) escoria.do("item_right_click", [item_global_id, event])
func left_double_click_on_item(item_global_id : String, event : InputEvent) -> void: func left_double_click_on_item(item_global_id : String, event : InputEvent) -> void:

View File

@@ -63,7 +63,9 @@ margin_left = 0.0272522
margin_top = 0.320557 margin_top = 0.320557
margin_right = -0.252686 margin_right = -0.252686
margin_bottom = -0.0794678 margin_bottom = -0.0794678
rect_min_size = Vector2( 0, 32 )
script = ExtResource( 8 ) script = ExtResource( 8 )
color = Color( 1, 1, 1, 1 )
[node name="dialog_layer" type="CanvasLayer" parent="ui"] [node name="dialog_layer" type="CanvasLayer" parent="ui"]
layer = 3 layer = 3

View File

@@ -1,17 +1,31 @@
extends ESCTooltip extends ESCTooltip
func update_tooltip_text(): func update_tooltip_text():
push_align(RichTextLabel.ALIGN_CENTER) bbcode_text = "[center]"
bbcode_text += "[color=#" + color.to_html(false) + "]"
if !current_action.empty(): if !current_action.empty():
add_text(current_action + "\t") bbcode_text += current_action + "\t"
bbcode_text += current_target
add_text(current_target)
if waiting_for_target2 and current_target2.empty(): if waiting_for_target2 and current_target2.empty():
add_text("\t" + current_prep) bbcode_text += "\t" + current_prep
if !current_target2.empty(): if !current_target2.empty():
add_text("\t" + current_prep + "\t" + current_target2) bbcode_text += "\t" + current_prep + "\t" + current_target2
pop() bbcode_text += "[/color]"
bbcode_text += "[/center]"
# push_align(RichTextLabel.ALIGN_CENTER)
# if !current_action.empty():
# add_text(current_action + "\t")
#
# add_text(current_target)
#
# if waiting_for_target2 and current_target2.empty():
# add_text("\t" + current_prep)
#
# if !current_target2.empty():
# add_text("\t" + current_prep + "\t" + current_target2)
#
# pop()

View File

@@ -6,6 +6,8 @@ This script is out of Escoria's scope. It controls the UI reaction to an
UI event (eg right click) to change the cursor accordingly. UI event (eg right click) to change the cursor accordingly.
""" """
var selected_action
func _ready(): func _ready():
for but in $actions.get_children(): for but in $actions.get_children():
but.connect("pressed", self, "_on_action_selected", [but.name]) but.connect("pressed", self, "_on_action_selected", [but.name])
@@ -20,3 +22,10 @@ func _on_action_selected(action : String):
func unselect_actions(): func unselect_actions():
for but in $actions.get_children(): for but in $actions.get_children():
but.set_pressed(false) but.set_pressed(false)
func set_by_name(action_name : String):
selected_action = action_name
for but in $actions.get_children():
but.set_pressed(but.get_name() == action_name)

View File

@@ -29,9 +29,12 @@ Implement methods to react to inputs.
- show_ui() - show_ui()
- _on_event_done(event_name: String) - _on_event_done(event_name: String)
""" """
func _ready():
ProjectSettings.set_setting("escoria/ui/tooltip_follows_mouse", true)
## BACKGROUND ## ## BACKGROUND ##
func left_click_on_bg(position : Vector2) -> void: func left_click_on_bg(position : Vector2) -> void:
@@ -54,7 +57,6 @@ func left_double_click_on_bg(position : Vector2) -> void:
func element_focused(element_id : String) -> void: func element_focused(element_id : String) -> void:
var target_obj = escoria.esc_runner.get_object(element_id) var target_obj = escoria.esc_runner.get_object(element_id)
$ui/tooltip_layer/tooltip.set_target(target_obj.tooltip_name) $ui/tooltip_layer/tooltip.set_target(target_obj.tooltip_name)
$ui/tooltip_layer/tooltip.show()
if escoria.esc_runner.current_action != "use" && escoria.esc_runner.current_tool == null: if escoria.esc_runner.current_action != "use" && escoria.esc_runner.current_tool == null:
if target_obj is ESCItem: if target_obj is ESCItem:
@@ -62,7 +64,6 @@ func element_focused(element_id : String) -> void:
func element_unfocused() -> void: func element_unfocused() -> void:
$ui/tooltip_layer/tooltip.set_target("") $ui/tooltip_layer/tooltip.set_target("")
$ui/tooltip_layer/tooltip.hide()
## ITEMS ## ## ITEMS ##

View File

@@ -1,7 +1,6 @@
extends ESCTooltip extends ESCTooltip
func update_tooltip_text(): func update_tooltip_text():
print("new color " + str(color))
bbcode_text = "[center]" bbcode_text = "[center]"
bbcode_text += "[color=#" + color.to_html(false) + "]" bbcode_text += "[color=#" + color.to_html(false) + "]"
bbcode_text += current_target bbcode_text += current_target

View File

@@ -125,11 +125,10 @@ main/force_quit=true
debug/terminate_on_warnings=false debug/terminate_on_warnings=false
debug/terminate_on_errors=true debug/terminate_on_errors=true
debug/development_lang="en" debug/development_lang="en"
ui/tooltip_follows_mouse=true
ui/dialogs_folder="res://game/ui/commons/dialogs" ui/dialogs_folder="res://game/ui/commons/dialogs"
ui/default_dialog_scene="res://game/ui/commons/dialogs/dialog_label.tscn" 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.tscn"
ui/game_scene="res://game/ui/ui_mouse_icons/game.tscn" ui/game_scene="res://game/ui/ui_9verbs/game.tscn"
internals/save_data="" internals/save_data=""
[input] [input]