Raise-Your-Wand/Scripts/playerController.gd
Nolan A Casey 80a80e4c74 Worked on some things
- Spellbooks
- Spells
- Spellcasting
- Player controller
- Particles
- Animations
2024-05-02 14:27:28 -04:00

36 lines
1.2 KiB
GDScript

extends Node
@onready var data = get_node("/root/Arena/Data")
@export var avatar: Combatant
var casting = false
var spell: Spell
var timer: float = 0
# Called when the node enters the scene tree for the first time.
func _ready():
data.spellbook.initCooldowns()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
if !casting:
for i in range(data.spellbook.spells.size()):
if Input.is_action_just_pressed("Spell" + str(i)):
casting = true
spell = data.spellbook.spells[i]
avatar.particleSystem.emitting = true
timer = 0
else:
timer += delta
if (Input.is_action_just_pressed(spell.castCombo[spell.castProgress])):
spell.castProgress += 1
if spell.castProgress == spell.castCombo.size():
casting = false
avatar.particleSystem.emitting = false
spell.castProgress = 0
avatar.renderer.play("attack1")
elif (timer >= spell.timeout || Input.is_action_just_pressed("up") || Input.is_action_just_pressed("down") || Input.is_action_just_pressed("left") || Input.is_action_just_pressed("right")):
avatar.alterHealth(-spell.backfireStrength, true)
casting = false
avatar.particleSystem.emitting = false