Added a new character and modified the way :setup and :ready events are run.

This commit is contained in:
Julian Murgia
2020-12-26 21:53:00 +01:00
parent f26d96f115
commit af8a9ea086
58 changed files with 1259 additions and 340 deletions

View File

@@ -68,16 +68,18 @@ func set_target(p_target, p_speed : float = 0.0):
if tween.is_active():
var tweenstat = String(tween.tell()) + "/" + String(tween.get_runtime())
escoria.report_warnings("camera.gd:set_target()", ["Tween still active running camera_set_target: " + tweenstat])
escoria.report_warnings("camera.gd:set_target()",
["Tween still active running camera_set_target: " + tweenstat])
tween.emit_signal("tween_completed")
tween.interpolate_property(self, "global_position", self.global_position, target_pos, time, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
tween.interpolate_property(self, "global_position", self.global_position,
target_pos, time, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
tween.start()
func set_camera_zoom(p_zoom_level, p_time):
if p_zoom_level <= 0.0:
escoria.report_errors("camera.gd:set_camera_zoom()", ["Tried to set negative or zero zoom level"])
escoria.report_errors("camera.gd:set_camera_zoom()",
["Tried to set negative or zero zoom level"])
zoom_time = p_time
zoom_target = Vector2(1, 1) * p_zoom_level
@@ -87,13 +89,15 @@ func set_camera_zoom(p_zoom_level, p_time):
else:
if tween.is_active():
var tweenstat = String(tween.tell()) + "/" + String(tween.get_runtime())
escoria.report_warnings("camera", ["Tween still active running camera_set_zoom: " + tweenstat])
escoria.report_warnings("camera",
["Tween still active running camera_set_zoom: " + tweenstat])
tween.emit_signal("tween_completed")
tween.interpolate_property(self, "zoom", self.zoom, zoom_target, zoom_time, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
tween.interpolate_property(self, "zoom", self.zoom, zoom_target,
zoom_time, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
tween.start()
func push(p_target, p_time, p_type):
var time = float(p_time)
var type = "TRANS_" + p_type
@@ -116,16 +120,19 @@ func push(p_target, p_time, p_type):
else:
if tween.is_active():
var tweenstat = String(tween.tell()) + "/" + String(tween.get_runtime())
escoria.report_warnings("camera", ["Tween still active running camera_push: " + tweenstat])
escoria.report_warnings("camera",
["Tween still active running camera_push: " + tweenstat])
tween.emit_signal("tween_completed")
if camera_pos and camera_pos is Camera2D:
tween.interpolate_property(self, "zoom", self.zoom, camera_pos.zoom, time, tween.get(type), Tween.EASE_IN_OUT)
tween.interpolate_property(self, "global_position", self.global_position, camera_pos_coords, time, tween.get(type), Tween.EASE_IN_OUT)
tween.interpolate_property(self, "zoom", self.zoom, camera_pos.zoom,
time, tween.get(type), Tween.EASE_IN_OUT)
tween.interpolate_property(self, "global_position", self.global_position,
camera_pos_coords, time, tween.get(type), Tween.EASE_IN_OUT)
tween.start()
func shift(p_x, p_y, p_time, p_type):
var x = int(p_x)
var y = int(p_y)
@@ -133,21 +140,23 @@ func shift(p_x, p_y, p_time, p_type):
var type = "TRANS_" + p_type
var new_pos = self.global_position + Vector2(x, y)
target = new_pos
if tween.is_active():
var tweenstat = String(tween.tell()) + "/" + String(tween.get_runtime())
escoria.report_warnings("camera", ["Tween still active running camera_shift: " + tweenstat])
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)
tween.interpolate_property(self, "global_position", self.global_position,
new_pos, time, tween.get(type), Tween.EASE_IN_OUT)
tween.start()
func target_reached(_obj=null, _key=null):
tween.stop_all()
func _process(_delta):
zoom_transform = self.get_canvas_transform()

View File

@@ -4,17 +4,19 @@ class_name ESCInventory
func get_class():
return "ESCInventory"
"""
This script is set on the inventory UI scene's root node.
The scene MUST contain the 2 following nodes:
- one node named "ESCORIA_ALL_ITEMS" containing ALL ESCItems of the game. This is required
to be able to get the ESCInventoryItem for a given ESCItem.
- one Container node (under Control type) that will contain the inventory items.
It must be set in the "items_container" export variable.
"""
# Define the actual container node to add items as children of. Should be a Container.
export(NodePath) var items_container
onready var all_items = $all_items
# Methods available for selecting an item
enum ITEM_SELECTION_METHODS {
VERB_ACTION, # Use a verb action, such as use or give, on inventory item
ONE_CLICK, # One click on inventory item selects it (eventually put it on cursor)
DRAG_N_DROP # (Useful for mobile) Drag n drop item on another or on background to use/give it
}
export(ITEM_SELECTION_METHODS) var selection_method
onready var all_items = $ESCORIA_ALL_ITEMS
var items_ids_in_inventory : Dictionary = {} # { item_id : TextureButton}
@@ -52,7 +54,6 @@ func add_new_item_by_id(item_id : String) -> void:
escoria.esc_runner.register_object(item_id, item_inventory_button)
item_inventory_button.visible = true
# connect this new item TextureButton's signals to our inventory UI
item_inventory_button.connect("mouse_left_inventory_item",
escoria.inputs_manager, "_on_mouse_left_click_inventory_item")
item_inventory_button.connect("mouse_double_left_inventory_item",