产量计算
旧版离线
基础逻辑
生产资源基础逻辑
仅主线和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)会记录历史最大值,避免数值太低(比如把所有小人都下了)
离线返回面板
根据库存