
[tilespec]

; Format and options of this tilespec file:
options = "+Freeciv-tilespec-3.3-Devel-2024-Nov-16"

; A simple name for the tileset specified by this file:
name = "Toonhex"
; Based on hexemplio, which in turn is based on
; amplio2hexgbig by GriffonSpade

priority = 3

; There`s no separate versioning in tilesets part of main freeciv distribution
;version = ""

; Summary and full description of the tileset.
summary = _("Large iso-hex tileset combining Hexemplio's terrains \
and Cimpletoon's units with orientation.")
;description = ""

; TODO: add more overall information fields on tiles,
; eg, authors, colors, etc.

; What is the primary ruleset this tileset is meant for.
;for_ruleset = ""

; Basic tile sizes:
normal_tile_width  = 126
normal_tile_height = 64
small_tile_width   = 15
small_tile_height  = 20

; The height svg flags should be drawn to, if they are used
svg_height = 44

; Basic tile style.
hex_side = 16
is_hex = TRUE
type = "isometric"

; Use old iso style
fog_style      = "Auto"

; Was darkness style "IsoRect" (single-sprite)
darkness_style = "CardinalSingle"

; offset the flags by this amount when drawing units
unit_flag_offset_x = 45
unit_flag_offset_y = 39
city_flag_offset_x = 41
city_flag_offset_y = 10

; offset the city occupied sprite by this amount
occupied_offset_x = 0
occupied_offset_y = 0

; offset the units by this amount
unit_offset_x = 34
unit_offset_y = 38

; offset of the normal activity icons
activity_offset_x = 74
activity_offset_y = 28

; offset of the selected unit sprites
select_offset_x = 0
select_offset_y = 21

; offset of the unit stack size number sprites
stack_size_offset_x = 32
stack_size_offset_y = 25

; offset the cities by this amount
city_offset_x = 17
city_offset_y = 21

; offset the city size number by this amount
; This is relative to full sprite origin.
city_size_offset_x = 0
city_size_offset_y = 0

; offset the city bar text by this amount (from the city tile origin)
citybar_offset_y = 40

; offset the tile label text by this amount
tilelabel_offset_y = 20

; offset the upkeep icons by this amount from the top of the unit itself.
; The default is the normal tile height, which means that the upkeep icons
; appear below the unit icon if the unit icons are equal to tile height
; (typical in overhead tileset), or overlay lower part of the unit icon,
; if unit icon is higher than tiles (typical in iso tilesets)
;unit_upkeep_offset_y = 0

; Like unit_upkeep_offset_y, but to be used in case there`s only small
; space for the overall icon produced. Defaults to unit_upkeep_offset_y -
; not having alternative layout.
;unit_upkeep_small_offset_y = 0

; For tilesets with oriented units, the directional sprite to use to
; represent a unit type rather than a specific unit from the map
; (e.g., in worklists, editor, and online help). Does not have to be a
; valid direction for the tileset.
unit_default_orientation = "s"

; How long (number of refreshes) it takes to move from an animation
; frame to the next.
time_per_frame = 3

