从复刻版的源码中找到的有趣东西
主题医院吧
全部回复
仅看楼主
level 1
kekefeng 楼主
function Doctor:tick() Staff.tick(self) -- don't do anything if they're fired or picked up or have no hospital if self.fired or self.pickup or not self.hospital or self.dead then return end
-- if doctor is in a room and they're using an object -- then their skill level will increase _slowly_ over time if self:isLearningOnTheJob() then self:updateSkill(self.humanoid_class, "skill", 0.000003) endend
只要一个医生在房间里并且使用一个物品,那么他们的技能就会得到缓慢增长
以前在游戏中就发现把一个医生丢进房间又没病人,疲劳还是降得比在外面闲逛快。看来“使用物品”本身就是一个动作,这个动作伴随的就是技能增长和疲劳下降。。
2020年02月01日 00点02分 1
level 1
kekefeng 楼主
-- Pay too low --> unhappy -- Pay too high --> happy local fair_wage = self.profile:getFairWage()
local wage = self.profile.wage
self:changeAttribute("happiness", 0.05 * (wage - fair_wage) / (fair_wage ~= 0 and fair_wage or 1))
工资低于fair_wage会不满,高的话就更满意[阴险]
wage = wage + self.skill * 1000 / level_config.gbv.SalaryAbilityDivisor
fair_wage和能力有关
2020年02月01日 00点02分 2
level 1
kekefeng 楼主
诊断:
基础诊断值:diagnosis_base = 0.4 * (1 - diagnosis_difficulty)
这个东西居然不受skill影响。[汗]
但是skill大于0.9的时候有一个奖励,这个奖励还和医生的疲劳度挂钩
也就是说skill小于0.9的诊断成功率其实是一样的
2020年02月01日 00点02分 3
就是说能力高的但是没到0.9的医生工资更高,诊断效果还一样[黑线]
2020年02月01日 00点02分
漏看了后面还有一行diagnosis_bonus = (attn_detail + 0.4) * skill。这个奖励不到0.9的也有
2020年02月01日 00点02分
attn_detail是个随机数挂钩的东西
2020年02月01日 00点02分
level 1
kekefeng 楼主
if x and not self:getRoom() and not self.world:getObjects(x, y) and self.world.map.th:getCellFlags(x, y).buildable and (not self.world:findObjectNear(self, "bin", 8) or math.random() < 0.05)
扔垃圾的逻辑判定和八格内有没有垃圾箱有关系
2020年02月01日 01点02分 4
level 1
kekefeng 楼主
cure_chance = cure_chance * self.diagnosis_progress
诊断率太低,手动送诊的话,会增加死亡率
2020年02月01日 01点02分 5
level 1
kekefeng 楼主
local temperature = self.world.map.th:getCellTemperature(self.tile_x, self.tile_y) self.attributes.warmth = self.attributes.warmth * 0.75 + temperature * 0.25
体温受影响代码
local min_comfort_temp = 0.22 -- 11 degrees Celcius.
local max_comfort_temp = 0.36 -- 18 degrees Celcius.
local decrease_factor = 0.10
local increase_happiness = 0.005
低了或高了就减心情,舒适就加
2020年02月01日 01点02分 6
level 1
kekefeng 楼主
找到了
细心程度,代码里叫attention_to_detail,切了英文版就知道是这个了
唯一的作用就是提供医生诊断的bonus,对护士什么的都没用。
本来找了半天还没找到以为是个大忽悠
skill还能缩短诊断用的时间
性格的作用还没找到
2020年02月01日 02点02分 7
level 1
kekefeng 楼主
性格是profile.desc 没有任何用。。不过双点医院的性格是有作用的
以上,就是本次源码探索
2020年02月01日 02点02分 8
level 1
kekefeng 楼主
护士的能力值只对病房中的诊断有用
对药房里配药动画的播放时间没有影响[阴险]
2020年02月01日 02点02分 9
level 1
kekefeng 楼主
local length = (math.random(200, 800) * (1.5 - staff.profile.skill)) / self.nursecount
-- reduce time in ward if there is more than one nurse on duty
病人在病房停留时间取决于护士skill和护士人数[阴险]
length应该就是停留时间了
2020年02月01日 03点02分 10
多人的话,取决于最垃圾的护士的skill。。可能考虑疲劳度,不过还没做。。 -- Returns the staff member with the minimum amount of skill. Perhaps we should consider tiredness too
2020年02月01日 03点02分
level 1
kekefeng 楼主
员工心情:
self.world:findObjectNear(self, "plant", 2, function(x, y)
两格以内所有的装饰品在每个tick都可以增加心情,比如灭火器,花,垃圾桶,书柜,骨架等等
注意死的花会减少心情
能不能穿墙未知,得看函数判定
2020年02月01日 03点02分 11
level 1
kekefeng 楼主
复刻版暖气费用的计算是根据本月多少档次的暖气开了多少天来综合结算的。。
无法通过月末结算时调整来占便宜
暖气系统和温度计算系统比较复杂
2020年02月05日 05点02分 12
level 1
kekefeng 楼主
暖气计算按每个格子来算:
1.计算所有邻接格子的平均温度
2.计算格子上的暖气片数量(事实上一个格子上最多可以摆放四个暖气片)影响暖气
分情况讨论如下:
1 格子没有暖气
iMergeRatio = 1000;
iMergeTemp = aiTemperature;
当前温度=0.25*邻接格子平均温度+0.75*前温度
然后受到 大气温度1/1000的影响
2.格子一个暖气
iMergeTemp = iRadiatorTemperature;
iMergeRatio = 2
当前温度=0.25*邻接格子平均温度+0.75*前温度
受到暖气温度1/2的影响
3.格子两个暖气
iMergeTemp = iRadiatorTemperature;
iMergeRatio = 1.5
当前温度=0.4*邻接格子平均温度+0.6*前温度
受到暖气温度占比2/3的影响
实际上一个格子最多可以摆四个暖气,如果摆四个,系数会低于0,出现bug。。。
温度每个tick进行一次计算,一天有50个tick,根据这样的温度算法,如果大气温度不变,最终所有格子的温度会达到一个稳态。
大气温度七月温度最高,一月温度最低
锅炉损坏是一个随机事件。受难度等级影响
2020年02月05日 06点02分 13
四周是指上下左右四格
2020年02月05日 09点02分
写程序模拟了一下这个过程,给出暖气温度为50,环境温度为10的时候中心行的温度变化。。[14, 14, 15, 15, 16, 17, 19, 21, 25, 31, 46, 31, 25, 21, 19, 17, 16, 15, 15, 14, 14]
2020年02月05日 09点02分
level 1
kekefeng 楼主
暖气始终保持在最低档是最合算的
暖气计算温度的公式为0.25 + heat * 0.3,而支付的钱是按heat计算的,heat*75。。(开局是0.5,每次增减都改变0.1)
清洁工和护士的作用并不大,都可以雇佣最便宜的,冷的话给奖金就行,但一定要保证医生的温度。
2020年02月05日 09点02分 14
结论:4*4的房间放一个足以,56的房间可以放两个,放在墙角还可以影响墙外的。可以搭配一些屋内设施提士气。。主要是小人喜欢乱跑,要是不乱跑一个足以
2020年02月05日 10点02分
level 2
小伙子有点6啊~
2020年09月09日 05点09分 15
1 2 尾页