public static Unit CreateUnit( IGameDataService dataService, UnitDescriptor descriptor, Guid owner, Coordinate coordinate, Guid id, string name ) { var data = new JObject() as dynamic; data.ID = id; data.Name = name; data.Owner = owner; data.Descriptor = descriptor.Guid; data.Coordinate = coordinate.ToString(); data.State = UnitActionState.Idle; data.Mobility = 0m; data.LastActTime = DateTime.UtcNow; var type = descriptor.InstanceType; var unit = (Unit) Activator.CreateInstance( type ); unit.InitializeData( dataService, data ); return unit; }