示例#1
0
        /// <summary>
        /// This function handles the stability and owner changes of an intrusion site
        /// </summary>
        private void ReactStabilityChanges(IntrusionSiteInfo siteInfo, int oldStability, int newStability, long?newOwner, long?oldOwner)
        {
            if (oldStability == newStability)
            {
                return;
            }

            if (oldStability > newStability)
            {
                //stability loss

                //DOCKING RIGHTS
                var dockingRightsStabilityLimit = GetDockingRightsStabilityLimit();
                if (newStability < dockingRightsStabilityLimit)
                {
                    if (siteInfo.DockingStandingLimit != null)
                    {
                        //clear docking rights
                        SetDockingControlDetails(null, true);
                        InsertDockingRightsLog(null, null, siteInfo.Owner, IntrusionEvents.dockingRightsClearedByServer);
                    }
                }

                //AURA EFFECT
                if (siteInfo.ActiveEffect != EffectType.undefined)
                {
                    var effectStabilityThreshold = GetEffectBonusStabilityThreshold(siteInfo.ActiveEffect);
                    if (effectStabilityThreshold >= 0)
                    {
                        if (effectStabilityThreshold > newStability)
                        {
                            //logoljuk
                            InsertIntrusionEffectLog(null, null, siteInfo.Owner, IntrusionEvents.effectClearedByServer);

                            Db.Query().CommandText("update intrusionsites set activeeffectid = NULL where siteeid = @siteEid")
                            .SetParameter("@siteEid", Eid)
                            .ExecuteNonQuery();
                        }
                    }
                }

                ProductionStabilityLoss(newStability, oldStability, newOwner, oldOwner);
            }
            else
            {
                //stability gain
                ProductionStabilityGain(newStability, oldStability, newOwner);
            }
        }
示例#2
0
 public IntrusionSiteInfo GetIntrusionSiteInfo()
 {
     return(IntrusionSiteInfo.Get(this));
 }