; The map is rendered in "layers", just like any decent image editor
; supports. The setting below allows to change the layer drawing order. The
; first layer in the list will be drawn below the others; the second on top
; of it, and so on. No layer can be omitted from the list, nor can new ones
; be added.
layer_order =
  "Background", ; Background color (if enabled, the player color where there
                ; are units or cities). You probably want to leave this
                ; first.
  "Terrain1",   ; The three terrain layers. See sections [layerN] below.
  "Terrain2",
  "Darkness",   ; Darkness (unseen tiles)
  "Terrain3",
  "Water",      ; All extras with "River" style.
  "Roads",      ; All extras with style "RoadAllSeparate",
                ; "RoadParityCombined" or "RoadAllCombined".
  "Special1",   ; 1st layer for extras with style "3Layers", "Single2" or
                ; "Single1".
  "Grid1",      ; Grid layer for isometric tilesets.
  "City1",      ; City and walls.
  "Special2",   ; 2nd layer for extras with "3Layers" and "Single2" styles.
  "Fog",        ; Fog of war (on tiles one knows but doesn`t see).
  "Unit",       ; Units except the selected one(s).
  "Special3",   ; 3rd layer for extras with "3Layers" style, and base flags.
  "City2",      ; City size when the city bar is disabled.
  "Grid2",      ; Second grid layer (overhead tilesets only).
  "Overlays",   ; Tile output sprites.
  "TileLabel",  ; Tile labels ("Scorched spot").
  "CityBar",    ; The city bar with name, production, food, ...
  "FocusUnit",  ; The focused unit(s).
  "Goto",       ; Goto turn count and intermediate points, *not* goto lines.
  "WorkerTask", ; The unit task indicators ("G", "S", ...).
  "Editor",     ; Editor stuff (selected tile and start points).
  "InfraWork"   ; Icons for the extras being placed.

; This is special because it gets freed and reloaded as required:
main_intro_file    = "misc/intro"

; Below, the graphics spec files; must be somewhere (anywhere) in
; the data path. Order may be important for color allocation on
; low-color systems, and if there are any duplicate tags (lattermost
; tag is used).

files =
  "misc/overlays.spec",
  "misc/citybar.spec",
  "misc/small.spec",
  "misc/governments.spec",
  "misc/specialists.spec",
  "misc/events.spec",
  "misc/buildings-large.spec",
  "misc/wonders-large.spec",
  "misc/shields-large.spec",
  "misc/cursors.spec",
  "misc/space.spec",
  "misc/techs.spec",
  "misc/treaty.spec",
  "misc/icons.spec",
  "misc/editor.spec",
  "cimpletoon/orient_units.spec",
  "cimpletoon/units/storm/xxx.spec",
  "amplio2/nuke.spec",
  "amplio2/explosions.spec",
  "hexemplio/activities.spec",
  "hexemplio/bases.spec",
  "hexemplio/cities.spec",
  "hexemplio/terrain.spec",
  "hexemplio/savannah.spec",
  "hexemplio/embellishments.spec",
  "hexemplio/forests.spec",
  "hexemplio/hills.spec",
  "hexemplio/mountains.spec",
  "hexemplio/tiles.spec",
  "hexemplio/grid.spec",
  "hexemplio/rivers.spec",
  "hexemplio/roads.spec",
  "hexemplio/roads-rails.spec",
  "hexemplio/roads-maglevs.spec",
  "hexemplio/unitextras.spec",
  "hexemplio/unitcost.spec",
  "hexemplio/select.spec",
  "hexemplio/water1.spec",
  "hexemplio/water2.spec",
  "hexemplio/water3.spec",
  ; Add XYZ and Elefant units
  "cimpletoon/units/abrams/xxx.spec",
  "cimpletoon/units/assaultgun/xxx.spec",
  "cimpletoon/units/biplane/xxx.spec",
  "cimpletoon/units/container_ship/xxx.spec",
  "cimpletoon/units/flak88/xxx.spec",
  "cimpletoon/units/icebreaker/xxx.spec",
  "cimpletoon/units/light_howitzer/xxx.spec",
  "cimpletoon/units/locomotive/xxx.spec",
  "cimpletoon/units/m4sherman/xxx.spec",
  "cimpletoon/units/mig15/xxx.spec",
  "cimpletoon/units/missile_sub/xxx.spec",
  "cimpletoon/units/panther/xxx.spec",
  "cimpletoon/units/panzer_iii/xxx.spec",
  "cimpletoon/units/pt-boat/xxx.spec",
  "cimpletoon/units/ROMB/xxx.spec",
  "cimpletoon/units/stationary_sam/xxx.spec",
  "cimpletoon/units/steamer/xxx.spec",
  "cimpletoon/units/technical/xxx.spec",
  "cimpletoon/units/tiger/xxx.spec",
  "cimpletoon/units/truck/xxx.spec",
  "cimpletoon/units/zeppelin/xxx.spec"

files_svg =
  "misc/flags.spec"

files_pixel =
  "misc/flags-large.spec"


; Include color definitions
*include "misc/colors.tilespec"

; Terrain info - see README.graphics

[layer0]
match_types = "floor", "coast", "lake"

[layer1]
match_types = "water", "land"

[layer2]
match_types = "hills", "foliage"

; Water graphics referenced by terrain.ruleset
;

[tile_lake]
tag = "lake"
blend_layer = 2
num_layers = 2
layer0_match_type = "lake"
layer0_match_with = "lake"
layer0_sprite_type = "corner"
layer1_match_type = "water"
layer1_match_with = "water"
layer1_sprite_type = "corner"

[tile_coast]
tag = "coast"
blend_layer = 2
num_layers = 2
layer0_match_type = "coast"
layer1_match_type = "water"
layer1_match_with = "water"
layer1_sprite_type = "corner"

[tile_floor]
tag = "floor"
blend_layer = 2
num_layers = 2
layer0_match_type = "floor"
layer0_match_with = "floor"
layer0_sprite_type = "corner"
layer1_match_type = "water"
layer1_match_with = "water"
layer1_sprite_type = "corner"

[tile_inaccessible]
tag = "inaccessible"
blend_layer = 0
num_layers = 2
layer0_match_type = "floor"
layer1_match_type = "land"

; Land graphics referenced by terrain.ruleset
;

[tile_arctic]
tag = "arctic"
blend_layer = 0
num_layers = 2
layer0_match_type = "lake"
layer1_match_type = "water"

[tile_desert]
tag = "desert"
blend_layer = 1
num_layers = 2
layer0_match_type = "lake"
layer1_match_type = "land"

[tile_forest]
tag = "forest"
blend_layer = 1
num_layers = 3
layer0_match_type = "lake"
layer1_match_type = "land"
layer2_match_type = "foliage"
layer2_match_with = "foliage"

[tile_grassland]
tag = "grassland"
blend_layer = 1
num_layers = 2
layer0_match_type = "lake"
layer1_match_type = "land"

[tile_hills]
tag = "hills"
blend_layer = 1
num_layers = 3
layer0_match_type = "lake"
layer1_match_type = "land"
layer2_match_type = "hills"
layer2_match_with = "hills"

[tile_jungle]
tag = "jungle"
blend_layer = 1
num_layers = 3
layer0_match_type = "lake"
layer1_match_type = "land"
layer2_match_type = "foliage"
layer2_match_with = "foliage"

[tile_savannah]
tag = "savannah"
blend_layer = 1
num_layers = 3
layer0_match_type = "lake"
layer1_match_type = "land"
layer2_match_type = "foliage"
layer2_match_with = "foliage"

[tile_mountains]
tag = "mountains"
blend_layer = 1
num_layers = 3
layer0_match_type = "lake"
layer1_match_type = "land"
layer2_match_type = "hills"
layer2_match_with = "hills"

[tile_plains]
tag = "plains"
blend_layer = 1
num_layers = 2
layer0_match_type = "lake"
layer1_match_type = "land"

[tile_swamp]
tag = "swamp"
blend_layer = 1
num_layers = 2
layer0_match_type = "lake"
layer1_match_type = "land"

[tile_tundra]
tag = "tundra"
blend_layer = 1
num_layers = 2
layer0_match_type = "lake"
layer1_match_type = "land"

[extras]
styles =
    { "name",          "style"
      "road.road",     "RoadAllSeparate"
      "road.rail",     "RoadAllCombined"
      "road.maglev",   "RoadAllCombined"
      "road.pave",     "RoadAllSeparate"
      "road.river",    "River"
      "tx.irrigation", "River"
      "tx.farmland",   "River"
      "tx.mine",       "Single1"
      "tx.oil_mine",   "Single1"
      "tx.oil_rig",    "Single1"
      "tx.pollution",  "Single2"
      "tx.fallout",    "Single2"
      "tx.village",    "Single1"
      "tx.nets",       "Single1"
      "base.outpost",  "3Layer"
      "base.fortress", "3Layer"
      "base.airstrip", "3Layer"
      "base.airbase",  "3layer"
      "base.buoy",     "3layer"
      "extra.ruins",   "3layer"
      "ts.gold",       "Single1"
      "ts.iron",       "Single1"
      "ts.tundra_game", "Single1"
      "ts.furs",       "Single1"
      "ts.coal",       "Single1"
      "ts.fish",       "Single1"
      "ts.fruit",      "Single1"
      "ts.gems",       "Single1"
      "ts.buffalo",    "Single1"
      "ts.wheat",      "Single1"
      "ts.oasis",      "Single1"
      "ts.peat",       "Single1"
      "ts.pheasant",   "Single1"
      "ts.grassland_resources", "Single1"
      "ts.arctic_ivory", "Single1"
      "ts.silk",       "Single1"
      "ts.spice",      "Single1"
      "ts.whales",     "Single1"
      "ts.wine",       "Single1"
      "ts.oil",        "Single1"
      "ts.horses",     "Single1"
      "ts.seals",      "Single1"
    }
