示例#1
0
        private static int GetEffectBonusStabilityThreshold(EffectType effectType)
        {
            var thresholdInfo = StabilityBonusThresholds.OrderBy(t => t.threshold).FirstOrDefault(t => t.effectType == effectType);

            if (thresholdInfo == null)
            {
                return(-1);
            }

            return(thresholdInfo.threshold);
        }
示例#2
0
        static Outpost()
        {
            StabilityBonusThresholds = Db.Query().CommandText("select * from intrusionsitestabilitythreshold").Execute().Select(r => new StabilityBonusThreshold(r)).ToArray();

            _sapInfos = Db.Query().CommandText("select * from intrusionsaps").Execute().ToLookup(r => r.GetValue <long>("siteEid"), r =>
            {
                var x = r.GetValue <int>("x");
                var y = r.GetValue <int>("y");

                return(new SAPInfo(EntityDefault.Get(r.GetValue <int>("definition")), new Position(x, y).Center));
            });

            var bonusList = StabilityBonusThresholds.Where(bi => bi.bonusType == StabilityBonusType.DefenseNodes).ToArray();

            DefenseNodesStabilityLimit = bonusList.Length > 0 ? bonusList[0].threshold : 5000;
        }
示例#3
0
        public static int GetDockingRightsStabilityLimit()
        {
            var bonusList = StabilityBonusThresholds.Where(bi => bi.bonusType == StabilityBonusType.DockingRights).ToArray();

            if (bonusList.Length == 0)
            {
                Logger.Error("no docking rights level is defined. falling back to 5000.");
                return(5000);
            }

            if (bonusList.Length != 1)
            {
                Debug.Assert(false, "more than one DockingRights threshold is defined. ");
            }

            return(bonusList.First().threshold);
        }