-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathitemList.py
116 lines (92 loc) · 3.11 KB
/
itemList.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
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
113
114
115
116
import sys
import os
from library import *
def main():
itemDir = "./ExpandedCDB-BP/item/"
# 1. Melee items
melee = []
for item in os.listdir(itemDir+"/Melee"):
if "StartSword" not in item and "AdminWeapon" not in item:
melee.append(item[6:item.index(".")])
# 2. Ranged items
ranged = []
for item in os.listdir(itemDir+"/Ranged"):
if "StartBow" not in item:
ranged.append(item[6:item.index(".")])
# 3. Shield items
shield = []
for item in os.listdir(itemDir+"/Shield"):
if "StartShield" not in item:
shield.append(item[6:item.index(".")])
# 4. Trap items
trap = []
for item in os.listdir(itemDir+"/DeployedTrap"):
trap.append(item[6:item.index(".")])
# 5. Grenade items
grenade = []
for item in os.listdir(itemDir+"/Grenade"):
grenade.append(item[6:item.index(".")])
# 6. Power items
power = []
for item in os.listdir(itemDir+"/Power"):
power.append(item[6:item.index(".")])
# Read base room file
f = open('src/PrisonFlaskRoom.tmx','r')
lines = f.readlines()
f.close()
# Create new room file
f = open('PrisonFlaskRoom-Armory.tmx','w')
f.writelines(lines[:-2])
# Get start id
for line in lines:
if "object id" in line:
id = int(line.split('"')[1])+1
print("Start id:", id)
# Generate Armory list
# Remove duplicates
# Mostly it's the other status of the weapon
weapons = []
duplicates = ["OffHand", "theRight", "Broken"]
for item in melee+ranged+shield:
flag = any(key in item for key in duplicates)
if (not flag):
weapons.append(item)
sizeOfWeapons = len(weapons)
skills = []
for item in trap+grenade+power:
if item not in ["ExplodeFriendlyHardy","FlyingSwordCallback","OwlUp","BackDash"]:
skills.append(item)
sizeOfSkills = len(skills)
print("Found weapons: {0} and skills: {1}".format(sizeOfWeapons,sizeOfSkills))
# Armory showcase at y direction
yList = [41,44,47,50,53,56, 59]
# Weapons showcase
xRange = [2,34]
nInLine = int((xRange[-1]-xRange[0])/2)
for j in range(len(yList)):
for i in range(nInLine):
weaponIndex = j*nInLine+i
if weaponIndex < sizeOfWeapons:
x = xRange[0]+i*2+1
y = yList[j]
f.writelines(xmlWrapper(id,x,y,weapons[weaponIndex]))
id += 1
# Skills showcase 1
yList = [41,44,47,50,53]
xRange = [36,64]
nInLine = int((xRange[-1]-xRange[0])/2)
for j in range(len(yList)):
for i in range(nInLine):
skillIndex = j*nInLine+i
if skillIndex < sizeOfSkills:
x = xRange[0]+i*2+1
y = yList[j]
f.writelines(xmlWrapper(id,x,y,skills[skillIndex]))
id += 1
f.writelines(lines[-2:])
f.close()
# Copy file to ExtendedCDB
os.system("cp PrisonFlaskRoom-Armory.tmx ./armory-tmx/tmx/Prison/PrisonFlaskRoom.tmx")
print("Done!")
if __name__ == "__main__":
main()