From 00291ade593a01d0271d12982427476fef81079b Mon Sep 17 00:00:00 2001
From: Aaron <rudkowsk@uni-bremen.de>
Date: Mon, 13 Jul 2020 14:20:10 +0100
Subject: [PATCH] inventory

---
 core/assets/shipsys/weapon_system/bomb.png    | Bin 0 -> 1080 bytes
 .../assets/shipsys/weapon_system/healbomb.png | Bin 0 -> 1984 bytes
 core/assets/shipsys/weapon_system/radio.png   | Bin 0 -> 2172 bytes
 .../shipsys/weapon_system/radiobomb.png       | Bin 0 -> 1588 bytes
 core/assets/shipsys/weapon_system/rocket.png  | Bin 0 -> 1593 bytes
 .../Server/ClientHandler.java                 |  24 ++++----
 .../View/Screen/ChooseDifficultyScreen.java   |   1 +
 .../View/Screen/CreateOrJoinServer.java       |   1 +
 .../View/Screen/GamePlay.java                 |  44 ++++++++------
 .../View/Screen/LobbyScreenHost.java          |   1 +
 .../View/Screen/LobbyScreenNormal.java        |   1 +
 .../View/Screen/LoginScreen.java              |   1 +
 .../View/Screen/SPResumeLobby.java            |   1 +
 .../View/Screen/SelectLobbyScreen.java        |   1 +
 .../View/Screen/ShipSelector.java             |   1 +
 .../UI/Inventory/InventoryCrewSlotUI.java     |  36 ++++++++++--
 .../View/UI/Inventory/InventoryIntSlotUI.java |  49 +++++++---------
 .../View/UI/Inventory/InventorySlotUI.java    |  30 ++++++----
 .../View/UI/Inventory/InventoryUI.java        |  12 ++--
 .../UI/Inventory/InventoryWeaponSlotUI.java   |  54 +++++++++---------
 .../View/UI/Ship/ShipView.java                |  21 +++----
 database.mv.db                                | Bin 57344 -> 57344 bytes
 22 files changed, 159 insertions(+), 119 deletions(-)
 create mode 100644 core/assets/shipsys/weapon_system/bomb.png
 create mode 100644 core/assets/shipsys/weapon_system/healbomb.png
 create mode 100644 core/assets/shipsys/weapon_system/radio.png
 create mode 100644 core/assets/shipsys/weapon_system/radiobomb.png
 create mode 100644 core/assets/shipsys/weapon_system/rocket.png

diff --git a/core/assets/shipsys/weapon_system/bomb.png b/core/assets/shipsys/weapon_system/bomb.png
new file mode 100644
index 0000000000000000000000000000000000000000..61dfec12ca5f68822fd7631cb7cba19a3ac776de
GIT binary patch
literal 1080
zcmV-81jqY{P)<h;3K|Lk000e1NJLTq0015U001lq1^@s6a)Jm100006VoOIv0P6tt
z0OiFf>U{tJ010qNS#tmY3ljhU3ljkVnw%H_000McNliru<OdB5HvpJcuBiY31I0;1
zK~z}7#hB4+TXhu2KfjxMn<k{COJi$ASY1c4$Qav{R>lzYL6}8G!J$tws8R+Fd@1x{
z5a`4H1MzM2VTdc{L4-2LCI!U>EY8xjU6!R$+h)nqHnuY{F*n)6xZ&pJ-ZZ&M^g!V9
zOMZOrIp=%M`Q;~Q(tLdbrCQ&ol5t_SE;kDu9T~3qn;?|T;BvDb2iL;3_B9P2?CmK(
z$9B>cYq6bldqS;;0o=X$6##Ev{OHhqQnTP`|0L7?$*T47i800}#w^7rYzXR?^B3Ma
zbK=wxE5C+tx)gp|Tt+ImxpMgve7#<7d>vr%=SALqZxm0Ln?yXtqX&PIczm#wh;P4c
z3#?c4w11M-<rM(F3*6(H|0)18{#nK+#sFAdju4Hcs&Xw_RlmoM`-nzTRnJy6E!%}^
zLJF>~mc9J)=*s|1MK;UcuZKba%*_Xy6PK@Vpfr7XivHeS5_@|HNn&Gji_Ux=MF<oj
z=*;KY*xbV7@zCS-qR0-;zHz1^N}^S5vhAVv`ua<%sxtZ6MHHn(d~=Jv-M{(qhZU|&
zeafkmC%75-mRRh2#xI=3;gI+vw#~!!EeeJHk}ON4l5x>+s3l3l;c#&Mi*M*T;-yp)
z^c?X3Fz{kOj}u82Zr|qo`)^V#7Wr*youy!u{l9XgcN0SMTCzJ7hK64v`Y?>FI7lY;
za64VZA`zDF-v>Zdi$vCcN0J1cE``yN;ffU5QuXM_Fu}DjkHXs=JMIG@lgsi?E=Px=
z0Pr9b1t1zpVK%{pT`_6HK;NqyF;Nfn;}0g7n-7$0Q>$CE$z+^b+PZPCR1eh5uKBML
z+ew!{W>d=y+LEzo^g??{V|3awkBjoZ<lF~zpH|5YB>?C?t&;8D#hK|sDk$v%=iCQ8
z84Te)SKwau?(-&d4xS8#cp>&0u6=KNz<JkG78Y;u$~%>ES-5kH4_`fM32yoXV%KCl
zXJx&0WId=E!N#3p#k!gibYwk^i%aWHhnX|e#ifzY$-ACXl+@>8EIR1OdT?gC>H|08
zX*pK~1=qgUGM6>M8qnBn+L~iu-#|&<`u;0BRMp0_Qp;6s46oh)L=A(r5oes8?RtU#
zw}DuxSo5|Wd6vz}NCWD}T&rxxKT9eZ7qXd`R>Qwl(5g_I0bAv*9$KMlBUA&nqMI3^
zrb9ySp|PXQ_-Ac_&8{PaaWH6g99#=itChxf(lxa(Hy^OP|FBeby=Kh6z6xqVYkFKy
y*Rtwzhe4|j^z~er)w=Jh2WSbltK3GQ0M7uNjK#kCMv5B%0000<MNUMnLSTYPRR>o9

literal 0
HcmV?d00001

diff --git a/core/assets/shipsys/weapon_system/healbomb.png b/core/assets/shipsys/weapon_system/healbomb.png
new file mode 100644
index 0000000000000000000000000000000000000000..338d5e827583b04f2906324af06336955154bfd9
GIT binary patch
literal 1984
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
SpORw$0000<MNUMnLSTZt^`*T4

