Tag brick family and skill trees

merge/2021-11-19
kaetemi 4 years ago
parent 3cf8ca0959
commit 5346d2b15e
No known key found for this signature in database
GPG Key ID: 9873C4D40BB479BC

@ -0,0 +1,225 @@
BC crafted
BCP power
BCPA *
BCF fyros
BCFM melee
BCFME *
BCFMEA *
BCFR ranged
BCFRE *
BCFREA *
BCFP ammo
BCFPE *
BCFPEA *
BCFA armor
BCFAE *
BCFAEA light
BCFAEB medium
BCFAEC heavy
BCFAED caster
BCFS shield
BCFSE *
BCFSEA *
BCFJ jewelry
BCFJE *
BCFJEA *
BCC common
BCCM melee
BCCME *
BCCMEA *
BCCR ranged
BCCRE *
BCCREA *
BCCP ammo
BCCPE *
BCCPEA *
BCCA armor
BCCAE *
BCCAEA light
BCCAEB medium
BCCAEC heavy
BCCAED caster
BCCS shield
BCCSE *
BCCSEA *
BCCJ jewelry
BCCJE *
BCCJEA *
BCB tribe
BCBM melee
BCBME *
BCBMEA *
BCBR ranged
BCBRE *
BCBREA *
BCBP ammo
BCBPE *
BCBPEA *
BCBA armor
BCBAE *
BCBAEA light
BCBAEB medium
BCBAEC heavy
BCBAED caster
BCBS shield
BCBSE *
BCBSEA *
BCBJ jewelry
BCBJE *
BCBJEA *
BCF fyros
BCFM melee
BCFME *
BCFMEA *
BCFR ranged
BCFRE *
BCFREA *
BCFP ammo
BCFPE *
BCFPEA *
BCFA armor
BCFAE *
BCFAEA light
BCFAEB medium
BCFAEC heavy
BCFAED caster
BCFS shield
BCFSE *
BCFSEA *
BCFJ jewelry
BCFJE *
BCFJEA *
BCM matis
BCMM melee
BCMME *
BCMMEA *
BCMR ranged
BCMRE *
BCMREA *
BCMP ammo
BCMPE *
BCMPEA *
BCMA armor
BCMAE *
BCMAEA light
BCMAEB medium
BCMAEC heavy
BCMAED caster
BCMS shield
BCMSE *
BCMSEA *
BCMJ jewelry
BCMJE *
BCMJEA *
BCT tryker
BCTM melee
BCTME *
BCTMEA *
BCTR ranged
BCTRE *
BCTREA *
BCTP ammo
BCTPE *
BCTPEA *
BCTA armor
BCTAE *
BCTAEA light
BCTAEB medium
BCTAEC heavy
BCTAED caster
BCTS shield
BCTSE *
BCTSEA *
BCTJ jewelry
BCTJE *
BCTJEA *
BCZ zorai
BCZM melee
BCZME *
BCZMEA *
BCZR ranged
BCZRE *
BCZREA *
BCZP ammo
BCZPE *
BCZPEA *
BCZA armor
BCZAE *
BCZAEA light
BCZAEB medium
BCZAEC heavy
BCZAED caster
BCZS shield
BCZSE *
BCZSEA *
BCZJ jewelry
BCZJE *
BCZJEA *
BCR refugee
BCRM melee
BCRME *
BCRMEA *
BCRR ranged
BCRRE *
BCRREA *
BCRP ammo
BCRPE *
BCRPEA *
BCRA armor
BCRAE *
BCRAEA light
BCRAEB medium
BCRAEC heavy
BCRAED caster
BCRS shield
BCRSE *
BCRSEA *
BCRJ jewelry
BCRJE *
BCRJEA *
BCK kami karavan
BCKA *
BCKAM kami
BCKAMM melee
BCKAMME *
BCKAMMEA *
BCKAMR ranged
BCKAMRE *
BCKAMREA *
BCKAMP ammo
BCKAMPE *
BCKAMPEA *
BCKAMA armor
BCKAMAE *
BCKAMAEA light
BCKAMAEB medium
BCKAMAEC heavy
BCKAMAED caster
BCKAMS shield
BCKAMSE *
BCKAMSEA *
BCKAMJ jewelry
BCKAMJE *
BCKAMJEA *
BCKAR karavan
BCKARM melee
BCKARME *
BCKARMEA *
BCKARR ranged
BCKARRE *
BCKARREA *
BCKARP ammo
BCKARPE *
BCKARPEA *
BCKARA armor
BCKARAE *
BCKARAEA light
BCKARAEB medium
BCKARAEC heavy
BCKARAED caster
BCKARS shield
BCKARSE *
BCKARSEA *
BCKARJ jewelry
BCKARJE *
BCKARJEA *
1 BC crafted
2 BCP power
3 BCPA *
4 BCF fyros
5 BCFM melee
6 BCFME *
7 BCFMEA *
8 BCFR ranged
9 BCFRE *
10 BCFREA *
11 BCFP ammo
12 BCFPE *
13 BCFPEA *
14 BCFA armor
15 BCFAE *
16 BCFAEA light
17 BCFAEB medium
18 BCFAEC heavy
19 BCFAED caster
20 BCFS shield
21 BCFSE *
22 BCFSEA *
23 BCFJ jewelry
24 BCFJE *
25 BCFJEA *
26 BCC common
27 BCCM melee
28 BCCME *
29 BCCMEA *
30 BCCR ranged
31 BCCRE *
32 BCCREA *
33 BCCP ammo
34 BCCPE *
35 BCCPEA *
36 BCCA armor
37 BCCAE *
38 BCCAEA light
39 BCCAEB medium
40 BCCAEC heavy
41 BCCAED caster
42 BCCS shield
43 BCCSE *
44 BCCSEA *
45 BCCJ jewelry
46 BCCJE *
47 BCCJEA *
48 BCB tribe
49 BCBM melee
50 BCBME *
51 BCBMEA *
52 BCBR ranged
53 BCBRE *
54 BCBREA *
55 BCBP ammo
56 BCBPE *
57 BCBPEA *
58 BCBA armor
59 BCBAE *
60 BCBAEA light
61 BCBAEB medium
62 BCBAEC heavy
63 BCBAED caster
64 BCBS shield
65 BCBSE *
66 BCBSEA *
67 BCBJ jewelry
68 BCBJE *
69 BCBJEA *
70 BCF fyros
71 BCFM melee
72 BCFME *
73 BCFMEA *
74 BCFR ranged
75 BCFRE *
76 BCFREA *
77 BCFP ammo
78 BCFPE *
79 BCFPEA *
80 BCFA armor
81 BCFAE *
82 BCFAEA light
83 BCFAEB medium
84 BCFAEC heavy
85 BCFAED caster
86 BCFS shield
87 BCFSE *
88 BCFSEA *
89 BCFJ jewelry
90 BCFJE *
91 BCFJEA *
92 BCM matis
93 BCMM melee
94 BCMME *
95 BCMMEA *
96 BCMR ranged
97 BCMRE *
98 BCMREA *
99 BCMP ammo
100 BCMPE *
101 BCMPEA *
102 BCMA armor
103 BCMAE *
104 BCMAEA light
105 BCMAEB medium
106 BCMAEC heavy
107 BCMAED caster
108 BCMS shield
109 BCMSE *
110 BCMSEA *
111 BCMJ jewelry
112 BCMJE *
113 BCMJEA *
114 BCT tryker
115 BCTM melee
116 BCTME *
117 BCTMEA *
118 BCTR ranged
119 BCTRE *
120 BCTREA *
121 BCTP ammo
122 BCTPE *
123 BCTPEA *
124 BCTA armor
125 BCTAE *
126 BCTAEA light
127 BCTAEB medium
128 BCTAEC heavy
129 BCTAED caster
130 BCTS shield
131 BCTSE *
132 BCTSEA *
133 BCTJ jewelry
134 BCTJE *
135 BCTJEA *
136 BCZ zorai
137 BCZM melee
138 BCZME *
139 BCZMEA *
140 BCZR ranged
141 BCZRE *
142 BCZREA *
143 BCZP ammo
144 BCZPE *
145 BCZPEA *
146 BCZA armor
147 BCZAE *
148 BCZAEA light
149 BCZAEB medium
150 BCZAEC heavy
151 BCZAED caster
152 BCZS shield
153 BCZSE *
154 BCZSEA *
155 BCZJ jewelry
156 BCZJE *
157 BCZJEA *
158 BCR refugee
159 BCRM melee
160 BCRME *
161 BCRMEA *
162 BCRR ranged
163 BCRRE *
164 BCRREA *
165 BCRP ammo
166 BCRPE *
167 BCRPEA *
168 BCRA armor
169 BCRAE *
170 BCRAEA light
171 BCRAEB medium
172 BCRAEC heavy
173 BCRAED caster
174 BCRS shield
175 BCRSE *
176 BCRSEA *
177 BCRJ jewelry
178 BCRJE *
179 BCRJEA *
180 BCK kami karavan
181 BCKA *
182 BCKAM kami
183 BCKAMM melee
184 BCKAMME *
185 BCKAMMEA *
186 BCKAMR ranged
187 BCKAMRE *
188 BCKAMREA *
189 BCKAMP ammo
190 BCKAMPE *
191 BCKAMPEA *
192 BCKAMA armor
193 BCKAMAE *
194 BCKAMAEA light
195 BCKAMAEB medium
196 BCKAMAEC heavy
197 BCKAMAED caster
198 BCKAMS shield
199 BCKAMSE *
200 BCKAMSEA *
201 BCKAMJ jewelry
202 BCKAMJE *
203 BCKAMJEA *
204 BCKAR karavan
205 BCKARM melee
206 BCKARME *
207 BCKARMEA *
208 BCKARR ranged
209 BCKARRE *
210 BCKARREA *
211 BCKARP ammo
212 BCKARPE *
213 BCKARPEA *
214 BCKARA armor
215 BCKARAE *
216 BCKARAEA light
217 BCKARAEB medium
218 BCKARAEC heavy
219 BCKARAED caster
220 BCKARS shield
221 BCKARSE *
222 BCKARSEA *
223 BCKARJ jewelry
224 BCKARJE *
225 BCKARJEA *

