Files
rgb/scripts/player.gd
Eric 6f1d578ee1 spawns all entities
connected chests to color/ui
2024-02-12 08:08:35 -06:00

43 lines
1.1 KiB
GDScript

extends CharacterBody2D
class_name Player
signal color_changed(color: Color)
signal lives_changed(lives: int)
@onready var sprite_2d: Sprite2D = $Sprite2D
var color := Color.WHITE
@export var speed = 100
var lives: int = 1
func _physics_process(delta: float) -> void:
velocity = Vector2.ZERO
if Input.is_action_pressed("ui_down"):
velocity += Vector2.DOWN
if Input.is_action_pressed("ui_up"):
velocity += Vector2.UP
if Input.is_action_pressed("ui_left"):
velocity += Vector2.LEFT
if Input.is_action_pressed("ui_right"):
velocity += Vector2.RIGHT
velocity = velocity.normalized() * speed
move_and_slide()
for i in range(get_slide_collision_count()):
var collision := get_slide_collision(i)
if collision.get_collider() is Chest:
var buff: Buff = collision.get_collider().open(self)
if buff:
match(buff.color):
buff.colors.RED:
lives += 1
color.r -= 0.25
lives_changed.emit(lives)
buff.colors.GREEN:
$Camera2D.zoom -= Vector2(0.4, 0.4)
color.g -= 0.25
buff.colors.BLUE:
speed += 12
color.b -= 0.25
sprite_2d.modulate = color
color_changed.emit(color)