zhenxun_bot/plugins/draw_card/config.py
2021-06-17 09:43:03 +08:00

341 lines
14 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import nonebot
from pathlib import Path
from configs.path_config import DATA_PATH
from configs.config import FGO_FLAG, PCR_FLAG, AZUR_FLAG, PRTS_FLAG,\
PRETTY_FLAG, GUARDIAN_FLAG, GENSHIN_FLAG, ONMYOJI_FLAG, PCR_TAI, SEMAPHORE
try:
import ujson as json
except ModuleNotFoundError:
import json
DRAW_PATH = DATA_PATH + '/draw_card/'
_draw_config = Path(rf"{DRAW_PATH}/draw_card_config/draw_card_config.json")
# 开关
PRTS_FLAG = PRTS_FLAG
GENSHIN_FLAG = GENSHIN_FLAG
PRETTY_FLAG = PRETTY_FLAG
GUARDIAN_FLAG = GUARDIAN_FLAG
PCR_FLAG = PCR_FLAG
AZUR_FLAG = AZUR_FLAG
FGO_FLAG = FGO_FLAG
ONMYOJI_FLAG = ONMYOJI_FLAG
PCR_TAI = PCR_TAI
SEMAPHORE = SEMAPHORE
# 方舟概率
PRTS_SIX_P = 0.02
PRTS_FIVE_P = 0.08
PRTS_FOUR_P = 0.48
PRTS_THREE_P = 0.42
# 原神概率
GENSHIN_FIVE_P = 0.006
GENSHIN_FOUR_P = 0.051
GENSHIN_THREE_P = 0.43
# 保底概率
GENSHIN_G_FIVE_P = 0.016
GENSHIN_G_FOUR_P = 0.13
# 72抽后增加的概率
I72_ADD = 0.0585
# 赛马娘概率
PRETTY_THREE_P = 0.03
PRETTY_TWO_P = 0.18
PRETTY_ONE_P = 0.79
# 坎公骑冠剑
# 角色概率
GUARDIAN_THREE_CHAR_P = 0.0275
GUARDIAN_TWO_CHAR_P = 0.19
GUARDIAN_ONE_CHAR_P = 0.7825
# UP角色
GUARDIAN_THREE_CHAR_UP_P = 0.01375
GUARDIAN_THREE_CHAR_OTHER_P = 0.01375
# 武器概率
GUARDIAN_EXCLUSIVE_ARMS_P = 0.03
GUARDIAN_FIVE_ARMS_P = 0.03
GUARDIAN_FOUR_ARMS_P = 0.09
GUARDIAN_THREE_ARMS_P = 0.27
GUARDIAN_TWO_ARMS_P = 0.58
# UP武器
GUARDIAN_EXCLUSIVE_ARMS_UP_P = 0.01
GUARDIAN_EXCLUSIVE_ARMS_OTHER_P = 0.02
# PCR
PCR_THREE_P = 0.025
PCR_TWO_P = 0.18
PCR_ONE_P = 0.795
# 保底
PCR_G_THREE_P = 0.025
PCR_G_TWO_P = 0.975
# 碧蓝航线
AZUR_FIVE_P = 0.012
AZUR_FOUR_P = 0.07
AZUR_THREE_P = 0.12
AZUR_TWO_P = 0.51
AZUR_ONE_P = 0.3
# FGO
FGO_SERVANT_FIVE_P = 0.01
FGO_SERVANT_FOUR_P = 0.03
FGO_SERVANT_THREE_P = 0.4
FGO_CARD_FIVE_P = 0.04
FGO_CARD_FOUR_P = 0.12
FGO_CARD_THREE_P = 0.4
# 阴阳师
ONMYOJI_SP = 0.0025
ONMYOJI_SSR = 0.01
ONMYOJI_SR = 0.2
ONMYOJI_R = 0.7875
path_dict = {
'genshin': '原神',
'prts': '明日方舟',
'pretty': '赛马娘',
'guardian': '坎公骑冠剑',
'pcr': '公主连结',
'azur': '碧蓝航线',
'fgo': '命运-冠位指定',
'onmyoji': '阴阳师',
}
driver: nonebot.Driver = nonebot.get_driver()
config_default_data = {
'path_dict': {
'genshin': '原神',
'prts': '明日方舟',
'pretty': '赛马娘',
'guardian': '坎公骑冠剑',
'pcr': '公主连结',
'azur': '碧蓝航线',
'fgo': '命运-冠位指定',
'onmyoji': '阴阳师',
},
'prts': {
'PRTS_SIX_P': 0.02,
'PRTS_FIVE_P': 0.08,
'PRTS_FOUR_P': 0.48,
'PRTS_THREE_P': 0.42,
},
'genshin': {
'GENSHIN_FIVE_P': 0.006,
'GENSHIN_FOUR_P': 0.051,
'GENSHIN_THREE_P': 0.43,
'GENSHIN_G_FIVE_P': 0.13,
'GENSHIN_G_FOUR_P': 0.016,
'I72_ADD': 0.0585,
},
'pretty': {
'PRETTY_THREE_P': 0.03,
'PRETTY_TWO_P': 0.18,
'PRETTY_ONE_P': 0.79,
},
'guardian': {
'GUARDIAN_THREE_CHAR_P': 0.0275,
'GUARDIAN_TWO_CHAR_P': 0.19,
'GUARDIAN_ONE_CHAR_P': 0.7825,
'GUARDIAN_THREE_CHAR_UP_P': 0.01375,
'GUARDIAN_THREE_CHAR_OTHER_P': 0.01375,
'GUARDIAN_EXCLUSIVE_ARMS_P': 0.03,
'GUARDIAN_FIVE_ARMS_P': 0.03,
'GUARDIAN_FOUR_ARMS_P': 0.09,
'GUARDIAN_THREE_ARMS_P': 0.27,
'GUARDIAN_TWO_ARMS_P': 0.58,
'GUARDIAN_EXCLUSIVE_ARMS_UP_P': 0.01,
'GUARDIAN_EXCLUSIVE_ARMS_OTHER_P': 0.02,
},
'pcr': {
'PCR_THREE_P': 0.025,
'PCR_TWO_P': 0.18,
'PCR_ONE_P': 0.795,
},
'azur': {
'AZUR_FIVE_P': 0.012,
'AZUR_FOUR_P': 0.07,
'AZUR_THREE_P': 0.12,
'AZUR_TWO_P': 0.51,
'AZUR_ONE_P': 0.3,
},
'fgo': {
'FGO_SERVANT_FIVE_P': 0.01,
'FGO_SERVANT_FOUR_P': 0.03,
'FGO_SERVANT_THREE_P': 0.4,
'FGO_CARD_FIVE_P': 0.04,
'FGO_CARD_FOUR_P': 0.12,
'FGO_CARD_THREE_P': 0.4,
},
'onmyoji': {
'ONMYOJI_SP': 0.0025,
'ONMYOJI_SSR': 0.01,
'ONMYOJI_SR': 0.2,
'ONMYOJI_R': 0.7875,
}
}
@driver.on_startup
def check_config():
global PRTS_SIX_P, PRTS_FOUR_P, PRTS_FIVE_P, PRTS_THREE_P, GENSHIN_G_FIVE_P, config_default_data, \
GENSHIN_G_FOUR_P, GENSHIN_FOUR_P, GENSHIN_FIVE_P, I72_ADD, path_dict, PRETTY_THREE_P, \
PRETTY_ONE_P, PRETTY_TWO_P, GENSHIN_THREE_P, GUARDIAN_THREE_CHAR_P, GUARDIAN_TWO_CHAR_P, GUARDIAN_ONE_CHAR_P, \
GUARDIAN_THREE_CHAR_UP_P, GUARDIAN_THREE_CHAR_OTHER_P, GUARDIAN_EXCLUSIVE_ARMS_P, GUARDIAN_FIVE_ARMS_P, \
GUARDIAN_FOUR_ARMS_P, GUARDIAN_THREE_ARMS_P, GUARDIAN_TWO_ARMS_P, GENSHIN_FLAG, PRTS_FLAG, \
PRETTY_FLAG, GUARDIAN_FLAG, GUARDIAN_EXCLUSIVE_ARMS_UP_P, GUARDIAN_EXCLUSIVE_ARMS_OTHER_P, DRAW_PATH, \
PCR_THREE_P, PCR_TWO_P, PCR_ONE_P, AZUR_FOUR_P, AZUR_THREE_P, AZUR_TWO_P, AZUR_ONE_P, AZUR_FIVE_P, FGO_CARD_FIVE_P,\
FGO_CARD_FOUR_P, FGO_CARD_THREE_P, FGO_SERVANT_THREE_P, FGO_SERVANT_FOUR_P, FGO_SERVANT_FIVE_P, ONMYOJI_R, ONMYOJI_SP, \
ONMYOJI_SSR, ONMYOJI_SR
_draw_config.parent.mkdir(parents=True, exist_ok=True)
try:
data = json.load(open(_draw_config, 'r', encoding='utf8'))
except (FileNotFoundError, ValueError):
_draw_config.parent.mkdir(parents=True, exist_ok=True)
json.dump(config_default_data, open(_draw_config, 'w', encoding='utf8'), indent=4, ensure_ascii=False)
print('draw_card配置文件不存在或格式错误已重新生成配置文件.....')
else:
try:
PRTS_SIX_P = float(data['prts']['PRTS_SIX_P'])
PRTS_FIVE_P = float(data['prts']['PRTS_FIVE_P'])
PRTS_FOUR_P = float(data['prts']['PRTS_FOUR_P'])
PRTS_THREE_P = float(data['prts']['PRTS_THREE_P'])
except KeyError:
data['prts'] = {}
data['prts']['PRTS_SIX_P'] = config_default_data['prts']['PRTS_SIX_P']
data['prts']['PRTS_FIVE_P'] = config_default_data['prts']['PRTS_FIVE_P']
data['prts']['PRTS_FOUR_P'] = config_default_data['prts']['PRTS_FOUR_P']
data['prts']['PRTS_THREE_P'] = config_default_data['prts']['PRTS_THREE_P']
try:
GENSHIN_FIVE_P = float(data['genshin']['GENSHIN_FIVE_P'])
GENSHIN_FOUR_P = float(data['genshin']['GENSHIN_FOUR_P'])
GENSHIN_THREE_P = float(data['genshin']['GENSHIN_THREE_P'])
GENSHIN_G_FIVE_P = float(data['genshin']['GENSHIN_G_FIVE_P'])
GENSHIN_G_FOUR_P = float(data['genshin']['GENSHIN_G_FOUR_P'])
I72_ADD = float(data['genshin']['I72_ADD'])
except KeyError:
data['genshin'] = {}
data['genshin']['GENSHIN_FIVE_P'] = config_default_data['genshin']['GENSHIN_FIVE_P']
data['genshin']['GENSHIN_FOUR_P'] = config_default_data['genshin']['GENSHIN_FOUR_P']
data['genshin']['GENSHIN_THREE_P'] = config_default_data['genshin']['GENSHIN_THREE_P']
data['genshin']['GENSHIN_G_FIVE_P'] = config_default_data['genshin']['GENSHIN_G_FIVE_P']
data['genshin']['GENSHIN_G_FOUR_P'] = config_default_data['genshin']['GENSHIN_G_FOUR_P']
data['genshin']['I72_ADD'] = config_default_data['genshin']['I72_ADD']
try:
PRETTY_THREE_P = float(data['pretty']['PRETTY_THREE_P'])
PRETTY_TWO_P = float(data['pretty']['PRETTY_TWO_P'])
PRETTY_ONE_P = float(data['pretty']['PRETTY_ONE_P'])
except KeyError:
data['pretty'] = {}
data['pretty']['PRETTY_THREE_P'] = config_default_data['pretty']['PRETTY_THREE_P']
data['pretty']['PRETTY_TWO_P'] = config_default_data['pretty']['PRETTY_TWO_P']
data['pretty']['PRETTY_ONE_P'] = config_default_data['pretty']['PRETTY_ONE_P']
try:
GUARDIAN_THREE_CHAR_P = float(data['guardian']['GUARDIAN_THREE_CHAR_P'])
GUARDIAN_TWO_CHAR_P = float(data['guardian']['GUARDIAN_TWO_CHAR_P'])
GUARDIAN_ONE_CHAR_P = float(data['guardian']['GUARDIAN_ONE_CHAR_P'])
GUARDIAN_THREE_CHAR_UP_P = float(data['guardian']['GUARDIAN_THREE_CHAR_UP_P'])
GUARDIAN_THREE_CHAR_OTHER_P = float(data['guardian']['GUARDIAN_THREE_CHAR_OTHER_P'])
GUARDIAN_EXCLUSIVE_ARMS_P = float(data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_P'])
GUARDIAN_FIVE_ARMS_P = float(data['guardian']['GUARDIAN_FIVE_ARMS_P'])
GUARDIAN_FOUR_ARMS_P = float(data['guardian']['GUARDIAN_FOUR_ARMS_P'])
GUARDIAN_THREE_ARMS_P = float(data['guardian']['GUARDIAN_THREE_ARMS_P'])
GUARDIAN_TWO_ARMS_P = float(data['guardian']['GUARDIAN_TWO_ARMS_P'])
GUARDIAN_EXCLUSIVE_ARMS_UP_P = float(data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_UP_P'])
GUARDIAN_EXCLUSIVE_ARMS_OTHER_P = float(data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_OTHER_P'])
except KeyError:
data['guardian'] = {}
data['guardian']['GUARDIAN_THREE_CHAR_P'] = config_default_data['guardian']['GUARDIAN_THREE_CHAR_P']
data['guardian']['GUARDIAN_TWO_CHAR_P'] = config_default_data['guardian']['GUARDIAN_TWO_CHAR_P']
data['guardian']['GUARDIAN_ONE_CHAR_P'] = config_default_data['guardian']['GUARDIAN_ONE_CHAR_P']
data['guardian']['GUARDIAN_THREE_CHAR_UP_P'] = config_default_data['guardian']['GUARDIAN_THREE_CHAR_UP_P']
data['guardian']['GUARDIAN_THREE_CHAR_OTHER_P'] = config_default_data['guardian']['GUARDIAN_THREE_CHAR_OTHER_P']
data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_P'] = config_default_data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_P']
data['guardian']['GUARDIAN_FIVE_ARMS_P'] = config_default_data['guardian']['GUARDIAN_FIVE_ARMS_P']
data['guardian']['GUARDIAN_FOUR_ARMS_P'] = config_default_data['guardian']['GUARDIAN_FOUR_ARMS_P']
data['guardian']['GUARDIAN_THREE_ARMS_P'] = config_default_data['guardian']['GUARDIAN_THREE_ARMS_P']
data['guardian']['GUARDIAN_TWO_ARMS_P'] = config_default_data['guardian']['GUARDIAN_TWO_ARMS_P']
data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_UP_P'] = config_default_data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_UP_P']
data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_OTHER_P'] = config_default_data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_OTHER_P']
try:
PCR_THREE_P = float(data['pcr']['PCR_THREE_P'])
PCR_TWO_P = float(data['pcr']['PCR_TWO_P'])
PCR_ONE_P = float(data['pcr']['PCR_ONE_P'])
except KeyError:
data['pcr'] = {}
data['pcr']['PCR_THREE_P'] = config_default_data['pcr']['PCR_THREE_P']
data['pcr']['PCR_TWO_P'] = config_default_data['pcr']['PCR_TWO_P']
data['pcr']['PCR_ONE_P'] = config_default_data['pcr']['PCR_ONE_P']
try:
AZUR_FIVE_P = float(data['azur']['AZUR_FIVE_P'])
AZUR_FOUR_P = float(data['azur']['AZUR_FOUR_P'])
AZUR_THREE_P = float(data['azur']['AZUR_THREE_P'])
AZUR_TWO_P = float(data['azur']['AZUR_TWO_P'])
AZUR_ONE_P = float(data['azur']['AZUR_ONE_P'])
except KeyError:
data['azur'] = {}
data['azur']['AZUR_FIVE_P'] = config_default_data['azur']['AZUR_FIVE_P']
data['azur']['AZUR_FOUR_P'] = config_default_data['azur']['AZUR_FOUR_P']
data['azur']['AZUR_THREE_P'] = config_default_data['azur']['AZUR_THREE_P']
data['azur']['AZUR_TWO_P'] = config_default_data['azur']['AZUR_TWO_P']
data['azur']['AZUR_ONE_P'] = config_default_data['azur']['AZUR_ONE_P']
try:
FGO_SERVANT_FIVE_P = float(data['fgo']['FGO_SERVANT_FIVE_P'])
FGO_SERVANT_FOUR_P = float(data['fgo']['FGO_SERVANT_FOUR_P'])
FGO_SERVANT_THREE_P = float(data['fgo']['FGO_SERVANT_THREE_P'])
FGO_CARD_FIVE_P = float(data['fgo']['FGO_CARD_FIVE_P'])
FGO_CARD_FOUR_P = float(data['fgo']['FGO_CARD_FOUR_P'])
FGO_CARD_THREE_P = float(data['fgo']['FGO_CARD_THREE_P'])
except KeyError:
data['fgo'] = {}
data['fgo']['FGO_SERVANT_FIVE_P'] = config_default_data['fgo']['FGO_SERVANT_FIVE_P']
data['fgo']['FGO_SERVANT_FOUR_P'] = config_default_data['fgo']['FGO_SERVANT_FOUR_P']
data['fgo']['FGO_SERVANT_THREE_P'] = config_default_data['fgo']['FGO_SERVANT_THREE_P']
data['fgo']['FGO_CARD_FIVE_P'] = config_default_data['fgo']['FGO_CARD_FIVE_P']
data['fgo']['FGO_CARD_FOUR_P'] = config_default_data['fgo']['FGO_CARD_FOUR_P']
data['fgo']['FGO_CARD_THREE_P'] = config_default_data['fgo']['FGO_CARD_THREE_P']
try:
ONMYOJI_SP = float(data['onmyoji']['ONMYOJI_SP'])
ONMYOJI_SSR = float(data['onmyoji']['ONMYOJI_SSR'])
ONMYOJI_SR = float(data['onmyoji']['ONMYOJI_SR'])
ONMYOJI_R = float(data['onmyoji']['ONMYOJI_R'])
except KeyError:
data['onmyoji'] = {}
data['onmyoji']['ONMYOJI_SP'] = config_default_data['onmyoji']['ONMYOJI_SP']
data['onmyoji']['ONMYOJI_SSR'] = config_default_data['onmyoji']['ONMYOJI_SSR']
data['onmyoji']['ONMYOJI_SR'] = config_default_data['onmyoji']['ONMYOJI_SR']
data['onmyoji']['ONMYOJI_R'] = config_default_data['onmyoji']['ONMYOJI_R']
json.dump(data, open(_draw_config, 'w', encoding='utf8'), indent=4, ensure_ascii=False)