public void Execute(GameState state, ConfigRoot config, ICommandBuffer _) { var playerUnits = FindPlayerUnits(state); var enemyUnits = CreateEnemyUnits(state, config); state.Level = new LevelState(LevelDesc, playerUnits, enemyUnits); state.Level.PlayerTurn = true; foreach (var unitId in PlayerUnits) { state.Units.Remove(unitId); } if (FarmLogic.IsFarmigLevel(LevelDesc, config)) { var scope = LevelUtils.GetScope(LevelDesc); state.Farming[scope] = state.Time.GetRealTime(); } }
public bool IsValid(GameState state, ConfigRoot config) { if (string.IsNullOrEmpty(LevelDesc)) { return(false); } if (!config.Levels.ContainsKey(LevelDesc)) { return(false); } var scope = LevelUtils.GetScope(LevelDesc); var currentProgress = state.Progress.GetOrDefault(scope); if (currentProgress < LevelUtils.GetIndex(LevelDesc)) { return(false); } if ((PlayerUnits == null) || (PlayerUnits.Count == 0) || (PlayerUnits.Count > 4)) { return(false); } var playerUnits = FindPlayerUnits(state); if (playerUnits == null) { return(false); } foreach (var unit in playerUnits) { if (unit.Health <= 0) { return(false); } } if (FarmLogic.IsFarmigLevel(LevelDesc, config)) { if (!FarmLogic.IsAvailable(scope, state, config)) { return(false); } } return(true); }
private void ValidateAppender(string configurationObjectName) { if (string.IsNullOrEmpty(name)) { throw new MissingAttributeException(configurationObjectName, FieldName); } // Ensure that if any of the buffer specific attributes are provided, they are all provided, and that they make sense. bool levelGiven = !string.IsNullOrEmpty(level); bool sendWithBufferLevelGiven = !string.IsNullOrEmpty(sendWithBufferLevel); bool storeInBufferLevelGiven = !string.IsNullOrEmpty(storeInBufferLevel); bool bufferSizeGiven = (bufferSize > 0); if (sendWithBufferLevelGiven || storeInBufferLevelGiven || bufferSizeGiven) { if ((!sendWithBufferLevelGiven) || (!storeInBufferLevelGiven) || (!bufferSizeGiven)) { throw new GeneralAppenderException(name, string.Format( "If any of {0}, {1} or {2} is specified, than the other two need to be specified as well", FieldSendWithBufferLevel, FieldStoreInBufferLevel, FieldBufferSize)); } int levelNumber = levelGiven ? LevelUtils.LevelNumber(level) : (int)Constants.DefaultAppenderLevel; int storeInBufferLevelNumber = LevelUtils.LevelNumber(storeInBufferLevel); int sendWithBufferLevelNumber = LevelUtils.LevelNumber(sendWithBufferLevel); if ((storeInBufferLevelNumber > levelNumber) || (levelNumber > sendWithBufferLevelNumber)) { throw new GeneralAppenderException(name, string.Format( "{0} must be equal or greater than {1} and equal or smaller than {2}", FieldLevel, FieldStoreInBufferLevel, FieldSendWithBufferLevel)); } } }
private void Awake() { _levelIndex = AppManager.Instance.AppContext.LevelToPlay; _levelInfo = AppManager.Instance.ConfigService.LevelsConfig.Levels[_levelIndex]; _pointsPerItem = 0; _totalPoints = 0; _ballsToReach = LevelUtils.GetBallsToReach(_levelInfo); _ballsToReachStatus = new bool[_ballsToReach.Count]; _roadPath = new VertexPath(new BezierPath(_levelInfo.Road.PointsVector3)); var roadManager = roadGo.GetComponent <RoadManager>(); roadManager.RenderRoad(_roadPath, _levelInfo.Road); _ballManager = ballGo.GetComponent <BallManager>(); _ballManager.Init(_roadPath, _levelInfo.Ball, OnBallCollision, OnBallOvercome, OnEndPortalReached); }
public static bool IsFarmigLevel(string desc, ConfigRoot config) { var scope = LevelUtils.GetScope(desc); return(config.Farming.ContainsKey(scope)); }
void OnRedoButtonClick() { LevelUtils.currentLevel = LevelUtils.GetLevel(PlayerDataUtils.playerData.currentLevelIndex); gameObject.SetActive(false); SceneManager.LoadScene("Play"); }
private static LogData ProcessLogItem(Dictionary <string, Object> logItem, string userAgent, string userHostAddress, string requestId, DateTime serverSideTimeUtc, string url, XmlElement xe) { string serversideLoggerNameOverride = XmlHelpers.OptionalAttribute(xe, "serverSideLogger", null); string messageFormat = XmlHelpers.OptionalAttribute(xe, "serverSideMessageFormat", "%message"); string levelOverride = XmlHelpers.OptionalAttribute(xe, "serverSideLevel", null, LevelUtils.LevelRegex()); string dateFormat = XmlHelpers.OptionalAttribute(xe, "dateFormat", "o"); // ---------------- string message = logItem["m"].ToString(); string logger = logItem["n"].ToString(); string level = logItem["l"].ToString(); // note that level as sent by the javascript is a number DateTime utcTimestamp = DateTime.UtcNow; string timestampMs = logItem["t"].ToString(); try { double ms = double.Parse(timestampMs); utcTimestamp = DateTime.SpecifyKind((new DateTime(1970, 1, 1)).AddMilliseconds(ms), DateTimeKind.Utc); } catch { } // ---------------- if (string.IsNullOrWhiteSpace(logger)) { logger = Constants.RootLoggerNameServerSide; } string finalLoggerName = serversideLoggerNameOverride ?? logger; string finalLevel = levelOverride ?? level; // ---------------- string jsonmessage = ""; if (messageFormat.Contains("%jsonmessage")) { jsonmessage = LogMessageHelpers.EnsureValidJson(message); } // ---------------- string finalMessage = messageFormat .Replace("%message", message) .Replace("%jsonmessage", jsonmessage) .Replace("%utcDateServer", serverSideTimeUtc.ToString(dateFormat)) .Replace("%utcDate", utcTimestamp.ToString(dateFormat)) .Replace("%dateServer", Utils.UtcToLocalDateTime(serverSideTimeUtc).ToString(dateFormat)) .Replace("%date", Utils.UtcToLocalDateTime(utcTimestamp).ToString(dateFormat)) .Replace("%level", level) .Replace("%newline", System.Environment.NewLine) .Replace("%userAgent", userAgent) .Replace("%userHostAddress", userHostAddress) .Replace("%requestId", requestId ?? "") .Replace("%url", url) .Replace("%logger", logger); // --------------- LogData logData = new LogData( finalMessage, finalLoggerName, LevelUtils.ParseLevel(finalLevel).Value, LevelUtils.LevelNumber(finalLevel), message, int.Parse(level), logger, requestId, utcTimestamp, serverSideTimeUtc, Utils.UtcToLocalDateTime(utcTimestamp), Utils.UtcToLocalDateTime(serverSideTimeUtc), userAgent, userHostAddress, url); return(logData); }
public string ToJavaScript(string text) { string js = LevelUtils.LevelNumber(text).ToString(); return(js); }
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { string paramNameGroupConstr = "INGD_Группа конструкции"; string floorNumberParamName = "INGD_Номер этажа"; int floorTextPosition = 0; Module.assembly = System.Reflection.Assembly.GetExecutingAssembly().Location; Print(Module.assembly, KPLN_Loader.Preferences.MessageType.Regular); string markParamName = "INGD_Марка"; string widthParamName = "INGD_Ширина"; string lengthParamName = "INGD_Длина"; string heigthParamName = "INGD_Высота"; Dictionary <string, string> marksBase = new Dictionary <string, string>(); string txtFile = SettingsUtils.CheckOrCreateSettings(); Print(txtFile, KPLN_Loader.Preferences.MessageType.Regular); if (!System.IO.File.Exists(txtFile)) { message = "Не найден файл " + txtFile; return(Result.Failed); } string[] data = System.IO.File.ReadAllLines(txtFile); foreach (string s in data) { string[] line = s.Split(';'); marksBase.Add(line[0], line[1]); } Document doc = commandData.Application.ActiveUIDocument.Document; List <Element> allElems = new List <Element>(); List <Wall> walls = new FilteredElementCollector(doc) .OfClass(typeof(Wall)) .Cast <Wall>() .ToList(); List <Floor> floors = new FilteredElementCollector(doc) .OfClass(typeof(Floor)) .Cast <Floor>() .ToList(); allElems.AddRange(walls); allElems.AddRange(floors); allElems.AddRange(new FilteredElementCollector(doc).OfClass(typeof(Autodesk.Revit.DB.Architecture.Stairs))); allElems.AddRange(new FilteredElementCollector(doc).OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_StructuralColumns)); allElems.AddRange(new FilteredElementCollector(doc).OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_StructuralFraming)); allElems.AddRange(new FilteredElementCollector(doc).OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_StructuralFoundation)); allElems.AddRange(new FilteredElementCollector(doc).OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_Floors)); allElems.AddRange(new FilteredElementCollector(doc).OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_Walls)); List <FamilyInstance> genericModels = new FilteredElementCollector(doc) .OfClass(typeof(FamilyInstance)) .OfCategory(BuiltInCategory.OST_GenericModel) .Cast <FamilyInstance>() .Where(i => !i.Symbol.FamilyName.StartsWith("22")) .ToList(); allElems.AddRange(genericModels); List <FamilyInstance> windows = new FilteredElementCollector(doc) .OfClass(typeof(FamilyInstance)) .Cast <FamilyInstance>() .Where(i => i.Symbol.FamilyName.StartsWith("23")) .ToList(); allElems.AddRange(windows); List <RoofBase> roofs = new FilteredElementCollector(doc) .OfClass(typeof(RoofBase)) .Cast <RoofBase>() .ToList(); int count = 0; using (Transaction t = new Transaction(doc)) { t.Start("INGD Параметризация"); foreach (Element elem in allElems) { Parameter markParam = elem.get_Parameter(BuiltInParameter.ALL_MODEL_MARK); if (markParam == null) { continue; } if (markParam.HasValue) { string mark = markParam.AsString(); Parameter ingdMarkParam = elem.LookupParameter(markParamName); if (ingdMarkParam != null) { ingdMarkParam.Set(mark); } string[] splitmark = mark.Split('-'); if (splitmark.Length > 1) { string markPrefix = splitmark[0]; if (!marksBase.ContainsKey(markPrefix)) { message = "Недопустимый префикс марки " + markPrefix + " у элемента id " + elem.Id.IntegerValue.ToString(); return(Result.Failed); } string group = marksBase[markPrefix]; Parameter groupParam = elem.LookupParameter(paramNameGroupConstr); if (groupParam != null) { groupParam.Set(group); } } } //заполняю номер этажа Level baseLevel = LevelUtils.GetLevelOfElement(elem, doc); if (baseLevel != null) { string floorNumber = LevelUtils.GetFloorNumberByLevel(baseLevel, floorTextPosition, ' '); Parameter ingdFloor = elem.LookupParameter(floorNumberParamName); if (ingdFloor == null) { continue; } ingdFloor.Set(floorNumber); } count++; } foreach (RoofBase roof in roofs) { string group = "Бетонная подготовка"; Parameter groupParam = roof.LookupParameter(paramNameGroupConstr); if (groupParam != null) { groupParam.Set(group); } } foreach (Wall w in walls) { Level baseLevel = doc.GetElement(w.LevelId) as Level; string floorNumber = LevelUtils.GetFloorNumberByLevel(baseLevel, floorTextPosition, ' '); Parameter ingdFloor = w.LookupParameter(floorNumberParamName); if (ingdFloor == null) { continue; } ingdFloor.Set(floorNumber); double width = w.Width; Parameter ingdWidth = w.LookupParameter(widthParamName); if (ingdWidth == null) { continue; } ingdWidth.Set(width); double length = w.get_Parameter(BuiltInParameter.CURVE_ELEM_LENGTH).AsDouble(); Parameter ingdLength = w.LookupParameter(lengthParamName); if (ingdLength == null) { continue; } ingdLength.Set(length); List <Solid> solids = GeometryUtils.GetSolidsFromElement(w); XYZ[] maxminZ = GeometryUtils.GetMaxMinHeightPoints(solids); double heigth = maxminZ[0].Z - maxminZ[1].Z; Parameter ingdHeigth = w.LookupParameter(heigthParamName); if (ingdHeigth == null) { continue; } ingdHeigth.Set(heigth); } foreach (Floor f in floors) { Level baseLevel = doc.GetElement(f.LevelId) as Level; string floorNumber = LevelUtils.GetFloorNumberByLevel(baseLevel, floorTextPosition, ' '); Parameter ingdFloor = f.LookupParameter(floorNumberParamName); if (ingdFloor == null) { continue; } ingdFloor.Set(floorNumber); FloorType ft = f.FloorType; double heigth = ft.get_Parameter(BuiltInParameter.FLOOR_ATTR_DEFAULT_THICKNESS_PARAM).AsDouble(); Parameter ingdHeigth = f.LookupParameter(heigthParamName); if (ingdHeigth == null) { continue; } ingdHeigth.Set(heigth); } t.Commit(); } TaskDialog.Show("Отчет", "Обработано элементов: " + count.ToString()); return(Result.Succeeded); }
// Use this for initialization void Start() { LevelUtils.initLevel(); }
private static FinalLogData ProcessLogItem(LogRequestSingleMsg logItem, LogRequestBase logRequestBase, DateTime serverSideTimeUtc, JsnlogConfiguration jsnlogConfiguration) { string serversideLoggerNameOverride = jsnlogConfiguration.serverSideLogger; string messageFormat = jsnlogConfiguration.serverSideMessageFormat; string levelOverride = jsnlogConfiguration.serverSideLevel; string dateFormat = jsnlogConfiguration.dateFormat; try { LevelUtils.ValidateLevel(levelOverride); } catch (Exception e) { throw new PropertyException("levelOverride", e); } // ---------------- string message = logItem.m; string logger = logItem.n; string level = logItem.l; // note that level as sent by the javascript is a number string entryId = logItem.u; DateTime utcDate = DateTime.UtcNow; string timestampMs = logItem.t; try { double ms = double.Parse(timestampMs); utcDate = DateTime.SpecifyKind((new DateTime(1970, 1, 1)).AddMilliseconds(ms), DateTimeKind.Utc); } catch { } // ---------------- string jsonmessage = ""; if (messageFormat.Contains("%jsonmessage")) { jsonmessage = LogMessageHelpers.EnsureValidJson(message); } // ---------------- var logRequest = new LogRequest(message, logger, level, utcDate, entryId, jsonmessage, logRequestBase); var loggingEventArgs = new LoggingEventArgs(logRequest) { Cancel = false, ServerSideMessageFormat = messageFormat }; // ---------------- if (string.IsNullOrWhiteSpace(logger)) { logger = Constants.RootLoggerNameServerSide; } loggingEventArgs.FinalLogger = serversideLoggerNameOverride ?? logger; string consolidatedLevel = levelOverride ?? level; loggingEventArgs.FinalLevel = LevelUtils.ParseLevel(consolidatedLevel).Value; // ---------------- loggingEventArgs.FinalMessage = messageFormat .Replace("%message", message) .Replace("%entryId", entryId) .Replace("%jsonmessage", jsonmessage) .Replace("%utcDateServer", serverSideTimeUtc.ToString(dateFormat)) .Replace("%utcDate", utcDate.ToString(dateFormat)) .Replace("%dateServer", Utils.UtcToLocalDateTime(serverSideTimeUtc).ToString(dateFormat)) .Replace("%date", Utils.UtcToLocalDateTime(utcDate).ToString(dateFormat)) .Replace("%level", level) .Replace("%newline", System.Environment.NewLine) .Replace("%userAgent", logRequestBase.UserAgent) .Replace("%userHostAddress", logRequestBase.UserHostAddress) .Replace("%requestId", logRequestBase.RequestId ?? "") .Replace("%url", logRequestBase.Url) .Replace("%logger", logger); // ---------------- JavascriptLogging.RaiseLoggingEvent(loggingEventArgs); // If user wrote event handler that decided not to log the message, return null if (loggingEventArgs.Cancel) { return(null); } return(loggingEventArgs); }