A python-based Genshin Impact gacha simulator
Project description
原神祈愿模拟 GenshinWish
本Python库是用来模拟原神抽卡的,作者为Lawrence Guo,具体可以模拟角色活动祈愿、武器祈愿和常驻祈愿(暂不支持新手祈愿)
Wish()类
用于设定卡池初始状态并预备好抽卡。可以直接什么都不填,用Wish()来进行实例化,也可以自定义卡池的信息和抽卡状态数据。
目前只能让一个对象进行实例化,在一个对象内不可以混合使用三种方法,因为水位是继承的。如果想在同意程序中抽别的池子需要对另外一个对象实例化。后续的更新中可能会将这个问题修复。
(可选)输入参数如下:
卡池信息
限定角色祈愿
up_candidate为限定角色祈愿中UP的五星角色,类型为str,默认值为"纳西妲"four_star_up为限定角色祈愿中UP的四星角色,类型为长度为3的list,默认值为["久岐忍", "多莉", "莱依拉"]
限定武器祈愿
five_star_weapon_up为限定武器祈愿中UP的五星武器,类型为长度为2的list,默认值为["千夜浮梦", "圣显之钥"]four_star_weapon_up为限定武器祈愿中UP的四星武器星武器,类型为长度为5的list,默认值为["绝弦", "祭礼残章", "匣里灭辰", "西风大剑", "西福斯的月光"]
抽卡状态
通用状态信息
draw_count为抽卡水位统计,类型为int,默认值为0。four_star_count为四星物品水位统计,类型为int,默认值为0。five_star_grt为五星保底状态,类型为bool,默认值为False。当five_star_grt=False时,可能会歪,也可能不歪;当five_star_grt=True时,必定出本期UP五星物品。four_star_grt为四星保底状态,类型为bool,默认值为False。当four_star_grt=False时,可能会歪,也可能不歪;当four_star_grt=True时,必定出本期UP四星物品。is_limited判断是否为本期限定角色,类型为bool,默认值为False。star为物品星级,类型为范围在[3,5]的int,默认值为3is_character判断上一抽结果是否为角色,类型为bool,默认值为Falsehistory存储抽卡记录,类型为list
武器池专用状态信息
chart_course为定轨状态,类型应为str,默认值为None。fate_points为命定值,类型为范围在[0,2]的int,默认值为0.is_chart_course最近一次出五星时,判断结果是否为定轨武器,类型为bool,默认值为False。
使用示例
from genshinwish import Wish
wish = Wish(up_candidate="纳西妲", four_star_up=["久岐忍", "多莉", "莱依拉"])
方法
1. 限定角色卡池 抽取结果生成 char_event_wish()
返回类型为dict
输出格式参考:
{'time': '2023-04-22 01:02:47',
'five_star_grt': False,
'four_star_grt': False,
'draw_count': 1,
'four_star_count': 1,
'star': 3,
'is_limited': False,
'is_character': False,
'result': '鸦羽弓'}
wish = Wish(up_candidate="纳西妲", four_star_up=["久岐忍", "多莉", "莱依拉"])
wish.char_event_wish()
2. 限定武器卡池 抽取结果生成 weapon_event_wish()
返回类型为dict
输出格式参考:
{'time': '2023-04-22 01:05:47',
'five_star_grt': False,
'four_star_grt': True,
'draw_count': 13,
'four_star_count': 10,
'star': 4,
'is_character': False,
'is_limited': True,
'is_chart_course': False,
'fate_points': 0,
'result': '绝弦'}
wish = Wish(five_star_weapon_up=["千夜浮梦", "圣显之钥"],
four_star_weapon_up=["绝弦", "祭礼残章", "匣里灭辰", "西风大剑", "西福斯的月光"])
wish.weapon_event_wish()
3. 常驻卡池 抽取结果生成 std_wish()
返回类型为dict
输出格式参考:
{'time': '2023-04-22 01:12:43',
'draw_count': 13,
'four_star_count': 10,
'star': 4,
'is_limited': False,
'is_character': False,
'result': '匣里龙吟'}
wish = Wish()
wish.std_wish()
使用例
from genshinwish import Wish
wish = Wish(up_candidate="纳西妲", four_star_up=["久岐忍", "多莉", "莱依拉"], chart_course="千夜浮梦")
wish.history = []
collect = []
count = 0
# 使用例:模拟抽卡(直到第一次抽中限定五星)
while True:
# 我的回合!抽卡!
state = wish.char_event_wish()
# print(state)
if state["star"] == 5 and state["is_limited"]: # 抽中本期UP就计数
count += 1
if count == 6: # 抽满命!!!
break
# if state["star"] == 5:
# break
# 提取分析抽出的五星
for i in range(len(wish.history)):
if wish.history[i]["star"] == 5:
print(wish.history[i])
输出示例:
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': False, 'draw_count': 79, 'four_star_count': 1, 'star': 5, 'is_limited': False, 'is_character': True, 'result': '莫娜'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': True, 'four_star_grt': True, 'draw_count': 78, 'four_star_count': 6, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': False, 'draw_count': 79, 'four_star_count': 8, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': False, 'draw_count': 77, 'four_star_count': 10, 'star': 5, 'is_limited': False, 'is_character': True, 'result': '刻晴'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': True, 'four_star_grt': True, 'draw_count': 75, 'four_star_count': 4, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': False, 'draw_count': 40, 'four_star_count': 6, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': False, 'draw_count': 18, 'four_star_count': 5, 'star': 5, 'is_limited': False, 'is_character': True, 'result': '提纳里'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': True, 'four_star_grt': True, 'draw_count': 67, 'four_star_count': 1, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': True, 'draw_count': 47, 'four_star_count': 1, 'star': 5, 'is_limited': False, 'is_character': True, 'result': '迪卢克'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': True, 'four_star_grt': False, 'draw_count': 83, 'four_star_count': 6, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file genshinwish-1.0.0.tar.gz.
File metadata
- Download URL: genshinwish-1.0.0.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
522465814967af2104c2e0f9af579dcf1499e3bd756c8666c2c550e89616f56e
|
|
| MD5 |
45bd9817e78d4a226a6abbe5bceda04d
|
|
| BLAKE2b-256 |
6bb358362322c797b91452585226a5ffa91549585029aae54e46e2b0a25e4022
|
File details
Details for the file genshinwish-1.0.0-py3-none-any.whl.
File metadata
- Download URL: genshinwish-1.0.0-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed128159a2226e8dbf5e6579bbab5173f080cecfaefc0fcf2ca80e654eaf572f
|
|
| MD5 |
8d07b95f9cae7640315d6fd09d363013
|
|
| BLAKE2b-256 |
fce8d4563c1d85d60a8c0f7cae0b7fb8e794e61c3884d93522226959b41e0b47
|