1.17 new Fence terrain (#6555)

* palisade terrain (*^Eqp) addition

* make Eqf and Eqp play nice

* try to make barrier fence editor tiles clearer

* get specific terrain codes out of the NEW:FENCE rules

* fence terrain macro cleanup

* better transitions for portals/fences
This commit is contained in:
doofus-01 2022-03-20 20:35:08 -07:00 committed by GitHub
parent 3f41d911f2
commit 3f500e3a4c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
49 changed files with 108 additions and 139 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View file

@ -356,8 +356,13 @@ C*,K*,X*,Q*,W*,Ai,M*,*^V*,*^B*,_off^_usr#enddef
# Fence
{NEW:FENCE *^Eff embellishments/fence}
# Iron Fence is also a barrier, hence the 'q'
{NEW:FENCE *^Eqf embellishments/fence-iron LAYER=0 BASE=108,144 CENTER=90,168 FLAG=ironfence ALTERNATE=*^P*,X*}
# Iron Fence is also a barrier, hence the 'q' - let's reserve the Eq* patterns for similar things
{NEW:FENCE *^Eqf embellishments/fence-iron LAYER=0 BASE=108,144 CENTER=90,168 ALTERNATE=*^Eqp,*^P*,X*}
{NEW:FENCE *^Eqp embellishments/fence-palisade LAYER=0 BASE=108,144 CENTER=90,168 ALTERNATE=*^Eqf,*^P*,X*}
# {NEW:FENCE_POST *^Eqf (Q*) embellishments/fence-iron-chasm LAYER=0 BASE=108,144 CENTER=90,168 }
{NEW:FENCE_POST *^Eqf (*^P*) embellishments/fence-iron-portal LAYER=0 BASE=108,144 CENTER=90,168 }
{NEW:FENCE_POST *^Eqp (Q*) embellishments/fence-palisade-chasm LAYER=0 BASE=108,144 CENTER=90,168 }
{NEW:FENCE_POST *^Eqp (*^P*) embellishments/fence-palisade-portal LAYER=0 BASE=108,144 CENTER=90,168 }
# Illuminated caves
{NEW:OVERLAY (*^Ufi,*^Ii,*^Tfi) cave/beam FLAG=light LAYER=1}
@ -430,23 +435,23 @@ C*,K*,X*,Q*,W*,Ai,M*,*^V*,*^B*,_off^_usr#enddef
#closed (impassable)
{GATES_VERTICAL_NS_L (*^Pr|) (X*,*^Eqf) 0 () portals/gate-rusty}
{GATES_DIAGONAL_SW_L (*^Pr\) (X*,*^Eqf) 0 () portals/gate-rusty}
{GATES_DIAGONAL_SE_L (*^Pr/) (X*,*^Eqf) 0 () portals/gate-rusty}
{GATES_VERTICAL_NS_L (*^Pr|) (X*,*^Eq*) 0 () portals/gate-rusty}
{GATES_DIAGONAL_SW_L (*^Pr\) (X*,*^Eq*) 0 () portals/gate-rusty}
{GATES_DIAGONAL_SE_L (*^Pr/) (X*,*^Eq*) 0 () portals/gate-rusty}
{GATES_VERTICAL_NS_L (*^Pw|) (X*,*^Eqf) 0 () portals/door-wooden}
{GATES_DIAGONAL_SW_L (*^Pw\) (X*,*^Eqf) 0 () portals/door-wooden}
{GATES_DIAGONAL_SE_L (*^Pw/) (X*,*^Eqf) 0 () portals/door-wooden}
{GATES_VERTICAL_NS_L (*^Pw|) (X*,*^Eq*) 0 () portals/door-wooden}
{GATES_DIAGONAL_SW_L (*^Pw\) (X*,*^Eq*) 0 () portals/door-wooden}
{GATES_DIAGONAL_SE_L (*^Pw/) (X*,*^Eq*) 0 () portals/door-wooden}
#open/embellishment
{GATES_VERTICAL_NS_L (*^Pr|o) (X*,*^Eqf) 0 () portals/gate-rusty-open}
{GATES_DIAGONAL_SW_L (*^Pr\o) (X*,*^Eqf) 0 () portals/gate-rusty-open}
{GATES_DIAGONAL_SE_L (*^Pr/o) (X*,*^Eqf) 0 () portals/gate-rusty-open}
{GATES_VERTICAL_NS_L (*^Pr|o) (X*,*^Eq*) 0 () portals/gate-rusty-open}
{GATES_DIAGONAL_SW_L (*^Pr\o) (X*,*^Eq*) 0 () portals/gate-rusty-open}
{GATES_DIAGONAL_SE_L (*^Pr/o) (X*,*^Eq*) 0 () portals/gate-rusty-open}
{GATES_VERTICAL_NS_L (*^Pw|o) (X*,*^Eqf) 0 () portals/door-wooden-open}
{GATES_DIAGONAL_SW_L (*^Pw\o) (X*,*^Eqf) 0 () portals/door-wooden-open}
{GATES_DIAGONAL_SE_L (*^Pw/o) (X*,*^Eqf) 0 () portals/door-wooden-open}
{GATES_VERTICAL_NS_L (*^Pw|o) (X*,*^Eq*) 0 () portals/door-wooden-open}
{GATES_DIAGONAL_SW_L (*^Pw\o) (X*,*^Eq*) 0 () portals/door-wooden-open}
{GATES_DIAGONAL_SE_L (*^Pw/o) (X*,*^Eq*) 0 () portals/door-wooden-open}
#

View file

@ -1909,6 +1909,13 @@ fence#endarg
#arg ALTERNATE
_fak#endarg
# it doesn't usually look good for the fences to hang out over the chasms
#arg OTHER
Q*#endarg
#arg XHACK
X*,*^V*#endarg
[terrain_graphics]
map="
, *
@ -2244,7 +2251,9 @@ _fak#endarg
[/image]
[/terrain_graphics]
# the next four rules are hacks to make get the iron fence ^Eqf to play nice with walls X*, can't get the layering to work otherwise.
##########################
# the next few rules are hacks to make get the iron fence ^Eqf to play nice with walls X*, can't get the layering to work otherwise.
##########################
[terrain_graphics]
map="
, *
@ -2254,7 +2263,7 @@ _fak#endarg
, *"
[tile]
pos=1
type=X*,*^V*
type={XHACK}
set_flag={FLAG}-X-hack
[/tile]
@ -2275,14 +2284,15 @@ _fak#endarg
[tile]
pos=1
has_flag={FLAG}-X-hack
set_flag={FLAG}-X-hack-ne
set_flag={FLAG}-X-hack-@R1
[/tile]
[tile]
pos=2
type={TERRAINLIST}
has_flag={FLAG}-sw
has_flag={FLAG}-@R4
[/tile]
rotations=n,ne,se,s,sw,nw
[/terrain_graphics]
[terrain_graphics]
map="
@ -2294,14 +2304,15 @@ _fak#endarg
[tile]
pos=1
has_flag={FLAG}-X-hack
set_flag={FLAG}-X-hack-ne
set_flag={FLAG}-X-hack-@R1
[/tile]
[tile]
pos=2
type={TERRAINLIST}
has_flag={FLAG}-ne
has_flag={FLAG}-@R1
[/tile]
rotations=n,ne,se,s,sw,nw
[/terrain_graphics]
[terrain_graphics]
map="
@ -2313,6 +2324,7 @@ _fak#endarg
[tile]
pos=1
has_flag={FLAG}-X-hack-ne
set_no_flag={FLAG}-X-hack-ne-drawn
[/tile]
[image]
@ -2327,44 +2339,6 @@ _fak#endarg
[terrain_graphics]
map="
, *
2, *
, 1
*, *
, *"
[tile]
pos=1
has_flag={FLAG}-X-hack
set_flag={FLAG}-X-hack-nw
[/tile]
[tile]
pos=2
type={TERRAINLIST}
has_flag={FLAG}-se
[/tile]
[/terrain_graphics]
[terrain_graphics]
map="
, *
2, *
, 1
*, *
, *"
[tile]
pos=1
has_flag={FLAG}-X-hack
set_flag={FLAG}-X-hack-nw
[/tile]
[tile]
pos=2
type={TERRAINLIST}
has_flag={FLAG}-nw
[/tile]
[/terrain_graphics]
[terrain_graphics]
map="
, *
*, *
, 1
*, *
@ -2372,6 +2346,7 @@ _fak#endarg
[tile]
pos=1
has_flag={FLAG}-X-hack-nw
set_no_flag={FLAG}-X-hack-nw-drawn
[/tile]
[image]
@ -2388,49 +2363,12 @@ _fak#endarg
, *
*, *
, 1
2, *
, *"
[tile]
pos=1
has_flag={FLAG}-X-hack
set_flag={FLAG}-X-hack-sw
[/tile]
[tile]
pos=2
type={TERRAINLIST}
has_flag={FLAG}-ne
[/tile]
[/terrain_graphics]
[terrain_graphics]
map="
, *
*, *
, 1
2, *
, *"
[tile]
pos=1
has_flag={FLAG}-X-hack
set_flag={FLAG}-X-hack-sw
[/tile]
[tile]
pos=2
type={TERRAINLIST}
has_flag={FLAG}-sw
[/tile]
[/terrain_graphics]
[terrain_graphics]
map="
, *
*, *
, 1
*, *
, *"
[tile]
pos=1
has_flag={FLAG}-X-hack-sw
set_no_flag={FLAG}-X-hack-sw-drawn
[/tile]
[image]
@ -2447,49 +2385,12 @@ _fak#endarg
, *
*, *
, 1
*, 2
, *"
[tile]
pos=1
has_flag={FLAG}-X-hack
set_flag={FLAG}-X-hack-se
[/tile]
[tile]
pos=2
type={TERRAINLIST}
has_flag={FLAG}-nw
[/tile]
[/terrain_graphics]
[terrain_graphics]
map="
, *
*, *
, 1
*, 2
, *"
[tile]
pos=1
has_flag={FLAG}-X-hack
set_flag={FLAG}-X-hack-se
[/tile]
[tile]
pos=2
type={TERRAINLIST}
has_flag={FLAG}-se
[/tile]
[/terrain_graphics]
[terrain_graphics]
map="
, *
*, *
, 1
*, *
, *"
[tile]
pos=1
has_flag={FLAG}-X-hack-se
set_no_flag={FLAG}-X-hack-se-drawn
[/tile]
[image]
@ -2502,6 +2403,12 @@ _fak#endarg
[/image]
[/terrain_graphics]
##########################
# end hack
##########################
##########################
# default end-posts
##########################
[terrain_graphics]
map="
, *
@ -2511,7 +2418,7 @@ _fak#endarg
, *"
[tile]
pos=1
type=!,{TERRAINLIST}
type=!,{TERRAINLIST},{ALTERNATE},{OTHER}
no_flag={FLAG}-X-hack
[/tile]
@ -2533,9 +2440,23 @@ _fak#endarg
[/image]
[/terrain_graphics]
# this last rule fixes some inconsistent behavior,
# that it is needed may be a sign that something above is not written correctly
# but merging it up into the above rule causes problems
#enddef
# special fence transitions
#define NEW:FENCE_POST TERRAINLIST OTHER IMAGESTEM
#arg LAYER
-80#endarg
#arg BASE
90,144#endarg
#arg CENTER
90,144#endarg
#arg FLAG
fence#endarg
[terrain_graphics]
map="
, *
@ -2545,7 +2466,7 @@ _fak#endarg
, *"
[tile]
pos=1
type={ALTERNATE}
type={OTHER}
no_flag={FLAG}-X-hack
[/tile]
@ -2566,6 +2487,38 @@ _fak#endarg
center={CENTER}
[/image]
[/terrain_graphics]
[terrain_graphics]
map="
, *
*, 2
, 1
*, *
, *"
[tile]
pos=1
type={OTHER}
no_flag={FLAG}-X-hack
[/tile]
[tile]
pos=2
type={TERRAINLIST}
has_flag={FLAG}-@R4
[/tile]
rotations=n,ne,se,s,sw,nw
[image]
# wmlscope: start ignoring
name={IMAGESTEM}-@R1.png
# wmlscope: stop ignoring
layer={LAYER}
base={BASE}
center={CENTER}
[/image]
[/terrain_graphics]
#enddef
#define NEW:WALL_CORNER TERRAINLIST ADJACENT IMAGESTEM

View file

@ -504,6 +504,17 @@ Most units receive 20 to 40% defense in sand."
editor_group=embellishments, obstacle
[/terrain_type]
[terrain_type]
symbol_image=void/void
editor_image=embellishments/fence-palisade-tile
id=fence_palisade
name= _ "Palisade"
editor_name= _ "Wooden Palisade"
string=^Eqp
aliasof=Qt
editor_group=embellishments, obstacle
[/terrain_type]
[terrain_type]
symbol_image=embellishments/rocks
id=sand_drifts