Terrain Overlays for difficult terrain, cover, etc.

For everything about graphics/tokens developed by users and offered for others to use in their games.

Moderators: dorpond, trevor, Azhrei, giliath, Gamerdude, jay, Mr.Ice

dewin
Kobold
Posts: 11
Joined: Thu Sep 30, 2010 1:00 am

Terrain Overlays for difficult terrain, cover, etc.

Post by dewin »

It was surprisingly difficult to find any pre-existing terrain overlays to indicate difficult terrain or squares that grant cover/concealment/etc., so I decided to make my own.

Image

Included in this download is six terrain overlays (Difficult Terrain triangle, Impassable Terrain X, Cover Tree, Concealment Cloud, Misc. Diamond) in black, white, red, green and blue. The black and white versions come in solid and 50% transparent versions, the other colors are all 50% transparent.

You can get a .zip file containing all the images here: http://www.mediafire.com/?3nv19hp324hss85
Or visit my gallery page, assuming I set it up right: http://gallery.rptools.net/v/contrib/De ... +overlays/
Or attached to this post, because I somehow missed that option when I made the original post. :-p

These are tokens you can drop onto your map for various terrain types -- all symbols are in the lower-right corner. The basic shapes I drew myself, for the tree for cover and the cloud for concealment I used public domain artwork at http://openclipart.org. If you're using a 200x200 grid, you can also 'paint' these as terrain on top of your existing terrain (I highly recommend the token method, however.)

Why multiple colors? Well, here's a few reasons:
  • Some colors may not be very visible against some terrain. (Try to see a white triangle on a snowfield?)
  • Alternatively, some colors might be TOO visible and clash against the overall map asthetic.
  • You might want to differentiate between different variations of special terrain. For instance, you might use black triangles for regular "difficult terrain" and blue triangles for ice.. Your players might be able to try to treat the ice as normal terrain if they pass an acrobatics check (falling prone if they fail).
I might add more colors or symbols if there's a demand. I might also redo cover and/or concealment, I'm not 100% happy with how they came out.

The aforementioned .zip file contains an ABOUT.txt file which includes information on how to match the style of these overlays if you decide to make your own. It's below, for reference.
ABOUT.txt
All graphics in this library are in the public domain.

dewin [ thisgenericname at gmail dot com ] performed all image resizing and other transformations

required to terrain overlay artwork. Most work was done using paint.NET.

Though the individual source images are all in the public domain, I still prefer to credit individual artists when possible. Source images are credited to the following artists:

Triangle ("Difficult Terrain") - dewin
X ("Impassable Terrain") - dewin
Tree ("Cover") - Chrisdesign
Cloud ("Concealment") - Antoine

dewin: [ thisgenericname at gmail dot com ]
Chrisdesign: http://openclipart.org/user-detail/Chrisdesign
Antoine: http://openclipart.org/detail/37123/nuage-by-antoine



Adding overlays to this library:

I use paint.NET for creating the overlays. The following are constraints used to ensure consistency:

* Create a silhouette base using only transparency and black. The larger dimension of this base is exactly 50 pixels, the smaller is adapted as needed. The silhouette image fits exactly with zero pixels of white/transparent border.

* Resize the canvas to be 50x50, centering the original image whereever it makes more artistic sense.
* Resize the canvas to be 190x190, placing the original image in the lower right corner
* Resize the canvas to be 200x200, placing the original image in the upper left corner

The net effect of all of this resizing is the silhouette image is in the lower right corner, with 10 pixels of border between it and the bottom and right edges.

Then I save the following PNGs:
* (name) black 100.png - Image as it stands
* (name) black 50.png - 50% transparency (128/255)
* (name) white 100.png - Inverted
* (name) white 50.png - Inverted, 50% transparency (128/255)

Other colors are done -- always at 50% transparency -- by using the white 50% image as a reference and using the following effects:

Red - Color Filter: 0 Hue, 255 Density, 0 Highlights
Green - Color Filter, 120 Hue, 255 Density, 0 Highlights
Blue - Color Filter, 240 Hue, 255 Density, 0 Highlights
Attachments
terrain overlays.zip
(227.72 KiB) Downloaded 425 times
Last edited by wolph42 on Thu Sep 06, 2012 3:18 am, edited 3 times in total.
Reason: moved to tilesets section
Newbie D&D4e DM and tinkerer.
I made some terrain overlays for cover, concealment, etc.
I use DeviantNull's D&D4e Character Sheet Framework


User avatar
CoveredInFish
Demigod
Posts: 3104
Joined: Mon Jun 29, 2009 10:37 am
Location: Germany
Contact:

