Pull across room boundaries



  • I've been looking at pull recently with 0 move creeps being pulled. Obviously across room boundires this adds challenges. Just pairs of creeps at the moment. Right now the way to do it is

    • Tick 1: Move onto edge with pulling creep pulling other creep next to edge
    • Tick 2: Do nothing
    • Tick 3: Pulling creep is back in the room with the other creep. Now you have to issue a valid move intent to enable the pull. This is nasty. You cannot move "into the wall", you have to either move along the room edge or move back into the room you just came from. Going to assume you move along the room edge as I think moving into the room you just came from adds a tick.
    • Tick 4: Pulled creep is now through to the other room. If the pulling creep moved along the room edge it is also. Pulling creep moves into the room further.
    • Tick 5: Do nothing
    • Tick 6: Pull other creep off room edge.

    This is all fine except tick 3 should not work as it does. I don't think we should be required to issue a move intent for this. If we are required to issue a move intent, I feel it shold be valid to have an intent that essentially says "stay still and teleport" by moving into the room wall.



  • I feel the Tick 2 could be changed so that if the pullee issued a creep.move(pullerCreep), despite they being technically now in different rooms, the system can check the edge case (here?) and decide that indeed they are still adjacent and as long as the puller itself is moving (which it has to anyway as per any other pull move) move the pullee onto the edge place the puller went last time, and the same square the puller would have been at Tick 3 anyway if it didn't move. then Tick 3 they are both in the dest room and can continue on their journey. This way pulling across the boundary would be as seemless as any other pull.



  • @Snowgoose on slack told me how to avoid the "Tick 3" intent issue. In the OP I complained because the game doesn't let you pull unless you move somewhere, which screws up when you have an "implicit" move by sitting still on an exit tile. You don't want to move anywhere though. You want to teleport back through.

    The trick is to move to the creep object that you're pulling. That seems to confuse the game graphics a little (and maybe the engine), but gets the desired behaviour of pulling using the implicit teleportation.

    I still think we should be allowed ot issue move intents into the room edge and have pull complete.



  • If you're willing to add a single WALK part on the pulled creep you can use the room edge fatigue trick to move through more quickly. Fatigue is reset to 0 when you move onto an exit tile from a regular tile.



  • Yeah, that's an option, but I feel shouldn't be required. On further investigation my previous post was wrong and you can't work around the issue. Going back to where the "wagon" previously was is no worse than any other solution but IMO the game should allow you to sit in place and pull.