xii
07/15/2020, 4:35 PMxii
07/15/2020, 4:36 PMenum class SpellType {
FIRE, WATER
}
enum class Spell {
FIREBALL, WATERBALL
}
xii
07/15/2020, 4:39 PMclass SpellCaster{
val spellType: SpellType
val spells: List<Spell>
}
and have a water spell caster have fire spellsxii
07/15/2020, 4:39 PMnfrankel
07/15/2020, 4:44 PMenum class SpellType {
FIRE, WATER
}
sealed class Spell<SpellType> {
class FIREBALL<FIRE>
class WATERBALL<WATER>
}
nfrankel
07/15/2020, 4:44 PMxii
07/15/2020, 4:46 PMxii
07/15/2020, 4:46 PMxii
07/15/2020, 4:47 PMclass SpellCaster(
val spellType: SpellType,
val spells: List<Spell<SpellType>>
)
? or how would you constrain it?xii
07/15/2020, 4:47 PMnfrankel
07/15/2020, 4:51 PMclass SpellCaster<T : SpellType>{
lateinit var spellType: T
lateinit var spells: List<Spell<T>>
}
xii
07/15/2020, 4:54 PMxii
07/15/2020, 4:55 PM@Enumerated(EnumType.STRING)
for some stuff, and i'm pretty sure it's gonna begin storing them as
FIREBALL<FIRE>
instead of as
FIREBALL
xii
07/15/2020, 4:58 PMnfrankel
07/15/2020, 5:06 PMnfrankel
07/15/2020, 5:06 PMnfrankel
07/15/2020, 5:07 PMenum
xii
07/15/2020, 5:07 PMnfrankel
07/15/2020, 5:07 PMenum class SpellType {
FIRE, WATER
}
abstract class Spell(val type: SpellType)
xii
07/15/2020, 5:19 PM