Knucklehead
Hi!
So I've been looking at the "Welshly Arms Inn" map with its built in example of the cool teleport feature, but I have a suggestion for doing it differently (as always, apologies in advance if what I'm about to suggest is already possible and I just missed it)...
The Welshy Arms Inn has two floors, the stairs on the first floor teleporting you to the second one.
On the map, the second floor is positioned to the right of the first one, essentially being another area on the same map and on the same layer.
So, looking at the current parameters for the teleport function, you can set the destination by X/Y coordinates and set the Width/Height of the teleport area.
I'm suggesting the ability to also designate which layer to teleport to, for the following reasons:
In the example of the Welshy Arms Inn, the two floors could instead be stacked directly on top of each other; the first floor in one layer and the second one in a second layer, essentially overlaying each other.
When you are on the first floor, the second floor layer is inactive, but when you use the stairs and teleport to the second floor, that layer is activated as well and will obscure everything on the second floor, except what would be visible through design.
What do I mean by that? Well, if you look at the way the map area for the second floor of the Welshy Arms Inn is created, it has the bottom floor painted onto it as well, but in a subdued "grayed out" fashion.
If you use overlaying layers for the different floors, you could instead remove the area on the second floor where the first floor is painted and instead have that part transparent, allowing for parts of the bottom floor (being the underlying layer) to show through.
That way, being on the second floor, you would only see the second floor and the parts of the first floor that you would see from obove, including any characters or items in that area, just as you would in real life.
Also, apart from the extra layer, the map art itself should be more economic in terms of resources, as you wouldn't have to (as is currently the case), draw the first floor area that is visible from the second floor, twice (or more, depending on the number of total floors).
Say for example you would create 3 additional floors to the current Welshy Arms Inn map, by basically duplicating the second floor 3 times and stacking them on top of each other, the savings in terms of resources should come with each new floor, as the first "ground-level" floor would only be drawn once, plus it (and any objects in it) would still be visible from all the above floors.
TL;DR: Allow for characters to teleport between different layers stacked vertically on top of each other, and for activating the destination layer when the character teleports into it.
Anyway, just a suggestion and again, sorry if I missed something and this is already possible.
/K
Comments
I'm not a programmer, so this might not make any sense, but would it be possible to perhaps simplify by "cheating" the z-axis requirement?
What if your character would be able to teleport from one layer (e.g. floor 1) to another one on top (floor 2) and you could set the elevation value (for example, numer of meters) of the second layer relative to the first one.
Again, using the Welshy Arms Inn map example, perhaps you could mark out (with something similar to the current wall tool) areas of the second floor that would designate where the first floor would be visible from the second one.
In effect, when the character is on the second floor, the marked part of the first floor would essentially act as part of the same level, but with some modifications:
- The character can't move into that "first floor" marked area, unless he/she she is levitating.
- The character can perform ranged attacks into the marked area (i.e. towards the floor beneath), calculating the distance should be a simple matter of trigonometry based on the difference between the elevation values.
- The character can jump (or levitate) down to the floor beneath, which could be a teleport triggered by interaction with the marked area, perhaps similar to how you now open doors.
If the different layers are essentially treated as one (the character's current layer being the main one) and would depend on the visibility of the other layers based on what is marked out, then that might also solve the windows issue?
The stairs could perhaps be treated as inbetween layers (i.e. a separat layer between two floors) with its own set elevation. For example: Ground level = @0 meters, stairs = @1,5 meters, second floor = @2 meters.
Don't know if this even makes any sense. Again, not a programmer and there's proably a ton of reasons for why this wouldn't be helpful, but I'm just toying with ideas and writing this off the top of my head.
/K
Then, when a player on the ground floor is selected, it would remove the first floor again. In case a target seen by a player is located on a lower or higher floor it could be selected through the left list - this method would be pretty similar to the old X-Com games). But that's pretty much up to Javi's coding skills.. or well, rather his coding time. He can do anything, he just needs time.
To be honest, the teleport is a solution and it is helpful at the moment but in reality it's more of a cheat / workaround to implement multiple floors. As it is at the moment using it for all these different functions would probably counter our intention of keeping things simple; apart from not being a "proper" solution.
the first thing is to get the basics right.
What I really want is the teleport feature, but between completely different images. It isn't going to be practical where there could be dozens of locations. You couldn't put these all on a single image file. So teleporting between battlemap images is what we want to begin with.