public bool Hits(Combatant source, Combatant target, AbilityModifiers modifiers) { // auto hit conditions if (_odds >= 100) { return(true); } if (Statuses.Count() == 1 && Statuses.Contains(Status.Frog) && target.Frog) { return(true); } if (Statuses.Count() == 1 && Statuses.Contains(Status.Small) && target.Small) { return(true); } if (target is Ally && Statuses.Any(s => new Status[] { Status.Haste, Status.Berserk, Status.Shield }.Contains(s))) { return(true); } int odds = _odds; odds = MPTurbo(odds, modifiers); odds = Split(odds, modifiers); odds -= 1; return(source.CurrentBattle.Random.Next(99) < odds); }
/// <summary> /// Gets the current status. /// As determined in precedence /// </summary> /// <returns></returns> private RosterAttendeeStatus GetCurrentStatus() { RosterAttendeeStatus matchingStatus; // The attendee might be in multiple statuses, pick the status that makes the most sense, which would be based on the precedence: // Present, Checked In, Checked Out if (Statuses.Contains(RosterAttendeeStatus.Present)) { matchingStatus = RosterAttendeeStatus.Present; } else if (Statuses.Contains(RosterAttendeeStatus.CheckedIn)) { matchingStatus = RosterAttendeeStatus.CheckedIn; } else if (Statuses.Contains(RosterAttendeeStatus.CheckedOut)) { matchingStatus = RosterAttendeeStatus.CheckedOut; } else { // shouldn't happen because RosterAttendeeStatus only has the above as possible values , but just in case matchingStatus = RosterAttendeeStatus.CheckedOut; } return(matchingStatus); }
public void InsertStatus(SingleHttpStatus singleHttpStatus) { if (!Statuses.Contains(singleHttpStatus)) { Statuses.Add(singleHttpStatus); OnStatusChanged(new EventArgs()); } }
public void DeleteStatus(SingleHttpStatus singleHttpStatus) { if (Statuses.Contains(singleHttpStatus)) { Statuses.Remove(singleHttpStatus); OnStatusChanged(new EventArgs()); } }
protected int CalculateHitChance(int initialValue) { if (Statuses.Contains(BlindObjectStatus.StatusType)) { return((int)Math.Round(initialValue * BlindObjectStatus.HitChanceMultiplier)); } return(initialValue); }
/// <summary> /// Returns true if message matches current filter criterias. /// </summary> /// <param name="message">Message to match.</param> /// <returns>True if matches, otherwise false.</returns> public bool IsMatch(MessageRecord message) { if (Predicate?.Invoke(message) == false || Statuses?.Contains(message.Status) == false || message.ExecutionDuration < ExecutionDurationAbove || excludedContentTypes?.Any(ct => ct.IsMatch(message.ContentType)) == true || includeContentTypes?.Any(ct => ct.IsMatch(message.ContentType)) == false || types?.Contains(message.Type) == false) { return(false); } return(true); }
/// <summary> /// Check that the event matches the filter. /// </summary> public bool Satisfied(Event ev) { // if filtering only by channel numbers is used, CnlNums should not be null if (Filters == EventFilters.Cnls) { // quick check by channel numbers only return(CnlNums.Contains(ev.CnlNum)); } // complete filter condition check return ((!Filters.HasFlag(EventFilters.Obj) || ObjNum == ev.ObjNum) && (!Filters.HasFlag(EventFilters.KP) || KPNum == ev.KPNum) && (!Filters.HasFlag(EventFilters.Param) || ParamID > 0 && ParamID == ev.ParamID || ParamIDs != null && ParamIDs.Contains(ev.ParamID)) && (!Filters.HasFlag(EventFilters.Cnls) || CnlNums != null && CnlNums.Contains(ev.CnlNum)) && (!Filters.HasFlag(EventFilters.Stat) || Statuses != null && Statuses.Contains(ev.NewCnlStat)) && (!Filters.HasFlag(EventFilters.Ack) || Checked == ev.Checked)); }
public Func <WorkItem, bool> GetPredicate() { return(x => { bool result = true; if (Ids != null) { result = Ids.Contains(x.Id); } if (Statuses != null) { result = result && Statuses.Contains(x.Status); } if (ExecutionTypes != null) { result = result && ExecutionTypes.Contains(x.ExecutionType); } return result; }); }
/// <summary> /// Проверить, что событие удовлетворяет фильтру /// </summary> public bool Satisfied(Event ev) { // если используется фильтр только по номерам каналов, CnlNums должно быть не равно null if (Filters == EventFilters.Cnls) { // быстрая проверка только по номерам каналов return(CnlNums.Contains(ev.CnlNum)); } else { // полная проверка условий фильтра return ((!Filters.HasFlag(EventFilters.Obj) || ObjNum == ev.ObjNum) && (!Filters.HasFlag(EventFilters.KP) || KPNum == ev.KPNum) && (!Filters.HasFlag(EventFilters.Param) || ParamID > 0 && ParamID == ev.ParamID || ParamIDs != null && ParamIDs.Contains(ev.ParamID)) && (!Filters.HasFlag(EventFilters.Cnls) || CnlNums != null && CnlNums.Contains(ev.CnlNum)) && (!Filters.HasFlag(EventFilters.Stat) || Statuses != null && Statuses.Contains(ev.NewCnlStat)) && (!Filters.HasFlag(EventFilters.Ack) || Checked == ev.Checked)); } }
public override List <Square> MoveSquares() { if (Statuses.Contains(UnitStatus.Web)) { return(new List <Square>()); } if (HasMoved || (HasAttacked && !(mPilot is ChenRong))) { return(new List <Square>()); } List <Square> found = new List <Square>(); if (HasAttacked) { FindSquares(ref found, Location, 0, 1); } else { FindSquares(ref found, Location, 0, CurrentMove); } return(found); }
public IQueryable <ITask> Where(IQueryable <ITask> tasks) { #region Фильтры tasks = tasks.Where(x => x.BoardId == BoardId); if (!IsAllIn(ExecutorIds, _AllUserIds)) { tasks = from t in tasks where ExecutorIds.Contains(t.ExecutorUserId) select t; } if (!IsAllIn(CreatorIds, _AllUserIds)) { tasks = from t in tasks where CreatorIds.Contains(t.CreatorUserId) select t; } if (!IsAllIn(ProjectIds, _AllProjectIds)) { tasks = from t in tasks where ProjectIds.Contains(t.ProjectId) select t; } if (!IsAllIn(ColorIds, _AllColorIds)) { tasks = from t in tasks where ColorIds.Contains(t.ColorId) select t; } if (!IsAllIn(Statuses, _AllStatuses)) { if (Statuses.Any(x => x == TimezStatus.ArchiveStatusId || x <= 0)) { throw new ArgumentOutOfRangeException(); } tasks = from t in tasks where Statuses.Contains(t.TaskStatusId) select t; } if (!string.IsNullOrWhiteSpace(Search)) { tasks = from t in tasks where t.Name.ToUpper().Contains(Search.Trim().ToUpper()) select t; } #endregion #region Ограничение по роли пользователя в доске UserRole role = _Settings.GetUserRole(); if (!role.HasTheFlag(UserRole.Owner) && !role.HasTheFlag(UserRole.Observer)) { // владелец и наблюдатель получают все задачи // исполнитель и заказчик только свои if (role.HasAnyFlag(UserRole.Executor | UserRole.Customer)) { // есть обе роли, значит нужно оба типа задач tasks = from t in tasks where t.ExecutorUserId == _Settings.UserId || // назначенные на пользователя t.CreatorUserId == _Settings.UserId // назначенные пользоватем select t; } else if (role.HasTheFlag(UserRole.Executor)) { tasks = from t in tasks where t.ExecutorUserId == _Settings.UserId // только назначенные на пользователя select t; } else if (role.HasTheFlag(UserRole.Customer)) { tasks = from t in tasks where t.CreatorUserId == _Settings.UserId // только назначенные пользоватем select t; } else { throw new AccessDeniedException(); } } #endregion return(tasks); }
private void LoadStrategy() { SlideHeaders.Clear(); SourcePrograms.Clear(); Lengths.Clear(); Stations.Clear(); CustomDemos.Clear(); Dayparts.Clear(); Times.Clear(); if (ResourceManager.Instance.MediaListsFile.ExistsLocal()) { var document = new XmlDocument(); document.Load(ResourceManager.Instance.MediaListsFile.LocalPath); XmlNode node = document.SelectSingleNode(String.Format(@"/{0}Strategy", XmlRootPrefix)); if (node != null) { foreach (XmlNode childeNode in node.ChildNodes) { switch (childeNode.Name) { case "SlideHeader": foreach (XmlAttribute attribute in childeNode.Attributes) { switch (attribute.Name) { case "Value": if (!string.IsNullOrEmpty(attribute.Value) && !SlideHeaders.Contains(attribute.Value)) { SlideHeaders.Add(attribute.Value); } break; } } break; case "FlexFlightDatesAllowed": { bool temp; if (Boolean.TryParse(childeNode.InnerText, out temp)) { FlexFlightDatesAllowed = temp; } } break; case "Daypart": var daypart = new Daypart(); foreach (XmlAttribute attribute in childeNode.Attributes) { switch (attribute.Name) { case "Name": daypart.Name = attribute.Value; break; case "Code": daypart.Code = attribute.Value; break; } } if (!string.IsNullOrEmpty(daypart.Name)) { Dayparts.Add(daypart); } break; case "CustomDemo": foreach (XmlAttribute attribute in childeNode.Attributes) { switch (attribute.Name) { case "Value": if (!CustomDemos.Contains(attribute.Value)) { CustomDemos.Add(attribute.Value); } break; } } break; case "Lenght": foreach (XmlAttribute attribute in childeNode.Attributes) { switch (attribute.Name) { case "Value": if (!string.IsNullOrEmpty(attribute.Value) && !SlideHeaders.Contains(attribute.Value)) { Lengths.Add(attribute.Value); } break; } } break; case "Station": var station = new Station(); foreach (XmlAttribute attribute in childeNode.Attributes) { switch (attribute.Name) { case "Name": station.Name = attribute.Value; break; case "Logo": if (!string.IsNullOrEmpty(attribute.Value)) { station.Logo = new Bitmap(new MemoryStream(Convert.FromBase64String(attribute.Value))); } break; } } if (!string.IsNullOrEmpty(station.Name)) { Stations.Add(station); } break; case "Program": var sourceProgram = new SourceProgram(); GetProgramProperties(childeNode, ref sourceProgram); if (!string.IsNullOrEmpty(sourceProgram.Name)) { SourcePrograms.Add(sourceProgram); } break; case "Status": foreach (XmlAttribute attribute in childeNode.Attributes) { switch (attribute.Name) { case "Value": if (!Statuses.Contains(attribute.Value)) { Statuses.Add(attribute.Value); } break; } } break; case "BroadcastMonthTemplate": var monthTemplate = new MediaMonthTemplate(); monthTemplate.Deserialize(childeNode); MonthTemplatesMondayBased.Add(monthTemplate); MonthTemplatesSundayBased.Add(monthTemplate); break; case "DefaultWeeklyScheduleSettings": DefaultWeeklyScheduleSettings.Deserialize(childeNode); break; case "DefaultMonthlyScheduleSettings": DefaultMonthlyScheduleSettings.Deserialize(childeNode); break; case "DefaultSnapshotSettings": DefaultSnapshotSettings.Deserialize(childeNode); break; case "DefaultSnapshotSummarySettings": DefaultSnapshotSummarySettings.Deserialize(childeNode); break; case "DefaultOptionsSettings": DefaultOptionsSettings.Deserialize(childeNode); break; case "DefaultOptionsSummarySettings": DefaultOptionsSummarySettings.Deserialize(childeNode); break; case "DefaultBroadcastCalendarSettings": DefaultBroadcastCalendarSettings.Deserialize(childeNode); break; case "DefaultCustomCalendarSettings": DefaultCustomCalendarSettings.Deserialize(childeNode); break; } } } } if (SourcePrograms.Count > 0) { Times.AddRange(SourcePrograms.Select(x => x.Time).Distinct().ToArray()); Days.AddRange(SourcePrograms.Select(x => x.Day).Distinct().ToArray()); } }
private void LoadOnlineStrategy(StorageFile listsSourceFile) { SlideHeaders.Clear(); Websites.Clear(); Strengths.Clear(); Categories.Clear(); ProductSources.Clear(); if (!listsSourceFile.ExistsLocal()) { return; } var document = new XmlDocument(); document.Load(listsSourceFile.LocalPath); var node = document.SelectSingleNode(@"/OnlineStrategy"); if (node == null) { return; } foreach (XmlNode childeNode in node.ChildNodes) { switch (childeNode.Name) { case "Header": foreach (XmlAttribute attribute in childeNode.Attributes) { switch (attribute.Name) { case "Value": if (!string.IsNullOrEmpty(attribute.Value) && !SlideHeaders.Contains(attribute.Value)) { SlideHeaders.Add(attribute.Value); } break; } } break; case "Site": foreach (XmlAttribute attribute in childeNode.Attributes) { switch (attribute.Name) { case "Value": if (!string.IsNullOrEmpty(attribute.Value) && !Websites.Contains(attribute.Value)) { Websites.Add(attribute.Value); } break; } } break; case "Strength": foreach (XmlAttribute attribute in childeNode.Attributes) { switch (attribute.Name) { case "Value": if (!string.IsNullOrEmpty(attribute.Value) && !Strengths.Contains(attribute.Value)) { Strengths.Add(attribute.Value); } break; } } break; case "PricingStrategy": foreach (XmlAttribute attribute in childeNode.Attributes) { switch (attribute.Name) { case "Value": if (!string.IsNullOrEmpty(attribute.Value) && !PricingStrategies.Contains(attribute.Value)) { PricingStrategies.Add(attribute.Value); } break; } } break; case "PositionColumn": foreach (XmlAttribute attribute in childeNode.Attributes) { switch (attribute.Name) { case "Value": if (!string.IsNullOrEmpty(attribute.Value) && !ColumnPositions.Contains(attribute.Value)) { ColumnPositions.Add(attribute.Value); } break; } } break; case "DefaultFormula": switch (childeNode.InnerText.ToLower().Trim()) { case "cpm": DefaultFormula = FormulaType.CPM; break; case "investment": DefaultFormula = FormulaType.Investment; break; case "impressions": DefaultFormula = FormulaType.Impressions; break; } break; case "LockedMode": { bool temp; if (Boolean.TryParse(childeNode.InnerText, out temp)) { LockedMode = temp; } } break; case "SpecialLinksEnable": { bool temp; if (Boolean.TryParse(childeNode.InnerText, out temp)) { SpecialLinksEnable = temp; } } break; case "SpecialButtonsGroupName": SpecialLinksGroupName = childeNode.InnerText; break; case "SpecialButtonsGroupLogo": if (string.IsNullOrEmpty(childeNode.InnerText)) { SpecialLinksGroupLogo = null; } else { SpecialLinksGroupLogo = new Bitmap(new MemoryStream(Convert.FromBase64String(childeNode.InnerText))); } break; case "Browser": SpecialLinkBrowsers.Add(childeNode.InnerText); break; case "SpecialButton": var specialLinkButton = new SpecialLinkButton(); GetSpecialButton(childeNode, ref specialLinkButton); if (!String.IsNullOrEmpty(specialLinkButton.Name) && !String.IsNullOrEmpty(specialLinkButton.Type) && specialLinkButton.Paths.Any()) { SpecialLinkButtons.Add(specialLinkButton); } break; case "Targeting": { var productInfo = new ProductInfo { Type = ProductInfoType.Targeting }; productInfo.Deserialize(childeNode); TargetingRecods.Add(productInfo); } break; case "RichMedia": { var productInfo = new ProductInfo { Type = ProductInfoType.RichMedia }; productInfo.Deserialize(childeNode); RichMediaRecods.Add(productInfo); } break; case "Category": var category = new Category(); GetCategories(childeNode, ref category); if (!string.IsNullOrEmpty(category.Name)) { Categories.Add(category); } break; case "Product": var productSource = new ProductSource(); GetProductProperties(childeNode, ref productSource); if (!string.IsNullOrEmpty(productSource.Name)) { ProductSources.Add(productSource); } break; case "Status": foreach (XmlAttribute attribute in childeNode.Attributes) { switch (attribute.Name) { case "Value": if (!Statuses.Contains(attribute.Value)) { Statuses.Add(attribute.Value); } break; } } break; case "DefaultHomeViewSettings": DefaultHomeViewSettings.Deserialize(childeNode); break; case "DefaultDigitalProductSettings": DefaultDigitalProductSettings.Deserialize(childeNode); break; case "DefaultDigitalProductPackageSettings": DefaultDigitalProductPackageSettings.Deserialize(childeNode); break; case "DefaultDigitalStandalonePackageSettings": DefaultDigitalStandalonePackageSettings.Deserialize(childeNode); break; case "DigitalControlsConfiguration": DefaultControlsConfiguration = JsonConvert.DeserializeObject <DigitalControlsConfiguration>(Encoding.Unicode.GetString(Convert.FromBase64String(childeNode.InnerText)), new JsonImageConverter()); break; } } }