association_pouvoirs.gd 651 B

123456789101112131415161718192021222324252627282930313233
  1. class_name Pouvoir
  2. enum Type {
  3. AUCUN, # si pas de pouvoir, laisser en premier
  4. FEU,
  5. VIE,
  6. RALENTIR,
  7. JAVELOT,
  8. SPECTRE,
  9. BONJOUR # laisser en dernier
  10. }
  11. static func fabriquer(type: Type): # -> PouvoirBase
  12. match type:
  13. Type.BONJOUR:
  14. return BonjourPouvoir.new()
  15. Type.FEU:
  16. return PouvoirFeu.new()
  17. Type.VIE:
  18. return VieBonus.new()
  19. Type.RALENTIR:
  20. return RalentirPouvoir.new()
  21. Type.JAVELOT:
  22. return JavelotPouvoir.new()
  23. Type.SPECTRE:
  24. return PouvoirSpectre.new()
  25. Type.AUCUN:
  26. return null
  27. _:
  28. assert(false, "Le nouveau pouvoir doit etre associe a son type " + str(type))
  29. return null # sinon compilateur pas content