175 lines
5.3 KiB
Python
175 lines
5.3 KiB
Python
# 装备属性部分
|
|
# import json
|
|
# import os
|
|
|
|
from PublicReference.utils.constant import *
|
|
from .装备_套装 import *
|
|
from .装备_特殊 import *
|
|
from .装备_首饰 import *
|
|
from .装备_防具 import *
|
|
from .装备_武器 import *
|
|
from .基础函数 import *
|
|
from .融合_希洛克 import 希洛克
|
|
from .融合_奥兹玛 import 奥兹玛
|
|
|
|
装备版本 = "GF"
|
|
|
|
# with open("ResourceFiles/Config/release_version.json") as fp:
|
|
# versionInfo = json.load(fp)
|
|
# 装备版本 = versionInfo['EquipmentVersion']
|
|
# fp.close()
|
|
|
|
# if 装备版本.upper() == "GF":
|
|
|
|
# else:
|
|
# from .装备_武器_HF import *
|
|
# from .装备_防具_HF import *
|
|
# from .装备_首饰_HF import *
|
|
# from .装备_特殊_HF import *
|
|
# from .装备_套装_HF import *
|
|
|
|
|
|
class equipment():
|
|
def __init__(self):
|
|
self.load_equ()
|
|
self.load_suit()
|
|
|
|
def load_equ(self):
|
|
self.equ_list = {}
|
|
self.equ_id = {}
|
|
self.equ_tuple = ()
|
|
self.equ_id_tuple = ()
|
|
self.index = {}
|
|
for i in range(535): #534件装备
|
|
temp = eval('装备{}()'.format(i))
|
|
self.equ_list[i] = temp
|
|
self.equ_id[temp.名称] = i
|
|
self.equ_tuple += (temp, )
|
|
self.equ_id_tuple += (i, )
|
|
key = '{}\t{}\t{}'.format(temp.所属套装, temp.品质, temp.部位)
|
|
self.index[key] = i
|
|
|
|
def load_suit(self):
|
|
self.suit_list = {}
|
|
self.suit_id = {}
|
|
self.suit_name = ()
|
|
self.suit_tuple = ()
|
|
for i in range(127): #126个套装效果
|
|
temp = eval('套装效果{}()'.format(i))
|
|
self.suit_list[i] = temp
|
|
self.suit_tuple += (temp, )
|
|
key = '{}[{}]'.format(temp.名称, temp.件数)
|
|
self.suit_id[key] = i
|
|
self.suit_name += (key, )
|
|
|
|
def load_img(self):
|
|
self.equ_img = {}
|
|
#基础装备图标 0~999
|
|
for i in self.get_equ_id_list():
|
|
path = './ResourceFiles/img/装备/{}.gif'.format(i)
|
|
img = QMovie(path)
|
|
img.start()
|
|
self.equ_img[i] = img
|
|
#奥兹玛图标 1000~1024
|
|
for i in range(25):
|
|
path = './ResourceFiles/img/奥兹玛/{}.gif'.format(i)
|
|
img = QMovie(path)
|
|
img.start()
|
|
self.equ_img[1000 + i] = img
|
|
#希洛克图标 1100~1114
|
|
for i in range(15):
|
|
path = './ResourceFiles/img/希洛克/{}.gif'.format(i)
|
|
img = QMovie(path)
|
|
img.start()
|
|
self.equ_img[1100 + i] = img
|
|
#希洛克武器图标 2000~2999
|
|
path = './ResourceFiles/img/希洛克/武器/'
|
|
for i in os.listdir(path):
|
|
img = QMovie(os.path.join(path, i))
|
|
img.start()
|
|
self.equ_img[2000 + int(i.split('.')[0])] = img
|
|
|
|
def get_suits_by_equips(self, equips):
|
|
suits = []
|
|
dictionary = {}
|
|
for i in equips:
|
|
item = self.get_equ_by_name(i)
|
|
if item.所属套装2 != '无':
|
|
j = item.所属套装2
|
|
k = item.所属套装
|
|
if k != '智慧产物':
|
|
dictionary[k] = dictionary.get(k, 0) + 1
|
|
else:
|
|
j = item.所属套装
|
|
if j != '无':
|
|
dictionary[j] = dictionary.get(j, 0) + 1
|
|
|
|
for i in dictionary.keys():
|
|
if dictionary[i] >= 2:
|
|
temp = '{}[{}]'.format(i, 2)
|
|
if temp in self.suit_name:
|
|
suits.append(temp)
|
|
if dictionary[i] >= 3:
|
|
temp = '{}[{}]'.format(i, 3)
|
|
if temp in self.suit_name:
|
|
suits.append(temp)
|
|
if dictionary[i] >= 5:
|
|
temp = '{}[{}]'.format(i, 5)
|
|
if temp in self.suit_name:
|
|
suits.append(temp)
|
|
for i in suits:
|
|
try:
|
|
temp = i.replace(i.split('[')[0], self.get_suit_by_name(i).子套装)
|
|
if temp in suits:
|
|
suits.remove(temp)
|
|
except:
|
|
pass
|
|
return suits
|
|
|
|
def get_suit_by_id(self, id):
|
|
return self.suit_list.get(id, 套装())
|
|
|
|
def get_suit_by_name(self, name):
|
|
return self.get_suit_by_id(self.suit_id.get(name, 0))
|
|
|
|
def get_equ_by_id(self, id):
|
|
return self.equ_list.get(id, 装备())
|
|
|
|
def get_img_by_id(self, id):
|
|
return self.equ_img.get(id, QMovie(''))
|
|
|
|
def get_equ_by_name(self, name):
|
|
return self.get_equ_by_id(self.equ_id.get(name, 0))
|
|
|
|
def get_img_by_name(self, name, num=0):
|
|
id = self.equ_id.get(name, 0)
|
|
# if id+num in self.equ_id_tuple:
|
|
id += num
|
|
return self.get_img_by_id(id)
|
|
|
|
def get_id_by_name(self, name):
|
|
return self.equ_id.get(name, 0)
|
|
|
|
def get_equ_list(self):
|
|
return self.equ_tuple
|
|
|
|
def get_suit_list(self):
|
|
return self.suit_tuple
|
|
|
|
def get_equ_id_list(self):
|
|
return self.equ_id_tuple
|
|
|
|
def get_suit_name(self):
|
|
return self.suit_name
|
|
|
|
def get_id_by_index(self, suit, quality, part):
|
|
key = '{}\t{}\t{}'.format(suit, quality, part)
|
|
return self.index.get(key, 0)
|
|
|
|
def get_equ_by_index(self, suit, quality, part):
|
|
id = self.get_id_by_index(suit, quality, part)
|
|
return self.get_equ_by_id(id)
|
|
|
|
|
|
equ = equipment()
|