No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

StatsHandler.gd 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. extends Control
  2. var GAUGE_PREFIX = "jauge_"
  3. var RELATIONS_PREFIX = "relation_"
  4. var CHOICES_PREFIX = "choix_"
  5. var gauges_names := ["travail", "education", "financier", "ecologie", "social"]
  6. var relations_names := ["evelyne", "jm"]
  7. var choices_names := ["tel_ouvert", "mdr"]
  8. var gauges_ranges := [[-11, 14], [-9, 23], [-23, 24], [-13, 16], [-16, 17]]
  9. var relations_ranges := [[-5, 6], [-3, 5]]
  10. var gauges_values := []
  11. var relations_values := []
  12. var choices_values := []
  13. var gauges := {}
  14. var relations := {}
  15. var choices := {}
  16. func _ready() -> void:
  17. _recover_variables()
  18. gauges_values = _get_percentages(gauges, gauges_names, gauges_ranges)
  19. relations_values = _get_percentages(relations, relations_names, relations_ranges)
  20. choices_values = _get_choices_array()
  21. func _recover_variables():
  22. var definitions = Dialogic.get_definitions()
  23. # Get relations and gauges from variables
  24. for d in definitions["variables"]:
  25. for g in gauges_names:
  26. if d["name"] == GAUGE_PREFIX + g:
  27. gauges[g] = d
  28. for r in relations_names:
  29. if d["name"] == RELATIONS_PREFIX + r:
  30. relations[r] = d
  31. for c in choices_names:
  32. if d["name"] == CHOICES_PREFIX + c:
  33. choices[c] = d
  34. print(choices)
  35. func _get_percentages(data: Dictionary, names: Array, ranges: Array) -> Array:
  36. var final_array := []
  37. for i in range(0, data.size()):
  38. var val = float(data[names[i]]["value"])
  39. var min_max = ranges[i]
  40. # Adjust offset
  41. val -= min_max[0]
  42. # Get whole range
  43. var total_range = min_max[1] - min_max[0]
  44. final_array.append(100 * val / total_range)
  45. return final_array
  46. func _get_choices_array() -> Array:
  47. var final_array := []
  48. for i in range(0, choices.size()):
  49. final_array.append(choices[choices_names[i]]["value"])
  50. return final_array