hades吧 关注:41,410贴子:95,218

解读 Hades 的房间及其奖励生成条件

只看楼主收藏回复

如题, 一楼缓冲


IP属地:北京1楼2020-10-23 23:51回复
    Hades 作为一款 Roguelite 游戏,地图与奖励是按照固定的规则随机生成的。本文尝试从代码里解读规则的第一个环节:游戏中的各种房间什么时候会出现;以及门牌上的某些奖励的出现条件。以及房间里的可交互物件的出现条件。
    个人能力与文本篇幅有限,难免出现错漏。请多指教。


    IP属地:北京2楼2020-10-23 23:51
    收起回复
      Hades 的地图系统并不是个真正的 Roguelite / Roguelike 地图。因为玩家只能一路前进,不能回溯探索。游戏的房间生成机制也只是“及时”地为玩家生成下一个房间,而不是事先把本局 / 本层的地图完整地生成出来。
      生成房间的主要逻辑在游戏目录下的 Scripts/RunManager.lua 文件里。新开始一局游戏时,选取开局房间的函数是 ChooseStartingRoom。此后选取房间的函数是 ChooseNextRoomData。生成房间内具体内容的函数是 CreateRoom。各个房间的数据定义见 Scripts/RoomData*.lua 那些文件。本文要谈的主要就是这些代码。


      IP属地:北京3楼2020-10-23 23:53
      收起回复
        ## 开局第一个房间
        如果不考虑新存档的那些事儿,那么这个房间只会出锤子和单个神的祝福。而且是先拿祝福后打架。
        对于新开的存档,这个房间有一系列的规则,会让玩家尽快见到所有的奥林匹斯神(含赫尔墨斯,但不含得墨忒)的祝福,以及锤子。第一盘必然是雅典娜,第二盘好像必然是宙斯。
        从第四盘游戏起,如果玩家之前已经见过了波塞冬,那么这一盘的开局祝福必然是一个史诗级的波塞冬的援助。每个存档只有一次这个机会。触发这个事件以后,玩家才能拿到援助祝福。
        如果玩家上一盘见到了某个雪地的场景,那么这一盘的开局必然是得墨忒的祝福。每个存档只有一次这个机会。触发这个事件之后玩家才能拿到她的祝福。
        还有一个特别事件是,开局必然会给波塞冬(怎么又是他)的渔获丰收祝福。每个存档只有一次这个机会。细节不说了,反正多打就会有(


        IP属地:北京4楼2020-10-23 23:54
        收起回复
          ## 前三层的 PreBoss 房间
          所谓 PreBoss 就是本层的 boss 战之前的那个房间。这种房间里肯定不会有交战。
          第一层的 PreBoss 在本层第 13 间(亦即第 12 个房间的出口的门牌上会看到商店,下同),第二层这个数值是 8,第三层的是 10。这决定了前三层的房间个数每层分别是 15 / 10 / 12。累加起来是 15 / 25 / 37
          这些房间的“奖励”是:如果在此前的一个房间只有一个出口,那么必然是商店。如果有两个或以上的出口,那么其中也必然有一间是商店。与商店并列的、其他的 PreBoss 房间的奖励固定是 RunProgress,但不会是双神考验。
          RunProgress 的定义请看这个旧帖:https://tieba.baidu.com/p/6522602090


          IP属地:北京5楼2020-10-23 23:55
          收起回复
            ## 前三层的道中商店
            这里借用“道中”这个词来修饰这类商店。是在每层 PreBoss 房间之前就会遇到的商店。每层只会出现一次。如果在某个出口门牌上出现了,但没有进,那么就没有机会再进入。本层的商店只剩下 PreBoss 房间的那次机会。
            第一层的道中商店最早会出现于本层的第 6 个房间(再度解释:“出现于第 6 个房间”意思是在第 5 个房间的出口的门牌上就看到商店图标,下同),最晚是第 9 个房间。
            第二层的道中商店出现于本层第 4 ~ 6 个房间
            第三层的道中商店出现于本层第 4 ~ 7 个房间
            为了让道中商店出现,还要满足一个必要条件:前置的房间必须有两个或以上的出口。换句话说,游戏塞给你一个道中商店的时候,总会给你另一个出口允许你绕过这个商店。但上一楼里说的 PreBoss 商店没有这样的限制。
            道中商店可能会出现价值 300 金币的钱袋,拿了钱袋就会拿到钱,还会有好事发生()。钱袋出现的机率是每次进入道中房间时 22%。每局只会出现一次,如果出现了但没拿,那么本局后面的道中商店也不再会出现。


            IP属地:北京6楼2020-10-23 23:58
            收起回复
              ## MiniBoss 战房间
              第一层的 MiniBoss 战最早出现在本层第 7 间,最晚本层第 11 间。
              第二层在本层第 5 ~ 7 间
              第三层在本层第 5 ~ 8 间
              第四层就,在五个隧道里 5 选 2
              每层都有三个 MiniBoss 房间。而且这种房间和商店房一样:如果你绕过了,就不会再出现。当然,你绕得过一个,未必能绕过另外两个
              此外:如果你已经进过了某一层的 MiniBoss 房间,本局本层就不会再出现其它版本的 MiniBoss 房间
              前三层的 MiniBoss 房间奖励必然是祝福,但不会是赫尔墨斯的祝福,
              第四层的 MiniBoss 战可能会给任何种类的 RunProgress
              这种房间的奖励都不会是双神考验


              IP属地:北京7楼2020-10-24 00:01
              收起回复
                ## 前三层的泉水房间
                这里专门指在装修商处花钱改造之后才会出现的那个泉水房间,而不是指打完 boss 后的休整房间。
                泉水房间不会打架,不会有双神考验奖励。
                每层的泉水房间只能出现一次。最晚则不一定,也可能根本不出现。出现几率不明。而且门牌上没有明显标识,想找也没法找,想绕也绕不过去。
                第一层最早可在本层第 5 间出现
                第二 / 三层最早可在本层第 4 间出现


                IP属地:北京8楼2020-10-24 00:02
                回复
                  ## 第四层的泉水房间
                  也就是有一包狗粮的房间,固定出现在某个隧道的末尾。
                  第一次进入的隧道肯定不会出。余下的四个隧道出现泉水房间的机会均等。没有什么技巧可言,只能逐个去尝试。


                  IP属地:北京9楼2020-10-24 00:03
                  收起回复
                    ## 故事房间
                    西西弗斯等友好 NPC 所处的房间,在代码里叫 Story room。每盘每种最多只给一次,绕过了就没机会了。也可能根本就不出。
                    西西弗斯房间最早可以出现于本层第 6 间
                    欧律狄刻最早可出现于本层第 3 间
                    帕特罗克洛斯最早出现于本层第 4 间
                    如果是新存档,那么还有好多因素会影响着这些 NPC 房间的出现判定。反正还是那句老话:多打就会有。


                    IP属地:北京10楼2020-10-24 00:04
                    收起回复
                      ## Boss 战房间与 Boss 战之后的房间
                      没什么好说的。
                      接下来说某些房间奖励的生成条件。本文故意只谈“生成条件”,亦即“能出还是不能出”,出了之后下一步的计算就,因为篇幅所限,先不谈了(其实是还没整理完


                      IP属地:北京11楼2020-10-24 00:05
                      回复
                        ## 锤子
                        这个想必大家都知道了:前两层最多可以出一个锤子,第三层起可以出第二个锤子(代码里的判断条件是本局第 27 个房间起,也就是第三层的第 2 间起)。再多就不会有了。
                        第四层商店能买的铁砧不是锤子,不在本文讨论范围内。


                        IP属地:北京12楼2020-10-24 00:08
                        收起回复
                          ## 赫尔墨斯
                          虽然赫尔墨斯在剧情里是个神,但在奖励生成机制里,他差不多就是个锤子:每盘最多会给两个。此外在第四层的商店有可能会卖一个(但那不是房间奖励,不在本文讨论范围内)。
                          另有一个条件是,赫尔墨斯的祝福从本局的第 14 个房间开始,才有可能作为 RunProgress 出现在房间出口的门牌上。这等价于从第二层开始才可以掉落。但在第一层商店里有卖,这是允许的。
                          如果第四层的商店有卖赫耳墨斯的祝福,那么即使玩家此前只拿过一个赫尔墨斯的祝福,还没拿到过第二个,也无法在西边五个隧道的门牌上见到赫尔墨斯。
                          新开的存档有一次机会,可以在开局的房间就见一次赫尔墨斯。目的是为了确保玩家见过他,好展开剧情。


                          IP属地:北京13楼2020-10-24 00:10
                          收起回复
                            ## 双神考验
                            要想见这种房间,下面的条件必须都满足:
                            本局要见过两个奥林匹斯神(赫尔墨斯除外,因为他是个锤子。再就是卡俄斯也除外)
                            前置房间必须有两个或以上的出口
                            若在第一层,不早于本层的第 5 个房间
                            若在第二 / 三层,不早于本层的第 4 个房间
                            不早于本局的第 6 个房间
                            不晚于本局第 35 个房间(这个条件等价于第四层不能出)
                            距离前一次出现双神考验的房间不少于 15 个房间
                            这意味着一局最多只能见两次双神考验。而且如果要出两次,必然是第一层和第三层各一次。
                            如果第一层没见到,后面的房间数只够出一次的。


                            IP属地:北京14楼2020-10-24 00:13
                            收起回复
                              ## MetaProgress 奖励的一些限制
                              蜜露:给蜜露奖励的房间不会有带骷髅头的版本。如果你买了蜜露为随机某个祝福 +1 级的那个装修,那么蜜露只会在你手上有可升级的祝福时才会出现在门牌上。
                              其余没什么好说的。


                              IP属地:北京15楼2020-10-24 00:14
                              回复