extends CharacterBody2D @export var speed = 200 @export var weapon: RangedWeapon @export var special_ability: Ability @export var movement: PlayerMovement # Last direction for idle state var last_direction = Vector2.DOWN @onready var animated_sprite = $PlayerSprite func _ready(): weapon = RangedWeapon.new() Log.pr("Weapon", weapon) # Initialize the movement resource with references if movement: movement.player = self movement.animated_sprite = animated_sprite movement.last_direction = Vector2.DOWN # Default direction else: # Create a new resource instance if none was assigned in the editor movement = PlayerMovement.new() movement.player = self movement.animated_sprite = animated_sprite Log.pr("Adding projectile size additive modifier") weapon.add_modifier(ProjectileSizeAdditive.new()) Log.pr(weapon.stats.get_stat("projectile_size")) # Size is now 1.0 + 0.5 = 1.5 # Size is now 1.0 + 0.5 = 1.5 # Add the multiplicative size modifier (1.5x multiplier) Log.pr("Adding projectile size multiplicative modifier") weapon.add_modifier(ProjectileSizeMultiplicative.new()) Log.pr(weapon.stats.get_stat("projectile_size")) # Size is now 1.5 * 1.5 = 2.25 # Add another additive size modifier (+0.7 or 70% increase) Log.pr("Adding another projectile size additive modifier", 0.7) var another_size_mod = ProjectileSizeAdditive.new() another_size_mod.size_increase = 0.7 weapon.add_modifier(another_size_mod) Log.pr(weapon.stats.get_stat("projectile_size")) func _physics_process(delta): movement.process(delta)