35 lines
833 B
GDScript
35 lines
833 B
GDScript
extends Node
|
|
|
|
const APPLE = 0
|
|
const GRAPE = 1
|
|
const CHILI = 2
|
|
|
|
const NONE = "NONE"
|
|
const SHURIKEN = "SHURIKEN"
|
|
const FIREBALL = "FIREBALL"
|
|
const FIRE_SWIRL = "FIRE_SWIRL"
|
|
const TORNADO = "TORNADO"
|
|
const LASER = "LASER"
|
|
|
|
var recipes: Dictionary = {
|
|
FIREBALL: [APPLE],
|
|
TORNADO: [GRAPE],
|
|
LASER: [CHILI],
|
|
SHURIKEN: [APPLE, GRAPE],
|
|
FIRE_SWIRL: [APPLE, CHILI],
|
|
}
|
|
|
|
func identify(cauldron_slots: Array) -> String:
|
|
var types: Array = []
|
|
if cauldron_slots.any(func(x): return x == 2): types.append(APPLE)
|
|
if cauldron_slots.any(func(x): return x == 4): types.append(GRAPE)
|
|
if cauldron_slots.any(func(x): return x == 3): types.append(CHILI)
|
|
|
|
for spell_id in recipes:
|
|
if recipes[spell_id] == types:
|
|
return spell_id
|
|
return NONE
|
|
|
|
func get_recipe(spell: String) -> Array:
|
|
return recipes.get(spell, [])
|