Continued camera effects adding (zoom, shift)
Added trigger behaviour to ESCItem and removed ESCTriggerZone.
This commit is contained in:
@@ -25,8 +25,6 @@ func _enter_tree():
|
||||
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)
|
||||
add_custom_type("ESCTriggerZone", "Area2D",
|
||||
load("res://addons/escoria-core/game/core-scripts/esctriggerzone.gd"), null)
|
||||
|
||||
set_escoria_main_settings()
|
||||
set_escoria_debug_settings()
|
||||
@@ -152,7 +150,6 @@ func _exit_tree():
|
||||
remove_custom_type("ESCPlayer")
|
||||
remove_custom_type("ESCRoom")
|
||||
remove_custom_type("ESCTerrain")
|
||||
remove_custom_type("ESCTriggerZone")
|
||||
|
||||
remove_autoloads()
|
||||
|
||||
|
||||
@@ -440,28 +440,19 @@ 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 or val is ESCHotspot:
|
||||
if val is ESCItem or val is ESCPlayer or val is ESCCharacter:
|
||||
if name in states:
|
||||
set_state(name, [states[name], true])
|
||||
else:
|
||||
set_state(name, [esctypes.OBJ_DEFAULT_STATE])
|
||||
|
||||
if val is ESCItem or val is ESCHotspot:
|
||||
if val is ESCItem:
|
||||
if val.is_interactive:
|
||||
set_interactive(name, true)
|
||||
|
||||
|
||||
# if val.has_method("set_active"):
|
||||
# if name in actives:
|
||||
# val.set_active(actives[name])
|
||||
|
||||
# if val.has_method("set_interactive"):
|
||||
# if name in interactives:
|
||||
# val.set_interactive(interactives[name])
|
||||
|
||||
if val.get("esc_script") != null and !val.get("esc_script").empty():
|
||||
objects_events_table[name] = escoria.esc_compiler.load_esc_file(val.esc_script)
|
||||
|
||||
|
||||
|
||||
func get_object(name):
|
||||
if !(name in objects):
|
||||
@@ -588,11 +579,6 @@ func set_state(global_id : String, p_params : Array):
|
||||
# animation_node = obj.get("animation")
|
||||
if obj.get_animation_player() != null:
|
||||
animation_node = obj.get_animation_player()
|
||||
elif obj is ESCHotspot and obj.get_item_child_if_any() != null:
|
||||
#if obj.get_item_child_if_any().get("animation") != null:
|
||||
# animation_node = obj.get_item_child_if_any().animation
|
||||
if obj.get_item_child_if_any().get_animation_player() != null:
|
||||
animation_node = obj.get_item_child_if_any().get_animation_player()
|
||||
|
||||
if animation_node:
|
||||
animation_node.stop()
|
||||
@@ -614,7 +600,7 @@ func set_state(global_id : String, p_params : Array):
|
||||
var animation = actual_animator.get_animation(p_params[0])
|
||||
var animation_length = animation.length
|
||||
animation_node.seek(animation_length)
|
||||
|
||||
print_debug("Item " + obj.global_id + " changed state to: " + p_params[0])
|
||||
|
||||
"""
|
||||
When object is active, it is VISIBLE.
|
||||
|
||||
@@ -156,10 +156,13 @@ camera_set_pos speed x y
|
||||
Moves the camera to a position defined by "x" and "y", at the speed defined by
|
||||
"speed" in pixels per second. If speed is 0, camera is teleported to the position.
|
||||
"""
|
||||
func camera_set_pos():
|
||||
func camera_set_pos(command_params : Array):
|
||||
# var speed = command_params[0]
|
||||
# var x = command_params[1]
|
||||
# var y = command_params[2]
|
||||
# escoria.esc_runner.get_object("camera").set_pos(speed, x, y)
|
||||
pass
|
||||
|
||||
|
||||
"""
|
||||
camera_set_target speed object [object2 object3 ...]
|
||||
Configures the camera to follow 1 or more objects, using "speed" as speed limit.
|
||||
@@ -180,8 +183,10 @@ the camera out, and smaller values zooms in, relative to the default value of 1.
|
||||
An optional time in seconds controls how long it takes for the camera to zoom
|
||||
into position.
|
||||
"""
|
||||
func camera_set_zoom():
|
||||
pass
|
||||
func camera_set_zoom(command_params : Array):
|
||||
var zoom_level = command_params[0]
|
||||
var speed = command_params[0] if command_params.size() > 1 else 0
|
||||
escoria.esc_runner.get_object("camera").set_camera_zoom(zoom_level, speed)
|
||||
|
||||
|
||||
"""
|
||||
@@ -198,8 +203,12 @@ Shift camera by x and y pixels over time seconds.
|
||||
- type is any of the Tween.TransitionType values without the prefix, eg. LINEAR,
|
||||
QUART or CIRC; defaults to QUART.
|
||||
"""
|
||||
func camera_shift():
|
||||
pass
|
||||
func camera_shift(command_params : Array):
|
||||
var x = command_params[0]
|
||||
var y = command_params[1]
|
||||
var time = command_params[2]
|
||||
var type = command_params[3] if command_params.size() > 3 else "QUAD"
|
||||
escoria.esc_runner.get_object("camera").shift(x, y, time, type)
|
||||
|
||||
|
||||
"""
|
||||
|
||||
@@ -20,10 +20,23 @@ var MovableScript = load("res://addons/escoria-core/game/core-scripts/behaviors/
|
||||
|
||||
export(String) var global_id
|
||||
export(String, FILE, "*.esc") var esc_script
|
||||
|
||||
# If true, the ESC script may have an ":exit_scene" event to manage scene changes
|
||||
export(bool) var is_exit
|
||||
|
||||
# is_trigger If true, object is considered as trigger. Allows using :trigger_in and
|
||||
# :trigger_out verbs in ESC scripts.
|
||||
export(bool) var is_trigger
|
||||
export(String) var trigger_in_verb = "trigger_in"
|
||||
export(String) var trigger_out_verb = "trigger_out"
|
||||
|
||||
# is_interactive : If true, object is not "focusable".
|
||||
export(bool) var is_interactive = true
|
||||
|
||||
# player_orients_on_arrival : If true, player orients towards 'interaction_direction' as
|
||||
# player character arrives.
|
||||
export(bool) var player_orients_on_arrival = true
|
||||
|
||||
export(ESCPlayer.Directions) var interaction_direction
|
||||
export(String) var tooltip_name
|
||||
export(String) var default_action
|
||||
@@ -97,6 +110,7 @@ var last_deg : int
|
||||
var last_dir : int
|
||||
|
||||
func _ready():
|
||||
assert(!global_id.empty())
|
||||
|
||||
# Adds movable behavior
|
||||
Movable = Node.new()
|
||||
@@ -120,11 +134,17 @@ func _ready():
|
||||
|
||||
if !Engine.is_editor_hint():
|
||||
escoria.register_object(self)
|
||||
connect("mouse_entered_item", escoria.inputs_manager, "_on_mouse_entered_item")
|
||||
connect("mouse_exited_item", escoria.inputs_manager, "_on_mouse_exited_item")
|
||||
connect("mouse_left_clicked_item", escoria.inputs_manager, "_on_mouse_left_clicked_item")
|
||||
connect("mouse_double_left_clicked_item", escoria.inputs_manager, "_on_mouse_left_double_clicked_item")
|
||||
connect("mouse_right_clicked_item", escoria.inputs_manager, "_on_mouse_right_clicked_item")
|
||||
if !is_trigger:
|
||||
connect("mouse_entered_item", escoria.inputs_manager, "_on_mouse_entered_item")
|
||||
connect("mouse_exited_item", escoria.inputs_manager, "_on_mouse_exited_item")
|
||||
connect("mouse_left_clicked_item", escoria.inputs_manager, "_on_mouse_left_clicked_item")
|
||||
connect("mouse_double_left_clicked_item", escoria.inputs_manager, "_on_mouse_left_double_clicked_item")
|
||||
connect("mouse_right_clicked_item", escoria.inputs_manager, "_on_mouse_right_clicked_item")
|
||||
else:
|
||||
connect("area_entered", self, "element_entered")
|
||||
connect("area_exited", self, "element_exited")
|
||||
connect("body_entered", self, "element_entered")
|
||||
connect("body_exited", self, "element_exited")
|
||||
|
||||
if !is_exit:
|
||||
last_scale = scale
|
||||
@@ -184,12 +204,32 @@ func _on_mouse_exited():
|
||||
|
||||
################################################################################
|
||||
|
||||
# TRIGGER functions
|
||||
|
||||
func element_entered(body):
|
||||
if body is ESCBackground or body.get_parent() is ESCBackground:
|
||||
return
|
||||
escoria.do("trigger_in", [global_id, body.global_id, trigger_in_verb])
|
||||
|
||||
|
||||
func element_exited(body):
|
||||
if body is ESCBackground or body.get_parent() is ESCBackground:
|
||||
return
|
||||
escoria.do("trigger_out", [global_id, body.global_id, trigger_out_verb])
|
||||
|
||||
################################################################################
|
||||
|
||||
# MOVING OBJECT functions
|
||||
|
||||
func teleport(target, angle : Object = null) -> void:
|
||||
Movable.teleport(target, angle)
|
||||
|
||||
func walk_to(pos : Vector2, p_walk_context = null):
|
||||
Movable.walk_to(pos, p_walk_context)
|
||||
|
||||
################################################################################
|
||||
|
||||
# TALKATIVE object functions
|
||||
|
||||
func start_talking():
|
||||
# if animation_sprite.is_playing():
|
||||
|
||||
@@ -2,30 +2,30 @@ tool
|
||||
extends Area2D
|
||||
class_name ESCTriggerZone
|
||||
|
||||
signal left_click_on_trigger
|
||||
signal left_dblclick_on_trigger
|
||||
signal right_click_on_trigger
|
||||
signal mouse_enter_trigger
|
||||
signal mouse_exit_trigger
|
||||
func get_class():
|
||||
return "ESCTriggerZone"
|
||||
|
||||
func mouse_enter():
|
||||
emit_signal("mouse_enter_trigger", self)
|
||||
|
||||
func mouse_exit():
|
||||
emit_signal("mouse_exit_trigger", self)
|
||||
export(String) var global_id
|
||||
export(String, FILE, "*.esc") var esc_script
|
||||
|
||||
func body_entered(body):
|
||||
# if body is esc_type.PLAYER:
|
||||
# if self.visible:
|
||||
# run_event("enter")
|
||||
pass
|
||||
|
||||
func body_exited(body):
|
||||
# if body is esc_type.PLAYER:
|
||||
# if self.visible:
|
||||
# run_event("exit")
|
||||
pass
|
||||
func _ready():
|
||||
assert(!global_id.empty())
|
||||
escoria.register_object(self)
|
||||
connect("area_entered", self, "element_entered")
|
||||
connect("area_exited", self, "element_exited")
|
||||
connect("body_entered", self, "element_entered")
|
||||
connect("body_exited", self, "element_exited")
|
||||
|
||||
|
||||
func element_entered(body):
|
||||
if body is ESCBackground or body.get_parent() is ESCBackground:
|
||||
return
|
||||
escoria.do("trigger_in", [global_id, body.global_id])
|
||||
|
||||
|
||||
func element_exited(body):
|
||||
escoria.do("trigger_out", [global_id, body.global_id])
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ func register_object(object : Object):
|
||||
if object is ESCPlayer:
|
||||
$esc_runner.register_object(object_id, object, true)
|
||||
|
||||
if object is ESCHotspot or object is Position2D:
|
||||
if object is Position2D:
|
||||
$esc_runner.register_object(object_id, object, true)
|
||||
|
||||
if object is ESCItem:
|
||||
@@ -104,6 +104,9 @@ func register_object(object : Object):
|
||||
|
||||
if object is ESCInventory:
|
||||
inventory = object
|
||||
|
||||
if object is ESCTriggerZone:
|
||||
$esc_runner.register_object(object_id, object, true)
|
||||
|
||||
|
||||
"""
|
||||
@@ -154,17 +157,28 @@ func do(action : String, params : Array = []) -> void:
|
||||
"item_left_click":
|
||||
if params[0] is String:
|
||||
printt("escoria.do : item_left_click on item ", params[0])
|
||||
|
||||
# call : ev_left_click_on_item()
|
||||
ev_left_click_on_item($esc_runner.get_object(params[0]), params[1])
|
||||
var item = $esc_runner.get_object(params[0])
|
||||
ev_left_click_on_item(item, params[1])
|
||||
|
||||
"item_right_click":
|
||||
if params[0] is String:
|
||||
printt("escoria.do : item_right_click on item ", params[0])
|
||||
|
||||
# call : ev_left_click_on_item()
|
||||
ev_left_click_on_item($esc_runner.get_object(params[0]), params[1], true)
|
||||
|
||||
|
||||
"trigger_in":
|
||||
var trigger_id = params[0]
|
||||
var object_id = params[1]
|
||||
var trigger_in_verb = params[2]
|
||||
printt("escoria.do() : trigger_in ", trigger_id, " by ", object_id)
|
||||
esc_runner.run_event(esc_runner.objects_events_table[trigger_id][trigger_in_verb])
|
||||
|
||||
"trigger_out":
|
||||
var trigger_id = params[0]
|
||||
var object_id = params[1]
|
||||
var trigger_out_verb = params[2]
|
||||
printt("escoria.do() : trigger_out ", trigger_id, " by ", object_id)
|
||||
esc_runner.run_event(esc_runner.objects_events_table[trigger_id][trigger_out_verb])
|
||||
|
||||
_:
|
||||
# $esc_runner.activate(action, params[0])
|
||||
report_warnings("escoria.gd:do()", ["Action received:", action, "with params ", params])
|
||||
|
||||
@@ -82,9 +82,7 @@ func set_current_scene(p_scene, run_events=true):
|
||||
if "setup" in escoria.esc_runner.game:
|
||||
escoria.esc_runner.run_event(escoria.esc_runner.game["setup"])
|
||||
yield(escoria.esc_runner, "event_done")
|
||||
|
||||
# Because 1) changing a scene and 2) having a scene become ready
|
||||
# both call `set_current_scene`, we don't want to duplicate thing
|
||||
|
||||
if not escoria.esc_runner.running_event:
|
||||
escoria.esc_runner.run_game()
|
||||
|
||||
@@ -179,3 +177,5 @@ func check_game_scene_methods():
|
||||
|
||||
assert(current_scene.game.has_method("inventory_item_focused"))
|
||||
assert(current_scene.game.has_method("inventory_item_unfocused"))
|
||||
|
||||
assert(current_scene.game.has_method("mousewheel_action"))
|
||||
|
||||
@@ -15,6 +15,7 @@ var zoom_target
|
||||
# This is needed to adjust dialog positions and such, see dialog_instance.gd
|
||||
var zoom_transform
|
||||
|
||||
|
||||
"""
|
||||
Sets camera limits so it doesn't go out of the scene. If kwargs is null, default
|
||||
limits are used. See Camera2D limits for more details.
|
||||
@@ -65,6 +66,7 @@ func set_drag_margin_enabled(p_dm_h_enabled, p_dm_v_enabled):
|
||||
self.drag_margin_h_enabled = p_dm_h_enabled
|
||||
self.drag_margin_v_enabled = p_dm_v_enabled
|
||||
|
||||
|
||||
func set_target(p_target, p_speed : float = 0.0):
|
||||
speed = p_speed
|
||||
target = p_target
|
||||
@@ -157,16 +159,15 @@ func shift(p_x, p_y, p_time, p_type):
|
||||
escoria.report_warnings("camera",
|
||||
["Tween still active running camera_shift: " + tweenstat])
|
||||
tween.emit_signal("tween_completed")
|
||||
|
||||
|
||||
tween.interpolate_property(self, "global_position", self.global_position,
|
||||
new_pos, time, tween.get(type), Tween.EASE_IN_OUT)
|
||||
new_pos, float(time), tween.get(type), Tween.EASE_IN_OUT)
|
||||
tween.start()
|
||||
|
||||
|
||||
func target_reached(_obj=null, _key=null):
|
||||
func target_reached():
|
||||
tween.stop_all()
|
||||
|
||||
|
||||
func _process(_delta):
|
||||
zoom_transform = self.get_canvas_transform()
|
||||
|
||||
|
||||
@@ -13,14 +13,13 @@ var waiting_for_target2 = false
|
||||
|
||||
func _ready():
|
||||
escoria.esc_runner.connect("action_changed", self, "on_action_selected")
|
||||
escoria.inputs_manager.connect("element_focused", self, "on_element_focused")
|
||||
|
||||
|
||||
func on_action_selected() -> void:
|
||||
current_action = escoria.esc_runner.current_action
|
||||
update_tooltip_text()
|
||||
|
||||
func on_element_focused(element_id : String) -> void:
|
||||
func element_focused(element_id : String) -> void:
|
||||
printt("action_target_tooltip.gd:on_element_focused()", "Element focused: ", element_id)
|
||||
|
||||
if element_id == "":
|
||||
|
||||
103
game/items/escitems/button.tscn
Normal file
103
game/items/escitems/button.tscn
Normal file
@@ -0,0 +1,103 @@
|
||||
[gd_scene load_steps=10 format=2]
|
||||
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=1]
|
||||
[ext_resource path="res://game/rooms/room3/smoke.png" type="Texture" id=2]
|
||||
|
||||
[sub_resource type="Gradient" id=1]
|
||||
offsets = PoolRealArray( 0, 0.830189 )
|
||||
colors = PoolColorArray( 1, 1, 1, 1, 0.353516, 0.353516, 0.353516, 1 )
|
||||
|
||||
[sub_resource type="GradientTexture" id=2]
|
||||
gradient = SubResource( 1 )
|
||||
|
||||
[sub_resource type="Curve" id=3]
|
||||
_data = [ Vector2( 0, 0.0886364 ), 0.0, 0.0, 0, 0, Vector2( 0.612766, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.770213, 0.95 ), -1.55372, -1.55372, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ]
|
||||
|
||||
[sub_resource type="CurveTexture" id=4]
|
||||
curve = SubResource( 3 )
|
||||
|
||||
[sub_resource type="ParticlesMaterial" id=5]
|
||||
lifetime_randomness = 0.2
|
||||
emission_shape = 1
|
||||
emission_sphere_radius = 1.0
|
||||
flag_disable_z = true
|
||||
gravity = Vector3( 0, -9.81, 0 )
|
||||
angular_velocity = 14.47
|
||||
orbit_velocity = 0.0
|
||||
orbit_velocity_random = 1.0
|
||||
radial_accel = 3.97
|
||||
radial_accel_random = 0.63
|
||||
angle = 160.0
|
||||
angle_random = 1.0
|
||||
scale = 0.5
|
||||
scale_random = 0.45
|
||||
scale_curve = SubResource( 4 )
|
||||
color_ramp = SubResource( 2 )
|
||||
|
||||
[sub_resource type="Animation" id=6]
|
||||
resource_name = "button_broken"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Particles2D:emitting")
|
||||
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 ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=7]
|
||||
resource_name = "button_repaired"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Particles2D:emitting")
|
||||
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 ]
|
||||
}
|
||||
|
||||
[node name="button" type="Area2D"]
|
||||
script = ExtResource( 1 )
|
||||
global_id = "r3_button"
|
||||
esc_script = "res://game/rooms/room3/esc/button.esc"
|
||||
tooltip_name = "Button"
|
||||
default_action = "use"
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
interact_positions = {
|
||||
"default": Vector2( 0, 0 )
|
||||
}
|
||||
|
||||
[node name="lines" type="Line2D" parent="."]
|
||||
position = Vector2( 0, -266.591 )
|
||||
points = PoolVector2Array( 322.305, 390.985, 322.305, 439.068, 368.698, 440.037, 368.974, 392.399, 319.028, 391.549 )
|
||||
|
||||
[node name="Polygon2D" type="Polygon2D" parent="lines"]
|
||||
visible = false
|
||||
polygon = PoolVector2Array( 343.993, 396.767, 323.298, 415.689, 344.585, 438.158, 365.872, 417.463 )
|
||||
|
||||
[node name="Particles2D" type="Particles2D" parent="."]
|
||||
position = Vector2( 344.768, 142.144 )
|
||||
amount = 16
|
||||
lifetime = 4.0
|
||||
preprocess = 1.99
|
||||
speed_scale = 1.39
|
||||
process_material = SubResource( 5 )
|
||||
texture = ExtResource( 2 )
|
||||
__meta__ = {
|
||||
"_editor_description_": ""
|
||||
}
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
anims/button_broken = SubResource( 6 )
|
||||
anims/button_repaired = SubResource( 7 )
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||
polygon = PoolVector2Array( 319.633, 122.126, 320.427, 177.685, 371.224, 176.098, 372.811, 121.332 )
|
||||
@@ -1,70 +1,7 @@
|
||||
[gd_scene load_steps=12 format=2]
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escbackground.gd" type="Script" id=1]
|
||||
[ext_resource path="res://game/rooms/room2/bridge.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://game/rooms/room3/smoke.png" type="Texture" id=3]
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=4]
|
||||
|
||||
[sub_resource type="Gradient" id=1]
|
||||
offsets = PoolRealArray( 0, 0.830189 )
|
||||
colors = PoolColorArray( 1, 1, 1, 1, 0.353516, 0.353516, 0.353516, 1 )
|
||||
|
||||
[sub_resource type="GradientTexture" id=2]
|
||||
gradient = SubResource( 1 )
|
||||
|
||||
[sub_resource type="Curve" id=3]
|
||||
_data = [ Vector2( 0, 0.0886364 ), 0.0, 0.0, 0, 0, Vector2( 0.612766, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.770213, 0.95 ), -1.55372, -1.55372, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ]
|
||||
|
||||
[sub_resource type="CurveTexture" id=4]
|
||||
curve = SubResource( 3 )
|
||||
|
||||
[sub_resource type="ParticlesMaterial" id=5]
|
||||
lifetime_randomness = 0.2
|
||||
emission_shape = 1
|
||||
emission_sphere_radius = 1.0
|
||||
flag_disable_z = true
|
||||
gravity = Vector3( 0, -9.81, 0 )
|
||||
angular_velocity = 14.47
|
||||
orbit_velocity = 0.0
|
||||
orbit_velocity_random = 1.0
|
||||
radial_accel = 3.97
|
||||
radial_accel_random = 0.63
|
||||
angle = 160.0
|
||||
angle_random = 1.0
|
||||
scale = 0.5
|
||||
scale_random = 0.45
|
||||
scale_curve = SubResource( 4 )
|
||||
color_ramp = SubResource( 2 )
|
||||
|
||||
[sub_resource type="Animation" id=6]
|
||||
resource_name = "button_broken"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Particles2D:emitting")
|
||||
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 ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=7]
|
||||
resource_name = "button_repaired"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Particles2D:emitting")
|
||||
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 ]
|
||||
}
|
||||
|
||||
[node name="background" type="TextureRect"]
|
||||
margin_right = 1300.0
|
||||
@@ -96,44 +33,3 @@ global_id = "r3_bridge"
|
||||
interact_positions = {
|
||||
"default": Vector2( 0, 0 )
|
||||
}
|
||||
|
||||
[node name="button" type="Area2D" parent="."]
|
||||
script = ExtResource( 4 )
|
||||
global_id = "r3_button"
|
||||
esc_script = "res://game/rooms/room3/esc/button.esc"
|
||||
tooltip_name = "Button"
|
||||
default_action = "use"
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
interact_positions = {
|
||||
"default": Vector2( 347.767, 378.011 )
|
||||
}
|
||||
|
||||
[node name="lines" type="Line2D" parent="button"]
|
||||
position = Vector2( 0, -266.591 )
|
||||
points = PoolVector2Array( 322.305, 390.985, 322.305, 439.068, 368.698, 440.037, 368.974, 392.399, 319.028, 391.549 )
|
||||
|
||||
[node name="Polygon2D" type="Polygon2D" parent="button/lines"]
|
||||
visible = false
|
||||
polygon = PoolVector2Array( 343.993, 396.767, 323.298, 415.689, 344.585, 438.158, 365.872, 417.463 )
|
||||
|
||||
[node name="Particles2D" type="Particles2D" parent="button"]
|
||||
position = Vector2( 344.768, 142.144 )
|
||||
amount = 16
|
||||
lifetime = 4.0
|
||||
preprocess = 1.99
|
||||
speed_scale = 1.39
|
||||
process_material = SubResource( 5 )
|
||||
texture = ExtResource( 3 )
|
||||
__meta__ = {
|
||||
"_editor_description_": ""
|
||||
}
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="button"]
|
||||
anims/button_broken = SubResource( 6 )
|
||||
anims/button_repaired = SubResource( 7 )
|
||||
|
||||
[node name="interact_pos" type="Position2D" parent="button"]
|
||||
position = Vector2( 347.767, 378.011 )
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="button"]
|
||||
polygon = PoolVector2Array( 319.633, 122.126, 320.427, 177.685, 371.224, 176.098, 372.811, 121.332 )
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
[gd_scene load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=1]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2( 28.6442, 23.5021 )
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
resource_name = "button_broken"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("../../background/button/Particles2D:emitting")
|
||||
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 ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=3]
|
||||
resource_name = "button_repaired"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("../../background/button/Particles2D:emitting")
|
||||
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 ]
|
||||
}
|
||||
|
||||
[node name="button" type="Area2D"]
|
||||
position = Vector2( 346.18, 151.013 )
|
||||
script = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
"_editor_description_": ""
|
||||
}
|
||||
global_id = "button"
|
||||
esc_script = "res://game/rooms/room3/esc/button.esc"
|
||||
tooltip_name = "Button"
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
interact_positions = {
|
||||
"default": Vector2( 346.18, 151.013 )
|
||||
}
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="."]
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
anims/button_broken = SubResource( 2 )
|
||||
anims/button_repaired = SubResource( 3 )
|
||||
@@ -1,3 +1,7 @@
|
||||
:ready
|
||||
set_state r3_button button_broken
|
||||
|
||||
|
||||
:look
|
||||
say player "That button must activate the bridge, but it is broken." [button_broken]
|
||||
say player "It should work now." [!button_broken]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=7 format=2]
|
||||
[gd_scene load_steps=8 format=2]
|
||||
|
||||
[ext_resource path="res://game/rooms/room3/walkable_area.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://game/rooms/room3/background.tscn" type="PackedScene" id=2]
|
||||
@@ -6,6 +6,7 @@
|
||||
[ext_resource path="res://game/characters/mark/mark.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=5]
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6]
|
||||
[ext_resource path="res://game/items/escitems/button.tscn" type="PackedScene" id=7]
|
||||
|
||||
[node name="room3" type="Node2D"]
|
||||
script = ExtResource( 6 )
|
||||
@@ -90,5 +91,16 @@ polygon = PoolVector2Array( -2.71457, 437.818, 6.6293, 121.462, 89.3893, 74.7422
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/l_door"]
|
||||
position = Vector2( 44.1375, 384.691 )
|
||||
|
||||
[node name="button" parent="Hotspots" instance=ExtResource( 7 )]
|
||||
interact_positions = {
|
||||
"default": Vector2( 347.767, 378.011 )
|
||||
}
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/button"]
|
||||
position = Vector2( 347.767, 378.011 )
|
||||
__meta__ = {
|
||||
"_editor_description_": ""
|
||||
}
|
||||
|
||||
[node name="player_start" type="Position2D" parent="."]
|
||||
position = Vector2( 63.3074, 444.653 )
|
||||
|
||||
7
game/rooms/room7/esc/button_follow.esc
Executable file
7
game/rooms/room7/esc/button_follow.esc
Executable file
@@ -0,0 +1,7 @@
|
||||
:look
|
||||
say player "That button makes the camera target me."
|
||||
|
||||
:use
|
||||
camera_set_limits 0
|
||||
camera_set_target 0 player
|
||||
|
||||
7
game/rooms/room7/esc/button_push.esc
Executable file
7
game/rooms/room7/esc/button_push.esc
Executable file
@@ -0,0 +1,7 @@
|
||||
:look
|
||||
say player "That button triggers a camera push effect."
|
||||
|
||||
:use
|
||||
camera_push r7_object2 1 LINEAR
|
||||
wait 3
|
||||
camera_push player 1 LINEAR
|
||||
7
game/rooms/room7/esc/button_shift.esc
Executable file
7
game/rooms/room7/esc/button_shift.esc
Executable file
@@ -0,0 +1,7 @@
|
||||
:look
|
||||
say player "That button triggers a camera shift effect."
|
||||
|
||||
:use
|
||||
camera_shift 700 0 5 LINEAR
|
||||
wait 1
|
||||
|
||||
10
game/rooms/room7/esc/button_zoom.esc
Executable file
10
game/rooms/room7/esc/button_zoom.esc
Executable file
@@ -0,0 +1,10 @@
|
||||
:look
|
||||
say player "That button triggers a camera zoom effect."
|
||||
|
||||
:use
|
||||
camera_set_zoom 1.3 2
|
||||
wait 3
|
||||
camera_set_zoom 0.5 2
|
||||
wait 3
|
||||
camera_set_zoom 1 0
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
# :SETUP is called EVERY TIME the room is loaded
|
||||
# :READY is called only the FIRST TIME the room is loaded
|
||||
|
||||
:setup
|
||||
set_state r7_button_push button_repaired
|
||||
> [eq ESC_LAST_SCENE room6]
|
||||
teleport player r7_l_exit
|
||||
# Set player look right
|
||||
@@ -8,13 +12,13 @@
|
||||
teleport player player_start
|
||||
stop
|
||||
|
||||
|
||||
:ready
|
||||
|
||||
camera_push player 0 LINEAR
|
||||
|
||||
camera_push r7_object2 1 LINEAR
|
||||
wait 3
|
||||
camera_push player 1 LINEAR
|
||||
#camera_push player 0 LINEAR
|
||||
#camera_push r7_object2 1 LINEAR
|
||||
#wait 3
|
||||
#camera_push player 1 LINEAR
|
||||
|
||||
#camera_set_drag_margin_enabled bool bool
|
||||
#camera_set_pos real int int
|
||||
|
||||
4
game/rooms/room7/esc/trigger_left.esc
Executable file
4
game/rooms/room7/esc/trigger_left.esc
Executable file
@@ -0,0 +1,4 @@
|
||||
:trigger_in
|
||||
set_state r7_light_left red
|
||||
|
||||
:trigger_out
|
||||
5
game/rooms/room7/esc/trigger_right.esc
Executable file
5
game/rooms/room7/esc/trigger_right.esc
Executable file
@@ -0,0 +1,5 @@
|
||||
:trigger_in
|
||||
set_state r7_light_right green
|
||||
|
||||
:trigger_out
|
||||
set_state r7_light_right red
|
||||
@@ -1,7 +1,8 @@
|
||||
[gd_scene load_steps=9 format=2]
|
||||
[gd_scene load_steps=16 format=2]
|
||||
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escterrain.gd" type="Script" id=1]
|
||||
[ext_resource path="res://game/rooms/room7/background.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://game/items/escitems/button.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://game/characters/mark/mark.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://game/ui/commons/fonts/caslonantique.tres" type="DynamicFont" id=5]
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6]
|
||||
@@ -17,6 +18,72 @@ vertices = PoolVector2Array( 2031.55, -451.45, 135.719, -939.662, 287.172, -941.
|
||||
polygons = [ PoolIntArray( 0, 1, 2, 3, 4 ), PoolIntArray( 5, 4, 3 ), PoolIntArray( 5, 3, 6, 7, 8 ) ]
|
||||
outlines = [ PoolVector2Array( 2027.99, -629.63, 1390.1, -752.574, 1448.12, -803.5, 1425.74, -843.446, 1343.78, -834.537, 1235.09, -777.519, 287.172, -941.444, 135.719, -939.662, 2031.55, -451.45 ) ]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=3]
|
||||
extents = Vector2( 79.0288, 129.758 )
|
||||
|
||||
[sub_resource type="CircleShape2D" id=4]
|
||||
radius = 35.4361
|
||||
|
||||
[sub_resource type="Animation" id=5]
|
||||
resource_name = "green"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Polygon2D:color")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 0.0313726, 0.996078, 0, 1 ) ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=9]
|
||||
resource_name = "red"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Polygon2D:color")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 0, 0, 1 ) ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=7]
|
||||
resource_name = "green"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Polygon2D:color")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 0.0313726, 0.996078, 0, 1 ) ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=10]
|
||||
resource_name = "red"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Polygon2D:color")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 0, 0, 1 ) ]
|
||||
}
|
||||
|
||||
[node name="room7" type="Node2D"]
|
||||
script = ExtResource( 6 )
|
||||
__meta__ = {
|
||||
@@ -37,6 +104,9 @@ margin_right = 40.0
|
||||
margin_bottom = 14.0
|
||||
custom_fonts/font = ExtResource( 5 )
|
||||
text = "ROOM 7 - upstairs"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="room_label_2" type="Label" parent="background"]
|
||||
margin_top = 1354.53
|
||||
@@ -111,8 +181,25 @@ __meta__ = {
|
||||
"_editor_description_": ""
|
||||
}
|
||||
|
||||
[node name="object_1" type="Area2D" parent="Hotspots"]
|
||||
position = Vector2( 358.099, -1195.07 )
|
||||
script = ExtResource( 7 )
|
||||
global_id = "r7_object_1"
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
interact_positions = {
|
||||
"default": Vector2( 818.94, 320.88 )
|
||||
}
|
||||
|
||||
[node name="Line2D" type="Line2D" parent="Hotspots/object_1"]
|
||||
position = Vector2( 0, 1345.52 )
|
||||
points = PoolVector2Array( 398.738, 142.591, 518.947, 64.809, 516.118, 275.527 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/object_1"]
|
||||
position = Vector2( 460.841, 1515.95 )
|
||||
shape = SubResource( 3 )
|
||||
|
||||
[node name="object2" type="Area2D" parent="Hotspots"]
|
||||
position = Vector2( 1600.63, 1358.99 )
|
||||
position = Vector2( 1770.63, 1358.99 )
|
||||
script = ExtResource( 7 )
|
||||
__meta__ = {
|
||||
"_editor_description_": ""
|
||||
@@ -156,6 +243,10 @@ global_id = "r7_upper_stairs"
|
||||
esc_script = "res://game/rooms/room7/esc/upper_stairs.esc"
|
||||
is_exit = true
|
||||
tooltip_name = "Stairs"
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
interact_positions = {
|
||||
"default": Vector2( 1375.17, 604.793 )
|
||||
}
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/upper_stairs"]
|
||||
position = Vector2( -1334.92, 936.565 )
|
||||
@@ -164,9 +255,197 @@ polygon = PoolVector2Array( 1221.86, -804.627, 1220.52, -1158.36, 1450.46, -1134
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/upper_stairs"]
|
||||
position = Vector2( 27.5337, 131.767 )
|
||||
|
||||
[node name="object_1" type="Line2D" parent="Hotspots"]
|
||||
position = Vector2( 0, 1345.52 )
|
||||
points = PoolVector2Array( 398.738, 142.591, 518.947, 64.809, 516.118, 275.527 )
|
||||
[node name="button_camera_push" parent="Hotspots" instance=ExtResource( 3 )]
|
||||
position = Vector2( -167.43, 1463.23 )
|
||||
global_id = "r7_button_push"
|
||||
esc_script = "res://game/rooms/room7/esc/button_push.esc"
|
||||
interact_positions = {
|
||||
"default": Vector2( 279.618, 1763.84 )
|
||||
}
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/button_camera_push"]
|
||||
position = Vector2( 343.048, 300.613 )
|
||||
__meta__ = {
|
||||
"_editor_description_": ""
|
||||
}
|
||||
|
||||
[node name="Label" type="Label" parent="Hotspots/button_camera_push"]
|
||||
margin_left = 304.871
|
||||
margin_top = 97.219
|
||||
margin_right = 384.871
|
||||
margin_bottom = 113.219
|
||||
custom_fonts/font = ExtResource( 5 )
|
||||
text = "Camera_push"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="button_camera_shift" parent="Hotspots" instance=ExtResource( 3 )]
|
||||
position = Vector2( 9.393, 1464.03 )
|
||||
global_id = "r7_button_push"
|
||||
esc_script = "res://game/rooms/room7/esc/button_shift.esc"
|
||||
interact_positions = {
|
||||
"default": Vector2( 463.651, 1765.65 )
|
||||
}
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/button_camera_shift"]
|
||||
position = Vector2( 350.258, 301.616 )
|
||||
|
||||
[node name="Label" type="Label" parent="Hotspots/button_camera_shift"]
|
||||
margin_left = 305.626
|
||||
margin_top = 97.515
|
||||
margin_right = 387.626
|
||||
margin_bottom = 113.515
|
||||
custom_fonts/font = ExtResource( 5 )
|
||||
text = "Camera_shift"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="button_camera_follow" parent="Hotspots" instance=ExtResource( 3 )]
|
||||
position = Vector2( 172.527, 1464.03 )
|
||||
global_id = "r7_button_follow"
|
||||
esc_script = "res://game/rooms/room7/esc/button_follow.esc"
|
||||
interact_positions = {
|
||||
"default": Vector2( 463.651, 1765.65 )
|
||||
}
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/button_camera_follow"]
|
||||
position = Vector2( 350.258, 301.616 )
|
||||
|
||||
[node name="Label" type="Label" parent="Hotspots/button_camera_follow"]
|
||||
margin_left = 305.626
|
||||
margin_top = 97.515
|
||||
margin_right = 387.626
|
||||
margin_bottom = 113.515
|
||||
custom_fonts/font = ExtResource( 5 )
|
||||
text = "Camera_follow"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="button_camera_zoom" parent="Hotspots" instance=ExtResource( 3 )]
|
||||
position = Vector2( 332.527, 1464.03 )
|
||||
global_id = "r7_button_zoom"
|
||||
esc_script = "res://game/rooms/room7/esc/button_zoom.esc"
|
||||
interact_positions = {
|
||||
"default": Vector2( 522.785, 1765.65 )
|
||||
}
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/button_camera_zoom"]
|
||||
position = Vector2( 350.258, 301.616 )
|
||||
|
||||
[node name="Label" type="Label" parent="Hotspots/button_camera_zoom"]
|
||||
margin_left = 305.626
|
||||
margin_top = 97.515
|
||||
margin_right = 387.626
|
||||
margin_bottom = 113.515
|
||||
custom_fonts/font = ExtResource( 5 )
|
||||
text = "Camera_zoom"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="trigger_left" type="Area2D" parent="Hotspots"]
|
||||
position = Vector2( 406, 0 )
|
||||
script = ExtResource( 7 )
|
||||
global_id = "trigger_left"
|
||||
esc_script = "res://game/rooms/room7/esc/trigger_left.esc"
|
||||
is_trigger = true
|
||||
is_interactive = false
|
||||
player_orients_on_arrival = false
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
interact_positions = {
|
||||
"default": null
|
||||
}
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/trigger_left"]
|
||||
polygon = PoolVector2Array( 724.356, 1944.36, 716.865, 1752.57, 800.77, 1752.57, 814.254, 1942.86 )
|
||||
|
||||
[node name="Label" type="Label" parent="Hotspots/trigger_left"]
|
||||
margin_left = 672.764
|
||||
margin_top = 1705.64
|
||||
margin_right = 812.764
|
||||
margin_bottom = 1740.64
|
||||
custom_fonts/font = ExtResource( 5 )
|
||||
text = "This trigger is activated
|
||||
once if player walks on it"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="trigger_right" type="Area2D" parent="Hotspots"]
|
||||
position = Vector2( 220, 0 )
|
||||
script = ExtResource( 7 )
|
||||
global_id = "trigger_right"
|
||||
esc_script = "res://game/rooms/room7/esc/trigger_right.esc"
|
||||
is_trigger = true
|
||||
is_interactive = false
|
||||
player_orients_on_arrival = false
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
interact_positions = {
|
||||
"default": null
|
||||
}
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/trigger_right"]
|
||||
position = Vector2( 372.68, 4.12805 )
|
||||
polygon = PoolVector2Array( 724.356, 1944.36, 716.865, 1752.57, 800.77, 1752.57, 814.254, 1942.86 )
|
||||
|
||||
[node name="Label" type="Label" parent="Hotspots/trigger_right"]
|
||||
margin_left = 1068.46
|
||||
margin_top = 1707.64
|
||||
margin_right = 1218.46
|
||||
margin_bottom = 1742.64
|
||||
custom_fonts/font = ExtResource( 5 )
|
||||
text = "This trigger activates when
|
||||
player walks in AND out"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="light_left" type="Area2D" parent="Hotspots"]
|
||||
position = Vector2( 412, 0 )
|
||||
script = ExtResource( 7 )
|
||||
global_id = "r7_light_left"
|
||||
is_interactive = false
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
interact_positions = {
|
||||
"default": null
|
||||
}
|
||||
|
||||
[node name="Polygon2D" type="Polygon2D" parent="Hotspots/light_left"]
|
||||
color = Color( 0.0313726, 0.996078, 0, 1 )
|
||||
polygon = PoolVector2Array( 718.946, 1494.91, 709.047, 1518.24, 717.885, 1540.16, 740.837, 1551.8, 764.908, 1541.57, 774.1, 1519.65, 763.847, 1494.2, 742.336, 1484.38 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/light_left"]
|
||||
position = Vector2( 742.194, 1518.8 )
|
||||
shape = SubResource( 4 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Hotspots/light_left"]
|
||||
anims/green = SubResource( 5 )
|
||||
anims/red = SubResource( 9 )
|
||||
|
||||
[node name="light_right" type="Area2D" parent="Hotspots"]
|
||||
position = Vector2( 613.333, -1.13 )
|
||||
script = ExtResource( 7 )
|
||||
global_id = "r7_light_right"
|
||||
is_interactive = false
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
interact_positions = {
|
||||
"default": Vector2( 742.194, 1518.8 )
|
||||
}
|
||||
|
||||
[node name="Polygon2D" type="Polygon2D" parent="Hotspots/light_right"]
|
||||
color = Color( 1, 0, 0, 1 )
|
||||
polygon = PoolVector2Array( 718.946, 1494.91, 709.047, 1518.24, 717.885, 1540.16, 740.837, 1551.8, 764.908, 1541.57, 774.1, 1519.65, 763.847, 1494.2, 742.336, 1484.38 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/light_right"]
|
||||
position = Vector2( 742.194, 1518.8 )
|
||||
shape = SubResource( 4 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Hotspots/light_right"]
|
||||
anims/green = SubResource( 7 )
|
||||
anims/red = SubResource( 10 )
|
||||
|
||||
[node name="player_start" type="Position2D" parent="."]
|
||||
position = Vector2( 76.7617, 1847.24 )
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
#change_scene res://game/rooms/room5/room5.tscn
|
||||
|
||||
# 6/ character room
|
||||
change_scene res://game/rooms/room6/room6.tscn
|
||||
#change_scene res://game/rooms/room6/room6.tscn
|
||||
|
||||
# 7/ long room with camera shift to object 2 if look on object 1
|
||||
# and stairs with camera shift too
|
||||
#change_scene res://game/rooms/room7/room7.tscn
|
||||
change_scene res://game/rooms/room7/room7.tscn
|
||||
|
||||
|
||||
@@ -14,7 +14,17 @@ Implement methods to react to inputs.
|
||||
- right_click_on_item(item_global_id : String, event : InputEvent)
|
||||
- left_double_click_on_item(item_global_id : String, event : InputEvent)
|
||||
|
||||
- left_click_on_inventory_item(inventory_item_global_id : String, event : InputEvent)
|
||||
- right_click_on_inventory_item(inventory_item_global_id : String, event : InputEvent)
|
||||
- left_double_click_on_inventory_item(inventory_item_global_id : String, event : InputEvent)
|
||||
- inventory_item_focused(inventory_item_global_id : String)
|
||||
- inventory_item_unfocused()
|
||||
- open_inventory()
|
||||
- close_inventory()
|
||||
|
||||
- mousewheel_action(direction : int)
|
||||
|
||||
|
||||
"""
|
||||
|
||||
signal element_focused(element_global_id)
|
||||
@@ -40,7 +50,7 @@ func left_double_click_on_bg(position : Vector2) -> void:
|
||||
escoria.do("walk", ["player", position, true])
|
||||
|
||||
|
||||
## ITEM/HOTSPOT FOCUS ##
|
||||
## ITEM FOCUS ##
|
||||
|
||||
func element_focused(element_id : String) -> void:
|
||||
#emit_signal("element_focused", element_id)
|
||||
|
||||
Reference in New Issue
Block a user