Screeps入门教程3 建筑设施

本章介绍Screeps中的建筑设施以及相关的应用

基本建筑

  1. 建筑会在hits为0时消失。
  2. 有些建筑的数量上限是受RCL(房间控制器等级)影响的。
  3. 除了道路、容器和堡垒,其他建筑都会阻挡Creep的移动。

ConstructionSite(建筑工地)

所有的建筑从无到有的过程都是放置建筑工地->Creep前往并开始修建->修建进度完成,建筑工地转为对应类型的建筑,不过玩家的第一个孵化器是直接创建的。

相关API:

  1. Room.createConstructionSite 在指定地点创建指定类型的建筑工地。
  2. Creep.build 修建指定建筑工地。

Spawn (孵化器)

spawn

孵化器是殖民地中的核心建筑,它可以创建,刷新和回收Creep。当一个房间内所有孵化器和扩展内的能量小于300时,会以1能量/tick的速度产生能量。

相关API:

  1. StructureSpawn.spawning 获取当前孵化器的孵化信息,孵化器没工作时该值为null,可以改变creep孵化出来时的初始移动方向,也可以取消当前孵化进程。
  2. StructureSpawn.spawnCreep 以指定配置孵化新的Creep,可以设置以何种顺序使用孵化器/拓展中的能量,也可以设置新Creep孵化后的初始移动方向。
  3. StructureSpawn.recycleCreep 回收指定Creep,根据其剩余存活时间,以一定比例掉落花费在其孵化和强化过程中的资源。(很实用,相比直接让Creep自杀而言。)
  4. StructureSpawn.renewCreep 孵化器在空闲并且有能量时可以对指定Creep进行刷新,刷新消耗能量并会增加Creep的TTL(ticksToLive,剩余存活时间)。

Controller (控制器)

接管控制器将会得到对应房间的控制权。控制器无法被攻击或拆除。

控制器的等级也就是常说的RCL(Room controller level),随着等级提升,房间内允许的建筑类型和上限会逐渐解锁。

Creep可以使用能量对控制器进行升级,该操作会增加控制器的等级进度以及降级计数器进度。

等级进度达到该等级的进度上限,则控制器升级,最高等级为8级。

降级计数器进度为0时,控制器降级,当等级降为0时,控制器转为未接管状态,其原拥有者失去对应房间的控制权。降级计数器进度会随时间减少,也就是说如果长时间不对控制器进行升级,控制器会不断降级。

控制器达到8级之后,单位时间用于升级的有效能量花费上限为15。

相关API:

  1. Creep.upgradeController 升级控制器
  2. Creep.claimController 接管控制器
  3. Creep.reserveController 临时接管控制器,常用于外部采矿房间,临时接管控制器不占用GCL限制,但是会将对应房间的能量源恢复到正常状态(中立能量源容量上限为1500,临时接管将恢复容量上限到3000)

安全模式

控制器每次升级都会增加一次可用安全模式,也可以通过1000G来生成,如果控制器降级,所有可用安全模式都会被重置。

安全模式持续20000tick,多次安全模式激活的间隔冷却时间为50000tick。玩家重生后第一个房间的安全模式会自动激活,玩家最好在这次安全模式结束之前建立起基本的殖民地防御设施来抵御可能的外敌。

当安全模式激活时,房间内所有敌对creep的一些方法将会被禁止(如attack dismantle等),并且所有敌对creep都会以透明形式显示,同时你的creep可以自由的通过这些敌对creep所占据的位置,反之则行不通。

相关API:

  1. StructureController.activateSafeMode 激活安全模式

Extension (拓展)

拓展是一个存放能量的容器,其特殊之处在于,无论它被放在房间内的任何地方,孵化器都能够使用其中的能量来孵化新的Creep。

拓展的容量在7级之前是50,7级是100,8级的200。

相关API:

  1. Creep.transfer 将资源传输给指定对象
  2. Creep.withdraw 从指定对象中取出资源

Road (道路)

road

道路可以减少Creep的移动消耗,所以如果道路修建完善的话,Creep的身体部件中就可以减少移动部件。

道路可以在任何房间修建,包括中立的房间。道路可以在任何地形上修建(包括平原,沼泽和墙),不过道路在不同地形上有不同的修建花销。

道路会随着时间的推移/其上Creeo移动的次数增加而损毁,可以通过Creep来修复。

相关API:

  1. Creep.repair

Container (容器)

container

容器可以存储资源,可以任何房间修建,会随时间推移而损毁。在同一格上任何掉落的资源都会自动进入该地点的容器中。

Rampart (堡垒)

rampart

敌对creep无法进入封闭且完好的堡垒也无法直接攻击堡垒中的creep。Creep可以自由地进出自家的堡垒。

堡垒默认是封闭状态,也可以打开堡垒让其他玩家的Creep通过。

相关API:

  1. StructureRampart.setPublic 开放堡垒

Wall (人造墙)

wall

人造墙会阻挡所有creep,不同于自然的墙,这种人造墙是可以被破坏的。

堡垒和人造墙与其他建筑有所不同,其建筑花销为1,之后其耐久随着维修而增加。

Tower (防御塔)

tower

防御塔可以在整个房间的范围内进行攻击、治疗和维修,不过效力随着距离增大而减小。防御塔在3级时开放,这是玩家前期有力的防御设施之一。

相关API:

  1. StructureTower.attack
  2. StructureTower.repair
  3. StructureTower.heal

进阶建筑

Storage (仓库)

storage

仓库是Screeps中最大的容器,其容量为1M(= 1000K = 1,000,000)。

仓库在4级开放,一个房间最多只能有一个仓库。

link

链接是后期房间内很有用的远程能量传送工具,两个链接可以在整个房间范围内相互传送能量,能量损耗为3%,发送端链接发送后会有冷却时间,链接之间距离越远,这个冷却时间越长。

相关API:

  1. StructureLink.transferEnergy

Terminal (终端)

terminal

终端在6级开放,一个房间最多只能有一个终端。

你可以把终端看做是一个链接和仓库的结合体,终端的容量为300K,终端与终端可以跨房间传送资源(链接只能传送能量)。传送资源时,根据两个终端所在房间的距离,发送端需要花费对应数量的额外能量来运行传送机制。

例如,从W0N0往W10N5发送1000单位的矿物资源需要消耗742单位的额外能量。

与终端相关的还有市场系统,市场系统让玩家们(包括中立房间里的NPC终端)之间可以互相交易,货币单位为credit(非实体资源,仅存储在账户中)。

相关API:

  1. StructureTerminal.send

Observer (观察者)

observer

程序中只能访问有视野的房间对象,一般情况下接管控制器后的房间或是有Creep在的房间都是有视野的,观察者提供了远距离直接获得视野的能力。

观察者可以为你的程序提供一定距离(10)内特定房间的视野(也就是让Game.rooms['otherRoomName']返回有效的房间对象)。

相关API:

  1. StructureObserver.observeRoom 为程序提供特定房间的视野,特定的房间对象将会在下一tick可用。

更多建筑

还有Nuker, Lab等建筑设施没有介绍(这些建筑设施与作战相关,之后可能会结合实际讲解),有兴趣的话可以自行查看官方文档。

上一篇