@ -8,11 +8,131 @@ def loadTsv(filename):
table += [ l.strip().split("\t") ]
return table;
# brick family
# BC brick craft
# BCB tribe
# BCBM melee
# BCBME effect (item)
# BCBMEA *
# BCBR ranged
# BCBREA *
# BCCA armor
# BCCAEA light
# BCCAEB medium
# BCCAEC heavy
# BCCAED caster
# BCCP ammo
# BCCPEA *
# BCCS shield
# BCCSEA *
# BCFJ jewelry
# BCFJC craft
# BCFJE effect (item)
# BCFJEA *
# also generate its sphrase under sphrase\craft\melee_weapon etc,
# name add 'a' to the start, containing just sbrick and castable false
# brick skill
# SC skill craft (LearnRequiresOneOfSkills "SC 0")
# SCJ jewelry
# SCJR ring
# SCJRAEM *
# SCAMBEM skill craft armor medium boots
# SCAMGEM skill craft armor medium gloves
# SCAMPEM skill craft armor medium pants
# SCAMSEM skill craft armor medium sleeves
# SCAMVEM skill craft armor medium vest
# SCAH heavy
# SCAL light (and caster)
sitemParents = loadTsv("sitem_parents.tsv")
sitemParsed = loadTsv("sitem_parsed.tsv")
shapeParsed = loadTsv("shape_parsed.tsv")
matchSitemShape = loadTsv("match_sitem_shape.tsv")
skills = loadTsv("skills.tsv")
skillTree = { "S": { "tags": [ "*" ], "entries": {} } }
brickFamilies = loadTsv("brick_families.tsv")
brickFamilyTree = { "B": { "tags": [ "*" ], "entries": {} } }
def buildTagTree(tree, table):
for entry in table:
e = filter(None, entry)
name = e[0]
print(name)
tags = e[1:]
nb = 0
branch = tree
if len(tags) > 0:
for c in name:
nb += 1
if nb >= len(name):
break
branch = branch[c]["entries"]
branch[name[-1]] = { "tags": tags, "entries": {} }
print(tree)
buildTagTree(skillTree, skills)
buildTagTree(brickFamilyTree, brickFamilies)
def findTreeEntry(tree, tags):
res = ""
branch = tree
while True:
ok = False
if len(branch) == 0:
break
for entry in branch:
#print(entry)
for tag in branch[entry]["tags"]:
if tag != "*" and tag in tags:
ok = True
break
if ok:
res += entry
branch = branch[entry]["entries"]
break
if not ok:
for entry in branch:
#print(entry)
#print(branch[entry]["tags"])
for tag in branch[entry]["tags"]:
if tag == "*":
ok = True
break
if ok:
res += entry
branch = branch[entry]["entries"]
break
if not ok:
break
return res
def findSkill(tags):
t = tags[:]
if "ammo" in t and "ranged" in t:
t.remove("ranged")
if "magic" in t and "two-handed" in t:
t.remove("two-handed")
res = findTreeEntry(skillTree, t)
if len(res) == 7:
return res
print("Skill: " + res + ", tags: ")
print(tags)
return ""
def findBrickFamily(tags):
t = tags[:]
if "ammo" in t and "ranged" in t:
t.remove("ranged")
if "caster" in t and "light" in t:
t.remove("light")
res = findTreeEntry(brickFamilyTree, t)
return res
sitemTags = {}
sitemPath = "Y:\\ryzomcore4\\leveldesign\\game_element\\sitem"
@ -347,6 +467,18 @@ def generateParents():
# f.write("</FORM>\n")
# f.flush()
def findSitemParent(tags):
for parent in parentTags:
pt = parentTags[parent]
all = len(pt) > 0
for tag in pt:
if not tag in tags:
all = False
break
if all:
return parent
return None
def generateSitems():
for match in matchSitemShape:
name = match[0]
@ -471,7 +603,7 @@ def generateSitems():
color = "White"
subfolder = origin
print tags
###print tags
if "underwear" in tags:
subfolder = "underwear"
@ -483,7 +615,7 @@ def generateSitems():
elif "melee" in tags:
folder = "melee_weapon\\" + subfolder
elif "armor" in tags:
print shapeMale
###print shapeMale
folder = "armor\\" + subfolder
if "caster01" in shapeMale or "caster" in tags:
folder += "\\caster_armor"
@ -514,11 +646,16 @@ def generateSitems():
if "armor" in tags and "refugee" in tags:
continue # No need to generate these for now
parent = findSitemParent(tags)
if not parent:
print("No parent for sitem: " + name + ", tags: " + tags)
print(path)
with open(path, "w") as f:
f.write("<?xml version=\"1.0\"?>\n")
f.write("<FORM Revision=\"4.0\" State=\"modified\">\n")
# f.write(" <PARENT Filename=\"" + parent + ".sitem\"/>\n")
if parent:
f.write(" <PARENT Filename=\"" + parent + ".sitem\"/>\n")
f.write(" <STRUCT>\n")
f.write(" <STRUCT Name=\"basics\">\n")
f.write(" <ATOM Name=\"name\" Value=\"" + displayName + "\"/>\n")
@ -530,7 +667,7 @@ def generateSitems():
f.write(" <ATOM Value=\"" + armorSlot + "\"/>\n")
f.write(" </ARRAY>\n")
f.write(" </STRUCT>\n")
# f.write(" <ATOM Name=\"CraftPlan\" Value=\"" + name + ".sbrick\"/>\n") # TODO: extract sbrick ids
f.write(" <ATOM Name=\"CraftPlan\" Value=\"b" + name[1:] + ".sbrick\"/>\n") # TODO: extract sbrick ids
f.write(" </STRUCT>\n")
f.write(" <STRUCT Name=\"3d\">\n")
f.write(" <ATOM Name=\"shape\" Value=\"" + shapeMale + ".shape\"/>\n")
@ -548,10 +685,18 @@ def generateSitems():
f.write(" </STRUCT>\n")
f.write("</FORM>\n")
f.flush()
# TODO: Find the best parent sheet
# TODO: Extract the sbrick identifiers
# TODO: Generate the sbrick
# TODO: Load the sbrick family index table
# TODO: Generate the sbrick
skill = findSkill(tags)
if "magic" in tags:
print("TODO: Double check magic")
print(skill)
print(tags)
brickFamily = findBrickFamily(tags)
print(brickFamily)
generateParents()
generateSitems()

