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