Example #1
0
            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);
            }
Example #2
0
        /// <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());
     }
 }
Example #5
0
        protected int CalculateHitChance(int initialValue)
        {
            if (Statuses.Contains(BlindObjectStatus.StatusType))
            {
                return((int)Math.Round(initialValue * BlindObjectStatus.HitChanceMultiplier));
            }

            return(initialValue);
        }
Example #6
0
 /// <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);
 }
Example #7
0
            /// <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));
            }
Example #8
0
 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;
     });
 }
Example #9
0
 /// <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));
     }
 }
Example #10
0
        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);
        }
Example #11
0
        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;
                }
            }
        }