Checked all FIXMEs and TODOs (#353)
Co-authored-by: Dennis Ploeger <develop@dieploegers.de> Co-authored-by: dploeger <dploeger@users.noreply.github.com>
This commit is contained in:
@@ -31,16 +31,16 @@ var walk_context: ESCWalkContext = null
|
|||||||
# Wether the character was moved at all
|
# Wether the character was moved at all
|
||||||
var moved: bool
|
var moved: bool
|
||||||
|
|
||||||
# Angle degrees to the last position (TODO is that correct?)
|
# Angle degrees from the last position to the next
|
||||||
var last_deg: int
|
var last_deg: int
|
||||||
|
|
||||||
# Direction of the last position (TODO is that correct?)
|
# Player Direction used to reflect the movement to the new position
|
||||||
var last_dir: int
|
var last_dir: int
|
||||||
|
|
||||||
# Scale of the last position (TODO is that correct?)
|
# The last scaling applied to the parent
|
||||||
var last_scale: Vector2
|
var last_scale: Vector2
|
||||||
|
|
||||||
# TODO Isn't this actually the flip state of the current animation?
|
# Wether the current direction animation is flipped
|
||||||
var pose_scale: int
|
var pose_scale: int
|
||||||
|
|
||||||
|
|
||||||
@@ -50,9 +50,6 @@ var _orig_speed: float = 0.0
|
|||||||
# Shortcut variable that references the node's parent
|
# Shortcut variable that references the node's parent
|
||||||
onready var parent = get_parent()
|
onready var parent = get_parent()
|
||||||
|
|
||||||
# If character misses an animation, bypass it and proceed.
|
|
||||||
onready var bypass_missing_animation = false
|
|
||||||
|
|
||||||
|
|
||||||
# Currenly running task
|
# Currenly running task
|
||||||
onready var task = MovableTask.NONE
|
onready var task = MovableTask.NONE
|
||||||
@@ -89,7 +86,6 @@ func _process(delta: float) -> void:
|
|||||||
dist *= parent.terrain.player_doubleclick_speed_multiplier
|
dist *= parent.terrain.player_doubleclick_speed_multiplier
|
||||||
var dir = (next - pos).normalized()
|
var dir = (next - pos).normalized()
|
||||||
|
|
||||||
# TODO comment what this is all about
|
|
||||||
dir = dir * (dir.x * dir.x + dir.y * dir.y * parent.v_speed_damp)
|
dir = dir * (dir.x * dir.x + dir.y * dir.y * parent.v_speed_damp)
|
||||||
|
|
||||||
var new_pos
|
var new_pos
|
||||||
@@ -115,33 +111,26 @@ func _process(delta: float) -> void:
|
|||||||
var current_animation = ""
|
var current_animation = ""
|
||||||
if parent.animation_sprite != null:
|
if parent.animation_sprite != null:
|
||||||
current_animation = parent.animation_sprite.animation
|
current_animation = parent.animation_sprite.animation
|
||||||
# elif animation != null:
|
|
||||||
# current_animation = animation.current_animation
|
|
||||||
|
|
||||||
# FIXME This is obviously wrong as bypass_missing_animation is
|
var animation_to_play = \
|
||||||
# always false
|
parent.animations.directions[last_dir][0]
|
||||||
bypass_missing_animation = false
|
if current_animation != animation_to_play:
|
||||||
if !bypass_missing_animation:
|
if parent.animation_sprite.frames.has_animation(
|
||||||
var animation_to_play = \
|
animation_to_play
|
||||||
parent.animations.directions[last_dir][0]
|
):
|
||||||
if current_animation != animation_to_play:
|
parent.animation_sprite.play(animation_to_play)
|
||||||
if parent.animation_sprite.frames.has_animation(
|
else:
|
||||||
animation_to_play
|
current_animation = animation_to_play
|
||||||
):
|
escoria.logger.report_warnings(
|
||||||
parent.animation_sprite.play(animation_to_play)
|
"movable.gd:_process()",
|
||||||
else:
|
[
|
||||||
bypass_missing_animation = true
|
"Character %s has no animation %s "
|
||||||
current_animation = animation_to_play
|
% [parent.global_id, animation_to_play],
|
||||||
escoria.logger.report_warnings(
|
"Bypassing missing animation and " +
|
||||||
"movable.gd:_process()",
|
"proceed movement."
|
||||||
[
|
],
|
||||||
"Character %s has no animation %s "
|
true
|
||||||
% [parent.global_id, animation_to_play],
|
)
|
||||||
"Bypassing missing animation and " +
|
|
||||||
"proceed movement."
|
|
||||||
],
|
|
||||||
true
|
|
||||||
)
|
|
||||||
|
|
||||||
pose_scale = parent.animations.directions[last_dir][1]
|
pose_scale = parent.animations.directions[last_dir][1]
|
||||||
|
|
||||||
@@ -152,53 +141,43 @@ func _process(delta: float) -> void:
|
|||||||
|
|
||||||
|
|
||||||
# Teleports this item to the target position.
|
# Teleports this item to the target position.
|
||||||
# TODO angle is only used for logging and has no further use, so it probably
|
|
||||||
# can be removed
|
|
||||||
#
|
#
|
||||||
# #### Parameters
|
# #### Parameters
|
||||||
#
|
#
|
||||||
# - target: Position2d or ESCItem to teleport to
|
# - target: Position2d or ESCItem to teleport to
|
||||||
func teleport(target: Node, angle: Object = null) -> void:
|
func teleport(target: Node) -> void:
|
||||||
if target is Position2D:
|
if target.has_method("get_interact_position"):
|
||||||
|
parent.position = target.get_interact_position()
|
||||||
escoria.logger.info(
|
escoria.logger.info(
|
||||||
"Object %s teleported at position %s with angle" %
|
"Object %s is teleported at position %s" % [
|
||||||
[parent.global_id, str(target.position)],
|
target.name,
|
||||||
[angle]
|
parent.position
|
||||||
|
]
|
||||||
|
)
|
||||||
|
elif "position" in target:
|
||||||
|
escoria.logger.info(
|
||||||
|
"Object %s teleported at position %s" %
|
||||||
|
[parent.global_id, str(target.position)]
|
||||||
)
|
)
|
||||||
parent.position = target.position
|
parent.position = target.position
|
||||||
elif typeof(target) == TYPE_OBJECT:
|
|
||||||
# FIXME this is better written as target is ESCItem if that's
|
|
||||||
# the only case here
|
|
||||||
# if target.get("interact_positions") != null:
|
|
||||||
# parent.position = target.interact_positions.default
|
|
||||||
# else:
|
|
||||||
# parent.position = target.position
|
|
||||||
parent.position = target.get_interact_position()
|
|
||||||
escoria.logger.info("Object " + target.name + " teleported at position "
|
|
||||||
+ str(parent.position) + " with angle ", str(angle))
|
|
||||||
else:
|
else:
|
||||||
escoria.logger.report_errors("escitem.gd:teleport()",
|
escoria.logger.report_errors(
|
||||||
["Target to teleport to is null or unusable (" + str(target) + ")"])
|
"ESCMovable#teleport()",
|
||||||
|
["Couldn't understand how to manage teleport Target %s" % target]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# Teleports this item to the target position.
|
# Teleports this item to the target position.
|
||||||
# TODO angle is only used for logging and has no further use, so it probably
|
|
||||||
# can be removed
|
|
||||||
#
|
#
|
||||||
# #### Parameters
|
# #### Parameters
|
||||||
#
|
#
|
||||||
# - target: Vector2 target position to teleport to
|
# - target: Vector2 target position to teleport to
|
||||||
func teleport_to(target: Vector2, angle: Object = null) -> void:
|
func teleport_to(target: Vector2) -> void:
|
||||||
if typeof(target) == TYPE_VECTOR2 :
|
escoria.logger.info(
|
||||||
escoria.logger.info(
|
"Object %s teleported to position %s" %
|
||||||
"Object %s teleported at position %s with angle" %
|
[parent.global_id, str(target)]
|
||||||
[parent.global_id, str(target)],
|
)
|
||||||
[angle]
|
parent.position = target
|
||||||
)
|
|
||||||
parent.position = target
|
|
||||||
else:
|
|
||||||
escoria.logger.report_errors("escitem.gd:teleport_to()",
|
|
||||||
["Target to teleport to is null or unusable (" + str(target) + ")"])
|
|
||||||
|
|
||||||
|
|
||||||
# Walk to a given position
|
# Walk to a given position
|
||||||
@@ -236,14 +215,6 @@ func walk_to(pos: Vector2, p_walk_context: ESCWalkContext = null) -> void:
|
|||||||
set_process(true)
|
set_process(true)
|
||||||
|
|
||||||
|
|
||||||
# FIXME this function doesn't seem to be used anywhere
|
|
||||||
func walk(target_pos, p_speed, context = null) -> void:
|
|
||||||
if p_speed:
|
|
||||||
_orig_speed = parent.speed
|
|
||||||
parent.speed = p_speed
|
|
||||||
walk_to(target_pos, context)
|
|
||||||
|
|
||||||
|
|
||||||
# We have finished walking. Set the idle pose and complete
|
# We have finished walking. Set the idle pose and complete
|
||||||
#
|
#
|
||||||
# #### Parameters
|
# #### Parameters
|
||||||
@@ -331,7 +302,6 @@ func update_terrain(on_event_finished_name = null) -> void:
|
|||||||
|
|
||||||
# Do not flip the entire character, because that would conflict
|
# Do not flip the entire character, because that would conflict
|
||||||
# with shadows that expect to be siblings of $texture
|
# with shadows that expect to be siblings of $texture
|
||||||
# TODO Make the character sprite not rely on the node name
|
|
||||||
if pose_scale == -1 and parent.get_node("sprite").scale.x > 0:
|
if pose_scale == -1 and parent.get_node("sprite").scale.x > 0:
|
||||||
parent.get_node("sprite").scale.x *= pose_scale
|
parent.get_node("sprite").scale.x *= pose_scale
|
||||||
parent.collision.scale.x *= pose_scale
|
parent.collision.scale.x *= pose_scale
|
||||||
@@ -340,18 +310,6 @@ func update_terrain(on_event_finished_name = null) -> void:
|
|||||||
parent.collision.scale.x *= -1
|
parent.collision.scale.x *= -1
|
||||||
|
|
||||||
|
|
||||||
# Get the player direction index based on rotation angles
|
|
||||||
#
|
|
||||||
# FIXME: This function doesn't seem to be used anymore
|
|
||||||
# #### Parameters
|
|
||||||
#
|
|
||||||
# - angle: The rotation angle
|
|
||||||
# - animations: The list of character animations
|
|
||||||
func _get_dir(angle: float, animations) -> int:
|
|
||||||
var deg = escoria.utils.get_deg_from_rad(angle)
|
|
||||||
return _get_dir_deg(deg, animations)
|
|
||||||
|
|
||||||
|
|
||||||
# Get the player direction index based on degrees
|
# Get the player direction index based on degrees
|
||||||
#
|
#
|
||||||
# #### Parameters
|
# #### Parameters
|
||||||
@@ -385,7 +343,6 @@ func _get_dir_deg(deg: int, animations: Script) -> int:
|
|||||||
|
|
||||||
# Returns true if given angle is inside the interval given by a starting_angle
|
# Returns true if given angle is inside the interval given by a starting_angle
|
||||||
# and the size.
|
# and the size.
|
||||||
# TODO Refactor to make this stuff understandable :D
|
|
||||||
#
|
#
|
||||||
# #### Parameters
|
# #### Parameters
|
||||||
#
|
#
|
||||||
@@ -416,20 +373,10 @@ func is_angle_in_interval(angle: float, interval: Array) -> bool:
|
|||||||
|
|
||||||
# Sets character's angle and plays according animation.
|
# Sets character's angle and plays according animation.
|
||||||
#
|
#
|
||||||
# TODO: depending on current angle and current angle, the character may
|
|
||||||
# directly turn around with no "progression". We may enhance this by
|
|
||||||
# calculating successive directions to turn the character to, so that he
|
|
||||||
# doesn't switch to opposite direction too fast.
|
|
||||||
# For example, if character looks WEST and set_angle(EAST) is called, we may
|
|
||||||
# want the character to first turn SOUTHWEST, then SOUTH, then SOUTHEAST and
|
|
||||||
# finally EAST, all more or less fast.
|
|
||||||
# Whatever the implementation, this should be activated using "parameter
|
|
||||||
# "immediate" set to false.
|
|
||||||
#
|
|
||||||
# #### Parameters
|
# #### Parameters
|
||||||
#
|
#
|
||||||
# - deg int angle to set the character
|
# - deg int angle to set the character
|
||||||
# - immediate bool (currently unused, see TODO below)
|
# - immediate
|
||||||
# If true, direction is switched immediately. Else, successive animations are
|
# If true, direction is switched immediately. Else, successive animations are
|
||||||
# used so that the character turns to target angle.
|
# used so that the character turns to target angle.
|
||||||
func set_angle(deg: int, immediate = true) -> void:
|
func set_angle(deg: int, immediate = true) -> void:
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
# `teleport object1 object2`
|
# `teleport object1 object2`
|
||||||
#
|
#
|
||||||
# Sets the position of object1 to the position of object2.
|
# Sets the position of object1 to the position of object2.
|
||||||
# FIXME re-add the angle parameter here
|
|
||||||
#
|
#
|
||||||
# @ESC
|
# @ESC
|
||||||
extends ESCBaseCommand
|
extends ESCBaseCommand
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
# `teleport_pos object1 x y`
|
# `teleport_pos object1 x y`
|
||||||
#
|
#
|
||||||
# Sets the position of object1 to the position (x,y).
|
# Sets the position of object1 to the position (x,y).
|
||||||
# FIXME re-add the angle parameter here
|
|
||||||
#
|
#
|
||||||
# @ESC
|
# @ESC
|
||||||
extends ESCBaseCommand
|
extends ESCBaseCommand
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ var scheduled_events: Array = []
|
|||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
if events_queue.size() > 0:
|
if events_queue.size() > 0:
|
||||||
var running_event = events_queue.pop_front()
|
var running_event = events_queue.pop_front()
|
||||||
# TODO: Handle event flags
|
|
||||||
if not running_event.is_connected(
|
if not running_event.is_connected(
|
||||||
"finished", self, "_on_event_finished"
|
"finished", self, "_on_event_finished"
|
||||||
):
|
):
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ const END_REGEX = \
|
|||||||
|
|
||||||
|
|
||||||
# Dialog type
|
# Dialog type
|
||||||
# FIXME, currently unused, but needs reimplementation
|
|
||||||
var type: String = ""
|
var type: String = ""
|
||||||
|
|
||||||
# Avatar used in the dialog
|
# Avatar used in the dialog
|
||||||
|
|||||||
@@ -78,7 +78,6 @@ func _ready():
|
|||||||
|
|
||||||
|
|
||||||
# Manage inputs reaching the Area2D and emit the events to the input manager
|
# Manage inputs reaching the Area2D and emit the events to the input manager
|
||||||
# TODO: Don't change private variables here, use an event for BUTTON_WHEEL
|
|
||||||
#
|
#
|
||||||
# #### Parameters
|
# #### Parameters
|
||||||
# - _viewport: (not used)
|
# - _viewport: (not used)
|
||||||
|
|||||||
@@ -1,8 +1,4 @@
|
|||||||
# A playable character
|
# A playable character
|
||||||
# TODO
|
|
||||||
# - Currently the sprite node needs to be named "sprite". This is bad.
|
|
||||||
# - Animation management doesn't allow using AnimationPlayer yet. Need to find
|
|
||||||
# the best solution to manage both AnimatedSprite and AnimationPlayer.
|
|
||||||
tool
|
tool
|
||||||
extends ESCItem
|
extends ESCItem
|
||||||
class_name ESCPlayer
|
class_name ESCPlayer
|
||||||
|
|||||||
@@ -185,7 +185,6 @@ func save_settings():
|
|||||||
settings_res.voice_volume = escoria.settings.voice_volume
|
settings_res.voice_volume = escoria.settings.voice_volume
|
||||||
settings_res.fullscreen = escoria.settings.fullscreen
|
settings_res.fullscreen = escoria.settings.fullscreen
|
||||||
settings_res.skip_dialog = escoria.settings.skip_dialog
|
settings_res.skip_dialog = escoria.settings.skip_dialog
|
||||||
settings_res.rate_shown = escoria.settings.rate_shown
|
|
||||||
|
|
||||||
var directory: Directory = Directory.new()
|
var directory: Directory = Directory.new()
|
||||||
if not directory.dir_exists(settings_folder):
|
if not directory.dir_exists(settings_folder):
|
||||||
|
|||||||
@@ -35,6 +35,3 @@ export var fullscreen: bool = false
|
|||||||
|
|
||||||
# True if skipping dialogs is allowed
|
# True if skipping dialogs is allowed
|
||||||
export var skip_dialog: bool = true
|
export var skip_dialog: bool = true
|
||||||
|
|
||||||
# FIXME: to be defined (achievements?)
|
|
||||||
export var rate_shown: bool = false
|
|
||||||
|
|||||||
@@ -244,7 +244,6 @@ func do(action: String, params: Array = []) -> void:
|
|||||||
|
|
||||||
|
|
||||||
# Event handler when an object/item was clicked
|
# Event handler when an object/item was clicked
|
||||||
# FIXME this method is way to complex
|
|
||||||
#
|
#
|
||||||
# #### Parameters
|
# #### Parameters
|
||||||
#
|
#
|
||||||
@@ -375,8 +374,6 @@ func _on_settings_loaded(p_settings: ESCSaveSettings) -> void:
|
|||||||
else:
|
else:
|
||||||
settings = ESCSaveSettings.new()
|
settings = ESCSaveSettings.new()
|
||||||
|
|
||||||
# TODO Apply globally
|
|
||||||
# AudioServer.set_fx_global_volume_scale(settings.sfx_volume)
|
|
||||||
AudioServer.set_bus_volume_db(
|
AudioServer.set_bus_volume_db(
|
||||||
AudioServer.get_bus_index("Master"),
|
AudioServer.get_bus_index("Master"),
|
||||||
linear2db(settings.master_volume)
|
linear2db(settings.master_volume)
|
||||||
|
|||||||
@@ -16,8 +16,6 @@ var current_scene: Node
|
|||||||
# The Escoria context currently in wait state
|
# The Escoria context currently in wait state
|
||||||
var wait_level
|
var wait_level
|
||||||
|
|
||||||
# FIXME Document this variable
|
|
||||||
var screen_ofs = Vector2(0, 0)
|
|
||||||
|
|
||||||
# Reference to the ESCBackgroundMusic node
|
# Reference to the ESCBackgroundMusic node
|
||||||
onready var bg_music = $bg_music
|
onready var bg_music = $bg_music
|
||||||
@@ -111,7 +109,7 @@ func set_camera_limits(camera_limit_id: int = 0) -> void:
|
|||||||
scene_camera_limits.size.x,
|
scene_camera_limits.size.x,
|
||||||
scene_camera_limits.position.y,
|
scene_camera_limits.position.y,
|
||||||
scene_camera_limits.position.y + \
|
scene_camera_limits.position.y + \
|
||||||
scene_camera_limits.size.y + screen_ofs.y * 2
|
scene_camera_limits.size.y
|
||||||
)
|
)
|
||||||
escoria.logger.info(
|
escoria.logger.info(
|
||||||
"Setting camera limits from parameter ",
|
"Setting camera limits from parameter ",
|
||||||
@@ -119,7 +117,6 @@ func set_camera_limits(camera_limit_id: int = 0) -> void:
|
|||||||
)
|
)
|
||||||
|
|
||||||
current_scene.game.get_node("camera").set_limits(limits)
|
current_scene.game.get_node("camera").set_limits(limits)
|
||||||
current_scene.game.get_node("camera").set_offset(screen_ofs * 2)
|
|
||||||
|
|
||||||
|
|
||||||
func save_game(p_savegame_res: Resource) -> void:
|
func save_game(p_savegame_res: Resource) -> void:
|
||||||
|
|||||||
@@ -6,5 +6,5 @@
|
|||||||
[ext_resource path="res://game/ui/commons/dialogs/dialog_box_inset.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://game/ui/commons/dialogs/dialog_box_inset.tscn" type="PackedScene" id=4]
|
||||||
|
|
||||||
[node name="dialog_player" type="ResourcePreloader"]
|
[node name="dialog_player" type="ResourcePreloader"]
|
||||||
resources = [ PoolStringArray( "dialog_box_inset", "dialog_label", "text_dialog_choice" ), [ ExtResource( 4 ), ExtResource( 1 ), ExtResource( 2 ) ] ]
|
resources = [ PoolStringArray( "default", "dialog_box_inset", "dialog_label", "text_dialog_choice" ), [ ExtResource( 2 ), ExtResource( 4 ), ExtResource( 1 ), ExtResource( 2 ) ] ]
|
||||||
script = ExtResource( 3 )
|
script = ExtResource( 3 )
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
# A transition player for scene changes
|
# A transition player for scene changes
|
||||||
# FIXME Add configuration to select a specific mask
|
|
||||||
extends ColorRect
|
extends ColorRect
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ func manage_input(_viewport, event, _shape_idx) -> void
|
|||||||
```
|
```
|
||||||
|
|
||||||
Manage inputs reaching the Area2D and emit the events to the input manager
|
Manage inputs reaching the Area2D and emit the events to the input manager
|
||||||
TODO: Don't change private variables here, use an event for BUTTON_WHEEL
|
|
||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
- _viewport: (not used)
|
- _viewport: (not used)
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ var type: String = ""
|
|||||||
```
|
```
|
||||||
|
|
||||||
Dialog type
|
Dialog type
|
||||||
FIXME, currently unused, but needs reimplementation
|
|
||||||
|
|
||||||
### avatar
|
### avatar
|
||||||
|
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ Wether the character was moved at all
|
|||||||
var last_deg: int
|
var last_deg: int
|
||||||
```
|
```
|
||||||
|
|
||||||
Angle degrees to the last position (TODO is that correct?)
|
Angle degrees from the last position to the next
|
||||||
|
|
||||||
### last\_dir
|
### last\_dir
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@ Angle degrees to the last position (TODO is that correct?)
|
|||||||
var last_dir: int
|
var last_dir: int
|
||||||
```
|
```
|
||||||
|
|
||||||
Direction of the last position (TODO is that correct?)
|
Player Direction used to reflect the movement to the new position
|
||||||
|
|
||||||
### last\_scale
|
### last\_scale
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@ Direction of the last position (TODO is that correct?)
|
|||||||
var last_scale: Vector2
|
var last_scale: Vector2
|
||||||
```
|
```
|
||||||
|
|
||||||
Scale of the last position (TODO is that correct?)
|
The last scaling applied to the parent
|
||||||
|
|
||||||
### pose\_scale
|
### pose\_scale
|
||||||
|
|
||||||
@@ -94,7 +94,7 @@ Scale of the last position (TODO is that correct?)
|
|||||||
var pose_scale: int
|
var pose_scale: int
|
||||||
```
|
```
|
||||||
|
|
||||||
TODO Isn't this actually the flip state of the current animation?
|
Wether the current direction animation is flipped
|
||||||
|
|
||||||
### parent
|
### parent
|
||||||
|
|
||||||
@@ -104,14 +104,6 @@ var parent
|
|||||||
|
|
||||||
Shortcut variable that references the node's parent
|
Shortcut variable that references the node's parent
|
||||||
|
|
||||||
### bypass\_missing\_animation
|
|
||||||
|
|
||||||
```gdscript
|
|
||||||
var bypass_missing_animation
|
|
||||||
```
|
|
||||||
|
|
||||||
If character misses an animation, bypass it and proceed.
|
|
||||||
|
|
||||||
### task
|
### task
|
||||||
|
|
||||||
```gdscript
|
```gdscript
|
||||||
@@ -125,12 +117,10 @@ Currenly running task
|
|||||||
### teleport
|
### teleport
|
||||||
|
|
||||||
```gdscript
|
```gdscript
|
||||||
func teleport(target: Node, angle: Object = null) -> void
|
func teleport(target: Node) -> void
|
||||||
```
|
```
|
||||||
|
|
||||||
Teleports this item to the target position.
|
Teleports this item to the target position.
|
||||||
TODO angle is only used for logging and has no further use, so it probably
|
|
||||||
can be removed
|
|
||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
|
|
||||||
@@ -139,12 +129,10 @@ can be removed
|
|||||||
### teleport\_to
|
### teleport\_to
|
||||||
|
|
||||||
```gdscript
|
```gdscript
|
||||||
func teleport_to(target: Vector2, angle: Object = null) -> void
|
func teleport_to(target: Vector2) -> void
|
||||||
```
|
```
|
||||||
|
|
||||||
Teleports this item to the target position.
|
Teleports this item to the target position.
|
||||||
TODO angle is only used for logging and has no further use, so it probably
|
|
||||||
can be removed
|
|
||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
|
|
||||||
@@ -163,14 +151,6 @@ Walk to a given position
|
|||||||
- pos: Position to walk to
|
- pos: Position to walk to
|
||||||
- p_walk_context: Walk context to use
|
- p_walk_context: Walk context to use
|
||||||
|
|
||||||
### walk
|
|
||||||
|
|
||||||
```gdscript
|
|
||||||
func walk(target_pos, p_speed, context = null) -> void
|
|
||||||
```
|
|
||||||
|
|
||||||
FIXME this function doesn't seem to be used anywhere
|
|
||||||
|
|
||||||
### walk\_stop
|
### walk\_stop
|
||||||
|
|
||||||
```gdscript
|
```gdscript
|
||||||
@@ -203,7 +183,6 @@ func is_angle_in_interval(angle: float, interval: Array) -> bool
|
|||||||
|
|
||||||
Returns true if given angle is inside the interval given by a starting_angle
|
Returns true if given angle is inside the interval given by a starting_angle
|
||||||
and the size.
|
and the size.
|
||||||
TODO Refactor to make this stuff understandable :D
|
|
||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
|
|
||||||
@@ -220,19 +199,9 @@ func set_angle(deg: int, immediate = true) -> void
|
|||||||
|
|
||||||
Sets character's angle and plays according animation.
|
Sets character's angle and plays according animation.
|
||||||
|
|
||||||
TODO: depending on current angle and current angle, the character may
|
|
||||||
directly turn around with no "progression". We may enhance this by
|
|
||||||
calculating successive directions to turn the character to, so that he
|
|
||||||
doesn't switch to opposite direction too fast.
|
|
||||||
For example, if character looks WEST and set_angle(EAST) is called, we may
|
|
||||||
want the character to first turn SOUTHWEST, then SOUTH, then SOUTHEAST and
|
|
||||||
finally EAST, all more or less fast.
|
|
||||||
Whatever the implementation, this should be activated using "parameter
|
|
||||||
"immediate" set to false.
|
|
||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
|
|
||||||
- deg int angle to set the character
|
- deg int angle to set the character
|
||||||
- immediate bool (currently unused, see TODO below)
|
- immediate
|
||||||
If true, direction is switched immediately. Else, successive animations are
|
If true, direction is switched immediately. Else, successive animations are
|
||||||
used so that the character turns to target angle.
|
used so that the character turns to target angle.
|
||||||
@@ -7,10 +7,6 @@
|
|||||||
## Description
|
## Description
|
||||||
|
|
||||||
A playable character
|
A playable character
|
||||||
TODO
|
|
||||||
- Currently the sprite node needs to be named "sprite". This is bad.
|
|
||||||
- Animation management doesn't allow using AnimationPlayer yet. Need to find
|
|
||||||
the best solution to manage both AnimatedSprite and AnimationPlayer.
|
|
||||||
|
|
||||||
## Property Descriptions
|
## Property Descriptions
|
||||||
|
|
||||||
|
|||||||
@@ -88,12 +88,4 @@ export var fullscreen: bool = false
|
|||||||
export var skip_dialog: bool = true
|
export var skip_dialog: bool = true
|
||||||
```
|
```
|
||||||
|
|
||||||
True if skipping dialogs is allowed
|
True if skipping dialogs is allowed
|
||||||
|
|
||||||
### rate\_shown
|
|
||||||
|
|
||||||
```gdscript
|
|
||||||
export var rate_shown: bool = false
|
|
||||||
```
|
|
||||||
|
|
||||||
FIXME: to be defined (achievements?)
|
|
||||||
@@ -9,7 +9,6 @@
|
|||||||
`teleport object1 object2`
|
`teleport object1 object2`
|
||||||
|
|
||||||
Sets the position of object1 to the position of object2.
|
Sets the position of object1 to the position of object2.
|
||||||
FIXME re-add the angle parameter here
|
|
||||||
|
|
||||||
@ESC
|
@ESC
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
`teleport_pos object1 x y`
|
`teleport_pos object1 x y`
|
||||||
|
|
||||||
Sets the position of object1 to the position (x,y).
|
Sets the position of object1 to the position (x,y).
|
||||||
FIXME re-add the angle parameter here
|
|
||||||
|
|
||||||
@ESC
|
@ESC
|
||||||
|
|
||||||
|
|||||||
@@ -34,14 +34,6 @@ var wait_level
|
|||||||
|
|
||||||
The Escoria context currently in wait state
|
The Escoria context currently in wait state
|
||||||
|
|
||||||
### screen\_ofs
|
|
||||||
|
|
||||||
```gdscript
|
|
||||||
var screen_ofs
|
|
||||||
```
|
|
||||||
|
|
||||||
FIXME Document this variable
|
|
||||||
|
|
||||||
### bg\_music
|
### bg\_music
|
||||||
|
|
||||||
```gdscript
|
```gdscript
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
## Description
|
## Description
|
||||||
|
|
||||||
A transition player for scene changes
|
A transition player for scene changes
|
||||||
FIXME Add configuration to select a specific mask
|
|
||||||
|
|
||||||
## Property Descriptions
|
## Property Descriptions
|
||||||
|
|
||||||
|
|||||||
@@ -331,11 +331,9 @@ Stops the event's execution.
|
|||||||
#### <a name="TeleportCommand.md"></a>`teleport object1 object2` [API-Doc](api/TeleportCommand.md)
|
#### <a name="TeleportCommand.md"></a>`teleport object1 object2` [API-Doc](api/TeleportCommand.md)
|
||||||
|
|
||||||
Sets the position of object1 to the position of object2.
|
Sets the position of object1 to the position of object2.
|
||||||
FIXME re-add the angle parameter here
|
|
||||||
#### <a name="TeleportPosCommand.md"></a>`teleport_pos object1 x y` [API-Doc](api/TeleportPosCommand.md)
|
#### <a name="TeleportPosCommand.md"></a>`teleport_pos object1 x y` [API-Doc](api/TeleportPosCommand.md)
|
||||||
|
|
||||||
Sets the position of object1 to the position (x,y).
|
Sets the position of object1 to the position (x,y).
|
||||||
FIXME re-add the angle parameter here
|
|
||||||
#### <a name="TurnToCommand.md"></a>`turn_to object degrees [immediate]` [API-Doc](api/TurnToCommand.md)
|
#### <a name="TurnToCommand.md"></a>`turn_to object degrees [immediate]` [API-Doc](api/TurnToCommand.md)
|
||||||
|
|
||||||
**This command is currently not fully implemented.**
|
**This command is currently not fully implemented.**
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ anchor_top = 0.334
|
|||||||
anchor_right = 0.845
|
anchor_right = 0.845
|
||||||
anchor_bottom = 0.666
|
anchor_bottom = 0.666
|
||||||
margin_left = 0.100006
|
margin_left = 0.100006
|
||||||
margin_top = -0.199982
|
margin_top = -0.200012
|
||||||
margin_right = -0.100098
|
margin_right = -0.100098
|
||||||
margin_bottom = 0.200012
|
margin_bottom = 0.199951
|
||||||
script = ExtResource( 3 )
|
script = ExtResource( 3 )
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
@@ -23,7 +23,7 @@ __meta__ = {
|
|||||||
margin_left = 7.0
|
margin_left = 7.0
|
||||||
margin_top = 7.0
|
margin_top = 7.0
|
||||||
margin_right = 876.0
|
margin_right = 876.0
|
||||||
margin_bottom = 259.0
|
margin_bottom = 292.2
|
||||||
custom_constants/margin_right = 20
|
custom_constants/margin_right = 20
|
||||||
custom_constants/margin_top = 20
|
custom_constants/margin_top = 20
|
||||||
custom_constants/margin_left = 20
|
custom_constants/margin_left = 20
|
||||||
@@ -36,35 +36,35 @@ __meta__ = {
|
|||||||
margin_left = 20.0
|
margin_left = 20.0
|
||||||
margin_top = 20.0
|
margin_top = 20.0
|
||||||
margin_right = 849.0
|
margin_right = 849.0
|
||||||
margin_bottom = 232.0
|
margin_bottom = 265.0
|
||||||
custom_constants/separation = 35
|
custom_constants/separation = 35
|
||||||
dragger_visibility = 1
|
dragger_visibility = 1
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/HSplitContainer"]
|
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/HSplitContainer"]
|
||||||
margin_right = 174.0
|
margin_right = 174.0
|
||||||
margin_bottom = 212.0
|
margin_bottom = 245.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_stretch_ratio = 0.3
|
size_flags_stretch_ratio = 0.3
|
||||||
|
|
||||||
[node name="avatar" type="TextureRect" parent="MarginContainer/HSplitContainer/VBoxContainer"]
|
[node name="avatar" type="TextureRect" parent="MarginContainer/HSplitContainer/VBoxContainer"]
|
||||||
margin_right = 174.0
|
margin_right = 174.0
|
||||||
margin_bottom = 184.0
|
margin_bottom = 217.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
texture = ExtResource( 2 )
|
texture = ExtResource( 2 )
|
||||||
expand = true
|
expand = true
|
||||||
|
|
||||||
[node name="name" type="Label" parent="MarginContainer/HSplitContainer/VBoxContainer"]
|
[node name="name" type="Label" parent="MarginContainer/HSplitContainer/VBoxContainer"]
|
||||||
margin_top = 188.0
|
margin_top = 221.0
|
||||||
margin_right = 174.0
|
margin_right = 174.0
|
||||||
margin_bottom = 212.0
|
margin_bottom = 245.0
|
||||||
custom_fonts/font = ExtResource( 1 )
|
custom_fonts/font = ExtResource( 1 )
|
||||||
valign = 1
|
valign = 1
|
||||||
|
|
||||||
[node name="text" type="RichTextLabel" parent="MarginContainer/HSplitContainer"]
|
[node name="text" type="RichTextLabel" parent="MarginContainer/HSplitContainer"]
|
||||||
margin_left = 209.0
|
margin_left = 209.0
|
||||||
margin_right = 829.0
|
margin_right = 829.0
|
||||||
margin_bottom = 212.0
|
margin_bottom = 245.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
custom_fonts/normal_font = ExtResource( 1 )
|
custom_fonts/normal_font = ExtResource( 1 )
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ func _ready():
|
|||||||
func _on_slot_pressed(p_slot_n: int):
|
func _on_slot_pressed(p_slot_n: int):
|
||||||
slot_pressed = p_slot_n
|
slot_pressed = p_slot_n
|
||||||
if escoria.save_manager.save_game_exists(p_slot_n):
|
if escoria.save_manager.save_game_exists(p_slot_n):
|
||||||
# TODO Manage save override, ask for confirmation
|
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
$save_name_popup.popup()
|
$save_name_popup.popup()
|
||||||
|
|||||||
@@ -548,7 +548,7 @@ _global_script_class_icons={
|
|||||||
|
|
||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="Escoria-reloaded"
|
config/name="Escoria"
|
||||||
run/main_scene="res://addons/escoria-core/game/main_scene.tscn"
|
run/main_scene="res://addons/escoria-core/game/main_scene.tscn"
|
||||||
boot_splash/image="res://addons/escoria-core/logo/escoria-logo-small.png"
|
boot_splash/image="res://addons/escoria-core/logo/escoria-logo-small.png"
|
||||||
boot_splash/fullsize=false
|
boot_splash/fullsize=false
|
||||||
|
|||||||
Reference in New Issue
Block a user