Birdoggydog's Builds

Making monsters follow the party by lift, ladder and crawl

A hunting pack rides the lift after you, a flyer comes up an open ladder, and a small monster crouches through a tunnel at half pace.

Three more ways between floors now work for monsters. A hunting pack calls the lift and rides it after the party. A flyer follows up a ladder whose hatch is open, or up a spiral stair. And a small monster, the meat boy, crouches through a crawl tunnel at half speed, so it follows through ducts and can wait in a ceiling vent. These are the next items of the dungeon features plan I approved on 20 October.

How does a pack ride a lift?

The party takes the car down. Its doors shut on floor 2. The car goes back up for the hunters who called it, they board, and 12 seconds after the party the car is down and they step out. The hunters are small in this film.

Until now a lift refused to move with a living monster in its shaft, and nothing followed the party between floors by it. I decided a hunting pack calls the car and rides after the party, stepping out a few seconds behind.

The system that sends hunters after the party already had a list of ways between floors, each with a mouth on both floors. The lift is one more way, going both ways. A hunter whose party took the lift walks to the waiting point outside its stop’s door. If the car isn’t there, isn’t moving and isn’t under the party, it presses the call button, the same call the stop’s panel makes, and presses again every 2 seconds while the car refuses. When the car arrives with its doors open, the hunter walks in and is listed as a rider.

The car carries bodies in a single file, because a stop’s door is 1.18 m wide and two can’t get out side by side. Each body takes its diameter plus 0.1 m of room out of the car’s 2.5 m, so a car holds two monsters with a 0.45 m radius. The first rider sends the car after 3 seconds, or sooner if nobody else who fits is still coming. Riders are carried by the car’s height the way the party is. On arrival the doors open and they step out hunting, provoked, where the party is waiting.

A pack of three gets down in two loaded trips, two at a time. The ones left behind call the car again and keep trying for 40 seconds after the party arrived, then give the lift up like any other chase. The party’s own press of the lift is refused while monsters ride, so the party is never carried with them. A monster that is in the shaft without being a listed rider still stops the car, as before. If you save during a ride, the car is saved and the ride isn’t, so on a load the rider is put outside the door of the stop the car is nearer to. The boarding wait, the 40 seconds and the others are placeholders.

Can a flyer follow up a ladder?

A Tallow Kite hangs in the air of a hall on floor 2 hunting the party. The party opens the ladder’s hatch and climbs. Two seconds after it, the kite comes out beside the hatch on floor 1 and rises to its hover height.

It can now, if the way is open. The plan I approved had flyers follow through open vertical ways they fit, and the open ladder shaft is the plain case. I filmed this one close up, because the lift’s film had hunters you could hardly see.

A flyer’s AI is a chase AI, so it already reached the following code. The work was deciding who may use which way:

  • A ladder, only while its hatch is open. A shut hatch counts as floor, flyers don’t open hatches, and one that finds it shut doesn’t wait there. It loses the way and the chase goes on as for any monster with no way.
  • A duct or a ceiling vent, by the same crawl measure walkers use, and only with the grate open.
  • A spiral, up the treads. I looked for an open well in the middle and there isn’t one, because the treads fill the ring from the 0.22 m column to the wall.
  • Not a lift. The car fills the shaft, the doors of a stop it isn’t at are shut, and its 2.5 m is no place for a body that hangs 5 m up.
  • Not a pit. A pit only goes down and a flyer doesn’t fall.

The kite climbs a ladder at its own climb speed of 4 m per second, a duct at half of that, and a spiral at 0.6 of its move speed. Like any climb it is taken out of the physics world while it goes. It comes out beside the hatch, rises to its hover height of 5 m, and hunts, provoked. One new function, Monster.fly_from(), sets the ground it flies over to the new floor’s, because otherwise the floor it came to would act as a roof and push it down. When it gives up, it goes home the same way a walker does.

The test makes two tall floors, 8 m halls so a flyer has room to hang. It checks that the kite doesn’t follow when the hatch is shut, that it follows when the hatch is open and hangs in the air of floor 1 hunting, that it goes home by the ladder, and that a save and load with the kite in the shaft leaves it at an end of it, flying.

Why can a meat boy go through a crawl?

A meat boy hunts the party through a crawl tunnel at half its pace: 1.65 m per second in the tunnel against 3.30 outside. The second half is a ceiling vent on floor 2 that holds a meat sack and a meat boy, who drop into the room.

Only the meat sack fit a ceiling vent, so every vent ambush was meat sacks. I decided small bodies crouch through a crawl, slower, and that I wouldn’t make a new monster for it. The first half of this film is weak, since the meat boy is a speck down a long tunnel. The vent in the second half is the part worth watching.

A crawl is 1.2 m high and 1.5 m wide. A walker now also goes through if it is at most 1.3 m wide and 1.6 m tall standing and fits the crawl crouched down to 1.0 m. The meat boy, 0.69 m by 1.30 m, is the only monster that fits this way today. These numbers and the half pace are placeholders, and I said yes to them on 21 October.

The measure lives in one place, PassageFit.crawls(), and the walk check, the vent ambush and the following code all ask it. The pace is a second function, PassageFit.pace(), which returns 0.5 when a monster is on a crawl square it only fits crouched, and 1.0 otherwise. Monster.move_toward_point() multiplies its speed by that, through the level’s query system so nothing outside a dungeon is touched. The model doesn’t crouch. It walks through upright and slower.

The generator keeps a list of the kinds a vent may hold. It was the meat sack and is now the meat sack and the meat boy, and the one fixture with a vent ambush was made again, so its ambush is now two meat boys. The test measures it. A meat boy, a meat sack and a gristle spitter walk the same tunnel, and the meat boy’s speed in the crawl comes out at 0.5 of its speed in the hall, within 0.08. The meat sack’s is 1.0 and the spitter stops at the mouth.