literal 0
HcmV?d00001

diff --git a/core/assets/shipsys/weapon_system/radio.png b/core/assets/shipsys/weapon_system/radio.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f47b417847962fc29d21185b7011f8f936883c0
GIT binary patch
literal 2172
zcmV-?2!r>DP)<h;3K|Lk000e1NJLTq000{R001ip1^@s6iLUeb00006VoOIv0P6tt
z0OiFf>U{tJ010qNS#tmY3ljhU3ljkVnw%H_000McNliru<OdB61q1Ev!BqeN2nk6<
zK~z}7t(SRhT-6oEfA?*k8E^5}8OK>12M8pD1fiCKDx|7JEh?o242cv<NGd=opte8+
zC<3aep{hWIg4zbD5J5l<4FM;VingJsEl^5Wgb<0c7=j%qPGZM1w#PGX<}LU1k6FCT
z*bQxu^z^px-S3`r&-u=Mig7c52v7rr%a$6seIG<aK>hvA(E7*Q+IjDTFm`ls_KCBX
z)DutGD5U^M4tN|nl;OPgfkY-FW+I_-S6*ReS6yp`fL65`0kEbJS%BZMPz5i%_4PT|
z-`?A6nb7xHhQ~J#x6f@;(OqxY?D+MEMW_M<2<W`!0`9rfj`SVZ_Aj1nI+1;&jvcSV
zqtBePKr(L~FA-AorU|G6j2?aEyjwS%FS%4o@~LBT!}<mC(Z8Z!ef6ct%5PnjkQZOM
zQ{FlJeaWSUW$&jq%OCb^ly84`j!35V!pvapMQhg0mwf7&<WecQb;J46qpzGd(KEB?
zo$i*-#82-&cx=mq@AB&2ACO6EB37P79cpevy{ehhD!l#A-CXP>_|oh#x<CDd_y0CP
zYeEBb#9|P!@;v|QkEn04`PKdJa{Go$k9A9Dn<|pUfGFU8XU*cw&fn}~_q(@n{GdU^
z&T{0)>onGbC?Qf8;jUYsLr8!`LAfXf_~ldU$ft7vjHF?~{IB8ZI@*^RTyyEuth(cZ
zvS(#$PB?(zjwwP<6Rr1XZie-@-2=dmZIANa!Dne`^Et2aeh!WNjLfMBHI~oX9~Uss
zZh3@g)Wc0_+%XdnniEbXS-}LQz%T^E&^Wg6mzN&_guqi|lC@w8G=_{0G?GhM1YS_Y
zfNdAPRjM#fA&Cm>RK*k`ptVA41J74naoxRKaov6RK8TozD4=kjjJX%zFMKOf7^jf6
zOy^kv=y@h?&S7W>w*U5NM1-NFBJV{ovVcT!v$c4hS;hbiB^9xlgXdYrNzF)R5NeZL
z-ez<(MsJ@%F6V$iHrvYMzj}`5wmSZF_MhqdEKBlahK>bo<Z>E-lLLzShA6q5L#U-3
zz)~1Pz%QNwMW_w(d7B+C{Sh}apX2>D$NOzgp0Y`$3~pSzo}b^fmmAlvCz({7I%StJ
zZe~8aUfF}^IfUA%@XQDFIGKTH13xfHk10~aCWc`k2w@<MrXdI&kQ#!}nS_DDdW~fa
zLTw{DEc;X<)5U|K0S{25M=W-{^g9$VmN8HYL<Frht_x2*v6a{U`g^+fXK>wd41fr@
zF1+~icJ5ld8c+-kc$L}s*!JaZD_1Y#nWuKsdG$Ji5PV<Zd4<FG4MMG0v0^z}9^A)@
z70at&6hR1`SFhulr*^Y)^&%eIzPzo1Y_aM(*}Z>^%P(6~el|4RgHm7`U|Aa57HnGs
zF1D?49I!0GG(f2WzGRnQwubKgV=Pu(C#R{iaa+~74y9mtw1?4b4>_-ohI*mr$R})k
z{33ded_qIL;N}bOherz&Th+O)Vl0a@u+`VyglUG@R)FJpM58_(=Ve&^&AWMV&tvp1
zuOpYU$>kk<-y{r8wC2AfQ%bN*O(fz|SDUA?A<L|WG)f&}R>LS`O~S}%tdJbK20bC&
zCriaNmS}5{QYb7dBpUH(sLv9Qr#W@v4HkA7G|n;@8P@dnXj<D=l1$b!nvUV-9D=|E
zU}x7h22Pw-6`m#9T4dt=&aQ36H4`i=BogsysB?)f6uxoIhBEH;U5{WpF4=5^tQ(?~
zR1lTPN+e6qy`;j!on70gjlt{|VNr+Xf+fO57s}+e6c;}F_#O5gRD9lJFnC&#$ufxu
zz)G~WNb{_Y8P}|NRy!?C0nJT$n&UYjRf&l=(%cjwJyL@XEHc@nRTOtd6GWuY-weSr
z!EvN2(s2s!l_6y%`9fp|4!>8}s*N0FINgs@Ogm8N-Eg{}<jB#gIbcmsw3q9zy$P)~
zk%&k4=UpsXV$(X;!!ak%(Wx<Loolivu=%vl=F+dMBA0VmwrmNTHgA-w*;qMSg=w0Y
zrpc_h&FyO+!r*=0{@}^UWD$eQzkCCli+TUUA5J^o85K3aaMEYX^AB*=!YmPEvOIV>
z&1-MIz>(fp7*6`kiGM+|rRQG4&aQ0$)YZbAR^jkIA14fHUoeF%uQ}Eia`=Ex>a@?U
z{Vy<<ft_8G(|^VUDb-z5V>@-RdH9||)~%i)ZqC5>4C-R@XliT+D(lQRlMw1q5d?~C
zRxvVSGL)Q5IFu|r&$<Pi4%HV6<AK9_iv`_*79sByTK(xElZN^@dv-rs*2cksIH!{)
znT*NF!DEc3RXO!1$yM=2N=<THHO5s%Yw$gT^q9fGpb02cq?PYoe;-e5eVEUCg~8Jn
zNBjG^`_4@SfsNKCn>KH(?%7nynn-M#g<WnWtx1i*U=l(*%EMb9;^=2ChYq=<#}s$m
z_7lROw1KS>#+kIS^gKDz!_`-<MZ^R0L~0agE%Ukg+K1S>>jC0*G0s`MlrS*SG6UI}
zB!~!z7=)og7+Q#!m^Fe(9J9tM_Ak4*-7f5aH*MZnsrpj~o*2G~*QLFG7#b*L5`-oY
zB?wJ|z(i~FKTg`3DST5&l`=346QyRZm}*{)H_t@tq=6@TG^r>J1Eo~?$9<yh-+!<q
zyj6*+dRDDlmuhYzQD)REpG&efRh}w@J<--8)d;2|ocM<tpY4zw^f>TwzdEB`+SCR&
ylg%{iGa@U=O0`-W8t(a@397EybV>35w0{HH|LI0fUcBi50000<MNUMnLSTaIIUiL3

literal 0
HcmV?d00001

diff --git a/core/assets/shipsys/weapon_system/radiobomb.png b/core/assets/shipsys/weapon_system/radiobomb.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a3373a064a2c651372cd9a9ae5c5d841688da0f
GIT binary patch
literal 1588
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

literal 0
HcmV?d00001

diff --git a/core/assets/shipsys/weapon_system/rocket.png b/core/assets/shipsys/weapon_system/rocket.png
new file mode 100644
index 0000000000000000000000000000000000000000..6271e0f5e57be397e7fc91ff74b693bd244eecad
GIT binary patch
literal 1593
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

literal 0
HcmV?d00001

diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/ClientHandler.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/ClientHandler.java
index 811a569e..418c5703 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/ClientHandler.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/ClientHandler.java
@@ -354,9 +354,9 @@ public class ClientHandler implements Runnable {
                         weapons.setCrew(crewInRoom);
                         // Add Weapons
                         Weapon laser = new Weapon(UUID.randomUUID().hashCode(), 2, 1, 1, 1, 0,
-                                (float) 1.0, (float) 0.3, 0, (float) 0.3, 1, 1, "Laser Gun", 30);
+                                (float) 1.0, (float) 0.3, 0, (float) 0.3, 1, 1, "Laser", 30);
                         Weapon rocket = new Weapon(UUID.randomUUID().hashCode(), 1, 2, 2, 1, 1, (float) 1.0,
-                                (float) 0.25, 4, (float) 1.0, 2, 1, "Allahu Akbar", 30);
+                                (float) 0.25, 4, (float) 1.0, 2, 1, "Rocket", 30);
                         // TODO add weapon price list
                         laser.setWeaponSystem(weapons);
                         rocket.setWeaponSystem(weapons);
@@ -465,9 +465,9 @@ public class ClientHandler implements Runnable {
                         weapons.setTiles(tiles);
                         // Add Weapons
                         Weapon rocket2 = new Weapon(UUID.randomUUID().hashCode(), 2, 3, 2, 1, 1, (float) 1.0,
-                                (float) 0.25, 4, (float) 1.0, 2, 1, "Allahu Akbar2", 30);
+                                (float) 0.25, 4, (float) 1.0, 2, 1, "Rocket", 30);
                         Weapon rocket1 = new Weapon(UUID.randomUUID().hashCode(), 1, 2, 2, 1, 1, (float) 1.0,
-                                (float) 0.25, 4, (float) 1.0, 2, 1, "Allahu Akbar", 30);
+                                (float) 0.25, 4, (float) 1.0, 2, 1, "Rocket", 30);
                         // TODO add weapon price list
                         rocket1.setWeaponSystem(weapons);
                         rocket2.setWeaponSystem(weapons);
@@ -570,9 +570,9 @@ public class ClientHandler implements Runnable {
                         weapons.setTiles(tiles);
                         // Add Weapons
                         Weapon laser = new Weapon(UUID.randomUUID().hashCode(), 2, 1, 1, 1, 0,
-                                (float) 1.0, (float) 0.3, 0, (float) 0.3, 1, 1, "Laser Gun", 30);
+                                (float) 1.0, (float) 0.3, 0, (float) 0.3, 1, 1, "Laser", 30);
                         Weapon radio = new Weapon(UUID.randomUUID().hashCode(), 4, 0, 3, 1, 0, (float) 1.0,
-                                (float) 0.12, 0, (float) 0.0, 2, 3, "Allahu Akbar", 45);
+                                (float) 0.12, 0, (float) 0.0, 2, 3, "Radio", 45);
                         // TODO add weapon price list
                         radio.setWeaponSystem(weapons);
                         laser.setWeaponSystem(weapons);
@@ -719,11 +719,11 @@ public class ClientHandler implements Runnable {
                         weapons.setCrew(crewInRoom);
                         // Add Weapons
                         Weapon laser = new Weapon(UUID.randomUUID().hashCode(), 2, 1, 1, 1, 0,
-                                (float) 1.0, (float) 0.3, 0, (float) 0.3, 1, 1, "Laser Gun", 30);
+                                (float) 1.0, (float) 0.3, 0, (float) 0.3, 1, 1, "Laser", 30);
                         Weapon laser2 = new Weapon(UUID.randomUUID().hashCode(), 2, 1, 1, 1, 0,
-                                (float) 1.0, (float) 0.3, 0, (float) 0.3, 1, 1, "Laser Gun2", 30);
+                                (float) 1.0, (float) 0.3, 0, (float) 0.3, 1, 1, "Laser", 30);
                         Weapon laser3 = new Weapon(UUID.randomUUID().hashCode(), 2, 1, 1, 1, 0,
-                                (float) 1.0, (float) 0.3, 0, (float) 0.3, 1, 1, "Laser Gun2", 30);
+                                (float) 1.0, (float) 0.3, 0, (float) 0.3, 1, 1, "Laser", 30);
                         // TODO add weapon price list
                         laser.setWeaponSystem(weapons);
                         laser2.setWeaponSystem(weapons);
