settings.py (2687B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\crimewatch\corp_aggression\settings.py 2 import logging 3 from ccpProfile import TimedFunction 4 from eve.common.script.sys.idCheckers import IsNPCCorporation 5 DEFAULT_AGGRESSION_ENABLED = True 6 logger = logging.getLogger(__name__) 7 8 class AggressionSettings: 9 __passbyvalue__ = True 10 11 def __init__(self, enableAfter, disableAfter): 12 self._enableAfter = enableAfter 13 self._disableAfter = disableAfter 14 15 def __repr__(self): 16 return 'AggressionSettings(enableAfter=%r,disableAfter=%r)' % (self._enableAfter, self._disableAfter) 17 18 def __eq__(self, other): 19 return self._enableAfter == other._enableAfter and self._disableAfter == other._disableAfter 20 21 def __ne__(self, other): 22 return self._enableAfter != other._enableAfter or self._disableAfter != other._disableAfter 23 24 def HasPendingChangeAtTime(self, time): 25 return self._IsDisableTimeInFuture(time) or self._IsEnableTimeInFuture(time) 26 27 @TimedFunction('AggressionSettings::IsFriendlyFireLegalAtTime') 28 def IsFriendlyFireLegalAtTime(self, time): 29 if self._IsDisableTimeInPast(time) and self._IsEnableTimeInPast(time): 30 return self._disableAfter < self._enableAfter 31 elif self._IsDisableTimeInPast(time): 32 return False 33 elif self._IsEnableTimeInPast(time): 34 return True 35 else: 36 return DEFAULT_AGGRESSION_ENABLED 37 38 def _IsDisableTimeInPast(self, now): 39 return self._disableAfter is not None and self._disableAfter < now 40 41 def _IsEnableTimeInPast(self, now): 42 return self._enableAfter is not None and self._enableAfter < now 43 44 def _IsDisableTimeInFuture(self, now): 45 return self._disableAfter is not None and self._disableAfter >= now 46 47 def _IsEnableTimeInFuture(self, now): 48 return self._enableAfter is not None and self._enableAfter >= now 49 50 def GetNextPendingChangeTime(self, now): 51 if self._IsDisableTimeInFuture(now): 52 return self._disableAfter 53 if self._IsEnableTimeInFuture(now): 54 return self._enableAfter 55 56 @staticmethod 57 def CreateDefaultForCorp(corpID): 58 if not IsNPCCorporation(corpID): 59 return ALWAYS_ENABLED 60 else: 61 return ALWAYS_DISABLED 62 63 @staticmethod 64 def CreateFromDBRows(rows): 65 if len(rows) == 1: 66 return AggressionSettings.CreateFromDBRow(rows[0]) 67 68 @staticmethod 69 def CreateFromDBRow(row): 70 return AggressionSettings(row.enableAfter, row.disableAfter) 71 72 73 ALWAYS_ENABLED = AggressionSettings(0, None) 74 ALWAYS_DISABLED = AggressionSettings(None, 0)