Advertisement
dimon-torchila

Untitled

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