Artifact Classic 和 Foundry 牌组代码的解码器和编码器。
- 核心代码照搬,增加 Foundry 支持,不考虑校验位、异常和错误。
- php中
strlen
取字节数(位长度),参考的Python项目有误。 - 客户端支持超过63位的牌组名称,所以本项目不设限。
- 虽然解码和编码支持超过5个英雄的牌组,但客户端只读取排序之后的前5个。
- Artifact 的套牌代码压缩率非常高,值得参考。
dcg.py
是将解码与编码合并的单文件版本。enums.py
加./deckcode/*
是性能稍佳的原始版本。
import dcg
code = 'ADCJWkTZX05uwGDCRV4XQGy3QGLmqUBg4GQJgGLGgO7AaABR3JlZW4vQmxhY2sgRXhhbXBsZQ__'
deck = dcg.Deck(code)
print(f'名称:{deck.name}')
print(f'版本:{deck.game!s}')
print(f'英雄:{deck.heroes}')
print(f'卡牌:{deck.cards}')
heroes = [(4005, 2), (10014, 1), (10017, 3), (10026, 1), (10047, 1)]
cards = [(3000, 2), (3001, 1), (10091, 3), (10102, 3), (10128, 3), (10165, 3), (10168, 3), (10169, 3), (10185, 3), (10223, 1), (10234, 3), (10260, 1), (10263, 1), (10322, 3), (10354, 3)]
name = 'Green/Black Example'
game = dcg.GameClass.CLASSIC
deck = dcg.Deck(heroes, cards, name, game)
print(f'编码:{deck.deckcode}')
deck.heroes = []
deck.name = '删除所有英雄'
deck.encode()
print(f'编码:{deck.deckcode}')
- Artifact 的 Steam 商店页面
- 关于 API 公告
- Valve 的 php 实现
- 某 Python 完整实现
- 某 Python 弃坑实现
- Classic 组牌站点 Artifactfire
- Classic 组牌站点 RedMist
- Classic Set0
- Classic Set1
- Classic Mutation*
- Foundry 非官方弃坑 API
- Foundry 组牌站点 ThinkArtifact
关于 Artifact 的模组。
- 《Artifact》和《炉石》都不主动校验本地文件,这点非常好。《LoR》和《MTGA》一开始也不校验,后来改成强制校验就更显得小肚鸡肠。又不是不能改。
- 说到这个就多说个笑话。《LoR》和《LoL》一样,看见你开'Cheat Engine'就自爆,早期版本甚至看见你开标题栏含
Cheat Engine
的网页也自爆(保)。
- PAX West 2018 后的一次预览活动,官推送给我一个激活码。之后通过某个有提前体验资格的号拿到客户端,第一次制作了社区汉化。官中第一次出现之后隔了一阵子,大量牌名和术语居然复制了我的。因若干内容与《刀塔2》不一致,做了修订版。
GUSHCATI
分享了把评分放在牌名前方便新手。2.0发布后,我在较长时间里维护着社区汉化。官方弃坑也没维护汉化的意义了。
- 换画原理沿袭自 Dota 2,最早来自英文社区。科学打包方式是我后来从 Dota 2 客户端里总结的。中文社区是 Yeti 在维护素材包。
- 在
gameinfo.gi
的SearchPaths
顶部增加一行是加载MOD最简单的方法,启动项、全素材大包或全拆出来都很麻烦。
- Classic 中后期的社区内容。
Artifact 遗产
- 极高压缩率的套牌编码方式。
- 可能在电子卡牌对战游戏中服务器存续时间最长。
- 向长期自愿被众多游戏公司榨取价值的玩家群体提供了一个发泄对象。
- It's Moonday, my dudes.