duration.py (1602B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\objectives\client\objective_task\duration.py 2 from gametime import GetSimTime 3 from localization.formatters import FormatTimeIntervalShortWritten 4 from objectives.client.ui.objective_task_widget import DurationTaskWidget 5 from .base import ObjectiveTask 6 7 class DurationTask(ObjectiveTask): 8 objective_task_content_id = 69 9 WIDGET = DurationTaskWidget 10 11 def __init__(self, start_time = None, stop_time = None, **kwargs): 12 super(DurationTask, self).__init__(**kwargs) 13 self._start_time = start_time or None 14 self._stop_time = stop_time or None 15 16 @property 17 def start_time(self): 18 return self._start_time 19 20 @start_time.setter 21 def start_time(self, value): 22 if self._start_time == value: 23 return 24 self._start_time = value 25 self.update() 26 27 @property 28 def stop_time(self): 29 return self._stop_time 30 31 @stop_time.setter 32 def stop_time(self, value): 33 if self._stop_time == value: 34 return 35 self._stop_time = value 36 self.update() 37 38 @property 39 def duration(self): 40 if not self._start_time: 41 return 0 42 if self._stop_time: 43 return self._stop_time - self._start_time 44 return GetSimTime() - self._start_time 45 46 @property 47 def value(self): 48 return FormatTimeIntervalShortWritten(self.duration) 49 50 def _update(self): 51 self.on_update(objective_task=self) 52 self.hidden = not self._start_time 53 self.completed = self._stop_time