Merge pull request #119 from devZoGok/ft-115-in-game-gui

Ft 115 in game gui
This commit is contained in:
devZoGok
2024-06-11 17:26:27 +00:00
committed by GitHub
142 changed files with 2064 additions and 320 deletions
+67 -13
View File
@@ -1,11 +1,20 @@
res = graphics.resolution
Size = {x = 70, y = 70}
sz = 210
s = 40
resTextScale = {x = .5, y = .5}
resIconBasePath = 'Icons/Resources/'
pointerTex = 'pointer.png'
attackTex = 'attack.png'
garrisonTex = 'garrison.png'
gui = {
{
guiType = GuiType.TEXT,
name = 'refineds',
text = '',
pos = {x = 0, y = 100},
zIndex = 0,
scale = 1,
pos = {x = s, y = s, z = 0},
scale = resTextScale,
font = 'batang.ttf',
fontFirstChar = 0,
fontLastChar = 256,
@@ -15,9 +24,8 @@ gui = {
guiType = GuiType.TEXT,
name = 'wealth',
text = '',
pos = {x = 0, y = 200},
zIndex = 0,
scale = 1,
pos = {x = 200 + s, y = s, z = 0},
scale = resTextScale,
font = 'batang.ttf',
fontFirstChar = 0,
fontLastChar = 256,
@@ -27,24 +35,70 @@ gui = {
guiType = GuiType.TEXT,
name = 'research',
text = '',
pos = {x = 0, y = 300},
zIndex = 0,
scale = 1,
pos = {x = 400 + s, y = s, z = 0},
scale = resTextScale,
font = 'batang.ttf',
fontFirstChar = 0,
fontLastChar = 256,
color = {x = 1, y = 1, z = 1, w = 1}
},
{
guiType = GuiType.GUI_RECTANGLE,
name = 'refineds',
pos = {x = 0, y = 0, z = 0},
size = {x = s, y = s},
imagePath = resIconBasePath .. 'refineds.png',
},
{
guiType = GuiType.GUI_RECTANGLE,
name = 'wealth',
pos = {x = 200, y = 0, z = 0},
size = {x = s, y = s},
imagePath = resIconBasePath .. 'wealth.png',
},
{
guiType = GuiType.GUI_RECTANGLE,
name = 'research',
pos = {x = 400, y = 0, z = 0},
size = {x = s, y = s},
imagePath = resIconBasePath .. 'research.png',
},
{
guiType = GuiType.TEXT,
name = 'depth',
text = '',
pos = {x = 0, y = 400},
zIndex = 0,
scale = 1,
pos = {x = 0, y = 400, z = 0},
scale = {x = 0, y = 1},
font = 'batang.ttf',
fontFirstChar = 0,
fontLastChar = 256,
color = {x = 1, y = 1, z = 1, w = 1}
}
},
{
guiType = GuiType.BUTTON,
buttonType = ButtonType.PLAYER_TRADE,
name = 'Trade',
guiScreen = 'tradingHub.lua',
pos = {x = res.x - Size.x, y = 200, z = 0},
size = Size,
trigger = 10
},
{
guiType = GuiType.GUI_RECTANGLE,
pos = {x = res.x - sz, y = res.y - sz, z = 0},
size = {x = sz, y = sz},
color = {x = .6, y = .6, z = .6, w = .4}
},
{
guiType = GuiType.GUI_RECTANGLE,
pos = {x = 0, y = res.y - sz, z = 0},
size = {x = sz, y = sz},
color = {x = .6, y = .6, z = .6, w = .4}
},
{
guiType = GuiType.GUI_RECTANGLE,
pos = {x = sz, y = res.y - .75 * sz, z = 0},
size = {x = res.x - 2 * sz, y = sz * .75},
color = {x = .6, y = .6, z = .6, w = .4}
},
}
+5 -5
View File
@@ -1,12 +1,12 @@
numGui = 5
gui = {
{
pos = {x = 110, y = 90},
pos = {x = 110, y = 90, z = 0},
size = {x = 100, y = 10},
guiType = GuiType.TEXTBOX,
},
{
pos = {x = 110, y = 40},
pos = {x = 110, y = 40, z = 0},
size = {x = 100, y = 10},
guiType = GuiType.SLIDER,
minValue = 0,
@@ -17,21 +17,21 @@ gui = {
}
},
{
pos = {x = 100, y = 400},
pos = {x = 100, y = 400, z = 0},
size = {x = 150, y = 20},
guiType = GuiType.BUTTON,
name = 'Ok',
buttonType = ButtonType.OK
},
{
pos = {x = 260, y = 400},
pos = {x = 260, y = 400, z = 0},
size = {x = 150, y = 20},
guiType = GuiType.BUTTON,
name = 'Restore defaults',
buttonType = ButtonType.DEFAULTS
},
{
pos = {x = 420, y = 400},
pos = {x = 420, y = 400, z = 0},
size = {x = 150, y = 20},
guiType = GuiType.BUTTON,
name = 'Back',
+3 -3
View File
@@ -1,7 +1,7 @@
numGui = 3
gui = {
{
pos = {x = 100, y = 100},
pos = {x = 100, y = 100, z = 0},
size = {x = 300, y = 20},
guiType = GuiType.LISTBOX,
listboxType = ListboxType.CONSOLE,
@@ -9,12 +9,12 @@ gui = {
closable = false
},
{
pos = {x = 100, y = 510},
pos = {x = 100, y = 510, z = 0},
size = {x = 270, y = 20},
guiType = GuiType.TEXTBOX
},
{
pos = {x = 380, y = 510},
pos = {x = 380, y = 510, z = 0},
size = {x = 20, y = 20},
guiType = GuiType.BUTTON,
buttonType = ButtonType.CONSOLE_COMMAND_OK,
+4 -4
View File
@@ -1,28 +1,28 @@
numGui = 4
gui = {
{
pos = {x = 110, y = 190},
pos = {x = 110, y = 190, z = 0},
size = {x = 360, y = 20},
guiType = GuiType.LISTBOX,
listboxType = ListboxType.CONTROLS,
numMaxDisplay = 5
},
{
pos = {x = 100, y = 400},
pos = {x = 100, y = 400, z = 0},
size = {x = 150, y = 20},
guiType = GuiType.BUTTON,
name = 'Ok',
buttonType = ButtonType.OK
},
{
pos = {x = 260, y = 400},
pos = {x = 260, y = 400, z = 0},
size = {x = 150, y = 20},
guiType = GuiType.BUTTON,
name = 'Restore defaults',
buttonType = ButtonType.DEFAULTS
},
{
pos = {x = 420, y = 400},
pos = {x = 420, y = 400, z = 0},
size = {x = 150, y = 20},
guiType = GuiType.BUTTON,
name = 'Back',
+3 -5
View File
@@ -5,8 +5,7 @@ gui = {
guiType = GuiType.TEXT,
text = 'Defeat',
name = 'D',
pos = {x = 100, y = 100},
zIndex = 0,
pos = {x = 100, y = 100, z = 0},
scale = 1,
font = 'batang.ttf',
fontFirstChar = 0,
@@ -15,13 +14,12 @@ gui = {
},
{
guiType = GuiType.GUI_RECTANGLE,
pos = {x = 100, y = 200},
zIndex = 1,
pos = {x = 100, y = 200, z = .1},
size = {x = 600, y = 600},
color = {x = 0, y = 0, z = 0, w = 0.1}
},
{
pos = {x = 110, y = 350},
pos = {x = 110, y = 350, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Leave',
+15 -19
View File
@@ -1,51 +1,47 @@
res = graphics.resolution
Size = {x = 100, y = 100}
Size = {x = 70, y = 70}
margin = 10
sz = {x = Size.x - margin, y = Size.y - margin}
gui = {
{
pos = {x = res.x - 200, y = res.y - 200},
size = Size,
imagePath = '',
pos = {x = res.x - 3 * Size.x, y = res.y - 3 * Size.y, z = 0},
size = sz,
guiType = GuiType.BUTTON,
buttonType = ButtonType.BUILD,
trigger = 76,
},
{
pos = {x = res.x - Size.x - 200, y = res.y - 200},
size = Size,
imagePath = '',
pos = {x = res.x - 2 * Size.x, y = res.y - 3 * Size.y, z = 0},
size = sz,
guiType = GuiType.BUTTON,
buttonType = ButtonType.BUILD,
trigger = 78,
},
{
pos = {x = res.x - 2 * Size.x - 200, y = res.y - 200},
size = {x = 100, y = 100},
imagePath = '',
pos = {x = res.x - 1 * Size.x, y = res.y - 3 * Size.y, z = 0},
size = sz,
guiType = GuiType.BUTTON,
buttonType = ButtonType.BUILD,
trigger = 77,
},
{
pos = {x = res.x - 3 * Size.x - 200, y = res.y - 200},
size = Size,
imagePath = '',
pos = {x = res.x - 3 * Size.x, y = res.y - 2 * Size.y, z = 0},
size = sz,
guiType = GuiType.BUTTON,
buttonType = ButtonType.BUILD,
trigger = 84,
},
{
pos = {x = res.x - 4 * Size.x - 200, y = res.y - 200},
size = Size,
imagePath = '',
pos = {x = res.x - 2 * Size.x, y = res.y - 2 * Size.y, z = 0},
size = sz,
guiType = GuiType.BUTTON,
buttonType = ButtonType.BUILD,
trigger = 68,
},
{
pos = {x = res.x - 5 * Size.x - 200, y = res.y - 200},
size = Size,
imagePath = '',
pos = {x = res.x - 1 * Size.x, y = res.y - 2 * Size.y, z = 0},
size = sz,
guiType = GuiType.BUTTON,
buttonType = ButtonType.BUILD,
trigger = 70,
+5 -4
View File
@@ -1,11 +1,12 @@
res = graphics.resolution
Size = {x = 100, y = 100}
Size = {x = 70, y = 70}
margin = 10
sz = {x = Size.x - margin, y = Size.y - margin}
gui = {
{
pos = {x = res.x - 200, y = res.y - 200},
size = Size,
imagePath = '',
pos = {x = res.x - Size.x + .5 * margin, y = res.y - Size.y + .5 * margin, z = 0},
size = sz,
guiType = GuiType.BUTTON,
buttonType = ButtonType.FORT_TRAIN,
trigger = 82
+5 -5
View File
@@ -2,35 +2,35 @@ Size = {x = 150, y = 50}
numGui = 5
gui = {
{
pos = {x = 100, y = 100},
pos = {x = 100, y = 100, z = 0},
size = Size,
guiType = GuiType.BUTTON,
buttonType = ButtonType.RESUME,
name = 'Resume'
},
{
pos = {x = 100, y = 100 + 1 * (Size.y + 10)},
pos = {x = 100, y = 100 + 1 * (Size.y + 10), z = 0},
size = Size,
guiType = GuiType.BUTTON,
buttonType = ButtonType.CONSOLE,
name = 'Console'
},
{
pos = {x = 100, y = 100 + 2 * (Size.y + 10)},
pos = {x = 100, y = 100 + 2 * (Size.y + 10), z = 0},
size = Size,
guiType = GuiType.BUTTON,
buttonType = ButtonType.OPTIONS,
name = 'Options'
},
{
pos = {x = 100, y = 100 + 3 * (Size.y + 10)},
pos = {x = 100, y = 100 + 3 * (Size.y + 10), z = 0},
size = Size,
guiType = GuiType.BUTTON,
buttonType = ButtonType.MAIN_MENU,
name = 'Main menu'
},
{
pos = {x = 100, y = 100 + 4 * (Size.y + 10)},
pos = {x = 100, y = 100 + 4 * (Size.y + 10), z = 0},
size = Size,
guiType = GuiType.BUTTON,
buttonType = ButtonType.EXIT,
+6 -6
View File
@@ -3,42 +3,42 @@ Size = {x = 150, y = 40}
numGui = 6
gui = {
{
pos = {x = 110, y = 40},
pos = {x = 110, y = 40}, z = 0,
size = Size,
guiType = GuiType.BUTTON,
name = 'Controls',
buttonType = ButtonType.CONTROLS_TAB
},
{
pos = {x = 270, y = 40},
pos = {x = 270, y = 40}, z = 0,
size = Size,
guiType = GuiType.BUTTON,
name = 'Mouse',
buttonType = ButtonType.MOUSE_TAB
},
{
pos = {x = 430, y = 40},
pos = {x = 430, y = 40, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Video',
buttonType = ButtonType.VIDEO_TAB
},
{
pos = {x = 590, y = 40},
pos = {x = 590, y = 40, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Audio',
buttonType = ButtonType.AUDIO_TAB
},
{
pos = {x = 750, y = 40},
pos = {x = 750, y = 40, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Multiplayer',
buttonType = ButtonType.MULTIPLAYER_TAB
},
{
pos = {x = 910, y = 100},
pos = {x = 910, y = 100, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Back',
+9 -10
View File
@@ -1,27 +1,26 @@
res = graphics.resolution
Size = {x = 100, y = 100}
Size = {x = 70, y = 70}
margin = 10
sz = {x = Size.x - margin, y = Size.y - margin}
gui = {
{
pos = {x = res.x - 200, y = res.y - 200},
size = Size,
imagePath = '',
pos = {x = res.x + .5 * margin - Size.x, y = res.y - 3 * Size.y, z = 0},
size = sz,
guiType = GuiType.BUTTON,
buttonType = ButtonType.LAND_FACTORY_TRAIN,
trigger = 87
},
{
pos = {x = res.x - Size.x - 200, y = res.y - 200},
size = Size,
imagePath = '',
pos = {x = res.x + .5 * margin - 2 * Size.x, y = res.y - 3 * Size.y, z = 0},
size = sz,
guiType = GuiType.BUTTON,
buttonType = ButtonType.LAND_FACTORY_TRAIN,
trigger = 84
},
{
pos = {x = res.x - 2 * Size.x - 200, y = res.y - 200},
size = Size,
imagePath = '',
pos = {x = res.x + .5 * margin - 3 * Size.x, y = res.y - 3 * Size.y, z = 0},
size = sz,
guiType = GuiType.BUTTON,
buttonType = ButtonType.LAND_FACTORY_TRAIN,
trigger = 65
+3 -3
View File
@@ -1,14 +1,14 @@
numGui = 3
gui = {
{
pos = {x = 110, y = 190},
pos = {x = 110, y = 190, z = 0},
size = {x = 360, y = 20},
guiType = GuiType.LISTBOX,
listboxType = ListboxType.MAPS,
numMaxDisplay = 5
},
{
pos = {x = 110, y = 250},
pos = {x = 110, y = 250, z = 0},
size = {x = 140, y = 40},
guiType = GuiType.BUTTON,
name = 'Ok',
@@ -19,7 +19,7 @@ gui = {
}
},
{
pos = {x = 420, y = 400},
pos = {x = 420, y = 400, z = 0},
size = {x = 150, y = 50},
guiType = GuiType.BUTTON,
name = 'Back',
+7 -1
View File
@@ -33,6 +33,11 @@ ButtonType = {
SELL_REFINEDS = 29,
BUY_RESEARCH = 30,
SELL_RESEARCH = 31,
ACTIVE_GAME_STATE = 32,
PLAYER_TRADE = 33,
TRADING_SCREEN = 34,
TRADE_OFFER = 35,
RESOURCE_AMMOUNT = 36
}
ListboxType = {
@@ -46,5 +51,6 @@ ListboxType = {
LAND_TEXTURES = 7,
CPU_DIFFICULTIES = 8,
FACTIONS = 9,
CONSOLE = 10
CONSOLE = 10,
TRADE_OFFERS = 11
}
+4 -4
View File
@@ -3,28 +3,28 @@ Size = {x = 150, y = 40}
numGui = 4
gui = {
{
pos = {x = 110, y = 40},
pos = {x = 110, y = 40, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Single player',
buttonType = ButtonType.SINGLE_PLAYER
},
{
pos = {x = 110, y = 90},
pos = {x = 110, y = 90, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Map editor',
buttonType = ButtonType.MAP_EDITOR
},
{
pos = {x = 110, y = 140},
pos = {x = 110, y = 140, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Options',
buttonType = ButtonType.OPTIONS
},
{
pos = {x = 110, y = 190},
pos = {x = 110, y = 190, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Exit',
+6 -6
View File
@@ -3,42 +3,42 @@ Size = {x = 150, y = 40}
numGui = 6
gui = {
{
pos = {x = 110, y = 40},
pos = {x = 110, y = 40, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Controls',
buttonType = ButtonType.CONTROLS_TAB
},
{
pos = {x = 270, y = 40},
pos = {x = 270, y = 40, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Mouse',
buttonType = ButtonType.MOUSE_TAB
},
{
pos = {x = 430, y = 40},
pos = {x = 430, y = 40, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Video',
buttonType = ButtonType.VIDEO_TAB
},
{
pos = {x = 590, y = 40},
pos = {x = 590, y = 40, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Audio',
buttonType = ButtonType.AUDIO_TAB
},
{
pos = {x = 750, y = 40},
pos = {x = 750, y = 40, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Multiplayer',
buttonType = ButtonType.MULTIPLAYER_TAB
},
{
pos = {x = 910, y = 100},
pos = {x = 910, y = 100, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Back',
+6 -6
View File
@@ -4,42 +4,42 @@ Size = {x = 140, y = 20}
startX = 100
gui = {
{
pos = {x = startX, y = 400},
pos = {x = startX, y = 400, z = 0},
size = Size,
guiType = GuiType.BUTTON,
buttonType = ButtonType.EXPORT,
name = 'Export'
},
{
pos = {x = startX + Size.x + 10, y = 400},
pos = {x = startX + Size.x + 10, y = 400, z = 0},
size = Size,
guiType = GuiType.LISTBOX,
listboxType = ListboxType.VEHICLES,
numMaxDisplay = 5
},
{
pos = {x = startX + 2 * (Size.x + 10), y = 400},
pos = {x = startX + 2 * (Size.x + 10), y = 400, z = 0},
size = Size,
guiType = GuiType.LISTBOX,
listboxType = ListboxType.STRUCTURES,
numMaxDisplay = 5
},
{
pos = {x = startX + 3 * (Size.x + 10), y = 400},
pos = {x = startX + 3 * (Size.x + 10), y = 400, z = 0},
size = Size,
guiType = GuiType.LISTBOX,
listboxType = ListboxType.RESOURCE_DEPOSITS,
numMaxDisplay = 5
},
{
pos = {x = startX + 4 * (Size.x + 10), y = 400},
pos = {x = startX + 4 * (Size.x + 10), y = 400, z = 0},
size = Size,
guiType = GuiType.LISTBOX,
listboxType = ListboxType.SKYBOX_TEXTURES,
numMaxDisplay = 5
},
{
pos = {x = startX + 5 * (Size.x + 10), y = 400},
pos = {x = startX + 5 * (Size.x + 10), y = 400, z = 0},
size = Size,
guiType = GuiType.LISTBOX,
listboxType = ListboxType.LAND_TEXTURES,
+3 -3
View File
@@ -3,21 +3,21 @@ Size = {x = 150, y = 40}
numGui = 3
gui = {
{
pos = {x = 110, y = 40},
pos = {x = 110, y = 40, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'New map',
buttonType = ButtonType.NEW_MAP
},
{
pos = {x = 110, y = 90},
pos = {x = 110, y = 90, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Load map',
buttonType = ButtonType.LOAD_MAP
},
{
pos = {x = 110, y = 140},
pos = {x = 110, y = 140, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Back',
+6 -6
View File
@@ -1,12 +1,12 @@
numGui = 6
gui = {
{
pos = {x = 110, y = 80},
pos = {x = 110, y = 80, z = 0},
size = {x = 300, y = 10},
guiType = GuiType.TEXTBOX
},
{
pos = {x = 110, y = 40},
pos = {x = 110, y = 40, z = 0},
size = {x = 300, y = 10},
minValue = 0,
maxValue = 2,
@@ -17,25 +17,25 @@ gui = {
}
},
{
pos = {x = 110, y = 110},
pos = {x = 110, y = 110, z = 0},
guiType = GuiType.CHECKBOX
},
{
pos = {x = 100, y = 400},
pos = {x = 100, y = 400, z = 0},
size = {x = 150, y = 20},
guiType = GuiType.BUTTON,
name = 'Ok',
buttonType = ButtonType.OK
},
{
pos = {x = 260, y = 400},
pos = {x = 260, y = 400, z = 0},
size = {x = 150, y = 20},
guiType = GuiType.BUTTON,
name = 'Restore defaults',
buttonType = ButtonType.DEFAULTS
},
{
pos = {x = 420, y = 400},
pos = {x = 420, y = 400, z = 0},
size = {x = 150, y = 20},
guiType = GuiType.BUTTON,
name = 'Back',
+6 -6
View File
@@ -1,36 +1,36 @@
numGui = 6
gui = {
{
pos = {x = 110, y = 40},
pos = {x = 110, y = 40, z = 0},
size = {x = 100, y = 20},
guiType = GuiType.TEXTBOX
},
{
pos = {x = 110, y = 70},
pos = {x = 110, y = 70, z = 0},
size = {x = 100, y = 20},
guiType = GuiType.TEXTBOX
},
{
pos = {x = 110, y = 100},
pos = {x = 110, y = 100, z = 0},
size = {x = 100, y = 20},
guiType = GuiType.TEXTBOX
},
{
pos = {x = 100, y = 400},
pos = {x = 100, y = 400, z = 0},
size = {x = 150, y = 20},
guiType = GuiType.BUTTON,
name = 'Ok',
buttonType = ButtonType.OK
},
{
pos = {x = 260, y = 400},
pos = {x = 260, y = 400, z = 0},
size = {x = 150, y = 20},
guiType = GuiType.BUTTON,
name = 'Restore defaults',
buttonType = ButtonType.DEFAULTS
},
{
pos = {x = 420, y = 400},
pos = {x = 420, y = 400, z = 0},
size = {x = 150, y = 20},
guiType = GuiType.BUTTON,
name = 'Back',
+3 -3
View File
@@ -1,10 +1,10 @@
res = graphics.resolution
Size = {x = 70, y = 70}
gui = {
{
pos = {x = res.x - 200, y = res.y - 200},
size = {x = 100, y = 100},
imagePath = '',
pos = {x = res.x - Size.x, y = res.y - Size.y, z = 0},
size = Size,
guiType = GuiType.BUTTON,
buttonType = ButtonType.NAVAL_FACTORY_TRAIN,
trigger = 66
+5 -5
View File
@@ -3,22 +3,22 @@ Size = {x = 140, y = 40}
numGui = 5
gui = {
{
pos = {x = 110, y = 150},
pos = {x = 110, y = 150, z = 0},
size = Size,
guiType = GuiType.TEXTBOX
},
{
pos = {x = 110, y = 190},
pos = {x = 110, y = 190, z = 0},
size = Size,
guiType = GuiType.TEXTBOX
},
{
pos = {x = 110, y = 220},
pos = {x = 110, y = 220, z = 0},
size = Size,
guiType = GuiType.TEXTBOX
},
{
pos = {x = 420, y = 400},
pos = {x = 420, y = 400, z = 0},
size = {x = 150, y = 50},
guiType = GuiType.BUTTON,
name = 'Ok',
@@ -31,7 +31,7 @@ gui = {
}
},
{
pos = {x = 250, y = 400},
pos = {x = 250, y = 400, z = 0},
size = {x = 150, y = 50},
guiType = GuiType.BUTTON,
name = 'Back',
+6 -6
View File
@@ -3,42 +3,42 @@ Size = {x = 150, y = 40}
numGui = 6
gui = {
{
pos = {x = 110, y = 40},
pos = {x = 110, y = 40, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Controls',
buttonType = ButtonType.CONTROLS_TAB
},
{
pos = {x = 270, y = 40},
pos = {x = 270, y = 40, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Mouse',
buttonType = ButtonType.MOUSE_TAB
},
{
pos = {x = 430, y = 40},
pos = {x = 430, y = 40, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Video',
buttonType = ButtonType.VIDEO_TAB
},
{
pos = {x = 590, y = 40},
pos = {x = 590, y = 40, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Audio',
buttonType = ButtonType.AUDIO_TAB
},
{
pos = {x = 750, y = 40},
pos = {x = 750, y = 40, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Multiplayer',
buttonType = ButtonType.MULTIPLAYER_TAB
},
{
pos = {x = 910, y = 100},
pos = {x = 910, y = 100, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Back',
+1 -1
View File
@@ -1,4 +1,4 @@
Pos = {x = 110, y = 150}
Pos = {x = 110, y = 150, z = 0}
Size = {x = 100, y = 20}
space = 60
+17 -5
View File
@@ -1,15 +1,27 @@
res = graphics.resolution
Size = {x = 100, y = 100}
Size = {x = 70, y = 70}
margin = 10
sz = {x = Size.x - margin, y = Size.y - margin}
gui = {
--[[
{
pos = {x = res.x - 200, y = res.y - 200},
size = Size,
pos = {x = res.x - Size.x, y = res.y - Size.y},
size = sz,
name = "Research",
imagePath = '',
guiType = GuiType.BUTTON,
buttonType = ButtonType.RESEARCH,
techId = TechId.APT,
trigger = 82,
}
},
]]--
{
guiType = GuiType.BUTTON,
buttonType = ButtonType.ACTIVE_GAME_STATE,
name = 'Tech',
guiScreen = 'techTree.lua',
pos = {x = res.x - 2 * Size.x, y = res.y - Size.y, z = 0},
size = sz,
trigger = 85
},
}
+6 -6
View File
@@ -3,35 +3,35 @@ Size = {x = 100, y = 20}
numGui = 6
gui = {
{
pos = {x = 100, y = 100},
pos = {x = 100, y = 100, z = 0},
size = Size,
guiType = GuiType.LISTBOX,
numMaxDisplay = 3,
listboxType = ListboxType.CPU_DIFFICULTIES
},
{
pos = {x = 210, y = 100},
pos = {x = 210, y = 100, z = 0},
size = Size,
guiType = GuiType.LISTBOX,
numMaxDisplay = 3,
listboxType = ListboxType.FACTIONS
},
{
pos = {x = 100, y = 230},
pos = {x = 100, y = 230, z = 0},
size = Size,
guiType = GuiType.LISTBOX,
numMaxDisplay = 3,
listboxType = ListboxType.FACTIONS
},
{
pos = {x = 110, y = 310},
pos = {x = 110, y = 310, z = 0},
size = Size,
guiType = GuiType.LISTBOX,
listboxType = ListboxType.MAPS,
numMaxDisplay = 5
},
{
pos = {x = 110, y = 460},
pos = {x = 110, y = 460, z = 0},
size = Size,
guiType = GuiType.BUTTON,
buttonType = ButtonType.PLAY,
@@ -45,7 +45,7 @@ gui = {
}
},
{
pos = {x = 110 + Size.x + 10, y = 460},
pos = {x = 110 + Size.x + 10, y = 460, z = 0},
size = Size,
guiType = GuiType.BUTTON,
buttonType = ButtonType.BACK,
+10 -10
View File
@@ -3,7 +3,7 @@ gui = {
guiType = GuiType.TEXT,
text = 'Statistics',
name = 'stat',
pos = {x = 850, y = 100},
pos = {x = 850, y = 100, z = 0},
zIndex = 0,
scale = 0.5,
font = 'batang.ttf',
@@ -15,7 +15,7 @@ gui = {
guiType = GuiType.TEXT,
text = 'Player',
name = 'pl',
pos = {x = 50, y = 200},
pos = {x = 50, y = 200, z = 0},
zIndex = 0,
scale = 0.3,
font = 'batang.ttf',
@@ -27,7 +27,7 @@ gui = {
guiType = GuiType.TEXT,
text = 'Vehicles built',
name = 'vb',
pos = {x = 150, y = 200},
pos = {x = 150, y = 200, z = 0},
zIndex = 0,
scale = 0.3,
font = 'batang.ttf',
@@ -39,7 +39,7 @@ gui = {
guiType = GuiType.TEXT,
text = 'Vehicles destroyed',
name = 'vd',
pos = {x = 450, y = 200},
pos = {x = 450, y = 200, z = 0},
zIndex = 0,
scale = 0.3,
font = 'batang.ttf',
@@ -51,7 +51,7 @@ gui = {
guiType = GuiType.TEXT,
text = 'Vehicles lost',
name = 'vl',
pos = {x = 850, y = 200},
pos = {x = 850, y = 200, z = 0},
zIndex = 0,
scale = 0.3,
font = 'batang.ttf',
@@ -63,7 +63,7 @@ gui = {
guiType = GuiType.TEXT,
text = 'Structures built',
name = 'sb',
pos = {x = 1050, y = 200},
pos = {x = 1050, y = 200, z = 0},
zIndex = 0,
scale = 0.3,
font = 'batang.ttf',
@@ -75,7 +75,7 @@ gui = {
guiType = GuiType.TEXT,
text = 'Structures destroyed',
name = 'sd',
pos = {x = 1350, y = 200},
pos = {x = 1350, y = 200, z = 0},
zIndex = 0,
scale = 0.3,
font = 'batang.ttf',
@@ -87,7 +87,7 @@ gui = {
guiType = GuiType.TEXT,
text = 'Structures lost',
name = 'sl',
pos = {x = 1720, y = 200},
pos = {x = 1720, y = 200, z = 0},
zIndex = 0,
scale = 0.3,
font = 'batang.ttf',
@@ -97,13 +97,13 @@ gui = {
},
{
guiType = GuiType.GUI_RECTANGLE,
pos = {x = 100, y = 200},
pos = {x = 100, y = 200, z = 0},
zIndex = 1,
size = {x = 600, y = 600},
color = {x = 0, y = 0, z = 1, w = 1}
},
{
pos = {x = 1700, y = 1000},
pos = {x = 1700, y = 1000, z = 0},
size = Size,
guiType = GuiType.BUTTON,
name = 'Back',
+106
View File
@@ -0,0 +1,106 @@
res = graphics.resolution
Size = {x = res.x * .5, y = res.y * .5}
techButtonSize = {x = 50, y = 50}
Pos = {x = res.x * .3, y = res.y * .1, z = .1}
margin = {top = 10, left = 10, right = 10, bottom = 10}
baseTechPath = 'Icons/Technologies/'
heightOffset = techButtonSize.y + 10
gui = {
{
guiType = GuiType.GUI_RECTANGLE,
pos = Pos,
size = Size,
color = {x = 0, y = 0, z = 0, w = .6}
},
{
pos = {x = Pos.x + .5 * (Size.x - techButtonSize.x), y = Pos.y + margin.top, z = .11},
size = techButtonSize,
name = "APT",
imagePath = baseTechPath .. 'apt.jpg',
guiType = GuiType.BUTTON,
buttonType = ButtonType.RESEARCH,
techId = TechId.APT,
trigger = 82,
},
{
pos = {x = Pos.x + margin.left, y = Pos.y + margin.top + heightOffset, z = .11},
size = techButtonSize,
name = "FPT",
imagePath = baseTechPath .. 'fpt.jpg',
guiType = GuiType.BUTTON,
buttonType = ButtonType.RESEARCH,
techId = TechId.FPT,
trigger = 82,
},
{
pos = {x = Pos.x + margin.left, y = Pos.y + margin.top + 2 * heightOffset, z = .11},
size = techButtonSize,
name = "Cruisers",
imagePath = baseTechPath .. 'cruisers.jpg',
guiType = GuiType.BUTTON,
buttonType = ButtonType.RESEARCH,
techId = TechId.CRUISERS,
trigger = 82,
},
{
pos = {x = Pos.x + .5 * (Size.x - techButtonSize.x), y = Pos.y + margin.top + heightOffset, z = .11},
size = techButtonSize,
name = "EFT",
imagePath = baseTechPath .. 'ept.jpg',
guiType = GuiType.BUTTON,
buttonType = ButtonType.RESEARCH,
techId = TechId.EFT,
trigger = 82,
},
{
pos = {x = Pos.x + .5 * (Size.x - 3 * techButtonSize.x), y = Pos.y + margin.top + 2 * heightOffset, z = .11},
size = techButtonSize,
name = "Stealth",
imagePath = baseTechPath .. 'stealth.jpg',
guiType = GuiType.BUTTON,
buttonType = ButtonType.RESEARCH,
techId = TechId.ST_SUB,
trigger = 82,
},
{
pos = {x = Pos.x + .5 * (Size.x + 3 * techButtonSize.x), y = Pos.y + margin.top + 2 * heightOffset, z = .11},
size = techButtonSize,
name = "Robotics",
imagePath = baseTechPath .. 'robo.jpg',
guiType = GuiType.BUTTON,
buttonType = ButtonType.RESEARCH,
techId = TechId.ROBO,
trigger = 82,
},
{
pos = {x = Pos.x + Size.x - (margin.right + techButtonSize.x), y = Pos.y + margin.top + heightOffset, z = .11},
size = techButtonSize,
name = "PCT",
imagePath = baseTechPath .. 'pct.jpg',
guiType = GuiType.BUTTON,
buttonType = ButtonType.RESEARCH,
techId = TechId.PCT,
trigger = 82,
},
{
pos = {x = Pos.x + Size.x - (margin.right + 3 * techButtonSize.x), y = Pos.y + margin.top + 2 * heightOffset, z = .11},
size = techButtonSize,
name = "Carriers",
imagePath = baseTechPath .. 'carriers.jpg',
guiType = GuiType.BUTTON,
buttonType = ButtonType.RESEARCH,
techId = TechId.CARRIERS,
trigger = 82,
},
{
pos = {x = Pos.x + Size.x - (margin.right + techButtonSize.x), y = Pos.y + margin.top + 2 * heightOffset, z = .11},
size = techButtonSize,
name = "Tanks",
imagePath = baseTechPath .. 'tanks.jpg',
guiType = GuiType.BUTTON,
buttonType = ButtonType.RESEARCH,
techId = TechId.TANKS,
trigger = 82,
},
}
+11 -13
View File
@@ -1,38 +1,36 @@
res = graphics.resolution
Size = {x = 100, y = 100}
Size = {x = 70, y = 70}
margin = 10
sz = {x = Size.x - margin, y = Size.y - margin}
gui = {
{
pos = {x = res.x - 200, y = res.y - 200},
size = Size,
pos = {x = res.x - Size.x, y = res.y - Size.y, z = 0},
size = sz,
name = 'Buy ref',
imagePath = '',
guiType = GuiType.BUTTON,
buttonType = ButtonType.BUY_REFINEDS,
trigger = 73,
},
{
pos = {x = res.x - Size.x - 200, y = res.y - 200},
size = Size,
imagePath = '',
pos = {x = res.x - 2 * Size.x, y = res.y - Size.y, z = 0},
size = sz,
name = 'Sell ref',
guiType = GuiType.BUTTON,
buttonType = ButtonType.SELL_REFINEDS,
trigger = 79,
},
{
pos = {x = res.x - 200, y = res.y - 400},
size = Size,
imagePath = '',
pos = {x = res.x - Size.x, y = res.y - 2 * Size.y, z = 0},
size = sz,
name = 'Buy rsch',
guiType = GuiType.BUTTON,
buttonType = ButtonType.BUY_RESEARCH,
trigger = 75,
},
{
pos = {x = res.x - Size.x - 200, y = res.y - 400},
size = Size,
imagePath = '',
pos = {x = res.x - 2 * Size.x, y = res.y - 2 * Size.y, z = 0},
size = sz,
name = 'Sell rsch',
guiType = GuiType.BUTTON,
buttonType = ButtonType.SELL_RESEARCH,
+26
View File
@@ -0,0 +1,26 @@
res = graphics.resolution
HubSize = {x = res.x * .3, y = res.y * .8}
HubPos = {x = .5 * (res.x - HubSize.x), y = 10, z = .1}
HubMargin = {top = 10, left = 10, right = 10, bottom = 10}
buttonSize = {x = 100, y = 20}
textboxSize = {x = 200, y = 25}
gui = {
{
guiType = GuiType.GUI_RECTANGLE,
pos = HubPos,
size = HubSize,
color = {x = 0, y = 0, z = 0, w = .6}
},
{
guiType = GuiType.BUTTON,
buttonType = ButtonType.ACTIVE_GAME_STATE,
name = 'Back',
guiScreen = 'activeGameState.lua',
pos = {x = HubPos.x + HubSize.x - buttonSize.x - HubMargin.right, y = HubPos.y + HubSize.y - buttonSize.y - HubMargin.bottom, z = .11},
size = buttonSize,
trigger = 10
},
}
@@ -0,0 +1,45 @@
res = graphics.resolution
buttonSize = {x = 100, y = 20}
textboxSize = {x = 200, y = 20}
height = HubPos.y + HubMargin.top + lineId * 30
warIcon = 'Icons/PlayerStates/war.png'
allianceIcon = 'Icons/PlayerStates/alliance.png'
gui = {
{
guiType = GuiType.TEXT,
name = 'playerName',
text = '',
pos = {x = HubPos.x + HubMargin.left, y = height + 35, z = .11},
scale = {x = .2, y = .2},
font = 'batang.ttf',
fontFirstChar = 0,
fontLastChar = 256,
color = {x = 1, y = 1, z = 1, w = 1}
},
{
guiType = GuiType.GUI_RECTANGLE,
pos = {x = HubPos.x + HubMargin.left + 100, y = height, z = .11},
size = {x = 50, y = 50},
imagePath = warIcon
},
{
pos = {x = HubPos.x + HubMargin.left + 200, y = height + 25, z = .11},
size = textboxSize,
guiType = GuiType.LISTBOX,
listboxType = ListboxType.TRADE_OFFERS,
numMaxDisplay = 3
},
{
guiType = GuiType.BUTTON,
buttonType = ButtonType.TRADING_SCREEN,
name = 'Trade',
guiScreen = 'tradingScreen.lua',
pos = {x = HubPos.x + HubSize.x - buttonSize.x - HubMargin.right, y = height + 25, z = .11},
size = buttonSize,
trigger = 10,
dependencies = {{id = 2}}
}
}
+145
View File
@@ -0,0 +1,145 @@
res = graphics.resolution
HubMargin.top = 100
resTrayPos = {x = HubPos.x + HubMargin.left, y = HubPos.y + HubMargin.top}
iconSize = {x = 25, y = 25}
textboxSize = {x = 200, y = 25}
buttonSize = {x = 100, y = 20}
ResourceTrayGuiId = {ICON = 0, TEXTBOX = 1, INCREMENT = 2, DECREMENT = 3}
IconPath = {WEALTH = 'Icons/Resources/wealth.png', RESEARCH = 'Icons/Resources/research.png', REFINEDS = 'Icons/Resources/refineds.png', TIME = 'Icons/Resources/time.png'}
function createResourceTrayGui(cpuPlayer, lineId, guiId, imgPath)
height = HubMargin.top + lineId * iconSize.y
if guiId == ResourceTrayGuiId.ICON then
guiElPos = {x = HubPos.x + (cpuPlayer and HubMargin.left or HubSize.x -(HubMargin.right + 3 * iconSize.x + textboxSize.x)), y = height, z = .2}
return {
guiType = GuiType.GUI_RECTANGLE,
pos = guiElPos,
size = iconSize,
imagePath = imgPath
}
elseif guiId == ResourceTrayGuiId.TEXTBOX then
guiElPos = {x = HubPos.x + (cpuPlayer and HubMargin.left + iconSize.x or HubSize.x -(HubMargin.right + 2 * iconSize.x + textboxSize.x)), y = height, z = .2}
return {
pos = guiElPos,
size = textboxSize,
guiType = GuiType.TEXTBOX,
}
elseif guiId == ResourceTrayGuiId.INCREMENT then
guiElPos = {x = HubPos.x + (cpuPlayer and HubMargin.left + iconSize.x + textboxSize.x or HubSize.x -(HubMargin.right + 2 * iconSize.x)), y = height, z = .2}
return {
guiType = GuiType.BUTTON,
buttonType = ButtonType.RESOURCE_AMMOUNT,
ammount = 10,
name = '+',
pos = guiElPos,
size = iconSize,
trigger = 10
}
elseif guiId == ResourceTrayGuiId.DECREMENT then
guiElPos = {x = HubPos.x + (cpuPlayer and HubMargin.left + 2 * iconSize.x + textboxSize.x or HubSize.x -(HubMargin.right + iconSize.x)), y = height, z = .2}
return {
guiType = GuiType.BUTTON,
buttonType = ButtonType.RESOURCE_AMMOUNT,
ammount = -10,
name = '-',
pos = guiElPos,
size = iconSize,
trigger = 10
}
end
end
gui = {
{
guiType = GuiType.GUI_RECTANGLE,
pos = HubPos,
size = HubSize,
color = {x = 0, y = 0, z = 0, w = .6}
},
{
guiType = GuiType.TEXT,
name = 'P0',
text = 'P0',
pos = {x = HubPos.x + HubMargin.left, y = HubPos.y + HubMargin.top - 20, z = .2},
scale = {x = .5, y = .5},
font = 'batang.ttf',
fontFirstChar = 0,
fontLastChar = 256,
color = {x = 1, y = 1, z = 1, w = 1}
},
{
guiType = GuiType.TEXT,
name = 'You',
text = 'You',
pos = {x = HubPos.x + HubSize.x -(HubMargin.right + textboxSize.x + iconSize.x + 50), y = HubPos.y + HubMargin.top - 20, z = .2},
scale = {x = .5, y = .5},
font = 'batang.ttf',
fontFirstChar = 0,
fontLastChar = 256,
color = {x = 1, y = 1, z = 1, w = 1}
},
createResourceTrayGui(true, 0, ResourceTrayGuiId.ICON, IconPath.REFINEDS),
createResourceTrayGui(true, 0, ResourceTrayGuiId.TEXTBOX),
createResourceTrayGui(true, 0, ResourceTrayGuiId.INCREMENT),
createResourceTrayGui(true, 0, ResourceTrayGuiId.DECREMENT),
createResourceTrayGui(false, 0, ResourceTrayGuiId.ICON, IconPath.REFINEDS),
createResourceTrayGui(false, 0, ResourceTrayGuiId.TEXTBOX),
createResourceTrayGui(false, 0, ResourceTrayGuiId.INCREMENT),
createResourceTrayGui(false, 0, ResourceTrayGuiId.DECREMENT),
createResourceTrayGui(true, 1, ResourceTrayGuiId.ICON, IconPath.WEALTH),
createResourceTrayGui(true, 1, ResourceTrayGuiId.TEXTBOX),
createResourceTrayGui(true, 1, ResourceTrayGuiId.INCREMENT),
createResourceTrayGui(true, 1, ResourceTrayGuiId.DECREMENT),
createResourceTrayGui(false, 1, ResourceTrayGuiId.ICON, IconPath.WEALTH),
createResourceTrayGui(false, 1, ResourceTrayGuiId.TEXTBOX),
createResourceTrayGui(false, 1, ResourceTrayGuiId.INCREMENT),
createResourceTrayGui(false, 1, ResourceTrayGuiId.DECREMENT),
createResourceTrayGui(true, 2, ResourceTrayGuiId.ICON, IconPath.RESEARCH),
createResourceTrayGui(true, 2, ResourceTrayGuiId.TEXTBOX),
createResourceTrayGui(true, 2, ResourceTrayGuiId.INCREMENT),
createResourceTrayGui(true, 2, ResourceTrayGuiId.DECREMENT),
createResourceTrayGui(false, 2, ResourceTrayGuiId.ICON, IconPath.RESEARCH),
createResourceTrayGui(false, 2, ResourceTrayGuiId.TEXTBOX),
createResourceTrayGui(false, 2, ResourceTrayGuiId.INCREMENT),
createResourceTrayGui(false, 2, ResourceTrayGuiId.DECREMENT),
createResourceTrayGui(true, 3, ResourceTrayGuiId.ICON, IconPath.TIME),
createResourceTrayGui(true, 3, ResourceTrayGuiId.TEXTBOX),
createResourceTrayGui(true, 3, ResourceTrayGuiId.INCREMENT),
createResourceTrayGui(true, 3, ResourceTrayGuiId.DECREMENT),
createResourceTrayGui(false, 3, ResourceTrayGuiId.ICON, IconPath.TIME),
createResourceTrayGui(false, 3, ResourceTrayGuiId.TEXTBOX),
createResourceTrayGui(false, 3, ResourceTrayGuiId.INCREMENT),
createResourceTrayGui(false, 3, ResourceTrayGuiId.DECREMENT),
{
guiType = GuiType.BUTTON,
buttonType = ButtonType.PLAYER_TRADE,
name = 'Back',
guiScreen = 'tradingHub.lua',
pos = {x = HubPos.x + HubSize.x - 2 * buttonSize.x - HubMargin.right, y = HubPos.y + HubSize.y - buttonSize.y - HubMargin.bottom, z = .2},
size = buttonSize,
trigger = 10
},
{
guiType = GuiType.BUTTON,
buttonType = ButtonType.TRADE_OFFER,
name = 'Offer',
pos = {x = HubPos.x + HubSize.x - buttonSize.x - HubMargin.right, y = HubPos.y + HubSize.y - buttonSize.y - HubMargin.bottom, z = .2},
size = buttonSize,
trigger = 10
},
{
pos = {x = HubPos.x + HubMargin.left, y = HubPos.y + HubSize.y - textboxSize.y - HubMargin.bottom, z = .2},
size = textboxSize,
guiType = GuiType.TEXTBOX,
}
}
+9 -9
View File
@@ -1,7 +1,7 @@
numGui = 9
gui = {
{
pos = {x = 210, y = 190},
pos = {x = 210, y = 190, z = 0},
size = {x = 360, y = 20},
guiType = GuiType.LISTBOX,
listboxType = ListboxType.RESOLUTION,
@@ -14,41 +14,41 @@ gui = {
}
},
{
pos = {x = 110, y = 40},
pos = {x = 110, y = 40, z = 0},
guiType = GuiType.CHECKBOX
},
{
pos = {x = 110, y = 70},
pos = {x = 110, y = 70, z = 0},
guiType = GuiType.CHECKBOX
},
{
pos = {x = 110, y = 100},
pos = {x = 110, y = 100, z = 0},
guiType = GuiType.CHECKBOX
},
{
pos = {x = 110, y = 130},
pos = {x = 110, y = 130, z = 0},
guiType = GuiType.CHECKBOX
},
{
pos = {x = 110, y = 160},
pos = {x = 110, y = 160, z = 0},
guiType = GuiType.CHECKBOX
},
{
pos = {x = 100, y = 400},
pos = {x = 100, y = 400, z = 0},
size = {x = 150, y = 20},
guiType = GuiType.BUTTON,
name = 'Ok',
buttonType = ButtonType.OK
},
{
pos = {x = 260, y = 400},
pos = {x = 260, y = 400, z = 0},
size = {x = 150, y = 20},
guiType = GuiType.BUTTON,
name = 'Restore defaults',
buttonType = ButtonType.DEFAULTS
},
{
pos = {x = 420, y = 400},
pos = {x = 420, y = 400, z = 0},
size = {x = 150, y = 20},
guiType = GuiType.BUTTON,
name = 'Back',
+65 -28
View File
@@ -1,49 +1,86 @@
TechId = {
APT = 0,
EFT = 1,
PCT = 2,
FPT = 3,
FPT = 1,
CRUISERS = 2,
EFT = 3,
ST_SUB = 4,
ROBO = 5,
PCT = 6,
CARRIERS = 7,
TANKS = 8
}
technologies = {
{
id = TechId.APT,
name = 'Advanced power technology',
cost = 1000,
icon = '',
description = '',
parents = {},
children = {},
abilities = {0},
},
{
id = TechId.EFT,
name = 'Energy field technology',
cost = 1000,
icon = '',
description = '',
parents = {},
children = {},
abilities = {},
},
{
id = TechId.PCT,
name = 'Plasma casting technology',
cost = 1000,
icon = '',
description = '',
parents = {},
children = {},
abilities = {},
},
{
id = TechId.FPT,
name = 'Fusion power technology',
cost = 1000,
icon = '',
description = '',
parents = {},
children = {},
parents = {TechId.APT},
abilities = {},
},
{
name = 'Cruiser technology',
cost = 1000,
icon = '',
description = '',
parents = {TechId.FPT},
abilities = {},
},
{
name = 'Energy field technology',
cost = 1000,
icon = '',
description = '',
parents = {TechId.APT},
abilities = {},
},
{
name = 'Stealth technology',
cost = 1000,
icon = '',
description = '',
parents = {TechId.EFT},
abilities = {},
},
{
name = 'Robotics',
cost = 1000,
icon = '',
description = '',
parents = {TechId.EFT},
abilities = {},
},
{
name = 'Plasma casting technology',
cost = 1000,
icon = '',
description = '',
parents = {TechId.APT},
abilities = {},
},
{
name = 'Carrier technology',
cost = 1000,
icon = '',
description = '',
parents = {TechId.PCT},
abilities = {},
},
{
name = 'Tank technology',
cost = 1000,
icon = '',
description = '',
parents = {TechId.PCT},
abilities = {},
},
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 695 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
sodipodi:docname="garrison.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="0.53669881"
inkscape:cx="343.76823"
inkscape:cy="517.9814"
inkscape:window-width="1918"
inkscape:window-height="1058"
inkscape:window-x="0"
inkscape:window-y="20"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="path1"
style="fill:#0c1fd5;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.56342;stroke-linecap:square;stroke-linejoin:round;stroke-opacity:1;paint-order:stroke fill markers"
inkscape:transform-center-x="1.1131741e-06"
inkscape:transform-center-y="-1.2077841e-06"
d="M 63.749468,51.966222 96.532477,108.74778 H 63.749985 L 95.127397,163.0964 H 63.749985 l 38.283455,66.30965 38.28396,-66.30965 h -31.37792 l 31.37792,-54.34862 h -32.783 l 32.783,-56.781558 z"
inkscape:export-filename="garrison.png"
inkscape:export-xdpi="7.0948467"
inkscape:export-ydpi="7.0948467" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

@@ -0,0 +1,235 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
viewBox="0 0 1854.529 1621.792"
enable-background="new 0 0 1854.529 1621.792"
xml:space="preserve"
sodipodi:docname="alliance.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs341">
</defs><sodipodi:namedview
id="namedview341"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="1.4858995"
inkscape:cx="941.18075"
inkscape:cy="753.75219"
inkscape:window-width="1918"
inkscape:window-height="1058"
inkscape:window-x="0"
inkscape:window-y="20"
inkscape:window-maximized="1"
inkscape:current-layer="g341" />
<g
id="Red_Heart_1_"
transform="translate(-691.94444,-547.84688)">
<g
id="g341">
<g
id="g42"
transform="translate(440.45923,881.136)"
style="fill:#03020b;fill-opacity:1;stroke-width:3.29999943;stroke-dasharray:none"
inkscape:export-filename="alliance.png"
inkscape:export-xdpi="41.410011"
inkscape:export-ydpi="41.410011">
<g
id="g41"
style="fill:#03020b;fill-opacity:1;stroke-width:3.29999943;stroke-dasharray:none">
<path
fill="#b94d77"
d="m 1236.4111,339.30043 v 0.007 l -3.3933,3.42735 c -6.2423,-4.97091 -16.2773,-5.27533 -24.2834,2.73078 -6.0954,-6.8368 -16.7481,-7.03914 -24.0702,-1.05113 l -2.2778,-2.27774 0.021,-0.0215 -21.0386,-21.03864 -56.9094,56.90944 21.0386,21.03685 8.5397,-8.53973 25.2826,25.28254 c -7.8647,6.63982 -2.4246,18.78955 7.1483,16.77325 -1.4325,6.42673 4.3209,12.14973 10.7226,10.72256 -1.4325,6.42852 4.3227,12.14973 10.7226,10.72256 -2.0074,9.53535 10.2641,15.17955 16.8914,7.0087 v 0.002 c 6.7741,4.49817 16.3686,-1.52924 15.3926,-10.07971 6.6255,0.70015 12.2017,-4.89034 11.5033,-11.5033 6.6255,0.70015 12.2017,-4.89033 11.5033,-11.5033 8.5523,0.97592 14.5314,-8.59703 10.1138,-15.34608 l 28.1744,-28.17627 7.9614,7.96134 22.5696,-22.56967 -53.0505,-53.05053 z m -126.6849,38.5013 51.4658,-51.46579 15.9639,15.96387 -51.4658,51.46579 z m 51.165,49.5999 c -2.2598,-2.25983 -2.1273,-6.05785 0.2972,-8.48421 2.4246,-2.42637 6.2226,-2.55888 8.4843,-0.29726 2.2598,2.25984 2.1273,6.05786 -0.2973,8.48422 -2.4264,2.42458 -6.2244,2.55709 -8.4842,0.29725 z m 10.7225,10.72257 c -2.2598,-2.25984 -2.1273,-6.05786 0.2973,-8.48422 2.4246,-2.42458 6.2226,-2.55888 8.4824,-0.29725 2.2599,2.25983 2.1273,6.05785 -0.2972,8.48421 -2.4228,2.42458 -6.2226,2.55888 -8.4825,0.29726 z m 10.7226,10.72256 c -2.2598,-2.25984 -2.1273,-6.05786 0.2973,-8.48422 2.4245,-2.42458 6.2226,-2.55888 8.4824,-0.29725 2.2598,2.26162 2.1273,6.05785 -0.2973,8.48242 -2.4245,2.42458 -6.2226,2.56067 -8.4824,0.29905 z m 19.2068,10.42531 c -2.4246,2.42457 -6.2226,2.55887 -8.4842,0.29725 -2.2617,-2.26162 -2.1274,-6.05786 0.2972,-8.48422 2.4246,-2.42457 6.2226,-2.55887 8.4842,-0.29725 2.2599,2.26162 2.1274,6.05964 -0.2972,8.48422 z m 47.6266,-36.90402 c -2.6574,2.65736 -6.6667,2.33325 -8.4914,0.28829 v 0 c -2.2455,-2.2455 -18.3473,-18.34725 -21.0315,-21.03147 l -2.7218,2.72182 c 2.4335,2.43353 18.8236,18.82358 21.0404,21.04043 2.2598,2.25984 2.1273,6.05786 -0.2972,8.48243 -2.4246,2.42458 -6.2226,2.55888 -8.4843,0.29725 v 0 c 0,-0.002 -21.0386,-21.03864 -21.0404,-21.04043 l -2.7218,2.72183 c 0.607,0.60704 14.5313,14.52954 21.0315,21.03148 v 0 c 0,0.002 0,0.007 0,0.009 v 0 c 2.2598,2.25983 2.1273,6.05785 -0.2973,8.48243 -2.4246,2.42457 -6.2226,2.55887 -8.4842,0.29725 -0.018,-0.0143 -21.0261,-21.0279 -21.0404,-21.04222 l -2.7219,2.72182 c 2.5571,2.55709 19.445,19.44494 21.3538,21.3538 l -0.018,0.0161 c 1.9411,2.2849 1.7173,5.84118 -0.5945,8.15294 -2.2562,2.25625 -5.7015,2.52664 -7.9918,0.7306 2.3279,-6.69713 -3.3664,-13.43902 -10.4145,-11.95455 1.4325,-6.42852 -4.3227,-12.14973 -10.7226,-10.72256 1.4326,-6.43031 -4.3245,-12.14973 -10.7225,-10.72256 1.4325,-6.80636 -4.8617,-12.75677 -11.9994,-10.39845 l -26.0435,-26.04358 v 0 l 42.9045,-42.90457 4.7417,4.74171 1.3323,-1.33227 c 5.9701,-5.97011 15.33,-5.81969 20.2722,-0.0806 l -20.2149,20.21493 c -3.7837,3.7837 -3.9932,9.73053 -0.4656,13.25816 3.7587,3.71386 9.727,3.10861 13.2582,-0.46557 l 9.0912,-9.09126 36.5746,36.57274 v 0 l 5.1965,5.19654 v 0 c 2.0647,1.88558 2.3512,5.85909 -0.2883,8.49855 z m 29.7932,-40.51582 -28.042,28.04197 -36.3005,-36.30235 v 0 c 7.1054,2.46039 15.5198,-0.0197 20.5927,-6.63087 0.6519,-0.7879 0.5247,-1.959 -0.2793,-2.5911 -0.8542,-0.57839 -2.0127,-0.37426 -2.6162,0.46199 -5.8018,7.57276 -16.433,7.63365 -21.3323,1.95542 -0.7127,-0.81118 -1.4988,-0.95085 -2.2258,-0.62137 -0.5193,0.21846 0.4978,-0.70015 -12.6959,12.49354 -3.7568,3.75505 -9.7466,1.22482 -9.5156,-3.66193 0.063,-1.53103 0.7055,-2.98326 1.7978,-4.05767 l 23.5904,-23.59035 c 5.6281,-5.62809 14.4758,-5.93609 19.7225,-0.6912 0.8255,0.76641 2.0718,0.57839 2.6358,-0.10028 v 0 l 4.6665,-4.71306 z m 10.6814,5.23952 -47.9758,-47.97576 42.5518,42.55181 -42.5518,-42.55181 17.126,-17.12423 47.9758,47.97576 z"
id="path40"
style="fill:#f0f0f0;fill-opacity:1;stroke-width:5.909;stroke-dasharray:none"
inkscape:export-filename="alliance.png"
inkscape:export-xdpi="23.125381"
inkscape:export-ydpi="23.125381" />
</g>
</g>
</g>
</g>
<g
id="Handshake">
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 695 B

@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
sodipodi:docname="war.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="1.0733976"
inkscape:cx="443.91751"
inkscape:cy="446.24657"
inkscape:window-width="1918"
inkscape:window-height="1058"
inkscape:window-x="0"
inkscape:window-y="20"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
style="fill:none;fill-rule:evenodd;stroke:#ff0303;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers;stroke-opacity:1;stroke-dasharray:none"
id="path1"
cx="115.44493"
cy="104.43376"
r="10"
inkscape:export-filename="war.png"
inkscape:export-xdpi="24.038008"
inkscape:export-ydpi="24.038008" />
<rect
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.668134;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="rect1"
width="26.4165"
height="1.1155547"
x="102.23669"
y="103.87598" />
<rect
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.66247;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="rect1-5"
width="25.970568"
height="1.1155547"
x="91.448479"
y="-116.00271"
transform="rotate(90)" />
<rect
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.968165;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="rect2"
width="1.1160001"
height="1.1906"
x="114.88671"
y="103.83846" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg1"
sodipodi:docname="refineds.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="1.4142136"
inkscape:cx="463.15494"
inkscape:cy="352.84628"
inkscape:window-width="1918"
inkscape:window-height="1058"
inkscape:window-x="0"
inkscape:window-y="20"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="-2.2804804 : 132.16513 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="210 : 135.28811 : 1"
inkscape:persp3d-origin="102.71952 : 82.665123 : 1"
id="perspective1" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="rect61"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 95.470299,96.005376 h 4.572571 l 7.72779,9.348274 H 87.742509 Z"
sodipodi:nodetypes="ccccc"
inkscape:export-filename="refineds.png"
inkscape:export-xdpi="100.52969"
inkscape:export-ydpi="100.52969" />
<path
id="rect61-0"
style="fill:#ababab;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 100.33197,96.005374 26.97968,-5.992591 7.75676,9.844057 -27.31132,5.49681 z"
sodipodi:nodetypes="ccccc" />
<path
id="rect61-0-5"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 95.470299,96.005376 25.987121,-6.137336 6.00556,0.144743 -27.28234,5.992591 z"
sodipodi:nodetypes="ccccc" />
<path
id="rect61-5"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 115.96685,96.005377 h 4.57257 l 7.72779,9.348273 h -20.02815 z"
sodipodi:nodetypes="ccccc" />
<path
id="rect61-0-6"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 120.82852,96.005375 26.97968,-5.992591 7.75676,9.844057 -27.31132,5.496809 z"
sodipodi:nodetypes="ccccc" />
<path
id="rect61-0-5-9"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 115.96685,96.005377 25.98712,-6.137336 6.00556,0.144743 -27.28234,5.992591 z"
sodipodi:nodetypes="ccccc" />
<path
id="rect61-5-5"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 105.19985,86.624821 h 4.57257 l 7.72779,9.348273 H 97.472059 Z"
sodipodi:nodetypes="ccccc" />
<path
id="rect61-0-6-2"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 110.06152,86.624819 26.97968,-5.992591 7.75676,9.844057 -27.31132,5.496809 z"
sodipodi:nodetypes="ccccc" />
<path
id="rect61-0-5-9-5"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 105.19985,86.624821 25.98712,-6.137336 6.00556,0.144743 -27.28234,5.992591 z"
sodipodi:nodetypes="ccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
sodipodi:docname="refines.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="1.4142136"
inkscape:cx="476.58997"
inkscape:cy="302.6417"
inkscape:window-width="1918"
inkscape:window-height="1058"
inkscape:window-x="0"
inkscape:window-y="20"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="-2.2804804 : 132.16513 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="210 : 135.28811 : 1"
inkscape:persp3d-origin="102.71952 : 82.665123 : 1"
id="perspective1" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="rect61"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 90.608764,93.289576 h 4.57257 l 7.727786,9.348274 H 82.880974 Z"
sodipodi:nodetypes="ccccc" />
<path
id="rect61-0"
style="fill:#ababab;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 95.470434,93.289574 26.979676,-5.992591 7.75676,9.844057 -27.31132,5.49681 z"
sodipodi:nodetypes="ccccc" />
<path
id="rect61-0-5"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 90.608764,93.289576 25.987116,-6.137336 6.00556,0.144743 -27.282336,5.992591 z"
sodipodi:nodetypes="ccccc" />
<path
id="rect61-5"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 111.10531,93.289577 h 4.57257 l 7.72779,9.348273 h -20.02815 z"
sodipodi:nodetypes="ccccc" />
<path
id="rect61-0-6"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 115.96698,93.289575 26.97968,-5.992591 7.75676,9.844057 -27.31132,5.496809 z"
sodipodi:nodetypes="ccccc" />
<path
id="rect61-0-5-9"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 111.10531,93.289577 25.98712,-6.137336 6.00556,0.144743 -27.28234,5.992591 z"
sodipodi:nodetypes="ccccc" />
<path
id="rect61-5-5"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 100.33831,83.909021 h 4.57257 l 7.72779,9.348273 H 92.610524 Z"
sodipodi:nodetypes="ccccc" />
<path
id="rect61-0-6-2"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 105.19998,83.909019 26.97968,-5.992591 7.75676,9.844057 -27.31132,5.496809 z"
sodipodi:nodetypes="ccccc" />
<path
id="rect61-0-5-9-5"
style="fill:#dddddd;fill-rule:evenodd;stroke:#000000;stroke-width:0.4;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 100.33831,83.909021 25.98712,-6.137336 6.00556,0.144743 -27.28234,5.992591 z"
sodipodi:nodetypes="ccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
sodipodi:docname="research.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="1.4142136"
inkscape:cx="340.11836"
inkscape:cy="325.26912"
inkscape:window-width="1918"
inkscape:window-height="1058"
inkscape:window-x="0"
inkscape:window-y="20"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
style="fill:none;stroke:#000000;stroke-width:0.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 82.639575,58.640115 0,25.957628 L 60,120 h 60 l -22.639575,-35.402257 0,-25.957414"
id="path2"
sodipodi:nodetypes="cccccc"
inkscape:export-filename="research.png"
inkscape:export-xdpi="41.573986"
inkscape:export-ydpi="41.573986" />
<path
style="fill:#1346d1;fill-opacity:1;stroke:none;stroke-width:0.591413;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 82.793943,84.850665 60.478382,119.74625 H 119.61967 L 97.304108,84.850665 c 0,0 -1.703165,-1.953364 -5.300545,-0.799238 -2.006749,0.643813 -3.072303,-0.647911 -4.850398,-1.48984 -2.18572,-1.034939 -4.359222,2.289078 -4.359222,2.289078 z"
id="path2-0"
sodipodi:nodetypes="ccccssc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

+66
View File
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
sodipodi:docname="time.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="1.0733976"
inkscape:cx="429.47738"
inkscape:cy="417.36631"
inkscape:window-width="1918"
inkscape:window-height="1058"
inkscape:window-x="0"
inkscape:window-y="20"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="path1"
cy="75.38356"
cx="125.38356"
r="25"
inkscape:export-filename="time.png"
inkscape:export-xdpi="49.320389"
inkscape:export-ydpi="49.320389" />
<rect
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="rect1"
width="15"
height="1.7659841"
x="125"
y="75" />
<rect
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="rect1-5"
width="22.780312"
height="1.7659841"
x="53.985397"
y="-126.76598"
transform="rotate(90)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
sodipodi:docname="wealth.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="1.0733976"
inkscape:cx="378.23822"
inkscape:cy="494.69087"
inkscape:window-width="1918"
inkscape:window-height="1058"
inkscape:window-x="0"
inkscape:window-y="20"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
style="fill:#ebee1d;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;paint-order:stroke fill markers;stroke-opacity:1;stroke-dasharray:none"
id="path1"
cx="109.89808"
cy="97.861061"
r="22.423773"
inkscape:export-filename="wealth.png"
inkscape:export-xdpi="55.401009"
inkscape:export-ydpi="55.401009" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:38.3757px;line-height:1.25;font-family:FreeMono;-inkscape-font-specification:'FreeMono Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:1.43908"
x="98.298317"
y="108.41423"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="stroke-width:1.43908"
x="98.298317"
y="108.41423">$</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

+4 -2
View File
@@ -10,9 +10,11 @@ cmake_policy(SET CMP0015 NEW)
set(UNIT_BUTTONS unitButton.cpp tradeButton.cpp buildButton.cpp trainButton.cpp researchButton.cpp)
set(OPTIONS_BUTTONS optionsButton.cpp tabButton.cpp okButton.cpp defaultsButton.cpp)
set(IN_GAME_APP_STATE_BUTTONS mainMenuButton.cpp)
set(TRADING_BUTTONS playerTradeButton.cpp tradingScreenButton.cpp offerButton.cpp resourceAmmountButton.cpp)
set(MENU_BUTTONS mainMenuButton.cpp singlePlayerButton.cpp exitButton.cpp backButton.cpp playButton.cpp)
set(MAP_EDITOR_BUTTONS mapEditorButton.cpp newMapButton.cpp loadMapButton.cpp exportButton.cpp)
set(BUTTONS singlePlayerButton.cpp exitButton.cpp backButton.cpp playButton.cpp statsButton.cpp ${OPTIONS_BUTTONS} ${IN_GAME_APP_STATE_BUTTONS} ${MAP_EDITOR_BUTTONS} ${UNIT_BUTTONS})
set(BUTTONS statsButton.cpp activeStateButton.cpp ${TRADING_BUTTONS} ${OPTIONS_BUTTONS} ${MENU_BUTTONS} ${MAP_EDITOR_BUTTONS} ${UNIT_BUTTONS})
set(LISTBOXES skyboxTextureListbox.cpp landTextureListbox.cpp gameObjectListbox.cpp)
set(GUI tooltip.cpp concreteGuiManager.cpp ${BUTTONS} ${LISTBOXES})
+66 -13
View File
@@ -2,6 +2,7 @@
#include <quaternion.h>
#include <model.h>
#include <material.h>
#include <texture.h>
#include <quad.h>
#include <text.h>
#include <rayCaster.h>
@@ -34,17 +35,14 @@ namespace battleship{
using namespace configData;
using namespace gameBase;
ActiveGameState::ActiveGameState(GuiAppState *guiState, int playerId) : AbstractAppState(
ActiveGameState::ActiveGameState(GuiAppState *gs, int plId) : AbstractAppState(
AppStateType::ACTIVE_STATE,
configData::calcSumBinds(AppStateType::ACTIVE_STATE, true),
configData::calcSumBinds(AppStateType::ACTIVE_STATE, false),
GameManager::getSingleton()->getPath() + scripts[(int)ScriptFiles::OPTIONS]){
this->guiState = guiState;
this->playerId = playerId;
mainPlayer = Game::getSingleton()->getPlayer(playerId);
depth = 1;
GameManager::getSingleton()->getPath() + scripts[(int)ScriptFiles::OPTIONS]), guiState(gs), playerId(plId), depth(1){
initDragbox();
mainPlayer = Game::getSingleton()->getPlayer(playerId);
}
ActiveGameState::~ActiveGameState() {
@@ -67,6 +65,28 @@ namespace battleship{
root->getGuiNode()->attachChild(dragboxNode);
}
void ActiveGameState::initCursor(){
string basePath = GameManager::getSingleton()->getPath() + "Textures/Icons/Cursors/";
sol::state_view SOL_LUA_VIEW = generateView();
string p1[]{basePath + (string)SOL_LUA_VIEW["pointerTex"]}, p2[]{basePath + (string)SOL_LUA_VIEW["attackTex"]}, p3[]{basePath + (string)SOL_LUA_VIEW["garrisonTex"]};
pointerTex = new Texture(p1, 1, false);
attackTex = new Texture(p2, 1, false);
garrisonTex = new Texture(p3, 1, false);
Root *root = Root::getSingleton();
Material *mat = new Material(root->getLibPath() + "gui");
mat->addBoolUniform("texturingEnabled", true);
mat->addTexUniform("diffuseMap", pointerTex, false);
Quad *quad = new Quad(Vector3(20, 20, 0), false);
quad->setMaterial(mat);
cursorNode = new Node();
cursorNode->attachMesh(quad);
root->getGuiNode()->attachChild(cursorNode);
}
void ActiveGameState::removeDragbox(){
Root::getSingleton()->getRootNode()->dettachChild(dragboxNode);
delete dragboxNode;
@@ -75,18 +95,49 @@ namespace battleship{
void ActiveGameState::onAttached() {
AbstractAppState::onAttached();
ConcreteGuiManager::getSingleton()->readLuaScreenScript("activeGameState.lua");
if(!cursorNode) initCursor();
}
void ActiveGameState::onDettached() {
AbstractAppState::onDettached();
}
void ActiveGameState::updateCursor(){
Vector2 cursorPos = getCursorPos();
cursorNode->setPosition(Vector3(cursorPos.x, cursorPos.y, .8));
bool canSelect = canSelectHoveredOnGameObj();
bool ownGameObj = (gameObjHoveredOn && gameObjHoveredOn->getPlayer()->getTeam() == mainPlayer->getTeam());
if(controlPressed || (gameObjHoveredOn && !ownGameObj && gameObjHoveredOn->getType() == GameObject::Type::UNIT))
cursorState = CursorState::ATTACK;
else
cursorState = CursorState::NORMAL;
cursorNode->setVisible(cursorState != CursorState::NORMAL);
Texture *tex = nullptr;
switch(cursorState){
case CursorState::ATTACK:
tex = attackTex;
break;
case CursorState::GARRISON:
tex = garrisonTex;
break;
}
cursorNode->getMesh(0)->getMaterial()->setTexUniform("diffuseMap", tex, false);
}
void ActiveGameState::update() {
ConcreteGuiManager *guiManager = ConcreteGuiManager::getSingleton();
guiManager->getText("depth")->setText(L"Depth: " + to_wstring(depth));
guiManager->getText("refineds")->setText(L"Refineds: " + to_wstring(mainPlayer->getResource(ResourceType::REFINEDS)));
guiManager->getText("wealth")->setText(L"Wealth: " + to_wstring(mainPlayer->getResource(ResourceType::WEALTH)));
guiManager->getText("research")->setText(L"Research: " + to_wstring(mainPlayer->getResource(ResourceType::RESEARCH)));
guiManager->getText("refineds")->setText(to_wstring(mainPlayer->getResource(ResourceType::REFINEDS)));
guiManager->getText("wealth")->setText(to_wstring(mainPlayer->getResource(ResourceType::WEALTH)));
guiManager->getText("research")->setText(to_wstring(mainPlayer->getResource(ResourceType::RESEARCH)));
updateCursor();
if(!isSelectionBox && leftMouseClicked && getTime() - lastLeftMouseClicked > 10)
isSelectionBox = true;
@@ -159,9 +210,8 @@ namespace battleship{
ufCtr->removeGameObjectFrames();
ufCtr->setPlacingFrames(false);
ConcreteGuiManager::getSingleton()->removeAllButtons();
buttons.clear();
unitGuiScreen = "";
ConcreteGuiManager::getSingleton()->readLuaScreenScript("activeGameState.lua");
}
bool ActiveGameState::selectedUnitsAmongst(vector<Unit*> units){
@@ -187,7 +237,7 @@ namespace battleship{
vector<Checkbox*> checkboxes{};
vector<Slider*> sliders{};
vector<Textbox*> textboxes{};
vector<Node*> guiRects{};
vector<Node*> guiRects = guiManager->getGuiRectangles();
vector<Text*> texts{
guiManager->getText("depth"),
guiManager->getText("refineds"),
@@ -331,6 +381,9 @@ namespace battleship{
void ActiveGameState::onAction(int bind, bool isPressed) {
GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton();
if(!ConcreteGuiManager::getSingleton()->findClickedButtons().empty())
return;
switch((Bind)bind){
case Bind::DRAG_BOX:
leftMouseClicked = isPressed;
+14 -1
View File
@@ -8,6 +8,7 @@
namespace vb01{
class Node;
class Texture;
}
namespace vb01Gui{
@@ -31,8 +32,17 @@ namespace battleship{
inline Player* getPlayer(){return mainPlayer;}
inline std::vector<Unit*>& getUnitGroup(int i){return unitGroups[i];}
private:
enum CursorState{
NORMAL,
ATTACK,
GARRISON,
SUPPLY
};
bool selectedUnitsAmongst(std::vector<Unit*>);
void updateGameObjHoveredOn();
void initCursor();
void updateCursor();
void initDragbox();
void removeDragbox();
void deselectUnits();
@@ -45,8 +55,9 @@ namespace battleship{
void enableUnitState(Unit::State);
inline bool canSelectHoveredOnGameObj(){return gameObjHoveredOn && gameObjHoveredOn->isSelectable() && gameObjHoveredOn->getPlayer() == mainPlayer;}
GuiAppState *guiState;
CursorState cursorState = CursorState::NORMAL;
Player *mainPlayer;
GuiAppState *guiState;
std::string unitGuiScreen = "";
GameObject *gameObjHoveredOn = nullptr;
vb01::Node *dragboxNode = nullptr;
@@ -59,6 +70,8 @@ namespace battleship{
const int NUM_MAX_ZOOMS = 10;
float depth = 1;
vb01::s64 lastLeftMouseClicked = 0;
vb01::Node *cursorNode = nullptr;
vb01::Texture *pointerTex = nullptr, *attackTex = nullptr, *garrisonTex = nullptr;
};
}
+50
View File
@@ -0,0 +1,50 @@
#include "activeStateButton.h"
#include "gameManager.h"
#include "activeGameState.h"
#include "concreteGuiManager.h"
#include <listbox.h>
#include <checkbox.h>
#include <slider.h>
#include <textbox.h>
#include <text.h>
#include <stateManager.h>
namespace battleship{
using namespace std;
using namespace vb01;
using namespace vb01Gui;
using namespace gameBase;
ActiveStateButton::ActiveStateButton(Vector3 pos, Vector2 size, string gs, string name, int trigger, string imagePath) : Button(pos, size, name, GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", trigger, true, imagePath), guiScreen(gs){
StateManager *stateManager = GameManager::getSingleton()->getStateManager();
ActiveGameState *activeState = (ActiveGameState*)stateManager->getAppStateByType((int)AppStateType::ACTIVE_STATE);
if(activeState)
activeState->addButton(this);
}
void ActiveStateButton::onClick(){
ConcreteGuiManager *guiManager = ConcreteGuiManager::getSingleton();
vector<Listbox*> listboxes{};
vector<Checkbox*> checkboxes{};
vector<Slider*> sliders{};
vector<Textbox*> textboxes{};
vector<Node*> guiRects{
guiManager->getGuiRectangle("refineds"),
guiManager->getGuiRectangle("wealth"),
guiManager->getGuiRectangle("research"),
};
vector<Text*> texts{
guiManager->getText("depth"),
guiManager->getText("refineds"),
guiManager->getText("wealth"),
guiManager->getText("research")
};
guiManager->readLuaScreenScript(guiScreen, buttons, listboxes, checkboxes, sliders, textboxes, guiRects, texts);
}
}
+18
View File
@@ -0,0 +1,18 @@
#ifndef ACTIVE_STATE_BUTTON_H
#define ACTIVE_STATE_BUTTON_H
#include <button.h>
namespace battleship{
class ActiveStateButton : public vb01Gui::Button{
public:
ActiveStateButton(vb01::Vector3, vb01::Vector2, std::string, std::string, int = -1, std::string = "");
void onClick();
private:
std::string guiScreen = "";
protected:
std::vector<vb01Gui::Button*> buttons;
};
}
#endif
+1 -1
View File
@@ -7,7 +7,7 @@ namespace battleship{
using namespace vb01;
using namespace vb01Gui;
BackButton::BackButton(Vector2 pos, Vector2 size, string name, string screen) : Button(pos, size, name, GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", -1, true) {
BackButton::BackButton(Vector3 pos, Vector2 size, string name, string screen) : Button(pos, size, name, GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", -1, true) {
this->screen = screen;
}
+1 -1
View File
@@ -6,7 +6,7 @@
namespace battleship{
class BackButton : public vb01Gui::Button{
public:
BackButton(vb01::Vector2, vb01::Vector2, std::string, std::string);
BackButton(vb01::Vector3, vb01::Vector2, std::string, std::string);
void onClick();
private:
std::string screen;
+1 -1
View File
@@ -16,7 +16,7 @@ namespace battleship{
using namespace vb01Gui;
using namespace gameBase;
BuildButton::BuildButton(Vector2 pos, Vector2 size, string name, int trigger, string imagePath, int uid, int slId) :
BuildButton::BuildButton(Vector3 pos, Vector2 size, string name, int trigger, string imagePath, int uid, int slId) :
UnitButton(pos, size, name, GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", trigger, imagePath, uid), slotId(slId){}
void BuildButton::onClick(){
+1 -1
View File
@@ -6,7 +6,7 @@
namespace battleship{
class BuildButton : public UnitButton{
public:
BuildButton(vb01::Vector2, vb01::Vector2, std::string, int, std::string, int, int);
BuildButton(vb01::Vector3, vb01::Vector2, std::string, int, std::string, int, int);
void onClick();
private:
int slotId;
+90 -32
View File
@@ -26,6 +26,11 @@
#include "statsButton.h"
#include "researchButton.h"
#include "tradeButton.h"
#include "activeStateButton.h"
#include "playerTradeButton.h"
#include "tradingScreenButton.h"
#include "offerButton.h"
#include "resourceAmmountButton.h"
namespace battleship{
using namespace std;
@@ -35,6 +40,12 @@ namespace battleship{
static ConcreteGuiManager *concreteGuiManager = nullptr;
ConcreteGuiManager::ConcreteGuiManager(){
string assetPath = GameManager::getSingleton()->getPath();
texBasePath = assetPath + "Textures/";
fontBasePath = assetPath + "Fonts/";
}
ConcreteGuiManager* ConcreteGuiManager::getSingleton(){
if(!concreteGuiManager)
concreteGuiManager = new ConcreteGuiManager();
@@ -43,21 +54,28 @@ namespace battleship{
}
//TODO refactor player difficulty and faction listbox selection
//TODO remove hardcoded font path values
Button* ConcreteGuiManager::parseButton(int guiId){
sol::state_view SOL_LUA_STATE = generateView();
sol::table guiTable = SOL_LUA_STATE["gui"][guiId + 1];
sol::table posTable = guiTable["pos"];
Vector2 pos = Vector2(posTable["x"], posTable["y"]);
Vector3 pos = Vector3(posTable["x"], posTable["y"], posTable["z"]);
sol::table sizeTable = guiTable["size"];
Vector2 size = Vector2(sizeTable["x"], sizeTable["y"]);
//TODO factor out repetetive optional lua key checks
string nk = "name";
sol::optional<string> nameOpt = guiTable[nk];
string name = (nameOpt != sol::nullopt ? (string)guiTable[nk] : "");
ButtonType type = (ButtonType)guiTable["buttonType"];
string ipk = "imagePath";
sol::optional<string> pathOpt = guiTable[ipk];
string imagePath = (pathOpt != sol::nullopt ? texBasePath + (string)guiTable[ipk] : "");
bool texturingEnabled = (imagePath != "");
Button *button = nullptr;
switch(type){
@@ -168,7 +186,7 @@ namespace battleship{
int unitId = SOL_LUA_STATE["UnitId"]["ENGINEER"];
int strId = SOL_LUA_STATE["units"][unitId + 1]["buildableUnits"][guiId + 1]["id"];
string buttonName = SOL_LUA_STATE["units"][strId + 1]["name"];
button = new BuildButton(pos, size, buttonName, (int)guiTable["trigger"], (string)guiTable["imagePath"], unitId, guiId);
button = new BuildButton(pos, size, buttonName, (int)guiTable["trigger"], imagePath, unitId, guiId);
break;
}
case LAND_FACTORY_TRAIN:
@@ -176,7 +194,7 @@ namespace battleship{
int facId = SOL_LUA_STATE["UnitId"]["LAND_FACTORY"];
int unitId = SOL_LUA_STATE["units"][facId + 1]["buildableUnits"][guiId + 1]["id"];
string buttonName = SOL_LUA_STATE["units"][unitId + 1]["name"];
button = new TrainButton(pos, size, buttonName, (int)guiTable["trigger"], (string)guiTable["imagePath"], facId, guiId);
button = new TrainButton(pos, size, buttonName, (int)guiTable["trigger"], imagePath, facId, guiId);
break;
}
case NAVAL_FACTORY_TRAIN:
@@ -184,7 +202,7 @@ namespace battleship{
int facId = SOL_LUA_STATE["UnitId"]["NAVAL_FACTORY"];
int unitId = SOL_LUA_STATE["units"][facId + 1]["buildableUnits"][guiId + 1]["id"];
string buttonName = SOL_LUA_STATE["units"][unitId + 1]["name"];
button = new TrainButton(pos, size, buttonName, (int)guiTable["trigger"], (string)guiTable["imagePath"], facId, guiId);
button = new TrainButton(pos, size, buttonName, (int)guiTable["trigger"], imagePath, facId, guiId);
break;
}
case FORT_TRAIN:
@@ -192,26 +210,45 @@ namespace battleship{
int facId = SOL_LUA_STATE["UnitId"]["FORT"];
int unitId = SOL_LUA_STATE["units"][facId + 1]["buildableUnits"][guiId + 1]["id"];
string buttonName = SOL_LUA_STATE["units"][unitId + 1]["name"];
button = new TrainButton(pos, size, buttonName, (int)guiTable["trigger"], (string)guiTable["imagePath"], facId, guiId);
button = new TrainButton(pos, size, buttonName, (int)guiTable["trigger"], imagePath, facId, guiId);
break;
}
case STATISTICS:
button = new StatsButton(pos, size, name, (int)guiTable["trigger"], (string)guiTable["imagePath"]);
button = new StatsButton(pos, size, name, (int)guiTable["trigger"], imagePath);
break;
case RESEARCH:
button = new ResearchButton(pos, size, name, (int)guiTable["trigger"], (string)guiTable["imagePath"], (int)SOL_LUA_STATE["UnitId"]["LAB"], (int)guiTable["techId"]);
button = new ResearchButton(pos, size, name, (int)guiTable["trigger"], imagePath, (int)SOL_LUA_STATE["UnitId"]["LAB"], (int)guiTable["techId"]);
break;
case BUY_REFINEDS:
button = new TradeButton(pos, size, name, (int)guiTable["trigger"], (string)guiTable["imagePath"], (int)SOL_LUA_STATE["UnitId"]["TRADE_CENTER"], TradeButton::Type::BUY_REFINEDS);
button = new TradeButton(pos, size, name, (int)guiTable["trigger"], imagePath, (int)SOL_LUA_STATE["UnitId"]["TRADE_CENTER"], TradeButton::Type::BUY_REFINEDS);
break;
case SELL_REFINEDS:
button = new TradeButton(pos, size, name, (int)guiTable["trigger"], (string)guiTable["imagePath"], (int)SOL_LUA_STATE["UnitId"]["TRADE_CENTER"], TradeButton::Type::SELL_REFINEDS);
button = new TradeButton(pos, size, name, (int)guiTable["trigger"], imagePath, (int)SOL_LUA_STATE["UnitId"]["TRADE_CENTER"], TradeButton::Type::SELL_REFINEDS);
break;
case BUY_RESEARCH:
button = new TradeButton(pos, size, name, (int)guiTable["trigger"], (string)guiTable["imagePath"], (int)SOL_LUA_STATE["UnitId"]["TRADE_CENTER"], TradeButton::Type::BUY_RESEARCH);
button = new TradeButton(pos, size, name, (int)guiTable["trigger"], imagePath, (int)SOL_LUA_STATE["UnitId"]["TRADE_CENTER"], TradeButton::Type::BUY_RESEARCH);
break;
case SELL_RESEARCH:
button = new TradeButton(pos, size, name, (int)guiTable["trigger"], (string)guiTable["imagePath"], (int)SOL_LUA_STATE["UnitId"]["TRADE_CENTER"], TradeButton::Type::SELL_RESEARCH);
button = new TradeButton(pos, size, name, (int)guiTable["trigger"], imagePath, (int)SOL_LUA_STATE["UnitId"]["TRADE_CENTER"], TradeButton::Type::SELL_RESEARCH);
break;
case ACTIVE_GAME_STATE:
button = new ActiveStateButton(pos, size, (string)guiTable["guiScreen"], name, (int)guiTable["trigger"], imagePath);
break;
case PLAYER_TRADE:
button = new PlayerTradeButton(pos, size, (string)guiTable["guiScreen"], name, (int)guiTable["trigger"], imagePath);
break;
case TRADING_SCREEN:{
int lid = guiTable["dependencies"][1]["id"];
Listbox *listbox = (Listbox*)guiElements[lid].second;
button = new TradingScreenButton(pos, size, listbox, (int)SOL_LUA_STATE["playerId"], (string)guiTable["guiScreen"], name, (int)guiTable["trigger"], imagePath);
break;
}
case TRADE_OFFER:
button = new OfferButton(pos, size, (int)SOL_LUA_STATE["playerId"], name, (int)guiTable["trigger"], imagePath);
break;
case RESOURCE_AMMOUNT:
button = new ResourceAmmountButton(pos, size, name, (int)guiTable["ammount"], (int)guiTable["trigger"], imagePath);
break;
}
@@ -229,7 +266,7 @@ namespace battleship{
sol::table guiTable = SOL_LUA_STATE["gui"][guiId + 1];
string posTable = "pos";
Vector2 pos = Vector2(guiTable[posTable]["x"], guiTable[posTable]["y"]);
Vector3 pos = Vector3(guiTable[posTable]["x"], guiTable[posTable]["y"], guiTable[posTable]["z"]);
string sizeTable = "size";
Vector2 size = Vector2(guiTable[sizeTable]["x"], guiTable[sizeTable]["y"]);
@@ -242,7 +279,7 @@ namespace battleship{
bool closable;
Listbox *listbox = nullptr;
string fontPath = GameManager::getSingleton()->getPath() + "Fonts/batang.ttf";
string fontPath = fontBasePath + "batang.ttf";
switch(listboxType){
case CONTROLS:{
@@ -306,7 +343,7 @@ namespace battleship{
break;
}
case SKYBOX_TEXTURES:
lines = readDir(GameManager::getSingleton()->getPath() + "Textures/Skyboxes", true);
lines = readDir(texBasePath + "Skyboxes", true);
numLines = lines.size();
closable = true;
maxDisplay = (numLines > numMaxDisplay ? numMaxDisplay : numLines);
@@ -314,7 +351,7 @@ namespace battleship{
listbox = new SkyboxTextureListbox(pos, size, lines, maxDisplay, fontPath);
break;
case LAND_TEXTURES:
lines = readDir(GameManager::getSingleton()->getPath() + "Textures/Landmass", false);
lines = readDir(texBasePath + "Landmass", false);
numLines = lines.size();
closable = true;
maxDisplay = (numLines > numMaxDisplay ? numMaxDisplay : numLines);
@@ -347,6 +384,10 @@ namespace battleship{
listbox = new Listbox(pos, size, lines, maxDisplay, fontPath, closable);
}
break;
case TRADE_OFFERS:
closable = true;
listbox = new Listbox(pos, size, lines, numMaxDisplay, fontPath, closable);
break;
}
int typeArr[2]{(int)GuiElementType::LISTBOX, (int)listboxType};
@@ -360,10 +401,8 @@ namespace battleship{
sol::table guiTable = SOL_LUA_STATE["gui"][guiId + 1];
string posTable = "pos";
Vector2 pos = Vector2(guiTable[posTable]["x"], guiTable[posTable]["y"]);
string fontPath = GameManager::getSingleton()->getPath() + "Fonts/batang.ttf";
Checkbox *checkbox = new Checkbox(pos, fontPath);
Vector3 pos = Vector3(guiTable[posTable]["x"], guiTable[posTable]["y"], guiTable[posTable]["z"]);
Checkbox *checkbox = new Checkbox(pos, fontBasePath + "batang.ttf");
int typeArr[2]{(int)GuiElementType::CHECKBOX, -1};
guiElements.push_back(make_pair(typeArr, (void*)checkbox));
@@ -376,7 +415,7 @@ namespace battleship{
sol::table guiTable = SOL_LUA_STATE["gui"][guiId + 1];
string posTable = "pos", sizeTable = "size";
Vector2 pos = Vector2(guiTable[posTable]["x"], guiTable[posTable]["y"]);
Vector3 pos = Vector3(guiTable[posTable]["x"], guiTable[posTable]["y"], guiTable[posTable]["z"]);
Vector2 size = Vector2(guiTable[sizeTable]["x"], guiTable[sizeTable]["y"]);
Slider *slider = new Slider(pos, size, guiTable["minValue"], guiTable["maxValue"]);
@@ -392,11 +431,9 @@ namespace battleship{
sol::table guiTable = SOL_LUA_STATE["gui"][guiId + 1];
string posTable = "pos", sizeTable = "size";
Vector2 pos = Vector2(guiTable[posTable]["x"], guiTable[posTable]["y"]);
Vector3 pos = Vector3(guiTable[posTable]["x"], guiTable[posTable]["y"], guiTable[posTable]["z"]);
Vector2 size = Vector2(guiTable[sizeTable]["x"], guiTable[sizeTable]["y"]);
string fontPath = GameManager::getSingleton()->getPath() + "Fonts/batang.ttf";
Textbox *textbox = new Textbox(pos, size, fontPath);
Textbox *textbox = new Textbox(pos, size, fontBasePath + "batang.ttf");
int typeArr[2]{(int)GuiElementType::TEXTBOX, -1};
guiElements.push_back(make_pair(typeArr, (void*)textbox));
@@ -404,22 +441,42 @@ namespace battleship{
return textbox;
}
//TODO factor out checking for optional lua values
Node* ConcreteGuiManager::parseGuiRectangle(int guiId){
sol::state_view SOL_LUA_STATE = generateView();
sol::table guiTable = SOL_LUA_STATE["gui"][guiId + 1];
Root *root = Root::getSingleton();
Material *mat = new Material(root->getLibPath() + "gui");
mat->addBoolUniform("texturingEnabled", false);
sol::table colorTable = guiTable["color"];
mat->addVec4Uniform("diffuseColor", Vector4(colorTable["x"], colorTable["y"], colorTable["z"], colorTable["w"]));
mat->setTransparent(true);
string ipk = "imagePath";
sol::optional<string> pathOpt = guiTable[ipk];
string imagePath = (pathOpt != sol::nullopt ? (string)guiTable[ipk] : "");
bool texturingEnabled = (imagePath != "");
string nk = "name";
sol::optional<string> nameOpt = guiTable[nk];
string name = (nameOpt != sol::nullopt ? (string)guiTable[nk] : "");
mat->addBoolUniform("texturingEnabled", texturingEnabled);
if(texturingEnabled){
string p[]{texBasePath + (string)guiTable[ipk]};
Texture *tex = new Texture(p, 1, false);
mat->addTexUniform("diffuseMap", tex, false);
}
else{
sol::table colorTable = guiTable["color"];
mat->addVec4Uniform("diffuseColor", Vector4(colorTable["x"], colorTable["y"], colorTable["z"], colorTable["w"]));
}
sol::table sizeTable = guiTable["size"];
Quad *quad = new Quad(Vector3(sizeTable["x"], sizeTable["y"], 1), false);
quad->setMaterial(mat);
sol::table posTable = guiTable["pos"];
Node *guiRectangle = new Node(Vector3(posTable["x"], posTable["y"], guiTable["zIndex"]));
Node *guiRectangle = new Node(Vector3(posTable["x"], posTable["y"], posTable["z"]), Quaternion::QUAT_W, Vector3::VEC_IJK, name);
guiRectangle->attachMesh(quad);
root->getGuiNode()->attachChild(guiRectangle);
@@ -433,6 +490,7 @@ namespace battleship{
sol::state_view SOL_LUA_STATE = generateView();
sol::table guiTable = SOL_LUA_STATE["gui"][guiId + 1];
sol::table posTable = guiTable["pos"];
sol::table scaleTable = guiTable["scale"];
Root *root = Root::getSingleton();
@@ -441,12 +499,12 @@ namespace battleship{
sol::table colorTable = guiTable["color"];
mat->addVec4Uniform("diffuseColor", Vector4(colorTable["x"], colorTable["y"], colorTable["z"], colorTable["w"]));
Text *text = new Text(GameManager::getSingleton()->getPath() + "Fonts/" + (string)guiTable["font"], (wstring)guiTable["text"], guiTable["fontFirstChar"], guiTable["fontLastChar"]);
text->setScale((float)guiTable["scale"]);
Text *text = new Text(fontBasePath + (string)guiTable["font"], (wstring)guiTable["text"], guiTable["fontFirstChar"], guiTable["fontLastChar"]);
text->setMaterial(mat);
Vector3 pos = Vector3(posTable["x"], posTable["y"], guiTable["zIndex"]);
Node *node = new Node(pos, Quaternion::QUAT_W, Vector3::VEC_IJK, guiTable["name"]);
Vector3 pos = Vector3(posTable["x"], posTable["y"], posTable["z"]);
Vector3 scale = Vector3(scaleTable["x"], scaleTable["y"], 1);
Node *node = new Node(pos, Quaternion::QUAT_W, scale, guiTable["name"]);
node->addText(text);
root->getGuiNode()->attachChild(node);
+10 -3
View File
@@ -46,7 +46,12 @@ namespace battleship{
BUY_REFINEDS,
SELL_REFINEDS,
BUY_RESEARCH,
SELL_RESEARCH
SELL_RESEARCH,
ACTIVE_GAME_STATE,
PLAYER_TRADE,
TRADING_SCREEN,
TRADE_OFFER,
RESOURCE_AMMOUNT
};
enum ListboxType {
CONTROLS,
@@ -59,7 +64,8 @@ namespace battleship{
LAND_TEXTURES,
CPU_DIFFICULTIES,
FACTIONS,
CONSOLE
CONSOLE,
TRADE_OFFERS
};
class ConcreteGuiManager : public vb01Gui::AbstractGuiManager{
@@ -76,7 +82,7 @@ namespace battleship{
std::vector<vb01::Text*> = std::vector<vb01::Text*>{}
);
private:
ConcreteGuiManager(){}
ConcreteGuiManager();
vb01Gui::Button* parseButton(int);
vb01Gui::Listbox* parseGameObjectListbox();
vb01Gui::Listbox* parseListbox(int);
@@ -87,6 +93,7 @@ namespace battleship{
vb01::Text* parseText(int);
std::vector<std::pair<int*, void*>> guiElements;
std::string texBasePath, fontBasePath;
};
}
+1 -1
View File
@@ -6,7 +6,7 @@ namespace battleship{
using namespace vb01;
using namespace vb01Gui;
DefaultsButton::DefaultsButton(Vector2 pos, Vector2 size, string name) : Button(pos, size, name, GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", -1, true) {}
DefaultsButton::DefaultsButton(Vector3 pos, Vector2 size, string name) : Button(pos, size, name, GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", -1, true) {}
void DefaultsButton::onClick() {}
}
+1 -1
View File
@@ -6,7 +6,7 @@
namespace battleship{
class DefaultsButton : public vb01Gui::Button{
public:
DefaultsButton(vb01::Vector2, vb01::Vector2, std::string);
DefaultsButton(vb01::Vector3, vb01::Vector2, std::string);
void onClick();
private:
};
+1 -1
View File
@@ -7,7 +7,7 @@ using namespace std;
using namespace vb01;
namespace battleship{
ExitButton::ExitButton(Vector2 pos, Vector2 size) : Button(pos, size, "Exit", GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", -1, true) {}
ExitButton::ExitButton(Vector3 pos, Vector2 size) : Button(pos, size, "Exit", GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", -1, true) {}
void ExitButton::onClick() {
//Root::getSingleton()->set
+1 -1
View File
@@ -8,7 +8,7 @@
namespace battleship {
class ExitButton : public vb01Gui::Button {
public:
ExitButton(vb01::Vector2, vb01::Vector2);
ExitButton(vb01::Vector3, vb01::Vector2);
void onClick();
};
}
+1 -1
View File
@@ -10,7 +10,7 @@ namespace battleship{
using namespace vb01Gui;
using namespace gameBase;
ExportButton::ExportButton(Vector2 pos, Vector2 size) : Button(pos, size, "Export", GameManager::getSingleton()->getPath() + "Fonts/batang.ttf"){}
ExportButton::ExportButton(Vector3 pos, Vector2 size) : Button(pos, size, "Export", GameManager::getSingleton()->getPath() + "Fonts/batang.ttf"){}
void ExportButton::onClick(){
StateManager *sm = GameManager::getSingleton()->getStateManager();
+1 -1
View File
@@ -6,7 +6,7 @@
namespace battleship{
class ExportButton : public vb01Gui::Button{
public:
ExportButton(vb01::Vector2 pos, vb01::Vector2 size);
ExportButton(vb01::Vector3 pos, vb01::Vector2 size);
void onClick();
};
}
+10 -2
View File
@@ -244,13 +244,11 @@ namespace battleship{
sol::table techTable = SOL_LUA_VIEW[techKey][i + 1];
Technology t;
t.id = techTable["id"];
t.cost = techTable["cost"];
t.name = techTable["name"];
t.icon = techTable["icon"];
t.description = techTable["description"];
t.parents = parseTechTable(i, techKey, "numParents", "parents");
t.children = parseTechTable(i, techKey, "numChildren", "children");
t.abilities = parseTechTable(i, techKey, "numAbilities", "abilities");
technologies.push_back(t);
@@ -300,4 +298,14 @@ namespace battleship{
return false;
}
vector<TradeOffer*> Game::findTradeOffers(Player *pl1, Player *pl2){
vector<TradeOffer*> offers;
for(TradeOffer *to : tradeOffers)
if((to->initPlayer == pl1 || to->recPlayer == pl1) && (to->initPlayer == pl2 || to->recPlayer == pl2))
offers.push_back(to);
return offers;
}
}
+4
View File
@@ -4,6 +4,7 @@
#include "fx.h"
#include "technology.h"
#include "ability.h"
#include "tradeOffer.h"
#include <vector>
@@ -28,6 +29,8 @@ namespace battleship{
void initTechnologies();
float calcAbilFromTech(Ability::Type, std::vector<int>, int, int);
bool isUnitUnlocked(std::vector<int>, int);
std::vector<TradeOffer*> findTradeOffers(Player*, Player*);
inline void addTradeOffer(TradeOffer *to){tradeOffers.push_back(to);}
inline void addFx(Fx f){fx.push_back(f);}
inline void addPlayer(Player *pl){players.push_back(pl);}
inline std::vector<Player*>& getPlayers(){return players;}
@@ -46,6 +49,7 @@ namespace battleship{
std::vector<Technology> technologies;
std::vector<Ability> abilities;
std::vector<Player*> players;
std::vector<TradeOffer*> tradeOffers;
};
}
+1 -1
View File
@@ -10,7 +10,7 @@ namespace battleship{
using namespace vb01Gui;
using namespace gameBase;
GameObjectListbox::GameObjectListbox(bool ul, Vector2 pos, Vector2 size, vector<string> lines, int maxDisplay, string fontPath) : Listbox(pos, size, lines, maxDisplay, fontPath), unitListbox(ul) {}
GameObjectListbox::GameObjectListbox(bool ul, Vector3 pos, Vector2 size, vector<string> lines, int maxDisplay, string fontPath) : Listbox(pos, size, lines, maxDisplay, fontPath), unitListbox(ul) {}
void GameObjectListbox::onClose(){
GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton();
+1 -1
View File
@@ -6,7 +6,7 @@
namespace battleship{
class GameObjectListbox : public vb01Gui::Listbox{
public:
GameObjectListbox(bool, vb01::Vector2, vb01::Vector2, std::vector<std::string>, int, std::string);
GameObjectListbox(bool, vb01::Vector3, vb01::Vector2, std::vector<std::string>, int, std::string);
void onClose();
private:
bool unitListbox;
+1 -1
View File
@@ -47,7 +47,7 @@ namespace battleship{
leftMousePressed = isPressed;
if(isPressed)
guiManager->findClickedButton();
guiManager->updateGui();
break;
case Bind::SCROLLING_UP:{
+3 -3
View File
@@ -24,19 +24,19 @@ using namespace std;
namespace battleship{
using namespace configData;
InGameAppState::ResumeButton::ResumeButton(Vector2 pos, Vector2 size) : Button(pos, size, "Resume", GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", -1, true) {}
InGameAppState::ResumeButton::ResumeButton(Vector3 pos, Vector2 size) : Button(pos, size, "Resume", GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", -1, true) {}
void InGameAppState::ResumeButton::onClick() {
Game::getSingleton()->togglePause();
}
InGameAppState::ConsoleButton::ConsoleButton(Vector2 pos, Vector2 size) : Button(pos, size, "Console", GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", -1, true) { }
InGameAppState::ConsoleButton::ConsoleButton(Vector3 pos, Vector2 size) : Button(pos, size, "Console", GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", -1, true) { }
void InGameAppState::ConsoleButton::onClick() {
ConcreteGuiManager::getSingleton()->readLuaScreenScript("console.lua");
}
InGameAppState::ConsoleButton::ConsoleButton::ConsoleCommandEntryButton::ConsoleCommandEntryButton(Textbox *t, Listbox *l, Vector2 pos, Vector2 size, string name) : Button(pos, size, name, GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", 257, true) {
InGameAppState::ConsoleButton::ConsoleButton::ConsoleCommandEntryButton::ConsoleCommandEntryButton(Textbox *t, Listbox *l, Vector3 pos, Vector2 size, string name) : Button(pos, size, name, GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", 257, true) {
textbox = t;
listbox = l;
}
+3 -3
View File
@@ -18,7 +18,7 @@ namespace battleship{
public:
class ResumeButton : public vb01Gui::Button {
public:
ResumeButton(vb01::Vector2, vb01::Vector2);
ResumeButton(vb01::Vector3, vb01::Vector2);
void onClick();
private:
};
@@ -27,14 +27,14 @@ namespace battleship{
public:
class ConsoleCommandEntryButton : public Button {
public:
ConsoleCommandEntryButton(vb01Gui::Textbox*, vb01Gui::Listbox*, vb01::Vector2, vb01::Vector2, std::string);
ConsoleCommandEntryButton(vb01Gui::Textbox*, vb01Gui::Listbox*, vb01::Vector3, vb01::Vector2, std::string);
void onClick();
private:
vb01Gui::Textbox *textbox;
vb01Gui::Listbox *listbox;
};
ConsoleButton(vb01::Vector2, vb01::Vector2);
ConsoleButton(vb01::Vector3, vb01::Vector2);
void onClick();
private:
};
+1 -1
View File
@@ -15,7 +15,7 @@ namespace battleship{
using namespace vb01Gui;
using namespace gameBase;
LandTextureListbox::LandTextureListbox(Vector2 pos, Vector2 size, vector<string> lines, int maxDisplay, std::string fontPath) : Listbox(pos, size, lines, maxDisplay, fontPath){}
LandTextureListbox::LandTextureListbox(Vector3 pos, Vector2 size, vector<string> lines, int maxDisplay, std::string fontPath) : Listbox(pos, size, lines, maxDisplay, fontPath){}
void LandTextureListbox::onClose(){
StateManager *sm = GameManager::getSingleton()->getStateManager();
+1 -1
View File
@@ -6,7 +6,7 @@
namespace battleship{
class LandTextureListbox : public vb01Gui::Listbox{
public:
LandTextureListbox(vb01::Vector2, vb01::Vector2, std::vector<std::string>, int, std::string);
LandTextureListbox(vb01::Vector3, vb01::Vector2, std::vector<std::string>, int, std::string);
void onClose();
private:
};

Some files were not shown because too many files have changed in this diff Show More