Lis13

damageCalculations1

Aug 5th, 2025
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
GDScript 2.01 KB | Software | 0 0
  1. extends Node
  2.  
  3. var elementType: int
  4. var damageType: int
  5. var damageAmount: float
  6.  
  7. enum DAMAGETYPE{
  8.   FUOCO,
  9.   METALLO,
  10.   GHIACCIO,
  11.   SPORE,
  12.   FULMINE
  13. }
  14.  
  15. enum ELEMENTTYPE{
  16.     FUOCO,
  17.     METALLO,
  18.     GHIACCIO,
  19.     SPORE,
  20.     FULMINE,
  21.     CARNE
  22. }
  23.  
  24. var operation_chart = {
  25.     ELEMENTTYPE.FUOCO: {
  26.         "weaknesses": [DAMAGETYPE.GHIACCIO],
  27.         "resistances": [],
  28.         "immunities": [DAMAGETYPE.SPORE, DAMAGETYPE.METALLO]
  29.     },
  30.     ELEMENTTYPE.GHIACCIO: {
  31.         "weaknesses": [DAMAGETYPE.METALLO, DAMAGETYPE.SPORE],
  32.         "resistances": [DAMAGETYPE.FUOCO],
  33.         "immunities": [DAMAGETYPE.FULMINE]
  34.     },
  35.     ELEMENTTYPE.SPORE: {
  36.         "weaknesses": [DAMAGETYPE.FUOCO, DAMAGETYPE.METALLO, DAMAGETYPE.FULMINE],
  37.         "resistances": [DAMAGETYPE.GHIACCIO],
  38.         "immunities": []
  39.     },
  40.     ELEMENTTYPE.FULMINE: {
  41.         "weaknesses": [DAMAGETYPE.METALLO],
  42.         "resistances": [DAMAGETYPE.FUOCO],
  43.         "immunities": [DAMAGETYPE.SPORE]
  44.     },
  45.     ELEMENTTYPE.METALLO: {
  46.         "weaknesses": [DAMAGETYPE.FUOCO],
  47.         "resistances": [DAMAGETYPE.GHIACCIO],
  48.         "immunities": [DAMAGETYPE.SPORE, DAMAGETYPE.FULMINE]
  49.     },
  50.     ELEMENTTYPE.CARNE: {
  51.         "weaknesses": [DAMAGETYPE.METALLO, DAMAGETYPE.SPORE, DAMAGETYPE.FUOCO, DAMAGETYPE.FULMINE, DAMAGETYPE.GHIACCIO],
  52.         "resistances": [],
  53.         "immunities": []
  54.     },
  55. }
  56.  
  57. func calcola_danno(damageAmount, damageType, elementType):
  58.     var element_data = operation_chart.get(ELEMENTTYPE)
  59.    
  60.     var weaknesses = element_data.weaknesses
  61.     var resistances = element_data.resistances
  62.     var immunities = element_data.immunities
  63.    
  64.    
  65.     if damageType in weaknesses:
  66.         damageAmount *= 2
  67.     if damageType in resistances:
  68.         damageAmount /= 2
  69.     if damageType in immunities:
  70.         damageAmount *= 0
  71.     return damageAmount
  72.  
  73. var hearts : Array[Node]
  74. var lives = 3
  75.  
  76. func decrease_health(damageAmount, damageType):
  77.     var elementType
  78.     ElementsManager.calcola_danno(damageAmount, damageType, elementType)
  79.     print(lives)
  80.     for h in 3:
  81.         if(h < lives):
  82.             hearts[h].show()
  83.         else:
  84.             hearts[h].hide()
  85.     if (lives == 0):
  86.         get_tree().change_scene_to_file("res://scene/Livelli/menu/main_menu.tscn")
Advertisement
Add Comment
Please, Sign In to add comment