03. 额外拓展
天数限制: 物品是否会在采购部门或者基建部门出现, 不单受到权重的影响, 其实还会受"解锁天数"的限制, 例如"轻机枪"的解锁天数是 25, 也就是说需要天数 >= 25, 采购部门才可能售卖, 基建部门才可能获取, 但在黑市或某些事件中, 还是有可能提前得到那些处于锁定状态的物品, 解锁天数同时也决定着是否可在合成车间制造, 尽管在无尽模式下, 可用荣誉点提前解锁那些价格 <100 的物品配方(解锁需要的荣誉点等同于物品价格), 但提前解锁配方不会导致采购部门或基建部门提前出现该物品, 既提前解锁配方, 不影响解锁天数
权重算法: 以"休息室"的"烹饪料理"为案例, 该操作会从[甜品/咖啡/可乐/便当/干粮/营养膏]这六种食物中, 随机挑两种让我们二选一, 假设当前天数已经足以解锁这些物品了, 而这六项物品物品在剧情模式下的权重分别为 [5/8/15/30/30/30], 合计 118, 如果之前你从未执行过烹饪料理, 那么此时甜品出现的概率就是 5/118, 假设今天出现了甜品(不管最终有没有选中它), 那么明天出现甜品的概率就是 (5-1)/118, 也就是说, 权重不仅是概率, 它也是数量, 每次出现都会导致该物品下次出现的权重 -1, 所以出现率会越来越低, 当物品池里所有物品的权重都为 0, 则会重置为初始值, 这个机制就解释了为什么游戏初期经常出现营养膏, 但后期却比较少见, 就是因为初期营养膏出现次数较多, 消耗了权重, 所以后期出现的概率就降低了, 除非物品池里的物品权重都归零重置, 出现率才会再次变高
价格范围: 首先, 在休息室操作后所能得到的物品选项, 仅受"天数限制"和"权重算法"影响, 其次, 在基建部操作后所能得到的物品选项, 除天数和权重外, 还会受到价格限制, 价格的上下限取决于部门的等级, 例如部件开发组在未升级时, 只能出现价格介于 5 ~ 10 的配件, 当部件开发组升到最高级, 价格区间就会变成介于 45 ~ 90, 关于基建部升级和价格变化相关细节, 具体可查阅 基地部门.html, 最后, 在剧情模式中, 采购部门出现的选项也有价格限制, 无价格下限但价格上限为 ShopBaseValue + ShopPlusValue × 当前天数, ShopBaseValue 和 ShopPlusValue 是基础配置表中的变量, 分别为 12 和 5(但是在其他模式里, 它们会被改成 45 和 8), 例如, 在剧情模式下, "雷神炮"是可能在采购部门里出现的(尽管权重只有 1), 它的价格是 500, 套入公式, 12 + 5 × 当前天数 = 500, 那么 当前天数 ≈ 97, 意思就是, 在 97 天, 采购部门的物品价格上限才能 >= 500, 此时价格为 500 的雷神炮才可能会出现, 但也只是可能会成为选项而已, 并非一定会出现, 实际上, 由于权重很低且出现天数太晚, 所以 XJ 在多个档中也只遇过一次而已
————
幸存模式: 奖励选项的物品出现权重, 和剧情模式下的采购部门是相同的, 都是用了上表中"剧情权重"的数据, 但是在幸存模式里, 那些"出现条件"既 NeedWeapon 字段为不为空的物品, 权重(数量)翻倍, 这也就是说, 出现条件有限制的那些物品, 出现概率(次数)会更高
幸存模式的奖励选项, 物品价格的下限是 Clamp(PriceMin, 5, 50), PriceMin 既上方表格中的"最小价格", Clamp 是个 C# 函数, 它的意思是, 取 PriceMin, 但将它的上下限分别设为 5 和 50, 如果结果值没超出, 就直接使用, 超出了则以这两个数值为准, 幸存模式的奖励选项, 物品价格的上限是 Clamp( ((当前天数 + 4) × 3 + UpV) × PriceRate, 50 + UpV, 250 + RefreshMaxlimit ), PriceRate 既上方表格中的"价格乘数", UpV 既全局增益中的"升级奖励价值提高"(默认 0, 上限 30), RefreshMaxlimit 既全局增益中的"升级奖励价值上限提高"(默认 0, 上限 100), 两个增益都以最大值计算那极限值就是 50+30=80 和 250+100=350
采用上方表格中数据, 算法是 关卡进度对数据总数取余, 当前表格的 数据总数 为 13, 例如在第 40 个关卡了, 40÷13=3…1, 既 40 除以 13 等于 3 余数 1, 所以调用 ID:1 那条数据, 此时, PriceMin 既最小价格为 20, PriceRate 既价格乘数为 5, 物品类型为 远程武器,近战武器, 值得一提的是, 因为关卡进度从 1 开始算起, 由于 1÷13=0…1, 所以幸存模式下, 最初那个关卡奖励采用的是上表中的第二条数据(ID:1), 要到第 13 天才会用到上表中的第一条数据(ID:0), 第 14 天又继续用第二条数据(ID:1)
举个例子, 到达第 40 个关卡, 增益拉满, 采用的表格数据为 40÷13=3…1, 既 ID:1, PriceMin:20, PriceRate:5, 套入公式, 下限为 Clamp(20,5,50), 上限为 Clamp(((40+4)×3+30)×5, 80, 350), 结果为 20 ~ 810 之间, 也就是说, 奖励选项的物品价格, 介于 20 ~ 810 之间, 由于价格上限超出(810 > 350), 所以需要进行修正, 因此最后奖励选项的物品价格, 介于 20 ~ 350 之间…