Fixed crash related to status effects
This commit is contained in:
parent
c33d892cf0
commit
28640e94c6
3 changed files with 26 additions and 7 deletions
|
|
@ -142,6 +142,7 @@ func manage_velocity(delta: float) -> void:
|
|||
local_velocity += Vector2(0, gravity)
|
||||
|
||||
if handle_input:
|
||||
#if has_node("Slow"): print(get_node("Slow").params)
|
||||
var hspeed = base_hspeed if not Status.affects("Slow", self) else base_hspeed * get_node("Slow").params.slow_factor
|
||||
if(Input.is_action_pressed("move_right")):
|
||||
if local_velocity.x > -700:
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ static func apply(status_name : String, target : Node, duration : float, params_
|
|||
if not target.has_node(status_name):
|
||||
var child = Status.new()
|
||||
child.name = status_name
|
||||
child.params = params_in
|
||||
child.params.merge(get_default_parameters(status_name))
|
||||
child.params = get_default_parameters(status_name).duplicate(true)
|
||||
child.params.merge(params_in.duplicate(true))
|
||||
target.add_child(child)
|
||||
child.start(duration)
|
||||
else:
|
||||
|
|
@ -36,11 +36,11 @@ func reapply(duration_new : float, params_new : Dictionary = {}):
|
|||
merge_params(params_new)
|
||||
|
||||
func merge_params(params_new):
|
||||
if name == "Slow":
|
||||
if name == "Slow" and params.has("slow_factor") and params_new.has("slow_factor"):
|
||||
params.slow_factor = min(params.slow_factor, params_new.slow_factor)
|
||||
|
||||
func expire():
|
||||
queue_free()
|
||||
|
||||
static func get_default_parameters(status_name : String) -> Dictionary:
|
||||
return default_parameters.get(status_name) if default_parameters.has(status_name) else {}
|
||||
return default_parameters.get(status_name, {})
|
||||
|
|
|
|||
|
|
@ -4,15 +4,33 @@ class_name Vine extends Node2D
|
|||
@export var vine_locations : Array[Vector2]
|
||||
@export var bud_resource : PackedScene
|
||||
var img_path_inactive = "res://vines_petals/vine_inactive.png"
|
||||
@export var img_path_active = "res://vines_petals/vine_active_green.png"
|
||||
@export var status_name : String = "Slow"
|
||||
@export var status_params : Dictionary = {}
|
||||
@export var img_path_active : String
|
||||
|
||||
const status_data = [
|
||||
{
|
||||
"name": "Slow",
|
||||
"params" : {},
|
||||
"img_path": "res://vines_petals/vine_active_green.png"
|
||||
},
|
||||
{
|
||||
"name": "Vulnerable",
|
||||
"params" : {},
|
||||
"img_path": "res://vines_petals/vine_active_purple.png"
|
||||
},]
|
||||
var status_name : String
|
||||
var status_params : Dictionary = {}
|
||||
var active_depth = -1
|
||||
var fully_active = false
|
||||
var vine_data = []
|
||||
var max_depth = 150
|
||||
var vine_end_data = []
|
||||
|
||||
func _ready() -> void:
|
||||
var data : Dictionary = status_data.pick_random()
|
||||
status_name = data.name
|
||||
status_params = data.params if data.has("params") else {}
|
||||
img_path_active = data.img_path
|
||||
|
||||
func draw_vine(pos1 : Vector2, pos2 : Vector2, depth : int):
|
||||
var sprite = Sprite2D.new()
|
||||
get_tree().get_root().get_node("main").add_child(sprite)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue