Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Online C# Editor for free
- // Write, Edit and Run your C# code using C# Online Compiler
- using System;
- 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 BoxController : BasicLevelController
- {
- BoxController(int need_count, string object_type) {
- events[EventType.object_delivered] = CheckBox;
- data[EventType.object_delivered] = "
- "current_count": 0,
- "is_completed": false,
- "need_count": need_count,
- "object_type": object_type,
- "
- }
- void CheckBox(Event event) {
- if (event.data["object_type"] != data[event.type]["object_type"] || 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