目前刚接触这个游戏几天,正在重构到任务驱动架构,这个过程中碰到一个很关键的卡点,如何得知一个任务是否已经完成呢,如harvest之类的持续任务可以不需要处理,可是像spawnCreep这样需要几ticks时间才能完成的任务,如何得知何时任务完成?
之前尝试过以下两种思路,但都失败了
1. task结构体携带一个函数每tick判断是否完成
2. task 结构体携带一个变量表示倒计时
思路1的核心问题在于screeps没有足够稳定的运行时内存,Memory会因为stringify导致丢失,global和运行时内存都会刷新,失败
思路2的问题在于复杂性和灵活性不足,spawnCreep的耗时可以通过spawn.spawning上的remainingTime得到,但如果我希望把升级rcl也作为一个task,这样的话就很难得知何时完成任务了
目前山穷水尽,求个大佬指点一下
之前尝试过以下两种思路,但都失败了
1. task结构体携带一个函数每tick判断是否完成
2. task 结构体携带一个变量表示倒计时
思路1的核心问题在于screeps没有足够稳定的运行时内存,Memory会因为stringify导致丢失,global和运行时内存都会刷新,失败
思路2的问题在于复杂性和灵活性不足,spawnCreep的耗时可以通过spawn.spawning上的remainingTime得到,但如果我希望把升级rcl也作为一个task,这样的话就很难得知何时完成任务了
目前山穷水尽,求个大佬指点一下
