Merge pull request #119 from devZoGok/ft-115-in-game-gui
Ft 115 in game gui
@@ -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}
|
||||
},
|
||||
}
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,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
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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,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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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,4 +1,4 @@
|
||||
Pos = {x = 110, y = 150}
|
||||
Pos = {x = 110, y = 150, z = 0}
|
||||
Size = {x = 100, y = 20}
|
||||
space = 60
|
||||
|
||||
|
||||
@@ -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
|
||||
},
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
@@ -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}}
|
||||
}
|
||||
}
|
||||
@@ -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,
|
||||
}
|
||||
}
|
||||
@@ -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',
|
||||
|
||||
@@ -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 = {},
|
||||
},
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 695 B |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
After Width: | Height: | Size: 2.8 KiB |
@@ -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 |
|
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 |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 49 KiB |
@@ -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})
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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(){
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -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() {}
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
namespace battleship {
|
||||
class ExitButton : public vb01Gui::Button {
|
||||
public:
|
||||
ExitButton(vb01::Vector2, vb01::Vector2);
|
||||
ExitButton(vb01::Vector3, vb01::Vector2);
|
||||
void onClick();
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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,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;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -47,7 +47,7 @@ namespace battleship{
|
||||
leftMousePressed = isPressed;
|
||||
|
||||
if(isPressed)
|
||||
guiManager->findClickedButton();
|
||||
guiManager->updateGui();
|
||||
|
||||
break;
|
||||
case Bind::SCROLLING_UP:{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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:
|
||||
};
|
||||
|
||||