i propose dispute about subject of do we need ramps for moving our vehickle to down levels\floors or not?
and if final verdict is NO then can we think about how to transfer loot to upper\ground levels, maybe we can “invent” shoping cart special sort which can be moveable through stairs?
We need this, but it’s difficult. Considering what you bring up afterwards, it might be much simpler to handle just single-tile vehicles (i.e. carts).
Consider what happens IRL. Roughly the options are:
Pick it up and carry it up stairs.
Drag it with a sledge or cart, but that doesn’t work on stairs.
Turn the stairs into a ramp, then you can use a cart.
Solutions based on winches.
A bare winch (Can lift the item or items, but requires a ramp or similar path for it).
This would work great for dead-lifting in a stairwell, but our building layouts don’t tend to have a central well.
A crane. Can lift an item, but allows the lifting point to be extended in order to make lifting and manuvering easier. Might be able to pass items out a window on a lower floor and then back in on an upper floor.
A dumbwaiter. A tiny elevator that is specialized for carrying items between floors. This is usually built into the building, so it’s only an option with a home base.
An elevator. Again, must be constructed along with the building, so not mobile.
I think what really needs to be addressed though, is what is the goal of this suggestion. Why do you want to move your vehicle to a different floor?
Depending on the answer, the most reasonable solution might be, “make your cart foldable, unload it, fold it, carry it up/down some stairs, unfold it, move the contents up/down the stairs and into the cart”.
This would be tedious, especially that “move the contents” part, but we’re already thinking about some “mass move” commands which would render it totally reasonable to do,
So you want to roll your items down the stairs? I do think that if you drop something on the stairs, it should be accessable both from above and below, though I don’t think that happens.
Just having items on stairs accessible from both levels would really simplify the process of transferring loot between levels. Roll your loot cart up to the stairs, dump loot onto the stairs, fold cart, pick up cart, carry it up the stairs, unfold the cart, move loot from cart to stairs, carry on. It saves on of the most annoying steps: figuring out how to move 150L and several hundred lbs of gunk from one level to the other.
If you can get the same logic to treat vehicles on stairs as being on both levels, then carts could be easily moved between levels. It doesn’t solve the large vehicle on a ramp problem, but it starts solving it. At least for stairs, I think everyone would accept that their 3x4 car can’t be driven up a 2x2 block of stairs.
Anyway, why I want to move my vehicles between levels (a prioritized list):
Make it easier to take loot out of labs by moving a filled loot cart between levels.
Make it easier to move loot into a LMOE shelter by moving a filled loot cart between levels.
something something loot carts levels - just to indicate the relative priority of the first two items versus the next two items.
Enable boats to be able to move under bridges, by having the bridges on z-level +1 and the water on z-level 0. But then cars need to be able to get on the bridge somehow.
If the vehicle is being moved up or down in an elevator-like fashion, or if the vehicle is the elevator itself, then multi-tile and single-tile vehicles are roughly the same. Either the vehicle fits, and is moved, or the vehicle doesn’t, and cannot be moved.
The issue for multi-tile vehicles starts when one wants ramp-like movement, where the vehicle enters the ramp from one direction and leaves on the opposite side on another level.
I guess a possible solution would be elevator-like: a ramp that only works if the entire vehicle fits the ‘ramp area’, and once there, the player can trigger “move to x level” by either driving up the edge or through the ^ menu.
It has the issue of handling crashes if there is already a vehicle or monster on the elevator tile of the target level. I see two ‘easy’ ways to handle this issue:
the ramp exists on both levels simultaneously, so a vehicle tile that is on one level would be ‘visible’ and ‘crashable’ from the level below. This also has the advantage of easy moving of loot between levels, just drop on stairs, climb stairs, then grab loot.
Another would be a simple error/warning message. The player is simply not allowed to drive up/down a ramp if there’s something on the other side.
That’s a great idea, I think in practice the logic around pushing a vehicle through a ramp is going to be interesting, but I can’t think of a reason it won’t work.
For stairs specifically, it should be restricted to vehices you can lift. As long as you can lift the vehicle by a step and then balance it there as you take a step, you can move it up and down stairs, but if it’s so heavy you can’t lift it the necessary 6" or so off the ground at all, it’s not happening.
On the other hand, you may be able to “transform” stairs into a ramp by placing planks or similar over them. A bit bulky but possibly worth pursuing.
This is the kind of thing I was thinking of originally, but as you can see, it has issues. I think treating ramps as special zones where occupants (monsters, vehicle tiles, items, players, everything) occupy both levels simultaneously is a great way to resolve the issues.
To restrict things a bit more, you could break it down into several elevations (the “<->” thing means, “player can traverse between these”):
floor on level x ↔ low ramp on level x ↔ high ramp on level x ↔ floor on level x + 1
this could include any number of intermediate ramp levels, and the height difference between adjacent squares would indicate the slope. Some vehicles/monsters/players might tolerate different degrees of slope. There could also be some ramp levels where occupants count as being on the lower level, some where they count as being on both levels, and some where they count as being on the upper level.
IIRC df for example does something like this, and has two levels of ramp hard-coded. I don’t clearly recollect how it handles sharing occupants across levels.
After the last discussion on this, I was pretty much convinced that the least painful way to handle ramps is to have all ramps be one tile long, and for the ramp tile to be on both levels at the same time. Then the vehicle code needs to learn how to handle a vehicle that’s on two levels at the same time.
So a 6 tile long, 4 tile wide car would approach a ramp that is 6 tiles wide and 1 tile long. If the driver has things lined up properly, the hood tiles enter the ramp and are now both on the 0 z-level with the rest of the car and on the 1 z-level. Another time tick and the car moves another tile length forward, with the hood only on the 1 z-level, the windshield on both levels on the ramp, and the cabin and trunk on the 0 z-level. Another tick, and the driver is in the ramp, etc.
The ramp blocks line of sight past in on the 0 z-level, so the driver can’t be attacked on the 0 z-level while going up the ramp. On the 1 z-level, there’s only empty space behind the ramp, so hopefully there won’t be anything capable of attacking the driver before the back of the vehicle reaches the 1 z-level and he’s enclosed.
It’s not perfect, and I’m not at all sure about the programming details. But it’s a model you can describe to most people and it mostly makes sense. One new thing that would be need to be added is the ability to look up a z-level, but I think that’s part of the 3-D vision anyway.
Apart from the “crash on thing on stairs of floor above/below” issue, there is:
crash on thing/wall/whatever right when exiting the ramp. This is aggravated if the interface is like it is now, which offers no help in avoiding such collisions.
vehicle does not fit ramp. You could cover this somewhat with walls, but the player could very well get rid of those by hand or by crashing.
The ‘elevator-like’ method has the intention of getting rid of the second problem. The first one is still somewhat of an issue. While resetting the player speed to 0 or requiring the vehicle to be stopped would remove it, I’m not a fan of that solution outright of actual elevators.
I guess you could teleport the player/vehicle on the other floor but not advancing that turn, as a way to give a chance to fix their heading/speed.
Why do you want to move your vehicle to a different floor?
let me explain.
it is because of river.
we not have a rivers in the game - technically “rivers” is a chain of “lakes”
river need for boats which can sail by the rivers. and sail under the bridges. far far away.
for now “bridges over rivers” is a road, technically. roads which have lakes by the both sides of them.
and from here, for building [exactly] bridges we need to up our car on the higher Z-level.
when if we have z=z+1 then we can may have z=z-1. i mean drive a car trough tunnels, catacombs, and other underways. is it not a funny?
also we can hide our car under the ground level of our base.
why we can drop refrigerator from the high floors of a builings but can not drive our car from overpasses (like terminator on the harley) or multi-level parking? it will be good tactical retreat from hordes of zeds.