产量计算

旧版离线

基础逻辑

生产资源基础逻辑
仅主线和1001

进行24h基础产耗记录

分别记录各种资源游戏内每小时的基础产出和基础消耗,游戏内每小时结束时进行记录或更新已有的缓存数值(* 基础产/耗只受建筑等级、小人分配等影响)

计算单位时间产出,用于计算

对象:product_type=3,4

单位时间取值

当记录时长超过游戏内24h,则直接用缓存总和/720s,得出每秒基础产出和每秒基础消耗

当记录时长不足游戏内24h,则计算可用且已分配小人的家具单次产出效率和消耗效率并求和,作为每秒基础产出和每秒基础消耗

给别的功能应时吐出的值,都已进行了boost加成计算(这里的boost指卡牌加成和其它商业化加成)

Cash基础逻辑
仅1001

在获取cash产出时
1. 获取校车数量、上货口数量
2. 缓存各种物品的存量
3. 模拟产出

计算逻辑

离线逻辑,模拟循环的时间范围是整个离线时长,同时考虑了离线期间存量的变化

在线逻辑(商业化使用时的计算逻辑),模拟是按照600s的时长进行循环,同时在这600s内不考虑缓存的各种物品存量的变化

活动heart基础逻辑
仅1001

产出建筑

生产建筑

使用24h基础逻辑,只有产出

计算逻辑

单位时间取值

当记录时长超过游戏内24h,则直接用缓存总和/720s,得出每秒基础产出

当记录时长不足游戏内24h,则直接取item表里面的shop_reward_limit

** doubleProduction 和 CashExpDouble 都对EP 有双倍效果,所以 2001用doubleProduction,其他用CashExpDouble

产量应用

离线功能

生产资源

以720s为单位时间,结合产出、消耗和库存进行多轮计算,最终得出离线期间的总产出和总消耗

cash

cash离线逻辑

活动heart

以720s为单位时间,直接算出离线期间的总产出

信息展示

数据面板

生存资源

食物/肉

24h产出/12

土豆type3

单位时间产出

生产资源

瞬时值

生产链

工作

瞬时值

非工作

单位时间产出

奖励系统addtoOvertime

涉及功能

任务奖励

礼包

box

活动奖励

Slot

水果机

特殊处理

缓存从基础逻辑中获得的各种资源的秒产的最大值,只使用秒产,不涉及消耗

通过配置确认是否有保底,缓存最大值小于保底时给保底

(待改)针对主线heart,优先判断是否有保底,没有的话再判断功能是否解锁

timeskip

通用

按类型取基础秒产,基础秒产<保底时,读item表里的保底速度

涉及资源

cash

活动heart

主线heart

生产资源

特殊处理

生产资源

先获取基础产出再根据建筑解锁进行矫正,比如建筑刚解锁没有24h记录,则存在取保底的情况,配置在item中

特殊情况:进city没有建筑时,有类型和数量的保底,但取不到卡牌boost

主线heart

需要判断战斗解锁后

任务

类型为收集资源的任务的需求计算值,也缓存了最大单位时间产出,同时限制了最大和最小值,配置与item表中的count和max之间

广告

items表中配置有最小值和最大值

探索

timeskip的逻辑,屏蔽了heart

新版离线

有小人按日程工作的生产建筑

面板产出量/面板生产时间*0.5(加班则*0.75)

资源在生产时会消耗其他资源,速度为自身速度*消耗系数(items表的ingredients),所有被消耗途径之和即被消耗速度,自身生产速度-被消耗速度=净产出速度

当一种产物的净产出速度为负时:其上游所有产物按比例降低产出,直到被消耗速度降低到与生产速度相等,净产出速度为0

在离线后返回时,会考虑库存:消耗光前保持满生产速度,库存消耗光之后才会进行上面那条的衰减

没有小人参与的自动生产建筑

火炉及变种(活动场景的slot)

使用炉子的consumption,配成负数,配置即按分钟产量配置

建筑类型Automation的自动生产建筑

主家具计算秒产再换算成分钟,duration决定多久跳一次资源

特殊修正

奖励系统addtoOvertime
任务奖励/宝箱/礼包/活动奖励等

可配置参数&guarantee=1,就会读取items表的shop_rewards_limit当作最小速度

任务需求(task表task列COLLECT_ITEM类型)

可选配置最小值count

可选配置最大值max

广告奖励

可选配置最小值:items表ad_rewards_limit

可选配置最大值:items表ad_rewards_max

商业化记录历史最大值

给商业化用的数值(slot,timeskip)会记录历史最大值,避免数值太低(比如把所有小人都下了)

离线返回面板

根据库存