public override void Exit()
            {
                var pbsUnitObject = ReinforceHandler._pbsUnit;

                pbsUnitObject.DynamicProperties.Update(k.vulnerable, 0);
                pbsUnitObject.DynamicProperties.Update(k.vulnerableEnd, default(DateTime));

                var zone = pbsUnitObject.Zone;

                if (zone != null)
                {
                    ReinforceHandler.StartAsyncLog(PBSLogType.vulnerableEnd);
                }

                base.Exit();
            }
            public override void Exit()
            {
                ReinforceHandler._pbsUnit.OrphanedStateChanged -= OnOrphanedStateChanged;
                ReinforceHandler._pbsUnit.DynamicProperties.Update(k.isReinforced, 0);
                ReinforceHandler._pbsUnit.DynamicProperties.Update(k.reinforceEnd, default(DateTime));
                ReinforceHandler._pbsUnit.States.Reinforced = false;

                ReinforceHandler.StartAsyncLog(PBSLogType.reinforceEnd);
                ReinforceHandler.SetNextReinforceCounterIncreaseFromNow(VULNERABLE_LENGTH_MINUTES);

                if (PBSHelper.IsOfflineOnReinforce(ReinforceHandler._pbsUnit))
                {
                    //go online if the node is leaving reinforce
                    ReinforceHandler._pbsUnit.SetOnlineStatus(true, false, true);
                }

                base.Exit();
            }