class_name Pouvoir


enum Type {
	AUCUN, # si pas de pouvoir, laisser en premier
	FEU,
	VIE,
	RALENTIR,
	JAVELOT,
	SPECTRE,
	BONJOUR # laisser en dernier
}


static func fabriquer(type: Type): # -> PouvoirBase
	match type:
		Type.BONJOUR:
			return BonjourPouvoir.new()
		Type.FEU:
			return PouvoirFeu.new()
		Type.VIE:
			return VieBonus.new()
		Type.RALENTIR:
			return RalentirPouvoir.new()
		Type.JAVELOT:
			return JavelotPouvoir.new()
		Type.SPECTRE:
			return PouvoirSpectre.new()
		Type.AUCUN:
			return null
		_:
			assert(false, "Le nouveau pouvoir doit etre associe a son type " + str(type))
			return null # sinon compilateur pas content
