附魔的机制:
将附魔所需经验除以100,这个得数会被随机在其0.75-1.25倍的范围内;
这个值最小为1,除非这个工具没法被附魔;
将随机出来的参数看作n,它会被传入附魔方法内;
附魔方法会遍历整个附魔表并寻找可附目标工具的附魔,寻找附魔难度计算后小于n的附魔(包括等级);
附魔难度计算公式:
max(附魔的附魔难度-10,0)+难度×(附魔的附魔等级-1)+1
值得一提,所有只有1级的附魔的附魔等级为3;
回到附魔方法,先前附魔难度计算列出了所有可能的附魔,这个时候会循环按照附魔权重(uncommon为10,rare为5等)挑选附魔,如果没有附魔可选则退出循环;
按照附魔权重挑选附魔时会计算所有可能附魔(按照附魔id)的总权重,并在这个总权重范围内设定一个随机数a。
挑选附魔的机制为每遍历一个可能的附魔,a就会减去这个附魔对应的附魔权重,直到a小于0取出对应的那个附魔;
附魔时的前两个附魔如果可选的附魔数目大于1且挑选得到的附魔有多级(例如锋利和火焰附加),则有50%概率这个附魔会强化1级(但不会超过上限);
此时n会减去(这个附魔对应的附魔等级+5),此时完成一个附魔的挑选;
在附魔数目大于2(一般只能为3)或者n小于5时附魔挑选的计算会停止。
附魔列表结算后的所有附魔会被重新排列,否则所有附魔会按照id大小顺序排列。