Re: Terrain Overlays for difficult terrain, cover, etc.

Post by CoveredInFish »

Yeah, thx for sharing. Should be handy.

And clever way to exactly position a small image in a larger canvas. I might steal that.

dewin
Kobold
Posts: 11
Joined: Thu Sep 30, 2010 1:00 am

Re: Terrain Overlays for difficult terrain, cover, etc.

Post by dewin »

CoveredInFish wrote:Yeah, thx for sharing. Should be handy.

And clever way to exactly position a small image in a larger canvas. I might steal that.
The technique isn't exactly new (the default art in Maptools comes with a single white 'difficult terrain' indicator that works similarly), unless you're referring to the bit about how I got everything positioned correctly in ABOUT.txt ;)
Newbie D&D4e DM and tinkerer.
I made some terrain overlays for cover, concealment, etc.
I use DeviantNull's D&D4e Character Sheet Framework

User avatar
Bone White
Great Wyrm
Posts: 1124
Joined: Tue Aug 23, 2011 11:41 am
Location: Cornwall, UK

Re: Terrain Overlays for difficult terrain, cover, etc.

Post by Bone White »

I'm currently using some coloured diagonal scan-line tokens, which are set to be half transparent, to designate cover - but it has many drawbacks.

I like this idea better.

User avatar
CoveredInFish
Demigod
Posts: 3104
Joined: Mon Jun 29, 2009 10:37 am
Location: Germany
Contact:

Re: Terrain Overlays for difficult terrain, cover, etc.

Post by CoveredInFish »

Yeah, I was talking about the several canvas resizes you described.
I'd have blown out the canvas in one step and tried to position it with rulers or alike.

dewin
Kobold
Posts: 11
Joined: Thu Sep 30, 2010 1:00 am

Re: Terrain Overlays for difficult terrain, cover, etc.

Post by dewin »

I'm thinking another way to do this might be to have a fully transparent[1] "Terrain" token you can drop wherever, snap to the grid, and then the terrains can be states set on the token.

