public static ScenarioEventDialog ToScenarioEventDialog(this IScenarioEvent scenarioEvent) { return((ScenarioEventDialog)scenarioEvent); }
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); }