association_pouvoirs.gd 717 B

123456789101112131415161718192021222324252627282930313233343536
  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. ELECTRIQUE,
  10. BONJOUR # laisser en dernier
  11. }
  12. static func fabriquer(type: Type): # -> PouvoirBase
  13. match type:
  14. Type.BONJOUR:
  15. return BonjourPouvoir.new()
  16. Type.FEU:
  17. return PouvoirFeu.new()
  18. Type.VIE:
  19. return VieBonus.new()
  20. Type.RALENTIR:
  21. return RalentirPouvoir.new()
  22. Type.JAVELOT:
  23. return JavelotPouvoir.new()
  24. Type.SPECTRE:
  25. return PouvoirSpectre.new()
  26. Type.ELECTRIQUE:
  27. return PouvoirElectrique.new()
  28. Type.AUCUN:
  29. return null
  30. _:
  31. assert(false, "Le nouveau pouvoir doit etre associe a son type " + str(type))
  32. return null # sinon compilateur pas content