This would allow easier stacking of terrain states (i.e. difficult terrain + cover) and a lot of easy customization (which corner? how big? etc.) at the cost of not being quite as drop-in (you'd have to define all the states...)

Would there be interest in this? If so, I might go start developing it.



ALSO: I'm not entirely happy with the particular tree I use for cover or the 'cloud' for concealment. If someone comes up with 2-color (b&w, b&transparent or w&transparent) images that they think are better, I'll use them. Images must be public domain since I'm picky that way.

[1] These tokens could presumably get lost very easily due to being fully transparent. One fix to that might be to have a 'development mode' macro that locates all tokens with the same name/some other attribute and applies or clears a "Here I am!" state on them to make them visible. (or dynamically changes the underlying image, if that's possible...)
Newbie D&D4e DM and tinkerer.
I made some terrain overlays for cover, concealment, etc.
I use DeviantNull's D&D4e Character Sheet Framework

User avatar
CoveredInFish
Demigod
Posts: 3104
Joined: Mon Jun 29, 2009 10:37 am
Location: Germany
Contact:

Re: Terrain Overlays for difficult terrain, cover, etc.

Post by CoveredInFish »

I would be interested in this if state images are shown for map objects (tokens on OBJECT layer).
IIRC they are shown only for tokens, but I can be wrong here. I wouldnt use this on the token layer as it would clutter the map.

User avatar
lmarkus001
Great Wyrm
Posts: 1867
Joined: Sat Mar 29, 2008 12:30 am
Location: Layfayette Hill, PA

Re: Terrain Overlays for difficult terrain, cover, etc.

Post by lmarkus001 »

CoveredInFish wrote:I would be interested in this if state images are shown for map objects (tokens on OBJECT layer).
IIRC they are shown only for tokens, but I can be wrong here. I wouldnt use this on the token layer as it would clutter the map.
I am fairly certain state icons show on object layer tokens. I use this for tracking invisible creatures (I give ownership to a mirror token on the object layer that is a transparent graphic but uses a state icon that is only visible to owner).

User avatar
CoveredInFish
Demigod
Posts: 3104
Joined: Mon Jun 29, 2009 10:37 am
Location: Germany
Contact:

Re: Terrain Overlays for difficult terrain, cover, etc.

Post by CoveredInFish »

You're right, I just found time to test it. It works. You cannot set the state on objects by UI, but that is just an inconvenience. Either you could go by macro or prepare them on token layer and move them after that (what - again - could be done by macro).

User avatar
lmarkus001
Great Wyrm
Posts: 1867
Joined: Sat Mar 29, 2008 12:30 am
Location: Layfayette Hill, PA

Re: Terrain Overlays for difficult terrain, cover, etc.

Post by lmarkus001 »

So then a similar technique could be used. Use a single pixel transparent image token, apply desired terrain state icon to that token, then place that token on the Background/Object layer. In this way, your maps can be generated any way you choose, but then you can apply terrain for any grid-resolution map in a standardized manner. And if you wanted to get fancier, you could then detect terrain types and impact token movement as appropriate (Wolf42s Bag of Tricks would make this fairly easy I think!).


Hummm... dewin already said as much!

User avatar
patnodewf
Cave Troll
Posts: 97
Joined: Sun Jan 15, 2012 3:44 am

Re: Terrain Overlays for difficult terrain, cover, etc.

Post by patnodewf »

dewin wrote:These tokens could presumably get lost very easily due to being fully transparent. One fix to that might be to have a 'development mode' macro that locates all tokens with the same name/some other attribute and applies or clears a "Here I am!" state on them to make them visible. (or dynamically changes the underlying image, if that's possible...)

Just locate them and toggle a bright magenta "halo" for them, perhaps?
My form-fillable PDF Character Sheet for Pathfinder can be found here.

User avatar
wolph42
Winter Wolph
Posts: 9999
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: Terrain Overlays for difficult terrain, cover, etc.

Post by wolph42 »

patnodewf wrote:
dewin wrote:These tokens could presumably get lost very easily due to being fully transparent. One fix to that might be to have a 'development mode' macro that locates all tokens with the same name/some other attribute and applies or clears a "Here I am!" state on them to make them visible. (or dynamically changes the underlying image, if that's possible...)
Just locate them and toggle a bright magenta "halo" for them, perhaps?
smart one!
lmarkus001 wrote:So then a similar technique could be used. Use a single pixel transparent image token, apply desired terrain state icon to that token, then place that token on the Background/Object layer. In this way, your maps can be generated any way you choose, but then you can apply terrain for any grid-resolution map in a standardized manner. And if you wanted to get fancier, you could then detect terrain types and impact token movement as appropriate (Wolf42s Bag of Tricks would make this fairly easy I think!).


Hummm... dewin already said as much!
Yup, CIF just pm-ed me as he's considering doing terrain movement, and then this post pop-up again. The boT already contains a movement limiter macro, I think its fairly easy to add extra code to take this into account. This could be done with an eventPad however if you're gonna cover entire terrains then you might need a lot of token to fill that terrain (unless its rectangular in which case you only need one). I fyou use a lot of pads on a map its going to impede on performance.
Methods to implement;
- the eventpad flags a state (e.g. slowed) on the token as soon as you move onto it and the movement limiter checks for this state and calculates accordingly. The big flaw here is that if you run 20 yards of which 10 yards difficult terrain (so you start and end on normal terrain), the mov. limiter is never triggered.
- the eventpad adds to some counter as soon as you move onto OR over it, counting the steps you make on the token. The movement limiter then checks this property on the token and adjusts the tokens position to the maximum allowed path length for that turn. You will have the issue of diagonal movement, not sure how to take that into account. Of course if you only have 1 large eventPad then its easy, but if you have several over a landscape then this will become tricky.
Anyway the eventPad uses this:

Code: Select all

[h: eventPadTriggered = movedOverToken(padName,lastPath)] 
which result in the path ON the eventpad and passes that as an argument to the linked event macro:

Code: Select all

[h:args = json.append("", tok, eventType, padName, lastPath, eventPadTriggered, 'pad')] 
so by retrieving arg(4) you have the path traversed over that 'eventPad'. Which you can use for the distance counter.

I hope this makes sense. If not, just shoot here.

EDIT: ah, just checked something and... its a bit trickier then I expected. the movementlimiter is executed BEFORE the pads are checked. For obvious reasons, cause you can't fall e.g. into a pit that you could never reach that round!!
So... it requires a bit more coding: you will need to write your own movelimiter and link it to 'After Token Move' event in the settings. Of course this has the drawback that you WILL fall into that pit that you could never reach. And there is no solution for this as the traps and pits are eventPads as well, so you cannot do any check before or after.

well... there *is* obviously a way, but that would require you to create your own special pads e.g. 'difficult terrain n' where 'n' is a number and cycle through these yourself using the piece of code here above (get the path walked over the pads) and hook that in the BoT *before* the movement limiter!!
Currently there exists no macro hook at that spot, but that's easily fixed IF someone actually wants to walk this path :P
Edit 2: ah the extra event hook is not necessary, you can use the movement limiter macro itself to check the 'difficult terrain pads'.

User avatar
Bone White
Great Wyrm
Posts: 1124
Joined: Tue Aug 23, 2011 11:41 am
Location: Cornwall, UK

Re: Terrain Overlays for difficult terrain, cover, etc.

Post by Bone White »

In my campaign, movement is limited through onTokenMove, and skill checks / attacks automatically look at the name of the terrain overlay tile, or the background tile name, for any reason to adjust the skill check e.g. light_cover_512 background tile will incur a +1 penalty to being shot at, but will not affect skill checks.

Because the skill checks are not made during the token move, then the modifiers are applied correctly when you run attacks/skill checks after or before your move.

If memory serves me correctly, my movement limit code is what wolph42 adapted for his bag of tricks.

User avatar
CoveredInFish
Demigod
Posts: 3104
Joined: Mon Jun 29, 2009 10:37 am
Location: Germany
Contact:

Re: Terrain Overlays for difficult terrain, cover, etc.

Post by CoveredInFish »

Okay ... I hacked wolphs Bag of Tricks a bit so that his move limiting macro can support my ideas of movement tracking.
This includes additional cost for difficult terrain. I made it easy for me as in each cell of difficult terrain just causes a constant bonus of +1 to the cost, so I didnt care about diagonal move cost.

To work the code requires a "difficult terrain" state on the terrain overlay token - the tokens will be placed on OBJECT layer.

I get all tokens that have that state and are on object layer. Each of this tokens is tested with movedOverToken() and a difficult-terrain-malus is calculated by that. The rest is mostly wolph's orignal code just fitted to my property set and changed a bit in appearance. I had to add that a move taken reduce the allowed movement for a token,

Code: Select all

[h:'<!-- limitMovementMacro --> <!-- IGNORE OUTPUT , NO NEW SCOPE-->']

[h: useLimit = getLibProperty("limitMove", "Lib:swMods")]

[tok = getSelectedNames()]
[h,if(listCount(tok) > 1), CODE:{
	<!-- multiple tokens are moved -->
	<!-- get first token from list of selected tokens and make that token current token -->
	[tok = listGet(tok, 0)]
	[switchToken(tok)]
	<!-- variable to check if a single token is moved or multiple -->
	[singleMove = 0]
};{
	<!-- single token is moved -->
	[singleMove = 1]
}]


[h: terrainTokens = getTokens(",", json.set("", 
	"layer", "OBJECT", 
	"setStates", json.append("", "difficult terrain")
))]
[h: enteredCells = json.remove(lastPath, 0)]
[h: hitCells = 0]
[h, foreach(id, terrainTokens), code: {
	[h: cellsHit = json.length(movedOverToken(id, enteredCells))]
	[h, if(cellsHit>0): hitCells = hitCells+1]
}]

[h: modUsedMove = usedMove + hitCells]

[h,if( !isGM() && useLimit &&  usedMove ), code: {
	[if( modUsedMove > getPace()), CODE: {
		[broadcast(strformat(
			"You moved <i>%{tok}</i> <b>%{usedMove}%s</b> cells. The maximum allowed movement is %s cells.", if(hitCells>0, " (+"+hitCells+" diff. terrain)", ""), sw.tooltip(getPace(), cif.sw.getPaceTooltip())
		))]
		[tokens.denyMove = 1]
		[doAbort = 1]
		[resetMove = 1]
		[lastPath = "[]"]
		[if(singleMove): currentLocation = startingLocation]
	};{
		[h: CurrentPace = CurrentPace - modUsedMove]
		[broadcast(strformat(
			"You moved <i>%{tok}</i> <b>%{usedMove}%s</b> cells. Your remaining pace is %s.", if(hitCells>0, " (+"+hitCells+" diff. terrain)", ""), sw.tooltip(getPace(), cif.sw.getPaceTooltip())
		))]	
	}]
};{}]

There is some stuff specific to my savage worlds framework.

Each token has a "Pace" value that holds the maximum movement and a "CurrentPace" value that holds the allowed movement that is left. CurrentPace is reduced by the "Limit movement" macro and is resetted to Pace by my initiative handler.
Is use some UDF as getPace(), that returns calculated modified pace considerung wounds and other relevant states; and 2 tooltip-functions for eye candy.

Thx to wolph42 for helping me on this.

Post Reply

Return to “Tilesets, Token Libraries, and Complete Maps”