mc工业2吧 关注:30,663贴子:939,678

【IC2】关于农业的机制

只看楼主收藏回复

之前在翻GT源码时发现GT加了不少有趣的作物,于是试图进入IC杂交大坑。
IC农业方面,吧里好像木有专门的教程,外面的教程多数都是游戏内怎么操作,似乎没有多少详具体到详细机制的教程——倒是印象中当初Marco的教程里面有提到一些具体的机制,不过现在懒得去找了。
于是决定自己翻一下IC源码...结果一读读了大半个晚上...
破东西忒复杂点...而且各种概率算下来,高级作物从杂交获取到收获也都甚是坑爹...
====================================
个人把解读的结果扔上来,姑且算是半个教程吧...
由于是从代码随手“直译”成的自然语言,不保证能完全讲清楚;另外限于个人水平,不保证解读无误,欢迎指正。


1楼2016-09-27 06:23回复
    作物有三围:生长、收获、抗性,范围0~31;自身储存有营养、水分、除草剂,范围0~100(然而手工施肥能加到100+);除此之外各种作物还有各自的属性值、标签、掉落物等等,回头有时间看看能不能整理出一个详细列表吧...
    每次tick(似乎是收到随机刻?)进行如下判定:
    杂交:
    2/3概率不杂交
    从周围作物中选定参与杂交的作物,少于2个不杂交(至多4个参与杂交)
    选择合适的杂交产物
    将周围参与杂交的作物三维分别平均,然后上下浮动(浮动值不超过参与杂交的作物总数),作为杂交产物的三维,且不超过作物的三维范围
    空作物架长杂草:
    杂交失败1%概率长杂草
    如果有除草剂,消耗除草剂5点并避免此次长草
    作物成长:
    每次成长一定的点数,本阶段点数长满后点数清零并进入下一阶段
    杂草扩散:
    如果本作物被判定为杂草(本身就是杂草,或者生长>=24点),则:
    随机选定相邻的方块
    如果是空作物架时会长杂草
    或者在作物架上有作物时,有(32-抗性)/32概率长杂草
    当然如果有除草剂时,消耗5点除草剂可避免此次长草
    另外每次tick都会扣掉营养、水分与除草剂各一点


    2楼2016-09-27 06:25
    回复
      关于杂交产物的选定:
      选定时将在所有种类作物中按权重寻找杂交产物。
      每种作物将依次与参与杂交的作物相比较,得到一个相对权重;与所有参与杂交的作物得到的相对权重累加得到这种作物在本次杂交的权值。将所有种类的作物的权值累加后,按各自的权重随机摇出本次杂交最终的作物。
      相对权重的计算:
      同种作物直接给予500权重
      否则:
      基础权重记为0
      1)每种作物都有5个属性值,分别为Chemical Food Defensive Color Weed。属性值均为正整数。
      计算这5种属性值之间的差值,从权重中扣去(差值-2) (是的,差值过小时这项会往上加权重)
      2)每种作物都有若干标签。
      参与杂交的作物与待选定的产物之间,每有一个相同的标签,权重+5
      3)待选定产物的等级高于参与杂交的作物2级或以上时,权重扣去等级差*2
      待选定产物的等级低于参与杂交的作物4级或以上时,权重扣去等级差
      4)若最终获得的相对权重小于0,相对权重记为0
      选定参与杂交的作物:
      不是所有的作物都参与杂交。每次试图杂交时,检查所有相邻作物:
      作物默认必须长到第3阶段以上。
      基础概率记为4
      作物的生长>=16时基础概率+1;>=30时再+1
      作物的抗性>27点时,每再高1点,基础概率扣去1点
      最终作物有(基础概率/20)的概率参与本次杂交。


      3楼2016-09-27 06:28
      回复
        成长点数的计算:
        基础点数为(3+作物的生长+0~6的随机整数)
        作物所需的环境值为(作物等级-1)*4+作物三围总和
        作物拥有的环境值为 影响值*5,影响值默认为(湿度+养分+空气质量),各个作物并不完全相同...
        拥有>所需时,基础点数上浮(拥有-所需)/100,作为本次成长的点数
        否则,将(所需-拥有)*4作为欠缺值
        欠缺值>100时,作物有(31-抗性)/32概率死亡
        否则基础点数*(100-欠缺值)/100
        若基础点数<0则补为0,最终值作为本次成长的点数
        湿度的计算:
        基础值决定于生物群系
        如果所在耕地湿度(即Metadata值)大于等于7,基础值+2
        如果作为的水分>5,基础值+2
        水分为1时基础值+1,在此之上每多25点基础值+1
        最终所得为作物的水分
        养分的计算:
        基础值决定于生物群系
        从耕地下方开始三格,每有一块泥土,基础值+1。(这点各种产矿作物似乎比较吃亏)
        营养为1时基础值+1,在此之上每多20点基础值+1
        最终所得为作物的养分
        空气质量的计算:
        基础值为0
        高度80时基础值+1,在此之上每高15格基础值+1;此项最多+4
        周围3*3范围内,抛去所有的固体方块与作物,基础值+(剩余的方块数量/2)
        如果其头上一格的方块是露天的,基础值+2
        最终所得为作物的空气质量


        4楼2016-09-27 06:28
        回复(1)
          作物收获的计算:
          掉落值为(.95^作物等级 * 1.03^作物收获)
          掉落数服从 以掉落值为均值,以(掉落值*.6827)为方差的正态分布(.6827貌似不是这么用的吧),就近取整,小于0时补齐为0
          每个掉落数下都将尝试获得一种掉落物,如果获取成功将还有(作物收获/100)概率获得额外的1个掉落物


          5楼2016-09-27 06:29
          收起回复
            唔,现在写出来的有这么多。此外比较重要的有作物列表,包括各自的属性值、标签与掉落物,回头再整理一下吧...


            6楼2016-09-27 06:35
            收起回复
              不都是看脸的玩意儿,非洲人完全没机会啊


              来自Android客户端7楼2016-09-27 08:14
              回复
                玩agricraft吧,ic杂交太累.
                以前玩gt时只杂交出香蕉甘蔗就不想再搞下去了...


                来自iPhone客户端8楼2016-09-27 09:32
                回复
                  慢慢杂交着玩呗


                  IP属地:安徽来自iPhone客户端9楼2016-09-27 10:16
                  回复
                    主要想看杂交表


                    来自Android客户端10楼2016-09-27 10:24
                    回复
                      只有玩GT时才会想到ic农业…


                      IP属地:湖南来自手机贴吧11楼2016-09-27 12:33
                      回复


                        IP属地:北京13楼2016-09-27 12:47
                        回复
                          空气质量怎么定义啊...


                          来自Android客户端14楼2016-09-27 13:03
                          回复
                            已保存。


                            来自Android客户端16楼2016-09-27 19:14
                            回复
                              真正玩起来其实不需要那么多数据看着都眼花。另外ic部分的杂交其实挺无脑的,用甘蔗杂交出粘性甘蔗,然后粘性甘蔗就可以杂交出绝大多数作物。脸的问题完全可以靠扩大规模来抹除。


                              IP属地:广东来自Android客户端18楼2016-09-27 20:07
                              收起回复