@@ -806,7 +806,7 @@ public class ClientHandler implements Runnable {
                         weapons.setTiles(tiles);
                         // Add Weapons
                         Weapon laser = new Weapon(UUID.randomUUID().hashCode(), 1, 1, 1, 1, 0,
-                                (float) 1.0, (float) 0.3, 0, (float) 0.3, 1, 1, "Laser Gun", 30);
+                                (float) 1.0, (float) 0.3, 0, (float) 0.3, 1, 1, "Laser", 30);
                         Weapon bomb = new Weapon(UUID.randomUUID().hashCode(), 2, 6, 5, 1, 1,
                                 (float) 1.5, (float) 0.18, 4, (float) 1.5, 3, 1, "Bomb", 35);
                         // TODO add weapon price list
@@ -926,9 +926,9 @@ public class ClientHandler implements Runnable {
                         weapons.setCrew(crewInRoom);
                         // Add Weapons
                         Weapon radioBomb = new Weapon(UUID.randomUUID().hashCode(), 2, 2, 5, 1, 0,
-                                (float) 1.5, (float) 0.05, 4, (float) 1.5, 5, 1, "Radio Bomb", 75);
+                                (float) 1.5, (float) 0.05, 4, (float) 1.5, 5, 1, "RadioBomb", 75);
                         Weapon healBomb = new Weapon(UUID.randomUUID().hashCode(), 2, 0, 6, 1, 1,
-                                (float) 1.5, (float) 0.1, 4, (float) 0, -4, 1, "Heal Bomb", 60);
+                                (float) 1.5, (float) 0.1, 4, (float) 0, -4, 1, "HealBomb", 60);
                         // TODO add weapon price list
                         radioBomb.setWeaponSystem(weapons);
                         healBomb.setWeaponSystem(weapons);
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/ChooseDifficultyScreen.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/ChooseDifficultyScreen.java
index e653478a..b8b5a308 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/ChooseDifficultyScreen.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/ChooseDifficultyScreen.java
@@ -205,5 +205,6 @@ public class ChooseDifficultyScreen implements Screen {
     public void dispose() {
         background.dispose();
         stage.dispose();
+        font.dispose();
     }
 }
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/CreateOrJoinServer.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/CreateOrJoinServer.java
index c427320d..c00d393a 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/CreateOrJoinServer.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/CreateOrJoinServer.java
@@ -221,5 +221,6 @@ public class CreateOrJoinServer implements Screen {
     public void dispose() {
         background.dispose();
         stage.dispose();
+        font.dispose();
     }
 }
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java
index d6df9e94..ff30f161 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java
@@ -20,7 +20,9 @@ import com.galaxytrucker.galaxytruckerreloaded.Model.Map.PlanetEvent;
 import com.galaxytrucker.galaxytruckerreloaded.Model.Map.Trader;
 import com.galaxytrucker.galaxytruckerreloaded.Model.Ship;
 import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.Room;
