Progress.gd 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. extends Object
  2. class_name ActorProgress
  3. #
  4. var bestiary : Dictionary = {}
  5. var quests : Dictionary = {}
  6. var questMutex : Mutex = Mutex.new()
  7. var bestiaryMutex : Mutex = Mutex.new()
  8. # Quest progress
  9. func SetQuest(questID : int, state : int):
  10. questMutex.lock()
  11. quests[questID] = state
  12. questMutex.unlock()
  13. func GetQuest(questID : int) -> int:
  14. var state : int = ProgressCommons.UnknownProgress
  15. if questID in quests:
  16. questMutex.lock()
  17. state = quests[questID]
  18. questMutex.unlock()
  19. return state
  20. func FillQuests(data : Dictionary) -> void:
  21. quests.clear()
  22. questMutex.lock()
  23. for questID in data:
  24. quests[questID] = data[questID]
  25. questMutex.unlock()
  26. # Bestiary progress
  27. func AddBestiary(entityID : int):
  28. bestiaryMutex.lock()
  29. if entityID in bestiary:
  30. bestiary[entityID] += 1
  31. else:
  32. bestiary[entityID] = 1
  33. bestiaryMutex.unlock()
  34. func GetBestiary(monsterID : String) -> int:
  35. var count : int = 0
  36. if monsterID in bestiary:
  37. bestiaryMutex.lock()
  38. count = bestiary[monsterID]
  39. bestiaryMutex.unlock()
  40. return count
  41. func FillBestiary(data : Dictionary):
  42. bestiary.clear()
  43. bestiaryMutex.lock()
  44. for entityID in data:
  45. bestiary[entityID] = data[entityID]
  46. bestiaryMutex.unlock()