Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum EventType {
- object_in_trash, object_destroyed, object_delivered
- }
- public class Event {
- event_type type;
- json data;
- }
- public class BasicLevelController
- {
- public string description;
- private Dictionary<EventType, Func<Event, void> > events;
- private Dictionary<EventType, json > data;
- public bool IsEnd() { // закончен ли уровень
- foreach (KeyValuePair<EventType, json > element in data)
- if (!element["is_completed"])
- return false;
- return true;
- }
- public bool CheckEvent(Event event) {
- if (!events.Contains(event.type))
- return;
- events[event.type](event);
- return IsEnd();
- }
- }
- public class RedBoxController : BasicLevelController
- {
- RedBoxController() {
- events[EventType.object_delivered] = CheckRedBoxs;
- data[EventType.object_delivered] = "
- "current_count": 0,
- "is_completed": false,
- "need_count": 10,
- "
- }
- void CheckRedBoxs(Event event) {
- if (event.data["object_type"] != "red_box" || event.data["delivery_status"] == DeliveryStatus.Success || data[event.type]["is_completed"])
- return;
- data[event.type]["current_count"] += 1;
- if (data[event.type]["current_count"] >= data[event.type]["need_count"])
- data[event.type]["is_completed"] == true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement