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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
from gettext import gettext as _
class InvalidItemException(Exception): pass
WEAPONS = {
'1':{'name':_("Ancient Amulet"),'power':3,'path':'Weapon.gif'},
'2':{'name':_("Rusted Blade"),'power':9,'path':'Weapon.gif'},
'3':{'name':_("Great Sword"),'power':15,'path':'Weapon.gif'},
'4':{'name':_("Crescent Sword"),'power':25,'path':'Weapon.gif'},
'5':{'name':_("Cardinal"),'power':35,'path':'Weapon.gif'},
'6':{'name':_("Sun Moon"),'power':50,'path':'Weapon.gif'}
}
ARMOR = {
'7':{'name':_("Earth Vest"),'power':8,'path':'Armor.gif'},
'8':{'name':_("Wind Breaker"),'power':15,'path':'Armor.gif'},
'9':{'name':_("Flame Leggings"),'power':25,'path':'Armor.gif'},
'a':{'name':_("Dark Cowl"),'power':35,'path':'Armor.gif'},
'b':{'name':_("Celestial Armor"),'power':50,'path':'Armor.gif'}
}
ACCESSORY = {
'c':{'name':_("Jewel Shard"),'power':10,'path':'noItem.gif'},
'd':{'name':_("Broken Hourglass"),'power':10,'path':'noItem.gif'},
'e':{'name':_("Radiant Vial"),'power':20,'path':'noItem.gif'},
'f':{'name':_("Honor Tome"),'power':.2,'path':'noItem.gif'},
'g':{'name':_("Valor Tome"),'power':.2,'path':'noItem.gif'}
}
USABLE = {
'h':{'name':_("Ruby"),'sell':500,'path':'Ruby.gif'},
'i':{'name':_("Sapphire"),'sell':500,'path':'Sapphire.gif'},
'j':{'name':_("Emerald"),'sell':500,'path':'Emerald.gif'},
'k':{'name':_("Diamond"),'sell':500,'path':'Diamond.gif'},
'l':{'name':_("Remedy"),'sell':6,'buy':20,'power':.30,'path':'Remedy.gif'},
'm':{'name':_("Elixir"),'sell':15,'buy':60,'power':.5,'path':'Elixir.gif'},
'n':{'name':_("Panacea"),'sell':50,'buy':100,'power':1.0,'path':'Panacea.gif'},
'o':{'name':_("High Elixir"),'sell':30,'buy':300,'power':.65,'path':'High Elixir.gif'},
'p':{'name':_("Nostrum"),'sell':100,'buy':200,'power':.75,'path':'Nostrum.gif'},
}
KEYS = {
'q':{'name':_("Small Key"),'path':'Small Key.gif'},
'r':{'name':_("Big Key"),'path':'Big Key.gif'}
}
SPECIAL = {
's':{'name':_("Calculator"),'path':'noItem.gif'}
}
class Item:
def __init__(self, name, id, type, path='noItem.gif'):
self.name = name
self.id = id
self.type = type
self.power=0
self.buyVal=0
self.path=path
self.sellVal=1
self.hidden=False
self.battle=False
class Key(Item):
def __init__(self, key):
Item.__init__(self, KEYS[key]['name'], key, 'key', KEYS[key]['path'])
class Weapon(Item):
def __init__(self, key):
Item.__init__(self, WEAPONS[key]['name'], key, 'Weapon', WEAPONS[key]['path'])
self.power = WEAPONS[key]['power']
class Armor(Item):
def __init__(self, key):
Item.__init__(self, ARMOR[key]['name'], key, 'Armor', ARMOR[key]['path'])
self.power = ARMOR[key]['power']
class Usable(Item):
def __init__(self, key):
Item.__init__(self, USABLE[key]['name'], key, 'Usable', USABLE[key]['path'])
if USABLE[key].has_key( 'sell' ):
self.sellVal = USABLE[key]['sell']
if USABLE[key].has_key( 'buy' ):
self.buyVal = USABLE[key]['buy']
if USABLE[key].has_key( 'power' ):
self.power = USABLE[key]['power']
class Accessory(Item):
def __init__(self, key):
Item.__init__(self, ACCESSORY[key]['name'], key, 'Accessory', ACCESSORY[key]['path'])
self.power = ACCESSORY[key]['power']
class Special(Item):
def __init__(self, key):
Item.__init__(self, SPECIAL[key]['name'], key, 'Special', SPECIAL[key]['path'])
def get_item(key):
if key in WEAPONS:
return Weapon( key )
elif key in ARMOR:
return Armor( key )
elif key in ACCESSORY:
return Accessory( key )
elif key in USABLE:
return Usable( key )
elif key in KEYS:
return Key( key )
elif key in SPECIAL:
return Special( key )
else:
raise InvalidItemException()
|