Added different city tiles for different locations
@ -3,7 +3,9 @@
|
|||||||
Flag Icons made by [Freepik](https://www.flaticon.com/authors/freepik) from [www.flaticon.com](https://www.flaticon.com)
|
Flag Icons made by [Freepik](https://www.flaticon.com/authors/freepik) from [www.flaticon.com](https://www.flaticon.com)
|
||||||
and licensed by Creative Commons 3.0
|
and licensed by Creative Commons 3.0
|
||||||
|
|
||||||
Tile icons for the "Fantasy Hex" tileset belong to CuddlyClover @ https://cuddlyclover.itch.io/fantasy-hex-tiles
|
Base tile icons for the "Fantasy Hex" tileset belong to CuddlyClover @ https://cuddlyclover.itch.io/fantasy-hex-tiles with a few additions by me
|
||||||
|
|
||||||
|
Trees for the jungle tiles in the "Fantasy Hex" are extracted from [Desert Strike for the Amiga](http://eab.abime.net/showthread.php?t=67078&styleid=4)
|
||||||
|
|
||||||
Tile icons for the "ThorfMaps tileset belong to Thorfinn Tait and are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Based on work at www.thorfmaps.com.
|
Tile icons for the "ThorfMaps tileset belong to Thorfinn Tait and are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Based on work at www.thorfmaps.com.
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 613 B After Width: | Height: | Size: 613 B |
BIN
android/Images/TileSets/FantasyHex/Desert+City.png
Normal file
After Width: | Height: | Size: 823 B |
BIN
android/Images/TileSets/FantasyHex/Grassland+City.png
Normal file
After Width: | Height: | Size: 876 B |
BIN
android/Images/TileSets/FantasyHex/Hill+City.png
Normal file
After Width: | Height: | Size: 876 B |
BIN
android/Images/TileSets/FantasyHex/Plains+City.png
Normal file
After Width: | Height: | Size: 864 B |
BIN
android/Images/TileSets/FantasyHex/Railroad.png
Normal file
After Width: | Height: | Size: 613 B |
BIN
android/Images/TileSets/FantasyHex/Tundra+City.png
Normal file
After Width: | Height: | Size: 929 B |
BIN
android/Images/TileSets/ThorfMaps/City.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
android/Images/TileSets/ThorfMaps/Railroad.png
Normal file
After Width: | Height: | Size: 613 B |
@ -746,7 +746,21 @@ ImprovementIcons/Railroad
|
|||||||
orig: 100, 100
|
orig: 100, 100
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
OtherIcons/Railroad
|
TileSets/Default/Railroad
|
||||||
|
rotate: false
|
||||||
|
xy: 1938, 824
|
||||||
|
size: 100, 100
|
||||||
|
orig: 100, 100
|
||||||
|
offset: 0, 0
|
||||||
|
index: -1
|
||||||
|
TileSets/FantasyHex/Railroad
|
||||||
|
rotate: false
|
||||||
|
xy: 1938, 824
|
||||||
|
size: 100, 100
|
||||||
|
orig: 100, 100
|
||||||
|
offset: 0, 0
|
||||||
|
index: -1
|
||||||
|
TileSets/ThorfMaps/Railroad
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1938, 824
|
xy: 1938, 824
|
||||||
size: 100, 100
|
size: 100, 100
|
||||||
@ -788,13 +802,6 @@ OtherIcons/Circle
|
|||||||
orig: 178, 178
|
orig: 178, 178
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
OtherIcons/City
|
|
||||||
rotate: false
|
|
||||||
xy: 306, 946
|
|
||||||
size: 100, 100
|
|
||||||
orig: 100, 100
|
|
||||||
offset: 0, 0
|
|
||||||
index: -1
|
|
||||||
OtherIcons/Crosshair
|
OtherIcons/Crosshair
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 640, 1438
|
xy: 640, 1438
|
||||||
@ -1175,21 +1182,21 @@ PolicyIcons/Total War
|
|||||||
index: -1
|
index: -1
|
||||||
PolicyIcons/Trade Unions
|
PolicyIcons/Trade Unions
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1458, 533
|
xy: 1458, 532
|
||||||
size: 50, 50
|
size: 50, 50
|
||||||
orig: 50, 50
|
orig: 50, 50
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
PolicyIcons/Universal Suffrage
|
PolicyIcons/Universal Suffrage
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1458, 481
|
xy: 1458, 480
|
||||||
size: 50, 50
|
size: 50, 50
|
||||||
orig: 50, 50
|
orig: 50, 50
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
PolicyIcons/Warrior Code
|
PolicyIcons/Warrior Code
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1458, 429
|
xy: 1458, 428
|
||||||
size: 50, 50
|
size: 50, 50
|
||||||
orig: 50, 50
|
orig: 50, 50
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@ -2013,6 +2020,20 @@ TechIcons/Writing
|
|||||||
orig: 100, 100
|
orig: 100, 100
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
|
TileSets/Default/City
|
||||||
|
rotate: false
|
||||||
|
xy: 306, 946
|
||||||
|
size: 100, 100
|
||||||
|
orig: 100, 100
|
||||||
|
offset: 0, 0
|
||||||
|
index: -1
|
||||||
|
TileSets/ThorfMaps/City
|
||||||
|
rotate: false
|
||||||
|
xy: 306, 946
|
||||||
|
size: 100, 100
|
||||||
|
orig: 100, 100
|
||||||
|
offset: 0, 0
|
||||||
|
index: -1
|
||||||
TileSets/Default/CrosshatchHexagon
|
TileSets/Default/CrosshatchHexagon
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 2, 1568
|
xy: 2, 1568
|
||||||
@ -2155,7 +2176,21 @@ TileSets/ThorfMaps/road
|
|||||||
index: -1
|
index: -1
|
||||||
TileSets/FantasyHex/City
|
TileSets/FantasyHex/City
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1458, 585
|
xy: 1492, 584
|
||||||
|
size: 32, 35
|
||||||
|
orig: 32, 35
|
||||||
|
offset: 0, 0
|
||||||
|
index: -1
|
||||||
|
TileSets/FantasyHex/Grassland+City
|
||||||
|
rotate: false
|
||||||
|
xy: 1492, 584
|
||||||
|
size: 32, 35
|
||||||
|
orig: 32, 35
|
||||||
|
offset: 0, 0
|
||||||
|
index: -1
|
||||||
|
TileSets/FantasyHex/Hill+City
|
||||||
|
rotate: false
|
||||||
|
xy: 1492, 584
|
||||||
size: 32, 35
|
size: 32, 35
|
||||||
orig: 32, 35
|
orig: 32, 35
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@ -2174,23 +2209,30 @@ TileSets/FantasyHex/Desert
|
|||||||
orig: 32, 28
|
orig: 32, 28
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
|
TileSets/FantasyHex/Desert+City
|
||||||
|
rotate: false
|
||||||
|
xy: 1966, 1135
|
||||||
|
size: 32, 35
|
||||||
|
orig: 32, 35
|
||||||
|
offset: 0, 0
|
||||||
|
index: -1
|
||||||
TileSets/FantasyHex/Desert+Flood plains
|
TileSets/FantasyHex/Desert+Flood plains
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1458, 365
|
xy: 1458, 327
|
||||||
size: 32, 28
|
size: 32, 28
|
||||||
orig: 32, 28
|
orig: 32, 28
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
TileSets/FantasyHex/Desert+Oasis
|
TileSets/FantasyHex/Desert+Oasis
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1560, 591
|
xy: 912, 30
|
||||||
size: 32, 28
|
size: 32, 28
|
||||||
orig: 32, 28
|
orig: 32, 28
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
TileSets/FantasyHex/Grassland
|
TileSets/FantasyHex/Grassland
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 878, 30
|
xy: 946, 30
|
||||||
size: 32, 28
|
size: 32, 28
|
||||||
orig: 32, 28
|
orig: 32, 28
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@ -2204,7 +2246,7 @@ TileSets/FantasyHex/Grassland+Forest
|
|||||||
index: -1
|
index: -1
|
||||||
TileSets/FantasyHex/Grassland+Jungle
|
TileSets/FantasyHex/Grassland+Jungle
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1492, 585
|
xy: 1526, 585
|
||||||
size: 32, 34
|
size: 32, 34
|
||||||
orig: 32, 34
|
orig: 32, 34
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@ -2218,7 +2260,7 @@ TileSets/FantasyHex/Grassland+Marsh
|
|||||||
index: -1
|
index: -1
|
||||||
TileSets/FantasyHex/Hill
|
TileSets/FantasyHex/Hill
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1458, 395
|
xy: 1458, 357
|
||||||
size: 32, 32
|
size: 32, 32
|
||||||
orig: 32, 32
|
orig: 32, 32
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@ -2232,56 +2274,70 @@ TileSets/FantasyHex/Hill+Forest
|
|||||||
index: -1
|
index: -1
|
||||||
TileSets/FantasyHex/Lakes
|
TileSets/FantasyHex/Lakes
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1458, 335
|
xy: 980, 30
|
||||||
size: 32, 28
|
size: 32, 28
|
||||||
orig: 32, 28
|
orig: 32, 28
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
TileSets/FantasyHex/Mountain
|
TileSets/FantasyHex/Mountain
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 132, 542
|
xy: 1458, 584
|
||||||
size: 32, 36
|
size: 32, 36
|
||||||
orig: 32, 36
|
orig: 32, 36
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
TileSets/FantasyHex/Ocean
|
TileSets/FantasyHex/Ocean
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 912, 30
|
xy: 1014, 30
|
||||||
size: 32, 28
|
size: 32, 28
|
||||||
orig: 32, 28
|
orig: 32, 28
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
TileSets/FantasyHex/Plains
|
TileSets/FantasyHex/Plains
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 946, 30
|
xy: 1048, 30
|
||||||
size: 32, 28
|
size: 32, 28
|
||||||
orig: 32, 28
|
orig: 32, 28
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
|
TileSets/FantasyHex/Plains+City
|
||||||
|
rotate: false
|
||||||
|
xy: 810, 23
|
||||||
|
size: 32, 35
|
||||||
|
orig: 32, 35
|
||||||
|
offset: 0, 0
|
||||||
|
index: -1
|
||||||
TileSets/FantasyHex/Plains+Forest
|
TileSets/FantasyHex/Plains+Forest
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 810, 25
|
xy: 844, 25
|
||||||
size: 32, 33
|
size: 32, 33
|
||||||
orig: 32, 33
|
orig: 32, 33
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
TileSets/FantasyHex/Plains+Jungle
|
TileSets/FantasyHex/Plains+Jungle
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1966, 1135
|
xy: 1458, 391
|
||||||
size: 32, 35
|
size: 32, 35
|
||||||
orig: 32, 35
|
orig: 32, 35
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
TileSets/FantasyHex/Tundra
|
TileSets/FantasyHex/Tundra
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1526, 587
|
xy: 1560, 587
|
||||||
size: 32, 32
|
size: 32, 32
|
||||||
orig: 32, 32
|
orig: 32, 32
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
|
TileSets/FantasyHex/Tundra+City
|
||||||
|
rotate: false
|
||||||
|
xy: 132, 541
|
||||||
|
size: 32, 37
|
||||||
|
orig: 32, 37
|
||||||
|
offset: 0, 0
|
||||||
|
index: -1
|
||||||
TileSets/FantasyHex/Tundra+Forest
|
TileSets/FantasyHex/Tundra+Forest
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 844, 26
|
xy: 878, 26
|
||||||
size: 32, 32
|
size: 32, 32
|
||||||
orig: 32, 32
|
orig: 32, 32
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@ -2799,7 +2855,7 @@ UnitPromotionIcons/Boarding_Party_I_(Civ5)
|
|||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Bombardment_III_(Civ5)
|
UnitPromotionIcons/Bombardment_III_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 980, 38
|
xy: 1082, 38
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@ -2834,7 +2890,7 @@ UnitPromotionIcons/Coastal_Raider_III_(Civ5)
|
|||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Coastal_Raider_II_(Civ5)
|
UnitPromotionIcons/Coastal_Raider_II_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1002, 38
|
xy: 1104, 38
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@ -2855,7 +2911,7 @@ UnitPromotionIcons/Cover_II_(Civ5)
|
|||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Cover_I_(Civ5)
|
UnitPromotionIcons/Cover_I_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1024, 38
|
xy: 1126, 38
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@ -2869,7 +2925,7 @@ UnitPromotionIcons/Drill_III_(Civ5)
|
|||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Drill_II_(Civ5)
|
UnitPromotionIcons/Drill_II_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1046, 38
|
xy: 1148, 38
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@ -2883,7 +2939,7 @@ UnitPromotionIcons/Drill_I_(Civ5)
|
|||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Formation_II_(Civ5)
|
UnitPromotionIcons/Formation_II_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1068, 38
|
xy: 1170, 38
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@ -2897,7 +2953,7 @@ UnitPromotionIcons/Formation_I_(Civ5)
|
|||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Indirect_Fire_(Civ5)
|
UnitPromotionIcons/Indirect_Fire_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1090, 38
|
xy: 1192, 38
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@ -2911,7 +2967,7 @@ UnitPromotionIcons/Logistics_(Civ5)
|
|||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/March_(Civ5)
|
UnitPromotionIcons/March_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1112, 38
|
xy: 1214, 38
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@ -2925,7 +2981,7 @@ UnitPromotionIcons/Mobility_(Civ5)
|
|||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Range_(Civ5)
|
UnitPromotionIcons/Range_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1134, 38
|
xy: 1236, 38
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@ -2939,98 +2995,98 @@ UnitPromotionIcons/Scouting_III_(Civ5)
|
|||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Scouting_II_(Civ5)
|
UnitPromotionIcons/Scouting_II_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1156, 38
|
xy: 1258, 38
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Scouting_I_(Civ5)
|
UnitPromotionIcons/Scouting_I_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1178, 38
|
xy: 1280, 38
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Sentry_(Civ5)
|
UnitPromotionIcons/Sentry_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1200, 38
|
xy: 1302, 38
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Shock_III_(Civ5)
|
UnitPromotionIcons/Shock_III_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1222, 38
|
xy: 1324, 38
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Shock_II_(Civ5)
|
UnitPromotionIcons/Shock_II_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1244, 38
|
xy: 1346, 38
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Shock_I_(Civ5)
|
UnitPromotionIcons/Shock_I_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1266, 38
|
xy: 2000, 1150
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Siege_(Civ5)
|
UnitPromotionIcons/Siege_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1288, 38
|
xy: 1492, 406
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Targeting_III_(Civ5)
|
UnitPromotionIcons/Targeting_III_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1310, 38
|
xy: 1492, 384
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Targeting_II_(Civ5)
|
UnitPromotionIcons/Targeting_II_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1332, 38
|
xy: 1492, 362
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Targeting_I_(Civ5)
|
UnitPromotionIcons/Targeting_I_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 2000, 1150
|
xy: 1492, 340
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Volley_(Civ5)
|
UnitPromotionIcons/Volley_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1492, 407
|
xy: 442, 752
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Wolfpack_III_(Civ5)
|
UnitPromotionIcons/Wolfpack_III_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1492, 385
|
xy: 1510, 562
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Wolfpack_II_(Civ5)
|
UnitPromotionIcons/Wolfpack_II_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1492, 363
|
xy: 1510, 540
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
UnitPromotionIcons/Wolfpack_I_(Civ5)
|
UnitPromotionIcons/Wolfpack_I_(Civ5)
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 1492, 341
|
xy: 1510, 518
|
||||||
size: 20, 20
|
size: 20, 20
|
||||||
orig: 20, 20
|
orig: 20, 20
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
|
Before Width: | Height: | Size: 931 KiB After Width: | Height: | Size: 940 KiB |
@ -17,7 +17,7 @@ class UnCivGame : Game() {
|
|||||||
* This exists so that when debugging we can see the entire map.
|
* This exists so that when debugging we can see the entire map.
|
||||||
* Remember to turn this to false before commit and upload!
|
* Remember to turn this to false before commit and upload!
|
||||||
*/
|
*/
|
||||||
val viewEntireMapForDebug = true
|
val viewEntireMapForDebug = false
|
||||||
|
|
||||||
// For when you need to test something in an advanced game and don't have time to faff around
|
// For when you need to test something in an advanced game and don't have time to faff around
|
||||||
val superchargedForDebug = false
|
val superchargedForDebug = false
|
||||||
|
@ -114,6 +114,7 @@ class CivilizationInfo {
|
|||||||
|
|
||||||
fun getCapital()=cities.first { it.isCapital() }
|
fun getCapital()=cities.first { it.isCapital() }
|
||||||
fun isPlayerCivilization() = playerType==PlayerType.Human
|
fun isPlayerCivilization() = playerType==PlayerType.Human
|
||||||
|
fun isCurrentPlayer() = gameInfo.getCurrentPlayerCivilization()==this
|
||||||
fun isBarbarianCivilization() = gameInfo.getBarbarianCivilization()==this
|
fun isBarbarianCivilization() = gameInfo.getBarbarianCivilization()==this
|
||||||
|
|
||||||
fun getStatsForNextTurn():Stats{
|
fun getStatsForNextTurn():Stats{
|
||||||
|
@ -19,7 +19,7 @@ class CityButton(val city: CityInfo, internal val tileGroup: WorldTileGroup, ski
|
|||||||
background = ImageGetter.getDrawable("OtherIcons/civTableBackground.png")
|
background = ImageGetter.getDrawable("OtherIcons/civTableBackground.png")
|
||||||
.tint(city.civInfo.getNation().getColor())
|
.tint(city.civInfo.getNation().getColor())
|
||||||
isTransform = true // If this is not set then the city button won't scale!
|
isTransform = true // If this is not set then the city button won't scale!
|
||||||
touchable= Touchable.enabled // So you can click anywhere on the button to go to the city
|
touchable= Touchable.disabled
|
||||||
}
|
}
|
||||||
|
|
||||||
fun update(isCityViewable:Boolean) {
|
fun update(isCityViewable:Boolean) {
|
||||||
@ -30,7 +30,8 @@ class CityButton(val city: CityInfo, internal val tileGroup: WorldTileGroup, ski
|
|||||||
label.setFontColor(city.civInfo.getNation().getSecondaryColor())
|
label.setFontColor(city.civInfo.getNation().getSecondaryColor())
|
||||||
|
|
||||||
clear()
|
clear()
|
||||||
if (city.civInfo.isPlayerCivilization()) {
|
if (city.civInfo.isCurrentPlayer()) {
|
||||||
|
Touchable.enabled // So you can click anywhere on the button to go to the city
|
||||||
onClick {
|
onClick {
|
||||||
if (!tileGroup.selectCity(city)) {
|
if (!tileGroup.selectCity(city)) {
|
||||||
UnCivGame.Current.screen = CityScreen(city)
|
UnCivGame.Current.screen = CityScreen(city)
|
||||||
|
@ -20,6 +20,7 @@ import com.unciv.ui.utils.centerX
|
|||||||
|
|
||||||
|
|
||||||
open class TileGroup(var tileInfo: TileInfo) : Group() {
|
open class TileGroup(var tileInfo: TileInfo) : Group() {
|
||||||
|
val groupSize = 54f
|
||||||
val tileSetLocation = "TileSets/"+UnCivGame.Current.settings.tileSet +"/"
|
val tileSetLocation = "TileSets/"+UnCivGame.Current.settings.tileSet +"/"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -30,18 +31,18 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
Circle, Crosshair, Fog layer
|
Circle, Crosshair, Fog layer
|
||||||
City name
|
City name
|
||||||
*/
|
*/
|
||||||
val baseLayerGroup = Group().apply { isTransform=false }
|
val baseLayerGroup = Group().apply { isTransform=false; setSize(groupSize,groupSize) }
|
||||||
protected var tileBaseImage :Image= ImageGetter.getImage(tileSetLocation+"Hexagon")
|
protected var tileBaseImage :Image= ImageGetter.getImage(tileSetLocation+"Hexagon")
|
||||||
var currentTileBaseImageLocation = ""
|
var currentTileBaseImageLocation = ""
|
||||||
protected var baseTerrainOverlayImage: Image? = null
|
protected var baseTerrainOverlayImage: Image? = null
|
||||||
protected var baseTerrain:String=""
|
protected var baseTerrain:String=""
|
||||||
|
|
||||||
val featureLayerGroup = Group().apply { isTransform=false }
|
val featureLayerGroup = Group().apply { isTransform=false; setSize(groupSize,groupSize) }
|
||||||
protected var terrainFeatureOverlayImage: Image? = null
|
protected var terrainFeatureOverlayImage: Image? = null
|
||||||
protected var terrainFeature:String?=null
|
protected var terrainFeature:String?=null
|
||||||
protected var cityImage: Image? = null
|
protected var cityImage: Image? = null
|
||||||
|
|
||||||
val miscLayerGroup = Group().apply { isTransform=false }
|
val miscLayerGroup = Group().apply { isTransform=false; setSize(groupSize,groupSize) }
|
||||||
var resourceImage: Actor? = null
|
var resourceImage: Actor? = null
|
||||||
var resource:String?=null
|
var resource:String?=null
|
||||||
var improvementImage: Actor? = null
|
var improvementImage: Actor? = null
|
||||||
@ -51,7 +52,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
protected var civilianUnitImage: UnitGroup? = null
|
protected var civilianUnitImage: UnitGroup? = null
|
||||||
protected var militaryUnitImage: UnitGroup? = null
|
protected var militaryUnitImage: UnitGroup? = null
|
||||||
|
|
||||||
val circleCrosshairFogLayerGroup = Group().apply { isTransform=false }
|
val circleCrosshairFogLayerGroup = Group().apply { isTransform=false; setSize(groupSize,groupSize) }
|
||||||
private val circleImage = ImageGetter.getCircle() // for blue and red circles on the tile
|
private val circleImage = ImageGetter.getCircle() // for blue and red circles on the tile
|
||||||
private val crosshairImage = ImageGetter.getImage("OtherIcons/Crosshair.png") // for when a unit is targete
|
private val crosshairImage = ImageGetter.getImage("OtherIcons/Crosshair.png") // for when a unit is targete
|
||||||
protected val fogImage = ImageGetter.getImage(tileSetLocation+"CrosshatchHexagon")
|
protected val fogImage = ImageGetter.getImage(tileSetLocation+"CrosshatchHexagon")
|
||||||
@ -65,7 +66,6 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
var image: Image? = null
|
var image: Image? = null
|
||||||
}
|
}
|
||||||
|
|
||||||
val groupSize = 54f
|
|
||||||
init {
|
init {
|
||||||
this.setSize(groupSize, groupSize)
|
this.setSize(groupSize, groupSize)
|
||||||
this.addActor(baseLayerGroup)
|
this.addActor(baseLayerGroup)
|
||||||
@ -114,8 +114,12 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
|
|
||||||
fun getTileBaseImageLocation(isRevealed: Boolean): String {
|
fun getTileBaseImageLocation(isRevealed: Boolean): String {
|
||||||
if(!isRevealed) return tileSetLocation+"Hexagon"
|
if(!isRevealed) return tileSetLocation+"Hexagon"
|
||||||
if(tileInfo.isCityCenter() && ImageGetter.imageExists(tileSetLocation+"City"))
|
if(tileInfo.isCityCenter()){
|
||||||
|
if(ImageGetter.imageExists(tileSetLocation+tileInfo.baseTerrain+"+City"))
|
||||||
|
return tileSetLocation+tileInfo.baseTerrain+"+City"
|
||||||
|
if(ImageGetter.imageExists(tileSetLocation+"City"))
|
||||||
return tileSetLocation+"City"
|
return tileSetLocation+"City"
|
||||||
|
}
|
||||||
val baseTerrainTileLocation = tileSetLocation+tileInfo.baseTerrain
|
val baseTerrainTileLocation = tileSetLocation+tileInfo.baseTerrain
|
||||||
val baseTerrainAndFeatureTileLocation = baseTerrainTileLocation+"+"+tileInfo.terrainFeature
|
val baseTerrainAndFeatureTileLocation = baseTerrainTileLocation+"+"+tileInfo.terrainFeature
|
||||||
if(tileInfo.terrainFeature!=null && ImageGetter.imageExists(baseTerrainAndFeatureTileLocation))
|
if(tileInfo.terrainFeature!=null && ImageGetter.imageExists(baseTerrainAndFeatureTileLocation))
|
||||||
@ -197,14 +201,8 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
updateRoadImages()
|
updateRoadImages()
|
||||||
updateBorderImages()
|
updateBorderImages()
|
||||||
|
|
||||||
crosshairImage.toFront()
|
|
||||||
crosshairImage.isVisible = false
|
crosshairImage.isVisible = false
|
||||||
|
|
||||||
fogImage.toFront()
|
|
||||||
fogImage.isVisible = !(isViewable || showEntireMap)
|
fogImage.isVisible = !(isViewable || showEntireMap)
|
||||||
circleImage.toFront()
|
|
||||||
for(borderImage in borderImages.flatMap { it.value })
|
|
||||||
borderImage.toFront()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateTerrainBaseImage() {
|
private fun updateTerrainBaseImage() {
|
||||||
@ -227,11 +225,11 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun updateCityImage() {
|
private fun updateCityImage() {
|
||||||
if(currentTileBaseImageLocation == tileSetLocation+"City") // have a city tile, don't need an overlay
|
if(!ImageGetter.imageExists(tileSetLocation+"City")) // have a city tile, don't need an overlay
|
||||||
return
|
return
|
||||||
|
|
||||||
if (cityImage == null && tileInfo.isCityCenter()) {
|
if (cityImage == null && tileInfo.isCityCenter()) {
|
||||||
cityImage = ImageGetter.getImage("OtherIcons/City.png")
|
cityImage = ImageGetter.getImage(tileSetLocation+"City")
|
||||||
featureLayerGroup.addActor(cityImage)
|
featureLayerGroup.addActor(cityImage)
|
||||||
cityImage!!.run {
|
cityImage!!.run {
|
||||||
setSize(60f, 60f)
|
setSize(60f, 60f)
|
||||||
@ -322,7 +320,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
if (roadStatus == RoadStatus.None) continue // no road image
|
if (roadStatus == RoadStatus.None) continue // no road image
|
||||||
|
|
||||||
val image = if (roadStatus == RoadStatus.Road) ImageGetter.getDot(Color.BROWN)
|
val image = if (roadStatus == RoadStatus.Road) ImageGetter.getDot(Color.BROWN)
|
||||||
else ImageGetter.getImage("OtherIcons/Railroad.png")
|
else ImageGetter.getImage(tileSetLocation+"Railroad.png")
|
||||||
roadImage.image = image
|
roadImage.image = image
|
||||||
|
|
||||||
val relativeHexPosition = tileInfo.position.cpy().sub(neighbor.position)
|
val relativeHexPosition = tileInfo.position.cpy().sub(neighbor.position)
|
||||||
|
@ -10,6 +10,7 @@ import com.unciv.ui.worldscreen.WorldScreen
|
|||||||
|
|
||||||
|
|
||||||
class WorldTileGroup(internal val worldScreen: WorldScreen, tileInfo: TileInfo) : TileGroup(tileInfo) {
|
class WorldTileGroup(internal val worldScreen: WorldScreen, tileInfo: TileInfo) : TileGroup(tileInfo) {
|
||||||
|
|
||||||
var cityButton: CityButton? = null
|
var cityButton: CityButton? = null
|
||||||
|
|
||||||
fun selectUnit(unit: MapUnit) {
|
fun selectUnit(unit: MapUnit) {
|
||||||
@ -67,12 +68,10 @@ class WorldTileGroup(internal val worldScreen: WorldScreen, tileInfo: TileInfo)
|
|||||||
if (cityButton == null) {
|
if (cityButton == null) {
|
||||||
cityButton = CityButton(city, this, CameraStageBaseScreen.skin)
|
cityButton = CityButton(city, this, CameraStageBaseScreen.skin)
|
||||||
addActor(cityButton)
|
addActor(cityButton)
|
||||||
toFront() // so this tile is rendered over neighboring tiles
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cityButton!!.update(viewable)
|
cityButton!!.update(viewable)
|
||||||
cityButton!!.center(this)
|
cityButton!!.center(this)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,8 +43,7 @@ class TileGroupMap<T: TileGroup>(tileGroups:Collection<T>, padding:Float): Group
|
|||||||
for(group in featureLayers) addActor(group)
|
for(group in featureLayers) addActor(group)
|
||||||
for(group in miscLayers) addActor(group)
|
for(group in miscLayers) addActor(group)
|
||||||
for(group in circleCrosshairFogLayers) addActor(group)
|
for(group in circleCrosshairFogLayers) addActor(group)
|
||||||
|
for(group in tileGroups) addActor(group) // The above layers are for the visual layers, this is for the cli
|
||||||
for(group in tileGroups) addActor(group) // The above layers are for the visual layers, this is for the clicks
|
|
||||||
|
|
||||||
|
|
||||||
// there are tiles "below the zero",
|
// there are tiles "below the zero",
|
||||||
|