Exemple #1
0
        static public bool HinraicendGlaicwertigFürIdentInOptimatParam(
            SictKonfigMissionZuMissionFilterVerhalte O0,
            SictKonfigMissionZuMissionFilterVerhalte O1)
        {
            if (O0 == O1)
            {
                return(true);
            }

            if (null == O0 || null == O1)
            {
                return(false);
            }

            return
                (O0.FilterAgentLevel == O1.FilterAgentLevel &&
                 O0.AktioonFüüreAusAktiiv == O1.AktioonFüüreAusAktiiv &&
                 O0.AktioonAcceptAktiiv == O1.AktioonAcceptAktiiv &&
                 O0.AktioonDeclineAktiiv == O1.AktioonDeclineAktiiv &&
                 O0.AktioonDeclineUnabhängigVonStandingLossAktiiv == O1.AktioonDeclineUnabhängigVonStandingLossAktiiv &&
                 O0.FilterMissionTitelRegexPattern == O1.FilterMissionTitelRegexPattern);
        }
Exemple #2
0
        public SictKonfigMissionZuMissionFilterVerhalte ZuMissionOfferVerhalteBerecne(
            string MissionTitel,
            SictFactionSictEnum[] MissionMengeFaction,
            int?AgentLevel,
            int?SecurityLevelMiliMinimum)
        {
            var MengeMissionFilterPasend =
                AusMengeZuMissionFilterVerhalteEnthalteTailmengeZuMissionUndAgent(MissionTitel, MissionMengeFaction, AgentLevel)
                .ToArrayNullable();

            if (false)
            {
                //	2015.02.12	Filter Faction werd vorersct ignoriirt.

                /*
                 * !!!!	Temp:	2014.04.25	Zuusaz Bedingung Faction
                 * */

                if (MissionMengeFaction.IsNullOrEmpty())
                {
                    MengeMissionFilterPasend = null;
                }
            }

            var AktioonAcceptFraigaabe  = this.AktioonAcceptFraigaabe ?? false;
            var AktioonDeclineFraigaabe = this.AktioonDeclineFraigaabe ?? false;
            var AktioonDeclineUnabhängigVonStandingLossFraigaabe = this.AktioonDeclineUnabhängigVonStandingLossFraigaabe ?? false;

            var AktioonDeclineAlsSctandardFürSonstigeFraigaabe = this.AktioonDeclineAlsSctandardFürSonstigeFraigaabe ?? false;

            var AktioonAcceptFraigaabeFürAgentLevel =
                AgentLevel.HasValue ?
                this.AktioonAcceptFraigaabeFürAgentLevel(AgentLevel.Value) :
                false;

            bool VerhalteSctandardDecline = false;

            if (AktioonDeclineAlsSctandardFürSonstigeFraigaabe &&
                AktioonDeclineFraigaabe &&
                (AgentLevel.HasValue && AktioonAcceptFraigaabeFürAgentLevel) ||
                MengeMissionFilterPasend.IsNullOrEmpty())
            {
                VerhalteSctandardDecline = true;
            }

            SictKonfigMissionZuMissionFilterVerhalte VerhalteSctandard = null;

            if (VerhalteSctandardDecline)
            {
                VerhalteSctandard = new SictKonfigMissionZuMissionFilterVerhalte(null, null);

                VerhalteSctandard.AktioonDeclineAktiiv = true;
                VerhalteSctandard.AktioonDeclineUnabhängigVonStandingLossAktiiv = AktioonDeclineUnabhängigVonStandingLossFraigaabe;
            }

            if (null == MengeMissionFilterPasend)
            {
                return(VerhalteSctandard);
            }

            //	Scpezielere Filter sole hööher priorisiirt were.

            var MengeMissionFilterPasendOrdnet =
                MengeMissionFilterPasend
                .OrderBy((ZuMissionFilterVerhalte) => SictAgentLevelOderAnySictEnum.Any == ZuMissionFilterVerhalte.FilterAgentLevel)
                .ToArray();

            var ZuMissionFilterVerhaltePrioHööcste = MengeMissionFilterPasendOrdnet.FirstOrDefault();

            if (null == ZuMissionFilterVerhaltePrioHööcste)
            {
                return(VerhalteSctandard);
            }

            var ZuMissionFilterVerhalteAbbild = ZuMissionFilterVerhaltePrioHööcste.Kopii();

            if (!(500 <= SecurityLevelMiliMinimum))
            {
                //	Mission Offer naac Low Sec werde nit Ausgefüürt oder accepted.
                ZuMissionFilterVerhalteAbbild.AktioonFüüreAusAktiiv = false;
                ZuMissionFilterVerhalteAbbild.AktioonAcceptAktiiv   = false;
            }

            if (AgentLevel.HasValue)
            {
                if (!AktioonAcceptFraigaabeFürAgentLevel)
                {
                    ZuMissionFilterVerhalteAbbild.AktioonAcceptAktiiv = false;
                }

                if (!AktioonFüüreAusFraigaabeFürAgentLevel(AgentLevel.Value))
                {
                    ZuMissionFilterVerhalteAbbild.AktioonFüüreAusAktiiv = false;
                }
            }
            else
            {
                /*
                 * 2015.01.11
                 * Änderung: Msn kan jezt auc vor AgentEntry erfast werde, daher AgentLevel nit sofort bekant.
                 *
                 * ZuMissionFilterVerhalteAbbild.AktioonAcceptAktiiv = false;
                 * ZuMissionFilterVerhalteAbbild.AktioonFüüreAusAktiiv = false;
                 * */
            }

            if (!(true == ZuMissionFilterVerhalteAbbild.AktioonAcceptAktiiv) &&
                VerhalteSctandardDecline)
            {
                ZuMissionFilterVerhalteAbbild.AktioonDeclineAktiiv = true;
            }

            if (!AktioonAcceptFraigaabe)
            {
                ZuMissionFilterVerhalteAbbild.AktioonAcceptAktiiv = false;
            }

            if (!AktioonDeclineFraigaabe)
            {
                ZuMissionFilterVerhalteAbbild.AktioonDeclineAktiiv = false;
            }

            if (!ZuMissionFilterVerhalteAbbild.AktioonDeclineUnabhängigVonStandingLossAktiiv.HasValue)
            {
                ZuMissionFilterVerhalteAbbild.AktioonDeclineUnabhängigVonStandingLossAktiiv = AktioonDeclineUnabhängigVonStandingLossFraigaabe;
            }

            return(ZuMissionFilterVerhalteAbbild);
        }