17
17
else: self.__dict__ = {}
18
18
class _flagobject(object):
19
19
def __call__(self, flag):
20
if type(flag) == type(int) and flag&self._value:
20
if type(flag) == type(int) and flag==self._value:
22
if type(flag) == type(self) and flag._value&self._value:
22
if type(flag) == type(self) and flag._value==self._value:
26
26
return self._value.__get__()
28
return hex(self._value)
28
# return hex(self._value)
29
return self._value.__str__()
29
30
def __repr__(self):
30
return repr(hex(self._value))
31
# return repr(hex(self._value))
32
return self._value.__repr__()
31
33
def __init__(self,flag):
35
self._value = 2**(flag-1)
37
# self._value = 2**(flag-1)
36
38
class _objectMarker(object):
53
58
return self._flag.__nonzero__()
54
59
def __cmp__(self, other):
55
60
return self._flag.__cmp__(other)
56
def __init__(self,flag,image='',**kwargs):
61
def __init__(self,flag,image='',name='Unnamed',**kwargs):
57
62
self.__dict__['_flag'] = _flagobject(flag)
63
# self.__dict__['_flag'] = flag
58
64
self.__dict__['_stats'] = _statsobject()
59
65
self.__dict__['_stats'].__dict__ = kwargs
60
66
self.__dict__['_image'] = image
67
self.__dict__['_name'] = name
61
68
def __setattr__(self,k,v):
63
70
assert k in self.__dict__
64
71
self.__dict__[k] = v
65
72
except AssertionError:
66
73
raise AttributeError, "'%s' is not an attribute of class '%s'"%(k,self.__class__.__name__)
69
Out = _objectMarker(0)
71
Floor = _objectMarker(1, 'GenericCarpet')
72
Wall = _objectMarker(2, 'GenericWall')
73
Door = _objectMarker(3)
75
Player = _objectMarker(4, 'GenericCharacter')
76
#Friend = _objectMarker(5)
77
#Neutral = _objectMarker(6)
78
#Enemy = _objectMarker(7)
80
#Book = _objectMarker(8)
81
#Scroll = _objectMarker(9)
82
#HPotion = _objectMarker(10)
83
#MPotion = _objectMarker(11)
85
#Box = _objectMarker(12)
86
#Resource = _objectMarker(13)
88
#Dagger = _objectMarker(14)
89
#Bow = _objectMarker(15)
90
#Axe = _objectMarker(16)
91
Shield = _objectMarker(17)
92
Sword = _objectMarker(18, 'GenericWeapon')
74
class clone(_objectMarker):
87
def __init__(self,parent,flag=None,image=None,name=None,**kwargs):
94
for k,v in parent.stats.__dict__.items():
97
_objectMarker.__init__(self,flag,image,name,**kwargs)
98
self.__dict__['_flag'] = flag
99
Out = _objectMarker(0, 'GenericOut', 'Outside')
101
Floor = _objectMarker(1, 'GenericCarpet', 'Inside')
102
Wall = _objectMarker(2, 'GenericWall', 'Wall')
103
Door = _objectMarker(3, 'GenericDoor', 'Door')
105
Player = _objectMarker(4, 'GenericCharacter', 'PC')
106
Friend = _objectMarker(5) # NIY
107
Neutral = _objectMarker(6) # NIY
108
Enemy = _objectMarker(7) # NIY
110
Book = _objectMarker(8) # NIY
111
Scroll = _objectMarker(9) # NIY
112
HPotion = _objectMarker(10) # NIY
113
MPotion = _objectMarker(11) # NIY
115
Box = _objectMarker(12) # NIY
116
Resource = _objectMarker(13) # NIY
118
Dagger = _objectMarker(14) # NIY
119
Bow = _objectMarker(15) # NIY
120
Axe = _objectMarker(16) # NIY
121
Shield = _objectMarker(17, 'GenericShield','Shield')
122
Sword = _objectMarker(18, 'GenericWeapon','Weapon')
124
notImplemented = [Box.flag,