-import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.ShipType;
+import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.System;
+import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.SystemType;
+import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.WeaponSystem;
 import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.Weapon;
 import com.galaxytrucker.galaxytruckerreloaded.View.UI.Events.EventGUI;
 import com.galaxytrucker.galaxytruckerreloaded.View.UI.Events.GameOver;
@@ -564,44 +566,48 @@ public class GamePlay implements Screen {
 
     /**
      * load the crew of a ship
-     * @param shipId the ship id
      * @return the crew members
      */
-    public List<Crew> loadCrew(int shipId) {  //TODO call controller
-//        List<Crew> result = new LinkedList<>();
-//        Crew c1 = new Crew(1, "ana", 7, 10);
-//        result.add(c1);
-//        Crew c2 = new Crew(2, "battle", 8, 10);
-//        result.add(c2);
-//        return result;
-        return null;
+    public List<Crew> loadCrew() {
+        List<Crew> crew = new LinkedList<>();
+        List<Room> rs = main.getClient().getMyShip().getSystems();
+        for(Room r : rs) {
+            crew.addAll(r.getCrew());
+        }
+        return crew;
     }
 
     /**
      * load the weapons of a ship
-     * @param shipId the ship id
      * @return the weapons of the ship in a list
      */
-    public List<Weapon> loadWeapons(int shipId) {
-        List<Weapon> weapons = new LinkedList<>();
-//        weapons.add(new LaserBlaster("karl"));
-//        weapons.add(new LaserBlaster("test"));
+    public List<Weapon> loadWeapons() {
+        List<Weapon> weapons = main.getClient().getMyShip().getInventory();
+        for(Room r : main.getClient().getMyShip().getSystems()) {
+            if(r instanceof System) {
+                if(((System) r).getSystemType() == SystemType.WEAPON_SYSTEM) {
+                    weapons.addAll(((System) r).getShipWeapons());
+                }
+            }
+        }
         return weapons;
     }
 
     /**
      * load the missiles of a ship
-     * @param shipId the id of the ship
      * @return the amount of missiles
      */
-    public int loadMissiles(int shipId) { return 0; }
+    public int loadMissiles() {
+        return main.getClient().getMyShip().getMissiles();
+    }
 
     /**
      * load the fuel of a ship
-     * @param shipId the id of the ship
      * @return the amount of fuel
      */
-    public int loadFuel(int shipId) { return 0; }
+    public int loadFuel() {
+        return main.getClient().getMyShip().getFuel();
+    }
 
     @Override
     public void pause() {
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/LobbyScreenHost.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/LobbyScreenHost.java
index 15a22790..b556ed2a 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/LobbyScreenHost.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/LobbyScreenHost.java
@@ -240,5 +240,6 @@ public class LobbyScreenHost implements Screen {
     public void dispose() {
         background.dispose();
         stage.dispose();
+        font.dispose();
     }
 }
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/LobbyScreenNormal.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/LobbyScreenNormal.java
index 568a7b4f..8f35b656 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/LobbyScreenNormal.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/LobbyScreenNormal.java
@@ -231,6 +231,7 @@ public class LobbyScreenNormal implements Screen {
     public void dispose() {
         background.dispose();
         stage.dispose();
+        font.dispose();
     }
 
 }
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/LoginScreen.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/LoginScreen.java
index cea80419..1a49735d 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/LoginScreen.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/LoginScreen.java
@@ -198,6 +198,7 @@ public class LoginScreen implements Screen {
     public void dispose() {
         background.dispose();
         stage.dispose();
+        font.dispose();
     }
 
     /**
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/SPResumeLobby.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/SPResumeLobby.java
index 9fd93fbb..e1c9c59e 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/SPResumeLobby.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/SPResumeLobby.java
@@ -183,6 +183,7 @@ public class SPResumeLobby implements Screen {
     public void dispose() {
         background.dispose();
         stage.dispose();
+        font.dispose();
     }
 
     /**
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/SelectLobbyScreen.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/SelectLobbyScreen.java
index a98fc651..3662c410 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/SelectLobbyScreen.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/SelectLobbyScreen.java
@@ -217,5 +217,6 @@ public class SelectLobbyScreen implements Screen {
     public void dispose() {
         background.dispose();
         stage.dispose();
+        font.dispose();
     }
 }
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/ShipSelector.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/ShipSelector.java
index a425bfc4..63cc65d9 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/ShipSelector.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/ShipSelector.java
@@ -254,6 +254,7 @@ public class ShipSelector implements Screen {
     public void dispose() {
         background.dispose();
         stage.dispose();
+        font.dispose();
     }
 
     /**
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryCrewSlotUI.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryCrewSlotUI.java
index 23202b09..e2f8b961 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryCrewSlotUI.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryCrewSlotUI.java
@@ -4,8 +4,12 @@ import com.badlogic.gdx.graphics.Texture;
 
 import java.util.LinkedList;
 import java.util.List;
+
+import com.badlogic.gdx.graphics.g2d.BitmapFont;
+import com.badlogic.gdx.graphics.g2d.GlyphLayout;
 import com.galaxytrucker.galaxytruckerreloaded.Main;
 import com.galaxytrucker.galaxytruckerreloaded.Model.Crew.Crew;
+import sun.jvm.hotspot.gc.shared.G1YCType;
 
 /**
  * to represent a crew member in the inventory
@@ -27,11 +31,6 @@ public class InventoryCrewSlotUI extends InventorySlotUI {
      */
     private Texture healthBox;
 
-    /**
-     * the name of the crew member
-     */
-    private String name;
-
     /**
      * the health of the crew member
      */
@@ -44,6 +43,18 @@ public class InventoryCrewSlotUI extends InventorySlotUI {
 
     private int currTexture;
 
+    private GlyphLayout glyphName = new GlyphLayout();
+
+    private GlyphLayout glyphEngine = new GlyphLayout();
+
+    private GlyphLayout glyphWeapon = new GlyphLayout();
+
+    private GlyphLayout glyphShield = new GlyphLayout();
+
+    private GlyphLayout glyphRepair = new GlyphLayout();
+
+    private GlyphLayout glyphCombat = new GlyphLayout();
+
     /**
      * Constructor
      *
@@ -52,7 +63,14 @@ public class InventoryCrewSlotUI extends InventorySlotUI {
     public InventoryCrewSlotUI(Main main, Crew crew, float x, float y) {
         super(main, x, y);
 
-        name = crew.getName();
+        glyphName.setText(font, crew.getName());
+        List<Integer> stats = crew.getStats();
+        glyphEngine.setText(font, "Engine: "+stats.get(0));
+        glyphWeapon.setText(font, "Weapon: "+stats.get(1));
+        glyphShield.setText(font, "Shield: "+stats.get(2));
+        glyphRepair.setText(font, "Repair: "+stats.get(3));
+        glyphCombat.setText(font, "Combat: "+stats.get(4));
+
         health = crew.getHealth();
         maxhealth = crew.getMaxhealth();
         currTexture = (int) (((float) health/maxhealth) * 10);
@@ -78,6 +96,12 @@ public class InventoryCrewSlotUI extends InventorySlotUI {
     public void render() {
         super.render();
         main.batch.begin();
+        font.draw(main.batch, glyphName, posX+72, posY + 50);
+        font.draw(main.batch, glyphEngine, posX+72, posY + 30);
+        font.draw(main.batch, glyphWeapon, posX+72, posY + 10);
+        font.draw(main.batch, glyphShield, posX+200, posY + 50);
+        font.draw(main.batch, glyphRepair, posX+200, posY + 30);
+        font.draw(main.batch, glyphCombat, posX+200, posY + 10);
         main.batch.draw(crewTexture, posX, posY, 72, 72); //48
         main.batch.draw(healthBox, posX+5, posY-15, 50, 15);
         float x = posX+11;
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryIntSlotUI.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryIntSlotUI.java
index 3590eb42..b51c8576 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryIntSlotUI.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryIntSlotUI.java
@@ -1,24 +1,16 @@
 package com.galaxytrucker.galaxytruckerreloaded.View.UI.Inventory;
 
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.graphics.Color;
 import com.badlogic.gdx.graphics.Texture;
+import com.badlogic.gdx.graphics.g2d.BitmapFont;
+import com.badlogic.gdx.graphics.g2d.GlyphLayout;
+import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator;
 import com.galaxytrucker.galaxytruckerreloaded.Main;
 
 public class InventoryIntSlotUI extends InventorySlotUI {
 
-    /**
-     * the value of the thing
-     */
-    private int value;
-
-    /**
-     * the texture
-     */
-    private Texture texture;
-
-    /**
-     * the text explaining what this inventory slot represents
-     */
-    private String text;
+    private GlyphLayout glyphLayout = new GlyphLayout();
 
     /**
      * Constructor
@@ -27,9 +19,8 @@ public class InventoryIntSlotUI extends InventorySlotUI {
      */
     public InventoryIntSlotUI(Main main, int value, float x, float y, String text) {
         super(main, x, y);
-        this.value = value;
-        this.text = text;
-        //texture = new Texture();
+
+        glyphLayout.setText(font, text + ": " + value);
     }
 
     /**
@@ -38,18 +29,7 @@ public class InventoryIntSlotUI extends InventorySlotUI {
     @Override
     public void disposeInventorySlotUI() {
         super.disposeInventorySlotUI();
-        //texture.dispose();
-    }
-
-    /**
-     * render
-     * without stage stuff
-     */
-    public void render() {
-        super.render();
-        /*main.batch.begin();
-        main.batch.draw(texture, 0, 0, 0, 0);//TODO whxy
-        main.batch.end();*/
+        font.dispose();
     }
 
     /**
@@ -67,4 +47,15 @@ public class InventoryIntSlotUI extends InventorySlotUI {
     public void hideInventorySlotUI() {
 
     }
+
+    /**
+     * render
+     * without stage stuff
+     */
+    public void render() {
+        super.render();
+        main.batch.begin();
+        font.draw(main.batch, glyphLayout, posX, posY);
+        main.batch.end();
+    }
 }
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventorySlotUI.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventorySlotUI.java
index ae6f80c7..79e5e353 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventorySlotUI.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventorySlotUI.java
@@ -1,8 +1,12 @@
 package com.galaxytrucker.galaxytruckerreloaded.View.UI.Inventory;
 
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.graphics.Color;
 import com.badlogic.gdx.graphics.OrthographicCamera;
 import com.badlogic.gdx.graphics.Texture;
+import com.badlogic.gdx.graphics.g2d.BitmapFont;
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
+import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator;
 import com.galaxytrucker.galaxytruckerreloaded.Main;
 
 public abstract class InventorySlotUI {
@@ -17,13 +21,10 @@ public abstract class InventorySlotUI {
      */
     protected float posY;
 
-    /**
-     * Inventory slot background
-     */
-    private Texture inventorySlotTexture;
-
     protected Main main;
 
+    protected BitmapFont font;
+
     /**
      * Constructor
      *
@@ -32,10 +33,22 @@ public abstract class InventorySlotUI {
     public InventorySlotUI(Main main, float x, float y) {
         this.main = main;
 
+        //font generator to get bitmapfont from .ttf file
+        FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.local("fonts/JustinFont11Bold.ttf"));
+        FreeTypeFontGenerator.FreeTypeFontParameter params = new FreeTypeFontGenerator.FreeTypeFontParameter();
+        //setting parameters of font
+        params.borderWidth = 1;
+        params.borderColor = Color.BLACK;
+        params.characters = FreeTypeFontGenerator.DEFAULT_CHARS;
+        params.magFilter = Texture.TextureFilter.Nearest;
+        params.minFilter = Texture.TextureFilter.Nearest;
+        params.genMipMaps = true;
+        params.size = 15;
+
+        font = generator.generateFont(params);
+
         posX = x;
         posY = y;
-
-        //inventorySlotTexture = new Texture();
     }
 
     /**
@@ -43,9 +56,6 @@ public abstract class InventorySlotUI {
      * without stage stuff
      */
     public void render() {
-        /*main.batch.begin();
-        main.batch.draw(inventorySlotTexture, posX, posY, 0, 0); //TODO wh
-        main.batch.end();*/
     }
 
     /**
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryUI.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryUI.java
index 1f5804f9..ee09eebd 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryUI.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryUI.java
@@ -54,7 +54,7 @@ public class InventoryUI {
         x = main.WIDTH/2 - inventoryBackground.getWidth()/2;
         y = main.HEIGHT/2 - inventoryBackground.getHeight()/2;
 
-        closeButton = new InventoryCloseButton(x+750, y+5, 248, 50, null, this);
+        closeButton = new InventoryCloseButton(x+700, y+15, 248, 50, null, this);
         stage.addActor(closeButton);
 
         slots = new LinkedList<>();
@@ -64,14 +64,14 @@ public class InventoryUI {
             slots.add(new InventoryCrewSlotUI(main, c, cx, cy));
             cy -= 80;
         }
-        float wy = y + 550;
-        float wx = cx + 200;
+        float wy = y + 525;
+        float wx = cx + 400;
         for(Weapon w : weapons) {
             slots.add(new InventoryWeaponSlotUI(main, w, wx, wy));
-            wy -=90;
+            wy -=100;
         }
-        slots.add(new InventoryIntSlotUI(main, fuel, wx+200, y+550, "fuel")); //TODO xy
-        slots.add(new InventoryIntSlotUI(main, missiles, wx+200, y+750, "missiles")); //TODO xy
+        slots.add(new InventoryIntSlotUI(main, fuel, x+50, y+50, "fuel"));
+        slots.add(new InventoryIntSlotUI(main, missiles, x+150, y+50, "missiles"));
     }
 
     /**
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryWeaponSlotUI.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryWeaponSlotUI.java
index 30d01ad6..a82c52a8 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryWeaponSlotUI.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryWeaponSlotUI.java
@@ -1,6 +1,8 @@
 package com.galaxytrucker.galaxytruckerreloaded.View.UI.Inventory;
 
 import com.badlogic.gdx.graphics.Texture;
+import com.badlogic.gdx.graphics.g2d.BitmapFont;
+import com.badlogic.gdx.graphics.g2d.GlyphLayout;
 import com.galaxytrucker.galaxytruckerreloaded.Main;
 import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.Weapon;
 
@@ -11,23 +13,14 @@ public class InventoryWeaponSlotUI extends InventorySlotUI {
      */
     private Texture weaponTexture;
 
-    /** Weapon damage */
-    private int damage;
+    private GlyphLayout glyphDamage = new GlyphLayout();
+    private GlyphLayout glyphCooldown = new GlyphLayout();
+    private GlyphLayout glyphMissile = new GlyphLayout();
+    private GlyphLayout glyphCrewDamage = new GlyphLayout();
+    private GlyphLayout glyphBurst = new GlyphLayout();
+    private GlyphLayout glyphPrecision = new GlyphLayout();
 
-    /** Weapon coolDown */
-    private int cooldown;
-
-    /** Weapon energy */
-    private int energy;
-
-    private int missileCost;
-    private float dropchance;
-    private int crewdamage;
-    /**
-     * How many projectiles are fired per burst
-     */
-    private int burst;
-    private float precision;
+    private GlyphLayout glyphName = new GlyphLayout();
 
     /**
      * constructor
@@ -36,16 +29,16 @@ public class InventoryWeaponSlotUI extends InventorySlotUI {
      */
     public InventoryWeaponSlotUI(Main main, Weapon weapon, float x, float y) {
         super(main, x, y);
-        damage = weapon.getDamage();
-        cooldown = weapon.getCooldown();
-        energy = weapon.getEnergy();
-        missileCost = weapon.getMissileCost();
-        dropchance = weapon.getDropChance();
-        crewdamage = weapon.getCrewDamage();
-        burst = weapon.getBurst();
-        precision = weapon.getAccuracy();
-
-        weaponTexture = new Texture("shipsys/weapon/laser.png");
+        glyphDamage.setText(font, "Damage: "+weapon.getDamage());
+        glyphCooldown.setText(font, "Cooldown: "+weapon.getCooldown());
+        glyphMissile.setText(font, "Missile Cost: "+weapon.getMissileCost());
+        glyphCrewDamage.setText(font, "Crew Damage: "+weapon.getCrewDamage());
+        glyphBurst.setText(font, "Burst: "+weapon.getBurst());
+        glyphPrecision.setText(font, "Precision: "+weapon.getAccuracy());
+
+        String name = weapon.getWeaponName();
+        weaponTexture = new Texture("shipsys/weapon_system/"+name.toLowerCase()+".png");
+        glyphName.setText(font, name);
     }
 
     /**
@@ -60,7 +53,14 @@ public class InventoryWeaponSlotUI extends InventorySlotUI {
     public void render() {
         super.render();
         main.batch.begin();
-        main.batch.draw(weaponTexture, posX, posY, 22, 67);
+        font.draw(main.batch, glyphName, posX, posY + weaponTexture.getHeight() + 25);
+        font.draw(main.batch, glyphBurst, posX+72, posY+60);
+        font.draw(main.batch, glyphCooldown, posX+72, posY+40);
+        font.draw(main.batch, glyphCrewDamage, posX+72, posY+20);
+        font.draw(main.batch, glyphDamage, posX+220, posY+60);
+        font.draw(main.batch, glyphMissile, posX+220, posY+40);
+        font.draw(main.batch, glyphPrecision, posX+220, posY+20);
+        main.batch.draw(weaponTexture, posX, posY, weaponTexture.getWidth(), weaponTexture.getHeight());
         main.batch.end();
     }
 
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Ship/ShipView.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Ship/ShipView.java
index 15b6920b..f6eabf59 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Ship/ShipView.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Ship/ShipView.java
@@ -147,7 +147,7 @@ public class ShipView extends AbstractShip {
         }
 
         moveButton = new MoveButton(850, main.HEIGHT - 90, 150, 92, this);
-        inventory = new ShipButton(750,main.HEIGHT - 80, 50, 92, this);
+        inventory = new ShipButton(660,main.HEIGHT - 60, 248, 50, this);
 
         money = new ScrapUI(main, ship.getCoins());
         hull = new HullUI(main, ship.getHp());
@@ -161,7 +161,7 @@ public class ShipView extends AbstractShip {
      * get the x position of a room depending on the interior id and the ship type
      * @param id the interior id of the room (from left to right, up to down)
      * @param bx the x position of the start (the most to the left)
-     * @return the total x position
+     * @return the total x position (lower right corner of the room)
      */
     private float getRoomX(ShipType type, int id, float bx) {
         switch(type) {
@@ -205,7 +205,7 @@ public class ShipView extends AbstractShip {
      * return the y position of a room, depending on the ship type
      * @param type the ship type
      * @param id the interior id
-     * @return
+     * @return total y position (lower right corner of room)
      */
     private float getRoomY(ShipType type, int id, float by) {
         switch(type) {
@@ -259,12 +259,6 @@ public class ShipView extends AbstractShip {
         hull.render();
         energy.render();
 
-        if(inventoryUI != null) {
-            inventoryUI.render();
-        }
-        else if(mapUI != null) {
-            mapUI.render();
-        }
 
         for(RoomUI r : rooms.values()) {
             r.render();
@@ -273,6 +267,13 @@ public class ShipView extends AbstractShip {
         for(CrewUI c : crew.values()) {
             c.render();
         }
+
+        if(inventoryUI != null) {
+            inventoryUI.render();
+        }
+        else if(mapUI != null) {
+            mapUI.render();
+        }
     }
 
     /**
@@ -324,7 +325,7 @@ public class ShipView extends AbstractShip {
      */
     public void openInventory() {
         if(inventoryUI == null){
-            inventoryUI = new InventoryUI(main, game.loadCrew(id), game.loadWeapons(id), game.loadFuel(id), game.loadMissiles(id), stage, this);
+            inventoryUI = new InventoryUI(main, game.loadCrew(), game.loadWeapons(), game.loadFuel(), game.loadMissiles(), stage, this);
         }
     }
 
diff --git a/database.mv.db b/database.mv.db
index 282b0ee8e905d0131b3537ea59faa356e1e2e545..bf06dadd61d71c6ec7a71fa2f6686a4096a679e1 100644
GIT binary patch
literal 57344
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

literal 57344
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
PBXckTpdI`PfJ6T;x1WP(

-- 
GitLab