Example #1
0
 public static ScenarioEventDialog ToScenarioEventDialog(this IScenarioEvent scenarioEvent)
 {
     return((ScenarioEventDialog)scenarioEvent);
 }
Example #2
0
        private static IEnumerable <IScenarioEvent> ConvertStringToEvents(string body)
        {
            var results = new List <IScenarioEvent>();

            var jObject = JObject.Parse(body);

            if (jObject["events"] != null)
            {
                foreach (var jEvent in jObject["events"].ToArray())
                {
                    if (jEvent["Type"] == null)
                    {
                        continue;
                    }

                    IScenarioEvent scenarioEvent = null;

                    switch (jEvent["Type"].ToString())
                    {
                    case "300":
                        scenarioEvent = new ScenarioEventDialog((int)jEvent["DialogId"])
                        {
                            Type = GameEventTypes.OpenDialog
                        };
                        break;

                    case "210":
                        scenarioEvent = new ScenarioEventGenerateNpcSpaceShip((int)jEvent["DialogId"])
                        {
                            Type = GameEventTypes.NpcSpaceShipFound
                        };

                        if (jEvent["Generation"] != null)
                        {
                            foreach (var jsonSpaceShip in jEvent["Generation"].ToArray())
                            {
                                ((ScenarioEventGenerateNpcSpaceShip)scenarioEvent).AddSpaceShip(
                                    (int)jsonSpaceShip["SpaceShipClass"],
                                    (int)jsonSpaceShip["SpaceShipType"],
                                    (int)jsonSpaceShip["Standing"],
                                    (string)jsonSpaceShip["Message"]);
                            }
                        }



                        break;

                    default:
                        continue;
                    }


                    scenarioEvent.Id    = (int)jEvent["Id"];
                    scenarioEvent.Turn  = (int)jEvent["Turn"];
                    scenarioEvent.Scene = (int)jEvent["Scene"];

                    results.Add(scenarioEvent);
                }
            }

            return(results);
        }