From ae3ecb03c5e4fd97d1299577656cbf03aee04f8b Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Sat, 5 Sep 2020 17:45:07 -0400 Subject: [PATCH] Basic client that understands factions --- ...l.png-46bfd2d39d0cac96f39200d4c53851e9.md5 | 3 + ....png-46bfd2d39d0cac96f39200d4c53851e9.stex | Bin 0 -> 848 bytes ...r.png-9e2a7615e3d5f85ba45313d7c0bc6c2a.md5 | 3 + ....png-9e2a7615e3d5f85ba45313d7c0bc6c2a.stex | Bin 0 -> 673 bytes ...1.png-6a7e17e32424a41520db4c795eece2ce.md5 | 3 + ....png-6a7e17e32424a41520db4c795eece2ce.stex | Bin 0 -> 673 bytes ...2.png-24cb2fbb0bdff6cc7a030088bf9a60db.md5 | 3 + ....png-24cb2fbb0bdff6cc7a030088bf9a60db.stex | Bin 0 -> 683 bytes ...3.png-2b614bba7aea33ebd1625829f7dc4dc8.md5 | 3 + ....png-2b614bba7aea33ebd1625829f7dc4dc8.stex | Bin 0 -> 698 bytes ...4.png-75d7bdc3c0acf687884cfb7d56448f69.md5 | 3 + ....png-75d7bdc3c0acf687884cfb7d56448f69.stex | Bin 0 -> 698 bytes ...s.png-a90a07dfed216f4ba27686034df2153e.md5 | 3 + ....png-a90a07dfed216f4ba27686034df2153e.stex | Bin 0 -> 1627 bytes ...i.png-d46c842ee07941bd7d94068ea9489984.md5 | 3 + ....png-d46c842ee07941bd7d94068ea9489984.stex | Bin 0 -> 1421 bytes ...m.png-1a0832d2ba20f1f704b0231836336246.md5 | 3 + ....png-1a0832d2ba20f1f704b0231836336246.stex | Bin 0 -> 1026 bytes .../player/{ => dev}/dev_player.aseprite | Bin .../{dev_player.png => dev/dev_player_1.png} | Bin .../dev_player_1.png.import} | 6 +- .../entities/player/dev/dev_player_2.aseprite | Bin 0 -> 1189 bytes .../art/entities/player/dev/dev_player_2.png | Bin 0 -> 556 bytes .../player/dev/dev_player_2.png.import | 34 ++++++++++ .../entities/player/dev/dev_player_3.aseprite | Bin 0 -> 1189 bytes .../art/entities/player/dev/dev_player_3.png | Bin 0 -> 562 bytes .../player/dev/dev_player_3.png.import | 34 ++++++++++ .../entities/player/dev/dev_player_4.aseprite | Bin 0 -> 1201 bytes .../art/entities/player/dev/dev_player_4.png | Bin 0 -> 561 bytes .../player/dev/dev_player_4.png.import | 34 ++++++++++ client/art/gui/banners/burningwall.aseprite | Bin 0 -> 1166 bytes client/art/gui/banners/burningwall.png | Bin 0 -> 783 bytes client/art/gui/banners/burningwall.png.import | 34 ++++++++++ client/art/gui/banners/electus.aseprite | Bin 0 -> 1724 bytes client/art/gui/banners/electus.png | Bin 0 -> 1571 bytes client/art/gui/banners/electus.png.import | 34 ++++++++++ client/art/gui/banners/lunaki.aseprite | Bin 0 -> 1550 bytes client/art/gui/banners/lunaki.png | Bin 0 -> 1358 bytes client/art/gui/banners/lunaki.png.import | 34 ++++++++++ client/art/gui/banners/regium.aseprite | Bin 0 -> 1247 bytes client/art/gui/banners/regium.png | Bin 0 -> 961 bytes client/art/gui/banners/regium.png.import | 34 ++++++++++ client/nodes/entities/Player.tscn | 2 +- client/nodes/entities/PlayerPuppet.tscn | 6 +- client/project.godot | 1 + client/scenes/CharacterCreation.tscn | 58 ++++++++++++++++++ client/scripts/entities/PlayerPuppet.gd | 13 ++++ .../character_creation/CharacterCreation.gd | 16 +++++ .../character_creation/FactionButtons.gd | 20 ++++++ .../menus/character_creation/NameEdit.gd | 14 +++++ client/scripts/singletons/GameData.gd | 8 +++ client/scripts/singletons/ServerConnection.gd | 21 ++++++- client/scripts/systems/PlayerPuppeteer.gd | 10 +++ 53 files changed, 432 insertions(+), 8 deletions(-) create mode 100644 client/.import/burningwall.png-46bfd2d39d0cac96f39200d4c53851e9.md5 create mode 100644 client/.import/burningwall.png-46bfd2d39d0cac96f39200d4c53851e9.stex create mode 100644 client/.import/dev_player.png-9e2a7615e3d5f85ba45313d7c0bc6c2a.md5 create mode 100644 client/.import/dev_player.png-9e2a7615e3d5f85ba45313d7c0bc6c2a.stex create mode 100644 client/.import/dev_player_1.png-6a7e17e32424a41520db4c795eece2ce.md5 create mode 100644 client/.import/dev_player_1.png-6a7e17e32424a41520db4c795eece2ce.stex create mode 100644 client/.import/dev_player_2.png-24cb2fbb0bdff6cc7a030088bf9a60db.md5 create mode 100644 client/.import/dev_player_2.png-24cb2fbb0bdff6cc7a030088bf9a60db.stex create mode 100644 client/.import/dev_player_3.png-2b614bba7aea33ebd1625829f7dc4dc8.md5 create mode 100644 client/.import/dev_player_3.png-2b614bba7aea33ebd1625829f7dc4dc8.stex create mode 100644 client/.import/dev_player_4.png-75d7bdc3c0acf687884cfb7d56448f69.md5 create mode 100644 client/.import/dev_player_4.png-75d7bdc3c0acf687884cfb7d56448f69.stex create mode 100644 client/.import/electus.png-a90a07dfed216f4ba27686034df2153e.md5 create mode 100644 client/.import/electus.png-a90a07dfed216f4ba27686034df2153e.stex create mode 100644 client/.import/lunaki.png-d46c842ee07941bd7d94068ea9489984.md5 create mode 100644 client/.import/lunaki.png-d46c842ee07941bd7d94068ea9489984.stex create mode 100644 client/.import/regium.png-1a0832d2ba20f1f704b0231836336246.md5 create mode 100644 client/.import/regium.png-1a0832d2ba20f1f704b0231836336246.stex rename client/art/entities/player/{ => dev}/dev_player.aseprite (100%) rename client/art/entities/player/{dev_player.png => dev/dev_player_1.png} (100%) rename client/art/entities/player/{dev_player.png.import => dev/dev_player_1.png.import} (67%) create mode 100644 client/art/entities/player/dev/dev_player_2.aseprite create mode 100644 client/art/entities/player/dev/dev_player_2.png create mode 100644 client/art/entities/player/dev/dev_player_2.png.import create mode 100644 client/art/entities/player/dev/dev_player_3.aseprite create mode 100644 client/art/entities/player/dev/dev_player_3.png create mode 100644 client/art/entities/player/dev/dev_player_3.png.import create mode 100644 client/art/entities/player/dev/dev_player_4.aseprite create mode 100644 client/art/entities/player/dev/dev_player_4.png create mode 100644 client/art/entities/player/dev/dev_player_4.png.import create mode 100644 client/art/gui/banners/burningwall.aseprite create mode 100644 client/art/gui/banners/burningwall.png create mode 100644 client/art/gui/banners/burningwall.png.import create mode 100644 client/art/gui/banners/electus.aseprite create mode 100644 client/art/gui/banners/electus.png create mode 100644 client/art/gui/banners/electus.png.import create mode 100644 client/art/gui/banners/lunaki.aseprite create mode 100644 client/art/gui/banners/lunaki.png create mode 100644 client/art/gui/banners/lunaki.png.import create mode 100644 client/art/gui/banners/regium.aseprite create mode 100644 client/art/gui/banners/regium.png create mode 100644 client/art/gui/banners/regium.png.import create mode 100644 client/scenes/CharacterCreation.tscn create mode 100644 client/scripts/entities/PlayerPuppet.gd create mode 100644 client/scripts/menus/character_creation/CharacterCreation.gd create mode 100644 client/scripts/menus/character_creation/FactionButtons.gd create mode 100644 client/scripts/menus/character_creation/NameEdit.gd create mode 100644 client/scripts/singletons/GameData.gd diff --git a/client/.import/burningwall.png-46bfd2d39d0cac96f39200d4c53851e9.md5 b/client/.import/burningwall.png-46bfd2d39d0cac96f39200d4c53851e9.md5 new file mode 100644 index 0000000..89454ad --- /dev/null +++ b/client/.import/burningwall.png-46bfd2d39d0cac96f39200d4c53851e9.md5 @@ -0,0 +1,3 @@ +source_md5="5efb9aac4566cc540675ab7478811cac" +dest_md5="f0bb815a493bfd51d2b236f5f5f2fc8b" + diff --git a/client/.import/burningwall.png-46bfd2d39d0cac96f39200d4c53851e9.stex b/client/.import/burningwall.png-46bfd2d39d0cac96f39200d4c53851e9.stex new file mode 100644 index 0000000000000000000000000000000000000000..8396959b89be80100ca98f7cd658e8148da4b74e GIT binary patch literal 848 zcmZ>F2@Y{!U|?tfViq7~U=Uzu1d=Aq3=9E&?h2hif|pB*3n;|v>ERLtq#b~`frAZ5 z?rzM_0#b~{LGDfr>(0r%WME)=<>}%WQZeW49N%o=K#{idEsqZ6HN80X%1>Ymw0{2C#nM@6%bZ>m)n5KDTu^(tyW_;?>FL$I zx#xXYbEnVjD7oEVSF4?Te)*RRB`@{FyMLc&5S*y~Jpak}tKSbk4|ck|ba#x-yL)Hl z&;QI#y!zc}vGau;3|0)i+zXg-FwS1&w&>*DQ}x?;*UA3;^kt^IKd*cpwCSyosDjd` zM<{( z-E(J_5|h`REk1=`mN($`KGeWZ4_5D+9(ukm*Iq3lc#rVJz9|hHH?-srsF;XvSYE?0 z@j}P}kDm_3oM%}yPO;DO%1}BGV0XdCsg#lPDYLIii0FhsyMS0HQ^r}J#7{4c(V4z+ z?JBPoN)FL=_un&zOb&=?*!t&2wspwFfDnhQ%Cq;)M5YJ$IOJ6x_6g*4WtpOtKSNhd zG1}qfr#4epl@!huq4zeJMLTV3xb>8`I>pmN=)$T!iR)81(-_yDmj325DM83#s`;DT zX$!<0rkl$gR&i8)5O7MmZ|O7v(SnSpyvIX4B}5BW02zH=5+VgJp7Kh%slE|4nEI(v zhLfMgXKjr_=%IS1Wl?q$lpe+%xN@3(jZm6W|MHpxN)Povs5fh}UvXIr%mNIau6{1- HoD!MPx%J4r-AR9J<@RhAiw5 zktU@hc~%qT0fuDic<cfzL&IG#Aq5M$Zp zq%b7|6nScVx`5?!Nsc$`J2dON(K~m(4>E0w#lpS+`8}#+1H4uE^Zku`QvNP~?sw2; zv*8Kw$t|Rm`1Sp3ARqz(0IS<4Xst&dDG|XEP~-rhwZ`i9DZ#r(j6CLFq(1tPQUZPS zUN!<^>oX?6!p{VE8yf5M>h%>X!eFixnxb$b!Q7S{0j7^0T5FumW`I&7qqErz&C3fs zTf-5N6X3{)WI0GFSt3&B07-rb{JM!DnSod_eLMe)$A{C=Gc{+50096}N>i34+P1}9 zDd6P9iSVDmTY>JX3f5k0J-r4}>90%Dhi#at=lZ@+EClN2ylYP6=?uEVaXu&b&Od0p244m*s3Z5WBv72me&&=duz z6QZtbd;U8SoTEH@8TsV9s)EEm!mGjf5Y{dwBzqm(Li1DZBbE_LNVX*-AOMKI(TIKj zF9aEg5Jj(L%AVT?SmZJ=sVCs{0TzKuqA`s*8AivlqiWzEz^nksc^>Jm00000NkvXX Hu0mjfwmv0t literal 0 HcmV?d00001 diff --git a/client/.import/dev_player_1.png-6a7e17e32424a41520db4c795eece2ce.md5 b/client/.import/dev_player_1.png-6a7e17e32424a41520db4c795eece2ce.md5 new file mode 100644 index 0000000..3dffaf2 --- /dev/null +++ b/client/.import/dev_player_1.png-6a7e17e32424a41520db4c795eece2ce.md5 @@ -0,0 +1,3 @@ +source_md5="8aa11b5093dfa6e5ad8586cfd48b6e88" +dest_md5="1922a2eba76828665cd680a720666fe8" + diff --git a/client/.import/dev_player_1.png-6a7e17e32424a41520db4c795eece2ce.stex b/client/.import/dev_player_1.png-6a7e17e32424a41520db4c795eece2ce.stex new file mode 100644 index 0000000000000000000000000000000000000000..70d73cc7034b2b3e8010cf179aa8223db7cb6011 GIT binary patch literal 673 zcmV;S0$%+`L{n5C0000W000000000001yWO0001m0ssI|PDdb#P)Px%J4r-AR9J<@RhAiw5 zktU@hc~%qT0fuDic<cfzL&IG#Aq5M$Zp zq%b7|6nScVx`5?!Nsc$`J2dON(K~m(4>E0w#lpS+`8}#+1H4uE^Zku`QvNP~?sw2; zv*8Kw$t|Rm`1Sp3ARqz(0IS<4Xst&dDG|XEP~-rhwZ`i9DZ#r(j6CLFq(1tPQUZPS zUN!<^>oX?6!p{VE8yf5M>h%>X!eFixnxb$b!Q7S{0j7^0T5FumW`I&7qqErz&C3fs zTf-5N6X3{)WI0GFSt3&B07-rb{JM!DnSod_eLMe)$A{C=Gc{+50096}N>i34+P1}9 zDd6P9iSVDmTY>JX3f5k0J-r4}>90%Dhi#at=lZ@+EClN2ylYP6=?uEVaXu&b&Od0p244m*s3Z5WBv72me&&=duz z6QZtbd;U8SoTEH@8TsV9s)EEm!mGjf5Y{dwBzqm(Li1DZBbE_LNVX*-AOMKI(TIKj zF9aEg5Jj(L%AVT?SmZJ=sVCs{0TzKuqA`s*8AivlqiWzEz^nksc^>Jm00000NkvXX Hu0mjfwmv0t literal 0 HcmV?d00001 diff --git a/client/.import/dev_player_2.png-24cb2fbb0bdff6cc7a030088bf9a60db.md5 b/client/.import/dev_player_2.png-24cb2fbb0bdff6cc7a030088bf9a60db.md5 new file mode 100644 index 0000000..7112b8c --- /dev/null +++ b/client/.import/dev_player_2.png-24cb2fbb0bdff6cc7a030088bf9a60db.md5 @@ -0,0 +1,3 @@ +source_md5="f5097ca7c211920e40c629bc583248e3" +dest_md5="0b20c79b6ad64f3fbed8b5ab994f4c8c" + diff --git a/client/.import/dev_player_2.png-24cb2fbb0bdff6cc7a030088bf9a60db.stex b/client/.import/dev_player_2.png-24cb2fbb0bdff6cc7a030088bf9a60db.stex new file mode 100644 index 0000000000000000000000000000000000000000..366ac016599f6ce364e965e6a60092911a2ff17b GIT binary patch literal 683 zcmV;c0#yA+L{n5C0000W000000000001yWO0001w0ssI|PDdb#P)Px%MM*?KR9J<@S1oMYKp1_u zEE*{qv1Dn$DlbZ;lP1&gqO!uFkg}qHqO$SAvJh7)>qvpgNeL>C%q*D{g-liCg8H2M z`R*sDO?$-7`MdAEd-vT>7$Wdm-^GM!_*(vqievwR{1_3RlC%FM{C5GL6Z`cm-R?ud% zi4&lbOK{F{b8)5#aDV~8a`gfsg!PdUp-llr4gf+3ELSfc-UD3ZuKdjRQ3dB57)GzS zp%KfRE&&p%6S2#%mr1kv81fPNS~gb>J1Pta^@D=0fXLAU+` zCANgWe@ zMv3Uw)1xjXApr~k3)w0~egAf$^+Uu~>=n@LYimxs?GDAHL@_BX@~Wx;9Jd*10wke9 zJQiQK-N_TrLRD4pEjJf}hmlHNOiC2|kUX2~?IvWLZ&M2%$Fk5=%eC+8DM?NV30}zv zFaXSDI}-m3sL&j65IK)!Dn9leAQ5uFdna%~y+4MasU$9@t|aE@qT;9;cn1M#6Ehk< R^hW>y002ovPDHLkV1k|+Egk>> literal 0 HcmV?d00001 diff --git a/client/.import/dev_player_3.png-2b614bba7aea33ebd1625829f7dc4dc8.md5 b/client/.import/dev_player_3.png-2b614bba7aea33ebd1625829f7dc4dc8.md5 new file mode 100644 index 0000000..b5e802e --- /dev/null +++ b/client/.import/dev_player_3.png-2b614bba7aea33ebd1625829f7dc4dc8.md5 @@ -0,0 +1,3 @@ +source_md5="57a52ebcb9eefc41ae7c7fe4b17f9929" +dest_md5="d81086922475a0a88eb18c5b63cfadc4" + diff --git a/client/.import/dev_player_3.png-2b614bba7aea33ebd1625829f7dc4dc8.stex b/client/.import/dev_player_3.png-2b614bba7aea33ebd1625829f7dc4dc8.stex new file mode 100644 index 0000000000000000000000000000000000000000..f7306eb3fcf6fd598a73b2d42f409f0592767ac6 GIT binary patch literal 698 zcmV;r0!95tL{n5C0000W000000000001yWO0001<0ssI|PDdb#P)Px%R7pfZR9J<@S1oTGF%W&O zDy>e60$K%RY1x5>95AT@QuQaK|DfndX+S_gXnFoY0v3d&QWTv+431pD{sbR5Dd2R{ z>W~YvcKk8^xK*M)a=YH~yyuy*J;zXh=f|rOGY6l({VK9!??Jwch!2CkzY+esfR6*` zDPk;}P6|UJK#`}$hYOfar{wtU-2-m#9)jo6`8LR~O(qlb{P#~#$qIO>@aM-X^Go^r z@%wcL&FAwn0XDe?=NuP5zd8aUU;uD_{RAOI@R1VXq<|s^03igIfqwzK{=-LX4^~@fMZcAH0$vL3<)k6q@gS|tn z+GSvLuy+WoO{5@%P$?0m0t|UTmI3FyNJQ!!Ajx-uT{kf#BakYl)3bZ?d~1aA z2s!7fu4_ms(X~|&el6tY@&v2R5~J}J+Fl4jhTks2XbL#zNTt9g9_j<|Qa~81x~`+- zr)T$30eut{0A~C3Q&e;vODTbubSWTQwfD}Xl%#M9CIzv}LZfRdRkHoMwn~2Yd9wXL zzxn{HO?ViU%=1y)kl3s5$r&YLv7YVJnB)X704x_)E$Ykn&(1s)9K}fiU0Ve?)qCB( zkTiMIGyrxxj2r=)&?7d*x7sZI8_%F=8l<*c4B5-bCLfKr;NZsj(f+YB?nB$94x{Wj zpbL%a0RUjJo{{8~kZemvfB|5!uw&qV0UJ&PB1F+^nX)hK12l3G7}OJ#^Z^=Px%R7pfZR9J<@S37RoKoEUP zxeXAcaA3k|>CTm6Y-5)$a)I0+m6}|@MJ|xuH*mwkMF6KU5H|}-l{)JH4C2BF;5Oo> z5QpB+?1w}GKR^(*oSpY}c6N3okb%d$%N#QcZ%#jD*@^!_K1M__+511jiwoGBI8QTU z$?fDYB?26IY<#+a#bUvZU*Fu~`sUVq&Yf?94cmM^AD+K|^)guly9|H4yBxkbf9Ic{ zPta<$$`fFc6Qq>*^6}Ub5P$%Hi>o!1Qr=5WgtY}6IRGf7aB;Pc@IE6%9`Y|@FHJ}( zfqwNyG%RBB84^G+Batg$2>bh!6U+)fceh=KWz(2L!DDF($T@~uN=XsGQB`5vb>8Qw zssQXFWkxH7R3XwtOnAZr%IdXe_=E@Rx0Dh}DUC#diV5(@2|tg&d1D9b58hagh-d^- z$@J^T9^Rh)88v5&0096}N?n#E+P1~E>!QvmLCIbzmAoH<0z%<8;jTX9BNi1)07I(F zvh*f#`|YBSf(9T=zpj|9>$q)OV7Ddu74{>RzX3qBZOaPhFw}w2WkJ|>ou;#%u#3KT zd6I>wU%iL>&1TX(7ugMox%!@5a3YpXGpaF32@n88Dy$^x-Ql4%4;gJ*Q~=d^muOZL z)`djmbzK7(SBxwH?gi6hNWS~c#=Y?d)OC&6aSI`N8JXm>qM-T?U|0FfaTjD4D{9F) zK#9in006LTnq<`^A<34EfdC*vVaLS(0w$~o1c-vyGH0LL2M|&b2$IJzrX#XcGJRpl giMzTiJ1z(Q0<&=xuRnKuvj6}907*qoM6N<$g7!%%c>n+a literal 0 HcmV?d00001 diff --git a/client/.import/electus.png-a90a07dfed216f4ba27686034df2153e.md5 b/client/.import/electus.png-a90a07dfed216f4ba27686034df2153e.md5 new file mode 100644 index 0000000..1b5ccd1 --- /dev/null +++ b/client/.import/electus.png-a90a07dfed216f4ba27686034df2153e.md5 @@ -0,0 +1,3 @@ +source_md5="91820ac8ea2be3ece9880968e3383d5e" +dest_md5="1708c1f0340ca66cafbe9371c338ab53" + diff --git a/client/.import/electus.png-a90a07dfed216f4ba27686034df2153e.stex b/client/.import/electus.png-a90a07dfed216f4ba27686034df2153e.stex new file mode 100644 index 0000000000000000000000000000000000000000..837a7b6d1718ebc836ee7e4068e094bb082beae5 GIT binary patch literal 1627 zcmb7_{Xf%tAICr6-7`14%uP|k)r?T&pu(})#5lw(PVC@xT^&Wn$<;AkTYU$IHNgS2Xoe`=&a6`xw-auTz|p!!|UepeEIYfO!?x$orY4f57(Nw)i1uf>?6tk>asD|{=^H>_BaLAVTj>Ksp}m|Z zZ=>*ph<&zYTpLf@`O}~GDaAt3o=k<`QjND#mHB7d=G|onB06kyWd^O*8gn0!3yk(7 zSd`VWuye9nE3h)MFB7@6?btdd&H18hF z7uGld$p?kP9-Mfnp6d->PM;-~7Hz+8{TyC1Q@F|ZykcCjdj){Q#6{1N#(~6u!v7du zgZ}j(M2i>9zUlLbJE4|3l6DNd+P#V>uOa^P3#T^8aEQ#=tN-u#IWy=t*VlN=-8-+6`lyv|^4$DnHKv!l_lMlKT*GT%eyeg_}a5Z<+AOAZ(K4YR#*e)C{e zCD1^wpbLj^-qL-h#h0DpIuA1qmtL~i3;aAG4iAG z-N)RpfZwrYHN;|PkpNb4vuZ`+ykQW#2>EI2y;~Nff0Nf2`EcH=M*T0#ed<#PvX^Ju zP($wNuA!1^ImCf9R^|8;);u9v_H^AUFap|S{t`K%7*5{HTE10X+q%a(y#cR#Y^S#Q zYs+;WQxxpcz;^Drci|t$c1>G1A}Avn=G1K7fxy@ca@|FrD=pjkY&Yt)1{E$jWrlEh zk^C+o)$&Q!IngO1<#6j`!Q`8;sz^CwAC?p~8S4^x1cb**I#5-0$!*Zk^rK^z!=;U| z+vW8;lC2QWJSwKk+>Zo6yRG;JCaKq2*-~$&5pE&)lNI|*9XQH?T$PuJ3=^HKd5^XH0CMFVZW%q4#S!%f$1mt1-brX-tVx|9^|@jHLsM;}+)L+#w}ORv#x+iEJu#PTPhKoKjt>y1emeNkaB$nK zkEn_Y!bj$-z7EPWLudz_Vf@mHld!Hr?RIs~0uTBlyJ+g?MOx81bKbs909VA$BBkAH znKSkU_{yZy*$H)Ows1ciGK?OIrDLAO<#lLimGWl*>{++hP@2g!+=H-oM&b?D)(9(W)gnM@MpbwQKR=h>)??Htip;D5E+ zZ-?F|vnk*5wv{BsAN&r40r3B~=4|xGw7q<^F(vk0>&A{|nZAK#p8k+}_F>>vGq88_ zw;9LsUv5DZOfx)#u>2J9xDB{zXw8%@mK;gQ2?nMa#D7oxH;TWXW1$lyxO{?)&)|)3 z3-<>$I_22d%InwO)r>?;EQnGV)6nA<;io~0uBTyt7L31(!_-yI&a@xkW`Ssh7q8u% zZ_Y{4*eR3F#alGqDU@Y)kUU^NJ$>+NpA6Rv^#^uGHDkiS2TbzgKfmtr$^ zX=nr-3bcO3tHOSXmM|38PPx1Xtt_6PG!LWRq1$Q6JqxAY%}S*s>A9vg0JMlWYFBth G$$tUDwBi*2 literal 0 HcmV?d00001 diff --git a/client/.import/lunaki.png-d46c842ee07941bd7d94068ea9489984.md5 b/client/.import/lunaki.png-d46c842ee07941bd7d94068ea9489984.md5 new file mode 100644 index 0000000..8a5244b --- /dev/null +++ b/client/.import/lunaki.png-d46c842ee07941bd7d94068ea9489984.md5 @@ -0,0 +1,3 @@ +source_md5="2986d81638e869b47b08fc6a51e530eb" +dest_md5="fc9df6db0cb50f4e349620f975023c68" + diff --git a/client/.import/lunaki.png-d46c842ee07941bd7d94068ea9489984.stex b/client/.import/lunaki.png-d46c842ee07941bd7d94068ea9489984.stex new file mode 100644 index 0000000000000000000000000000000000000000..ccf5def89b0fb95969f6980b041ac12342d8d0e5 GIT binary patch literal 1421 zcma)+e>~H99LGOjoB2^{`4y)9kP}K2M&+=XV-#zaI>gTJAK@+uC4I*Ztz;xEGBkJ1 z{8)0U^Fa1+r2NXUl1!muE=5gAQn&x_pZnwad_5ko$NP`>Kkv5}C4k`$0Dx5>RRDn2 zfK>iP9RQl27yg_|I@%`Ms!E6IO`)sOT?MR(Qn{6t9Ipx}h3-WLjf19h0H|-HQb>&S zYj4Usl4S1ad$ZRWFq&Ly>Fz+wHd9!pvtI7WE^#d^a`ohI&45nTX!`9R%{9M^mY@myvWNFyWfaOwUez@PX~rxd|>7ZJ}D|=!(gy zw^}ET#w78z#kOyJ&3gwyT*LC24y%#nwHc*8Q=gnfjEsW+c)WTyPtbfuv6`jChUw@2 z5IDxY2E~SM4GIoiQzv^5uxr+Hd9!hT37iy3*%z&xO+}w*`QLh~S{qL@<)Q_xI0r*v_t1mMj$xd~g6?!ZBK+ zulN!pj=Emm(S}cv!Y*1Yanp4Pu1p%+wV719svhEbk{#=1{Eumbac6-t z>-Vl(Pv-wNaxCas5?f%xw;a>D>WVQ9c81tqfMIFxQ>I}AXyH@4PT0arJ#!u=7{9u+ z9_B=+8ykIn+#-MbywG80uUYjnD^rIWeaQyVhFE-T3AYdtbK#;WxMoOx%e}e8Fh&}J zk6qprq&K9`KV?`mZ&qv16rt&NhKkFiGW^SVoW(K}z~Z)Mls(dluN*#NJ&Q4CjA6_q zCzFIb?(`q1+;C+ORTp%_`hDNQ2iPoyuUbLS^#a2K)S|c14_CN{O2O#fok7C#N-zEjtTf5qov#7NAI-*`?fzs ze*tpiFd*&J%U%bl9Cn1^EGX~4L9!BbRj!MpH4t~8FPn6N!?nR(L`zPAWa!Hyb zkg}_=m$e9_@_qrGAV=68RtohsF(AdMaG3l=?NeI6zyY0w;8EF2@Y{!U|?tfViq7~U=Uzu1d`8~85jcm+!Z>31TU8q7f^`T)59eQNIL*=0|y(B z+})U;1*8~@gWR1M)}51i$-uxo$J50zq+-t7*@k(-juNf&*PdVvaN$siR&a4aBse}M%8;Fw|eXBfFql4sl5LB$NKa6+pYg6 zhi#nv^<4G*>yK|vz4Y_f&&RrEHNQT{oqjF-#=iE`i|76G_g_$}+5Lv`!0hM0t@&SU z_Kz-z)muNUoC!!UG>ET{n=YmO?y^|T?h?k5uG^n}v4x($z2#@gOBq?2=fw;Rd!+vy zeE;U{wdc8qmU};c@!-d|r<)ybrSK+hJar+pJt3Lt2IGwx3}p;vY7Mdty_^Z`*n~dc z=f085Ya`?D`un_^@>CfS#-pE_>-@jWx}o&K+%?uPUhrnkTzkH$j(atKJ-uDdP_CLb zS#Z26cE0#8N=SpL?Q!Nl&kGYK#B=YMI@9dkT=_56m6G>2p7-Z7oZVv} z`x8>rJIr3mGoJijy5@F_PzdXl z$Tc3S9@CHW2MP;p3i7U0Tfxz>(Z^R+aaY3(aV|O*9wjI9(sy18Tvo!zE|b^0TTs69qxXztG_J}3-s;6r>wtSrV6+^ ztohVbyV#RMOknq(2d054ESwj#^eb{VwA^Caa+L`>}9yHAM z6yQvlDlQYPb1<4=_nrivi7fhzzMA?Hr=t(~G5TujOI-GLTH3H|nt0FN;6q`IzWVwn z0yGzfI7FYac2cnsy0Gn2-!7qdoEh1b?y{Ua8@5d^_fRcqtY5yzS?QtvA1=v>*}_qu Qfti-U)78&qol`;+09nJJ>Hq)$ literal 0 HcmV?d00001 diff --git a/client/art/entities/player/dev_player.aseprite b/client/art/entities/player/dev/dev_player.aseprite similarity index 100% rename from client/art/entities/player/dev_player.aseprite rename to client/art/entities/player/dev/dev_player.aseprite diff --git a/client/art/entities/player/dev_player.png b/client/art/entities/player/dev/dev_player_1.png similarity index 100% rename from client/art/entities/player/dev_player.png rename to client/art/entities/player/dev/dev_player_1.png diff --git a/client/art/entities/player/dev_player.png.import b/client/art/entities/player/dev/dev_player_1.png.import similarity index 67% rename from client/art/entities/player/dev_player.png.import rename to client/art/entities/player/dev/dev_player_1.png.import index 6d18a87..00ac85b 100644 --- a/client/art/entities/player/dev_player.png.import +++ b/client/art/entities/player/dev/dev_player_1.png.import @@ -2,15 +2,15 @@ importer="texture" type="StreamTexture" -path="res://.import/dev_player.png-a3e490acef445550df71bca0ea3173dc.stex" +path="res://.import/dev_player_1.png-6a7e17e32424a41520db4c795eece2ce.stex" metadata={ "vram_texture": false } [deps] -source_file="res://art/entities/player/dev_player.png" -dest_files=[ "res://.import/dev_player.png-a3e490acef445550df71bca0ea3173dc.stex" ] +source_file="res://art/entities/player/dev/dev_player_1.png" +dest_files=[ "res://.import/dev_player_1.png-6a7e17e32424a41520db4c795eece2ce.stex" ] [params] diff --git a/client/art/entities/player/dev/dev_player_2.aseprite b/client/art/entities/player/dev/dev_player_2.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..07902165f8f0ab481da61875208b781553c51943 GIT binary patch literal 1189 zcmcJOdr(YK9LLYLUZd4StQyr`N(yDWo6M#E}XYS{od(ZvN_jB&KH){YPud-N#GISOp zBn(GiqX$|)(AVAz zT zq^h5Imv4T+x7>kW)qF5o=%qe3`+h^S=d&^KG}96O@!`HJ;?!yZV`e21zZG**m$nz^ zR%tS}(m~Y^n`&;feNn&M5*Jo~_K;KMgc&#Af0-2I-Xpr+xj(Y~MjO3iPQtso&APA* zH%)g-!PLXkMUi*K%9NmH`%)GOxTM*}!G)g+zwzTOQ*Jh_MB<)8;&XF_4 zol7jW3*+NXsyrOaSLfV2G}*sQF-@5o-6+c|ygwrPQRI`%g4fZHyVnJ@HhS&|p{+wt zcUR^fEWX4I-@WUpHMcn=w$-FF*M7dkro8WKDvICKhA2zgW))1+6t(2@-naM|-3%|y z*2#PvxeDd&WLdXO<2Pk>Nq�Ikw$zH#WX6(|#{tIId&Tr4osxOs&>w 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 literal 0 HcmV?d00001 diff --git a/client/art/entities/player/dev/dev_player_4.png b/client/art/entities/player/dev/dev_player_4.png new file mode 100644 index 0000000000000000000000000000000000000000..971715a2e07f31c7e7509d90018ef734e1d5937c GIT binary patch literal 561 zcmV-10?z%3P)Px$>q$gGR9J=WS20e*Fcf`hyCNY55K&pvty8GHzyY`bH$ZBXGca(5Dv^2vmJA(` zIw8@eN;`Fn4-iC$3aKki7>FaMNgUg)Sl~%f9LN9v=V$x>1o+2ahoNJ%nT^x^zO$PL zEnmt;RlyG-(NZ-4fXVa~lj&=z{VUka#%ZQP;Vx1}1T6(JB89syv&PNrFWf=FiLJQp$JZ64KZz)gV;Q&d1OQ;@I4L{p$3!E6y4ggOYS}3hVBlvT zQ3~Jlj4Bec8IVDk2iUp~9jDQ0L@BPiT`a;-sURsI!-&#SF=D}kAW(JJOn~2f5v7HS z$0G;=)TM510{g++triF&g>=jJ>!4AAh|)^g8R`@{3IX5q4BzvNx*)#iY5faG69B|z zxe6*DBaH-9gX@qG<^iC(zVja#SzGI$006!Ln*{MLy@gnP00000NkvXXu0mjf8r|z1 literal 0 HcmV?d00001 diff --git a/client/art/entities/player/dev/dev_player_4.png.import b/client/art/entities/player/dev/dev_player_4.png.import new file mode 100644 index 0000000..c947c9c --- /dev/null +++ b/client/art/entities/player/dev/dev_player_4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/dev_player_4.png-75d7bdc3c0acf687884cfb7d56448f69.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/entities/player/dev/dev_player_4.png" +dest_files=[ "res://.import/dev_player_4.png-75d7bdc3c0acf687884cfb7d56448f69.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/client/art/gui/banners/burningwall.aseprite b/client/art/gui/banners/burningwall.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..a350015548db1c9b31b9310d843e8241a0fc656a GIT binary patch literal 1166 zcmcJOZAep59EXohnL%8&K+00Dy(($WA(oZQ!k~9$p=N3+Gs_vSL~q4l(40!1hK`;*+PpDWnEnqwuFS3%O| zaMx4)CC|36U{$25LZ5Ye|&UwO(ZuG z_E5J^R%6il8S(@HDxG@hv0rInsqZdHTehl~ot)C|_KJ!7vQ=LwmQ37Bc$=jv?anT* zthXlA+*)M)`svNE%?oU0y+sQ9?Z0#$_VNC(2s!F;<@Zd7F)Zb8^I$$u)z)IBo$|N3GgXw%ib1uO9WR^8qG9ly41}&6er_e fcuLAO4OOFNAKAo`5XIkXxzYyP>U$4v?1Z(9s}bzCC2|E6xf zIkP(b*}dwrw0)Obc+1V6Tc2*@)LCh_r*`kg`aPEQsbAmvN6)d@^Zo1PtLf6h8>9Qq zo|$JK#WLUE*_ntBy4TIW-eEqwuo8|T&cR4fdRng8p zpU<*CPyhD%Rrce@hJu@y?uyYf*B8HBSzn$Qd%euX`+^38uES!6EeyR(7nn@A9Jo;h zHuD$ASbcbN^!tO!HNT5)y_|LTbM5-qkGFXnG|ap?dGfPl`@H({UCUn9+<*ORN3O7_ zg3B3g!zX_(yuKwNv*4|$M`7KIQpL3Y-T{mmj8d!%STjT##1_n~ZCJ6pdq(uB7;`P( zBNj&mw($KmOq}*y%(P8nyTImpZv1Y-a3t{plivuR1BPzQEEUF}nv9uA-|`t@jtXRm zYH&k#B}Cwa{JwSB(bwPXe|wy1&FfowVXI#yZC!PO!-GNoeg8?0qs(vm%2#l>GMn_4 zcW@kKYB^@TR9S>m!1|u1q+)f$y2o>a1UIq00CEKtqZ<}Jo_j}d6N`uGy_1rPl?_)O z&y5kB#C8J66;zCDxbt}K6~Rd?8m9L=B@+u8E>l;?~mzOEa%siXEXS3`>{?Iv# Vij|gkP6DQI22WQ%mvv4FO#m}ZNl5?z literal 0 HcmV?d00001 diff --git a/client/art/gui/banners/burningwall.png.import b/client/art/gui/banners/burningwall.png.import new file mode 100644 index 0000000..8ec3d2a --- /dev/null +++ b/client/art/gui/banners/burningwall.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/burningwall.png-46bfd2d39d0cac96f39200d4c53851e9.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/gui/banners/burningwall.png" +dest_files=[ "res://.import/burningwall.png-46bfd2d39d0cac96f39200d4c53851e9.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/client/art/gui/banners/electus.aseprite b/client/art/gui/banners/electus.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..5b8d4d27f2d1a8e5996c188c69b2866136dfe449 GIT binary patch literal 1724 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 literal 0 HcmV?d00001 diff --git a/client/art/gui/banners/lunaki.png b/client/art/gui/banners/lunaki.png new file mode 100644 index 0000000000000000000000000000000000000000..f74e48270d93cb73664be6fba7ce40ca91b0f74e GIT binary patch literal 1358 zcma)+YgE#A7{`BqK)?$^hL@8mV8>Kersm~n>QSH&O%k*umq*+35|ozC6174jbZY4g zG*J_#R+@9>t(ukWl(ce|xzJ`!^G10IH8gLTV|%+dd+~ff=X}re;(MNRzR&j|OghG3 zlK}t#!w8_Ub@bDX0FBgXduAe62Pm0Mr+|iMnvchC#jd#Z zBGby|xaaG)n}%eKK8KxI5aUN< z+RoicU!5PX8n|_llDBNqR)4IIGdAMqS+vg9 zQ(#UzcYQvVk+&aU^&)rFE z>sx&gC7D<~yO3t=WFU97%ys$K%f6fkf3I^l6YzU-tD8u>;5`|+@y8hp=4g_~#wHh{ z(tBTWM5uRiQnO<5i$fq1$Gdvn18cJWj$BrC2+aUVy@NF`KM}rmL}g7zC`$BNP>UEybcMtFEX7`s%Oc0Wk-+5fHZ(hr2A+X&HrW?H zvhMu8VX7}bXu-!36Dyc`$bY?=d$VONTZ+0*=qi3@Mm3p0I4{Zd^()MBSzGlr>x9d5$^LKWWsdhP?d-)qJTo zeVO|MR>EQaLfr;?YkBPsDMG}|IJCGV6^~g1iMd~nE1_zcf&zWq*ZY+z*beo{r4`dk zk<>p4*%L8Bm3GxnNplBB$@JzYs`9}7_Xvuz%o%=uMl)3kJ?KxCltURx(MOdm=)u{C zcD{%}jZbV0_?hoJUXzrP)}X&}29?wg)jmytHH1BqQLU~9HEhTX;&t7RcOElThPT&_ zTqa$Vha9t^@rK+o85^Py42}7T+G+HQOT8-36&Io9yS02}6K6U;U#jG-c-UHISk;SY z&ym??OrY5S#-ADmYXJl{85Z=!L1TpL*{-hT2i8S7i3v<>Pz&~8t!6F!NEUEi9Oc=^ zy8r2-@B%yx>UakZ_FkpVJbqf%GK;~E6!#LUmeN&OG6Q12cO4Sp25Qu-0bCdeD5W2z;84Wl z)-`(mctJ5=j6^tt0X3@^M*}Zi3W|gwMzS`(7%#K|2h=PRToc48qf02i!JN#rH%!n^ zfHKxvVo1_gaJs9Kh%~rGJ3ovpv z^d=(?V-(j)>C417P-Cr{<%s?YlqFbql8!-d2wHoCVeBg|+uV{h(ye=tfU%oNYoJ7D F{SBo{SQ7vM literal 0 HcmV?d00001 diff --git a/client/art/gui/banners/lunaki.png.import b/client/art/gui/banners/lunaki.png.import new file mode 100644 index 0000000..a64372e --- /dev/null +++ b/client/art/gui/banners/lunaki.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/lunaki.png-d46c842ee07941bd7d94068ea9489984.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/gui/banners/lunaki.png" +dest_files=[ "res://.import/lunaki.png-d46c842ee07941bd7d94068ea9489984.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/client/art/gui/banners/regium.aseprite b/client/art/gui/banners/regium.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..ef7c144b25ba126759a4db6f514f00648685eb85 GIT binary patch literal 1247 zcmcJOe^8Tk9LK*pcB?S4x+A5_Jr_awdm9pBjHi);It_1J;Ln$ZO;Cr;aAb%CSbub)s)TV=;E7joa^ebT1#BNa2B>*od#6xf6W9Ut;SOS(2@u zRUv(2S7vJlEJ;?6y7iQy!JD*HcmI#6HeC?-V~>GP`)~h4F+c1*@(+vjOrN`VuPylPRm2H=pQ-M5e^q!P&snJ6kwG zOsTVx^DfiiJkOEpk2$TJHF~qt!U@y|cD%_eoLlD(e%>|3|7yKMIime-TVAg`!QCD@ z8kVv)GUNCG)3x_oXT>97k>UMWiFswixtUD~9b1%Z+%pGEZ{Jb)bO9Y^)wdr+85P>z z_Aa_kVQl&I_xMZF;l1s##R_9}+FMN0p{sL&DVM7xQ#d#-{;tJjIeB=B(PSk~(K#Y~ z;;>)|cenSa+nI{a;*-fTQNRvKe|Gi8$UCe8cVyzyH6z|MiF(6r#6O(#UfcLulhdMcN%syZVJ4QqTxD6?#~tF#)= z>X4VF&!*eXcJd3J%{}frCHB+E>6&=mS`bn=Yo6<@kjHLMNIZXce?C3; ISow2*0uC(k{r~^~ literal 0 HcmV?d00001 diff --git a/client/art/gui/banners/regium.png b/client/art/gui/banners/regium.png new file mode 100644 index 0000000000000000000000000000000000000000..8227238984e1ed9911a131aba64c8cbd6203e481 GIT binary patch literal 961 zcmeAS@N?(olHy`uVBq!ia0vp^4nW+%!3HFEH|A#nDaPU;cPEB*=VV?oFfdnpx;TbZ z%y~O|W1g_1i0k~tCs>zs2zYFB=xF2PdZBSgWoovHl$HA<_DfHhm1fmA{bBsc7`~*? zpIMgIYx6W6S3RCq>EM>_QP#V^ojJFsJbiAtiuTQnxqH7?lp7fbMaA3giM~{SZ-1@x zX8Zb=A3iRwj^F?Pho|qMt*7k-FP>I!kFH;M+S0di_nkZE-mw6Qj*b^EKZ`Ft*7e+^ z^;Yb@x_>+Fl-yB?*|o*5&o8|0$FASA>r&Ti_0Mkco__7*#h0IMI)+jd4GHDL>U3bqo3~j-F|Jm(e;42 z>&_XgJ90Li*v~(e@vg|2Hat6VE6_h&=S-;XKKa zutilxy}={gX%bV%7Znxl1`l_qOH3V4R8{mFJi?fK4qW}Y@%qmoAqA$Y=D>fS9G#r@ zi9MJ()8x;|a_hHydR}i`f382%=1p+ELD4*`d}Z+m)!uDEe^g%E@NHB%AnvTV!|Q}v z_oY_h5<`(>MPcR}3MaO2WShgcfm5&^Yhm)nUcYA=w*vJ?~4Ag~;!A&a4ybHmImE$TIYDIH&{ZBp9SOOVKPa8`K9bsvimcB%_gQFvK-oz;au?}xO z^-O75!L;O*u@K0IdgqT!6L4(^t5jRolE8TD>C6bBCYA-Kj15(;h&AY)Z}D28sxbAF zPX|jr@Wjj9D_hF9e=_d{WfzS`$^c-_!gu=1&-IOkNR zS#k4jsx1sTux?7andc7mgzKk_LxsXv-T*cGIO!!^KW+S4=v#-JU*$55hw_KyOs)4! S4Q2-BNd`|>KbLh*2~7a^uZ+R~ literal 0 HcmV?d00001 diff --git a/client/art/gui/banners/regium.png.import b/client/art/gui/banners/regium.png.import new file mode 100644 index 0000000..8188dfa --- /dev/null +++ b/client/art/gui/banners/regium.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/regium.png-1a0832d2ba20f1f704b0231836336246.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/gui/banners/regium.png" +dest_files=[ "res://.import/regium.png-1a0832d2ba20f1f704b0231836336246.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/client/nodes/entities/Player.tscn b/client/nodes/entities/Player.tscn index 2d47461..459297c 100644 --- a/client/nodes/entities/Player.tscn +++ b/client/nodes/entities/Player.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=3 format=2] -[ext_resource path="res://art/entities/player/dev_player.png" type="Texture" id=1] +[ext_resource path="res://art/entities/player/dev/dev_player_1.png" type="Texture" id=1] [ext_resource path="res://scripts/entities/Player.gd" type="Script" id=2] [node name="Player" type="KinematicBody2D"] diff --git a/client/nodes/entities/PlayerPuppet.tscn b/client/nodes/entities/PlayerPuppet.tscn index 1a0d40b..7ce382c 100644 --- a/client/nodes/entities/PlayerPuppet.tscn +++ b/client/nodes/entities/PlayerPuppet.tscn @@ -1,6 +1,8 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=3 format=2] -[ext_resource path="res://art/entities/player/dev_player.png" type="Texture" id=1] +[ext_resource path="res://art/entities/player/dev/dev_player_1.png" type="Texture" id=1] +[ext_resource path="res://scripts/entities/PlayerPuppet.gd" type="Script" id=2] [node name="PlayerPuppet" type="Sprite"] texture = ExtResource( 1 ) +script = ExtResource( 2 ) diff --git a/client/project.godot b/client/project.godot index 9620efe..4913dda 100644 --- a/client/project.godot +++ b/client/project.godot @@ -106,6 +106,7 @@ config/icon="res://icon.png" Nakama="*res://addons/com.heroiclabs.nakama/Nakama.gd" ServerConnection="*res://scripts/singletons/ServerConnection.gd" +GameData="*res://scripts/singletons/GameData.gd" [input] diff --git a/client/scenes/CharacterCreation.tscn b/client/scenes/CharacterCreation.tscn new file mode 100644 index 0000000..c517c22 --- /dev/null +++ b/client/scenes/CharacterCreation.tscn @@ -0,0 +1,58 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://art/gui/banners/burningwall.png" type="Texture" id=1] +[ext_resource path="res://scripts/menus/character_creation/FactionButtons.gd" type="Script" id=2] +[ext_resource path="res://scripts/menus/character_creation/NameEdit.gd" type="Script" id=3] +[ext_resource path="res://scripts/menus/character_creation/CharacterCreation.gd" type="Script" id=4] + +[node name="CharacterCreation" type="VBoxContainer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 4 ) +__meta__ = { +"_edit_use_anchors_": false +} +nameTextEdit = NodePath("NameEdit") +factionButtonsNode = NodePath("FactionButtons") + +[node name="NameLabel" type="Label" parent="."] +margin_right = 1024.0 +margin_bottom = 14.0 +text = "The Legacy of" +align = 1 + +[node name="NameEdit" type="LineEdit" parent="."] +margin_top = 18.0 +margin_right = 1024.0 +margin_bottom = 42.0 +align = 1 +placeholder_text = "Character Name" +script = ExtResource( 3 ) + +[node name="FactionLabel" type="Label" parent="."] +margin_top = 46.0 +margin_right = 1024.0 +margin_bottom = 60.0 +text = "Select your family" +align = 1 +uppercase = true + +[node name="FactionButtons" type="HBoxContainer" parent="."] +margin_top = 64.0 +margin_right = 1024.0 +margin_bottom = 198.0 +alignment = 1 +script = ExtResource( 2 ) + +[node name="Button" type="Button" parent="FactionButtons"] +margin_left = 474.0 +margin_right = 550.0 +margin_bottom = 134.0 +icon = ExtResource( 1 ) + +[node name="Button" type="Button" parent="."] +margin_top = 202.0 +margin_right = 1024.0 +margin_bottom = 222.0 +text = "Join World" +[connection signal="button_down" from="Button" to="." method="_on_Button_button_down"] diff --git a/client/scripts/entities/PlayerPuppet.gd b/client/scripts/entities/PlayerPuppet.gd new file mode 100644 index 0000000..dd6a260 --- /dev/null +++ b/client/scripts/entities/PlayerPuppet.gd @@ -0,0 +1,13 @@ +extends Sprite + +export var faction = 1 setget set_faction, get_faction + +func _ready(): + set_faction(faction) + +func set_faction(new_faction): + faction = new_faction + texture = load("res://art/entities/player/dev/dev_player_" + str(faction) + ".png") + +func get_faction(): + return faction diff --git a/client/scripts/menus/character_creation/CharacterCreation.gd b/client/scripts/menus/character_creation/CharacterCreation.gd new file mode 100644 index 0000000..a68fe1f --- /dev/null +++ b/client/scripts/menus/character_creation/CharacterCreation.gd @@ -0,0 +1,16 @@ +extends Node + +export(NodePath) var nameTextEdit +export(NodePath) var factionButtonsNode + +onready var nameEdit : LineEdit = get_node(nameTextEdit) +onready var factionButtons = get_node(factionButtonsNode) + +func _on_Button_button_down(): + if nameEdit.text != "": + if factionButtons.currently_selected: + for i in range(1,len(GameData.factions)): + if GameData.factions[i] == factionButtons.currently_selected: + var created_char = yield(ServerConnection.create_character_async(nameEdit.text, i), "completed") + if created_char: + get_tree().change_scene("res://scenes/World.tscn") diff --git a/client/scripts/menus/character_creation/FactionButtons.gd b/client/scripts/menus/character_creation/FactionButtons.gd new file mode 100644 index 0000000..db2931a --- /dev/null +++ b/client/scripts/menus/character_creation/FactionButtons.gd @@ -0,0 +1,20 @@ +extends Node + +signal selection_updated(faction) + +var currently_selected : String + +func _ready(): + get_child(0).queue_free() + for faction in GameData.factions: + if faction == "Electus": + return + + var faction_button = Button.new() + faction_button.icon = load("res://art/gui/banners/" + faction.to_lower() + ".png") + faction_button.connect("button_down", self, "on_faction_select", [faction]) + add_child(faction_button) + +func on_faction_select(faction): + currently_selected = faction + emit_signal("selection_updated", faction) diff --git a/client/scripts/menus/character_creation/NameEdit.gd b/client/scripts/menus/character_creation/NameEdit.gd new file mode 100644 index 0000000..e241d21 --- /dev/null +++ b/client/scripts/menus/character_creation/NameEdit.gd @@ -0,0 +1,14 @@ +extends LineEdit + +var invalid_chars = " '.,;/\\,[](){}!@#$%^&*-=|_+1234567890\"" + +func _ready(): + connect("text_changed", self, "validate_name") + + +func validate_name(name): + var cursor_pos = caret_position + for character in invalid_chars: + if character in text: + text = text.replace(character, "") + caret_position = cursor_pos diff --git a/client/scripts/singletons/GameData.gd b/client/scripts/singletons/GameData.gd new file mode 100644 index 0000000..59218c7 --- /dev/null +++ b/client/scripts/singletons/GameData.gd @@ -0,0 +1,8 @@ +extends Node + +var factions = [ + "Burningwall", + "Lunaki", + "Regium", + "Electus" +] diff --git a/client/scripts/singletons/ServerConnection.gd b/client/scripts/singletons/ServerConnection.gd index 413923c..725de28 100644 --- a/client/scripts/singletons/ServerConnection.gd +++ b/client/scripts/singletons/ServerConnection.gd @@ -4,19 +4,21 @@ signal tile_update(tile_data) signal player_joined(user_id) signal player_left(user_id) signal player_pos_update(user_id, pos) +signal player_state_update(user_id, user_name, faction) const KEY := "defaultkey" const SERVER_ENDPOINT := "nakama.cloudsumu.com" var _session : NakamaSession -var _client : NakamaClient = Nakama.create_client(KEY, SERVER_ENDPOINT, 7350, "http") +var _client : NakamaClient = Nakama.create_client(KEY, SERVER_ENDPOINT, 7350, "http", Nakama.DEFAULT_TIMEOUT, NakamaLogger.LOG_LEVEL.ERROR) var _socket : NakamaSocket var _precenses : Dictionary = {} var _world_id enum OPCODE { tile_update = 1, - update_position = 2 + update_position = 2, + player_state = 3 } func authenticate_async(email : String, password : String) -> NakamaException: @@ -62,6 +64,11 @@ func join_world_async() -> Dictionary: var match_join_result : NakamaRTAPI.Match = yield(_socket.join_match_async(world.payload), "completed") if match_join_result.is_exception(): print("Join match error: %s - %s" % [match_join_result.exception.status_code, match_join_result.exception.message]) + + # THIS SECTION NEEDS TO BE UPADTED TO BE DECOUPLED + # IT SHOULD ALSO NOT CATCH ALL JOIN ERRORS! + get_tree().change_scene("res://scenes/CharacterCreation.tscn") + return {} _world_id = world.payload @@ -95,7 +102,17 @@ func _on_socket_received_match_state(match_state: NakamaRTAPI.MatchData): OPCODE.update_position: var pos_data = JSON.parse(match_state.data).result emit_signal("player_pos_update", pos_data["player"], Vector2(float(pos_data["x"]), float(pos_data["y"]))) + OPCODE.player_state: + var state_data = JSON.parse(match_state.data).result + emit_signal("player_state_update", state_data["player"], state_data["name"], state_data["faction"]) func send_player_position(position : Vector2) -> void: _socket.send_match_state_async(_world_id, OPCODE.update_position, JSON.print({X = str(position.x), Y = str(position.y)})) +func create_character_async(name : String, faction : int) -> Dictionary: + + var character_response : NakamaAPI.ApiRpc = yield(_client.rpc_async(_session, "create_character", JSON.print({"name":name, "faction" : faction})), "completed") + if character_response.is_exception(): + print("Create character error occured: %s" % character_response.exception.message) + return false + return true diff --git a/client/scripts/systems/PlayerPuppeteer.gd b/client/scripts/systems/PlayerPuppeteer.gd index 96bf07a..b3ef260 100644 --- a/client/scripts/systems/PlayerPuppeteer.gd +++ b/client/scripts/systems/PlayerPuppeteer.gd @@ -11,6 +11,7 @@ func _ready(): ServerConnection.connect("player_joined", self, "on_player_join") ServerConnection.connect("player_left", self, "on_player_leave") ServerConnection.connect("player_pos_update", self, "on_player_pos_update") + ServerConnection.connect("player_state_update", self, "on_player_state_update") func on_player_join(user_id): @@ -29,3 +30,12 @@ func on_player_pos_update(user_id, pos): if user_id != ServerConnection._session.user_id: var player_puppet : Node2D = puppets[user_id] player_puppet.global_position = pos + +func on_player_state_update(user_id, user_name, faction): + if user_id != ServerConnection._session.user_id: + if user_id in puppets: + var player_puppet : Node2D = puppets[user_id] + player_puppet.name = user_name + player_puppet.set_faction(faction) + else: + print("Could not update player state for nonexisting player!")