Advertisement
dimon-torchila

Untitled

Mar 1st, 2023
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. enum EventType {
  2. object_in_trash, object_destroyed, object_delivered
  3. }
  4.  
  5. public class Event {
  6. event_type type;
  7. json data;
  8. }
  9.  
  10. public class BasicLevelController
  11. {
  12. public string description;
  13. private Dictionary<EventType, Func<Event, void> > events;
  14. private Dictionary<EventType, json > data;
  15.  
  16. public bool IsEnd() { // закончен ли уровень
  17. foreach (KeyValuePair<EventType, json > element in data)
  18. if (!element["is_completed"])
  19. return false;
  20. return true;
  21. }
  22.  
  23. public bool CheckEvent(Event event) {
  24. if (!events.Contains(event.type))
  25. return;
  26. events[event.type](event);
  27. return IsEnd();
  28. }
  29. }
  30.  
  31. public class RedBoxController : BasicLevelController
  32. {
  33. RedBoxController() {
  34. events[EventType.object_delivered] = CheckRedBoxs;
  35. data[EventType.object_delivered] = "
  36. "current_count": 0,
  37. "is_completed": false,
  38. "need_count": 10,
  39. "
  40. }
  41.  
  42. void CheckRedBoxs(Event event) {
  43. if (event.data["object_type"] != "red_box" || event.data["delivery_status"] == DeliveryStatus.Success || data[event.type]["is_completed"])
  44. return;
  45. data[event.type]["current_count"] += 1;
  46. if (data[event.type]["current_count"] >= data[event.type]["need_count"])
  47. data[event.type]["is_completed"] == true;
  48. }
  49.  
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement