GardenHamster/GenshinPray

建议全角色池和普通角色池合并

Opened this issue · 3 comments

例如,角色池编号-1固定为全角色池。全角色池和普通角色池低保计数共通。同理武器池和全武器池合并为编号不同的武器池

全角色池和全武器池的抽卡逻辑和普通的池子其实没有区别,分成2个不同模块徒增后期维护成本,也导致接口变复杂。
将全角色池和普通角色池分开计算低保其实没什么必要,用户在模拟抽卡时候可能只是心血来潮地想要抽一发全角色池,这个情况下低保还要从头开始计数对这种偶尔一抽的角色也是一种负面反馈。而且也会增加数据处理成本(角色祈愿记录展示等都会从3个池变成5个池)

(只是单纯建议,全武器池和普通武器池其实在定轨上还是有一点区别的)

一开始的时候其实也是打算这样做的,后来发现全角色池和普通角色池的逻辑不一样,全角色池并没有大小保底,全角色池在某些地方没办法复用普通池子的代码,所以干脆搓成一个新的功能了

啊,原来如此。
主要是因为看到目前全池的很多记录参数还是在关联原池的(比如全角色池在GetPrayResult时)的GetPrayResult处理依然是
memberInfo.RolePrayTimes += prayCount还没有改过来,抽全池时会影响到普通池子的统计(总抽卡次数会影响出货率计算等)。这部分内容全改过来以后,获取角色祈愿记录、祈愿统计(全角色池和全武器池分别要记录总抽数、4星5星出货数然后计算对应的出货率)等记录数量会变得很多,在展示时候显得很混乱

因此单纯从维持数据精简的角度来说我建议合并全池和普通池的抽数、低保数等数据。或者甚至全池只记录低保数,不单独记录总抽数、出货率等出货记录,单纯只是把全池作为“一时兴起抽着玩”的选项。

至于究竟全池是单独使用FullPray接口,还是使用id为-1的普通接口其实反而不重要,我这里主要是出于精简玩家的记录数的思路提出的建议。

我的想法就是全池处理时,只影响保底计数不改变当前大小保底类型
例如:现在的大保底小保底计数都是20,说明是大保底,这时候出了货,大小保底都重置为90。
如果现在大保底是100小保底是10,两者不同,说明原本是小保底,这时候出了货,大小保底分别重置为180和90。
同理,全武器池出货只重置低保计数,不影响定轨计数。
两个全池都分别像普通池一样计入角色池与武器池的抽数、四五星出货率。而不是单独统计低保计数与出货率

……当然其实不做这些精简,就像其他常规池子一样正常地反馈出货记录、抽数、出货率等数据其实也完全没问题,只是提一个建议。

精简数据的想法可行,大小保底的字段可以合并成一个,1-90表示大保底,91-180表示小保底

总抽数的字段其实已经不需要了,可以通过祈愿记录统计出来,问题不大

但是如果要修改的话,要对数据库现有原有的数据改动,这个需求可能晚点再改了