@ -0,0 +1,225 @@
SC crafted
SCA armor
SCAH heavy
SCAHB boots
SCAHBE *
SCAHBEM *
SCAHG gloves
SCAHGE *
SCAHGEM *
SCAHH helmet
SCAHHE *
SCAHHEM *
SCAHP pants
SCAHPE *
SCAHPEM *
SCAHS sleeves
SCAHSE *
SCAHSEM *
SCAHV vest
SCAHVE *
SCAHVEM *
SCAL light
SCALB boots
SCALBE *
SCALBEM *
SCALG gloves
SCALGE *
SCALGEM *
SCALP pants
SCALPE *
SCALPEM *
SCALS sleeves
SCALSE *
SCALSEM *
SCALV vest
SCALVE *
SCALVEM *
SCAM medium
SCAMB boots
SCAMBE *
SCAMBEM *
SCAMG gloves
SCAMGE *
SCAMGEM *
SCAMP pants
SCAMPE *
SCAMPEM *
SCAMS sleeves
SCAMSE *
SCAMSEM *
SCAMV vest
SCAMVE *
SCAMVEM *
SCAS shield
SCASB buckler
SCASBE *
SCASBEM *
SCASS large
SCASSE *
SCASSEM *
SCJ jewelry
SCJA anklet
SCJAA *
SCJAAE *
SCJAAEM *
SCJB bracelet
SCJBA *
SCJBAE *
SCJBAEM *
SCJD diadem
SCJDA *
SCJDAE *
SCJDAEM *
SCJE earring
SCJEA *
SCJEAE *
SCJEAEM *
SCJP pendant
SCJPA *
SCJPAE *
SCJPAEM *
SCJR ring
SCJRA *
SCJRAE *
SCJRAEM *
SCM melee magic
SCM1 one-handed
SCM1A axe
SCM1AE *
SCM1AEM *
SCM1D dagger
SCM1DE *
SCM1DEM *
SCM1M mace
SCM1ME *
SCM1MEM *
SCM1P spear
SCM1PE *
SCM1PEM *
SCM1S sword
SCM1SE *
SCM1SEM *
SCM1T staff
SCM1TE *
SCM1TEM *
SCM2 two-handed
SCM2A axe
SCM2AE *
SCM2AEM *
SCM2M mace
SCM2ME *
SCM2MEM *
SCM2P pike
SCM2PE *
SCM2PEM *
SCM2S sword
SCM2SE *
SCM2SEM *
SCMC amplifier
SCMCA gloves
SCMCAE *
SCMCAEM *
SCR ranged
SCR1 one-handed
SCR1P *
SCR1PE *
SCR1PEM *
SCR2 two-handed
SCR2A autolauncher
SCR2AE *
SCR2AEM *
SCR2L launcher
SCR2LE *
SCR2LEM *
SCR2R rifle bowrifle
SCR2RE *
SCR2REM *
SF
SFM
SFM1
SFM1B
SFM1BM
SFM1BMM
SFM1BS
SFM1BSM
SFM1P
SFM1PS
SFM1PSM
SFM1S
SFM1SA
SFM1SAM
SFM1SS
SFM1SSM
SFM2
SFM2B
SFM2BM
SFM2BMM
SFM2P
SFM2PP
SFM2PPM
SFM2S
SFM2SA
SFM2SAM
SFM2SS
SFM2SSM
SFMC
SFMCA
SFMCAD
SFMCADM
SFMCAH
SFMCAHM
SFR
SFR1
SFR1A
SFR1AP
SFR1APM
SFR2
SFR2A
SFR2AA
SFR2AAM
SFR2AL
SFR2ALM
SFR2AR
SFR2ARM
SH
SHF
SHFD
SHFDA
SHFDAE
SHFDAEM
SHFF
SHFFA
SHFFAE
SHFFAEM
SHFJ
SHFJA
SHFJAE
SHFJAEM
SHFL
SHFLA
SHFLAE
SHFLAEM
SHFP
SHFPA
SHFPAE
SHFPAEM
SM
SMD
SMDA
SMDAA
SMDAAE
SMDAAEM
SMDH
SMDHA
SMDHAE
SMDHAEM
SMO
SMOA
SMOAA
SMOAAE
SMOAAEM
SMOE
SMOEA
SMOEAE
SMOEAEM
1 SC crafted
2 SCA armor
3 SCAH heavy
4 SCAHB boots
5 SCAHBE *
6 SCAHBEM *
7 SCAHG gloves
8 SCAHGE *
9 SCAHGEM *
10 SCAHH helmet
11 SCAHHE *
12 SCAHHEM *
13 SCAHP pants
14 SCAHPE *
15 SCAHPEM *
16 SCAHS sleeves
17 SCAHSE *
18 SCAHSEM *
19 SCAHV vest
20 SCAHVE *
21 SCAHVEM *
22 SCAL light
23 SCALB boots
24 SCALBE *
25 SCALBEM *
26 SCALG gloves
27 SCALGE *
28 SCALGEM *
29 SCALP pants
30 SCALPE *
31 SCALPEM *
32 SCALS sleeves
33 SCALSE *
34 SCALSEM *
35 SCALV vest
36 SCALVE *
37 SCALVEM *
38 SCAM medium
39 SCAMB boots
40 SCAMBE *
41 SCAMBEM *
42 SCAMG gloves
43 SCAMGE *
44 SCAMGEM *
45 SCAMP pants
46 SCAMPE *
47 SCAMPEM *
48 SCAMS sleeves
49 SCAMSE *
50 SCAMSEM *
51 SCAMV vest
52 SCAMVE *
53 SCAMVEM *
54 SCAS shield
55 SCASB buckler
56 SCASBE *
57 SCASBEM *
58 SCASS large
59 SCASSE *
60 SCASSEM *
61 SCJ jewelry
62 SCJA anklet
63 SCJAA *
64 SCJAAE *
65 SCJAAEM *
66 SCJB bracelet
67 SCJBA *
68 SCJBAE *
69 SCJBAEM *
70 SCJD diadem
71 SCJDA *
72 SCJDAE *
73 SCJDAEM *
74 SCJE earring
75 SCJEA *
76 SCJEAE *
77 SCJEAEM *
78 SCJP pendant
79 SCJPA *
80 SCJPAE *
81 SCJPAEM *
82 SCJR ring
83 SCJRA *
84 SCJRAE *
85 SCJRAEM *
86 SCM melee magic
87 SCM1 one-handed
88 SCM1A axe
89 SCM1AE *
90 SCM1AEM *
91 SCM1D dagger
92 SCM1DE *
93 SCM1DEM *
94 SCM1M mace
95 SCM1ME *
96 SCM1MEM *
97 SCM1P spear
98 SCM1PE *
99 SCM1PEM *
100 SCM1S sword
101 SCM1SE *
102 SCM1SEM *
103 SCM1T staff
104 SCM1TE *
105 SCM1TEM *
106 SCM2 two-handed
107 SCM2A axe
108 SCM2AE *
109 SCM2AEM *
110 SCM2M mace
111 SCM2ME *
112 SCM2MEM *
113 SCM2P pike
114 SCM2PE *
115 SCM2PEM *
116 SCM2S sword
117 SCM2SE *
118 SCM2SEM *
119 SCMC amplifier
120 SCMCA gloves
121 SCMCAE *
122 SCMCAEM *
123 SCR ranged
124 SCR1 one-handed
125 SCR1P *
126 SCR1PE *
127 SCR1PEM *
128 SCR2 two-handed
129 SCR2A autolauncher
130 SCR2AE *
131 SCR2AEM *
132 SCR2L launcher
133 SCR2LE *
134 SCR2LEM *
135 SCR2R rifle bowrifle
136 SCR2RE *
137 SCR2REM *
138 SF
139 SFM
140 SFM1
141 SFM1B
142 SFM1BM
143 SFM1BMM
144 SFM1BS
145 SFM1BSM
146 SFM1P
147 SFM1PS
148 SFM1PSM
149 SFM1S
150 SFM1SA
151 SFM1SAM
152 SFM1SS
153 SFM1SSM
154 SFM2
155 SFM2B
156 SFM2BM
157 SFM2BMM
158 SFM2P
159 SFM2PP
160 SFM2PPM
161 SFM2S
162 SFM2SA
163 SFM2SAM
164 SFM2SS
165 SFM2SSM
166 SFMC
167 SFMCA
168 SFMCAD
169 SFMCADM
170 SFMCAH
171 SFMCAHM
172 SFR
173 SFR1
174 SFR1A
175 SFR1AP
176 SFR1APM
177 SFR2
178 SFR2A
179 SFR2AA
180 SFR2AAM
181 SFR2AL
182 SFR2ALM
183 SFR2AR
184 SFR2ARM
185 SH
186 SHF
187 SHFD
188 SHFDA
189 SHFDAE
190 SHFDAEM
191 SHFF
192 SHFFA
193 SHFFAE
194 SHFFAEM
195 SHFJ
196 SHFJA
197 SHFJAE
198 SHFJAEM
199 SHFL
200 SHFLA
201 SHFLAE
202 SHFLAEM
203 SHFP
204 SHFPA
205 SHFPAE
206 SHFPAEM
207 SM
208 SMD
209 SMDA
210 SMDAA
211 SMDAAE
212 SMDAAEM
213 SMDH
214 SMDHA
215 SMDHAE
216 SMDHAEM
217 SMO
218 SMOA
219 SMOAA
220 SMOAAE
221 SMOAAEM
222 SMOE
223 SMOEA
224 SMOEAE
225 SMOEAEM
Loading…
Cancel
Save