forked from cherryunix/jn-blacktech
-
Notifications
You must be signed in to change notification settings - Fork 0
/
repairyard.py
52 lines (45 loc) · 1.58 KB
/
repairyard.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from ship import Ship
from log import Log
from datetime import datetime, timedelta
class RepairYard:
def __init__(self, game, id_, ship = None, endTime = None):
self.game = game
self.id = id_
self.ship = ship
self.endTime = endTime
if ship is not None:
ship.status = Ship.Repairing
def repair(self, ship):
if self.ship is not None:
Log.i('Repair yard is busy (repairing %s)' % self.ship.getName())
return None
if not ship.isInjured():
Log.i('%s is not injured' % ship.getName())
if not ship.isIdle():
Log.i('%s is not idle' % ship.getName())
if (not ship.isInjured()) or (not ship.isIdle()):
return None
self.ship = ship
self.endTime = self.game.repair(ship, self)
ship.status = Ship.Repairing
Log.i("Repairing %s, will finish at %s" % (ship.getName(), self.endTime))
return self.endTime
def smartRepair(self, ship):
self.repair(ship)
if self.ship is None:
return False
if (self.endTime - datetime.now()) > timedelta(hours = 2):
self.instantRepair()
return True
else:
return False
def complete(self):
if self.ship is None or datetime.now() < self.endTime:
return False
self.game.repairComplete(self)
self.ship.setRepaired()
self.ship.status = Ship.Idle
Log.i("Ship %s is repaired" % self.ship.getName())
self.ship = None
self.endTime = None
return True