2024-05-27 13:05:36 -04:00

70 lines
1.4 KiB
GDScript

class_name Data extends Node
enum Element{
NORMAL,
FIRE,
ICE,
POISON,
STONE
}
enum Difficulty{
EASY,
NORMAL,
HARD,
GAMER
}
enum Location{
MAINMENU,
CREDITS,
TAVERN,
ARENA,
DEAD
}
enum Rarity{
COMMON,
RARE,
LEGENDARY,
GODLIKE
}
@export var spellbook: Spellbook
@export var difficulty: Difficulty = Difficulty.NORMAL
@export var animations: Dictionary = {}
@export var player: Combatant
@export var opponent: Combatant
@export var loc: Location = Location.MAINMENU
@export var playing: bool = false
@export var lockedSpells: Array[Spell]
@export var unlockedSpells: Array[Spell]
@export var commonChance: int = 70
@export var rareChance: int = 24
@export var legendaryChance: int = 5
@export var godlikeChance: int = 1
func getNewSpell() -> Spell:
var num: int = randi_range(0, 99)
var rar: Rarity
if (num < commonChance):
rar = Rarity.COMMON
elif (num < rareChance):
rar = Rarity.RARE
elif (num < legendaryChance):
rar = Rarity.LEGENDARY
else:
rar = Rarity.GODLIKE
var options: Array[Spell] = lockedSpells.filter(func(spel): return spel.rarity == rar)
var count: int = 1
while (options.size() == 0):
rar = (int(rar) + 1) as Rarity
if (int(rar) >= 4): rar = 0
count += 1
if (count >= 4): return null
options = lockedSpells.filter(func(spel): return spel.difficulty == rar)
var spell: Spell = options[randi_range(0, options.size() - 1)]
lockedSpells.erase(spell)
unlockedSpells.append(spell)
return spell