From 75fcf986d006414f1d55d32f953a0f5f520512af Mon Sep 17 00:00:00 2001 From: shmyga Date: Fri, 7 Feb 2020 17:06:46 +0300 Subject: [PATCH] [update] :-) --- package.json | 5 +- src/haxe/ru/m/puzzlez/PuzzlezTheme.hx | 23 ++++++- src/haxe/ru/m/puzzlez/source/FileSource.hx | 4 +- .../{source => storage}/GameStorage.hx | 2 +- src/haxe/ru/m/puzzlez/view/GameFrame.hx | 2 +- src/haxe/ru/m/puzzlez/view/GameListFrame.hx | 25 ++++---- src/haxe/ru/m/puzzlez/view/GameListFrame.yaml | 2 +- src/haxe/ru/m/puzzlez/view/ImageListFrame.hx | 30 +++++++++- .../ru/m/puzzlez/view/ImageListFrame.yaml | 3 +- src/haxe/ru/m/puzzlez/view/PuzzleImageView.hx | 28 ++++----- .../ru/m/puzzlez/view/PuzzleImageView.yaml | 6 +- src/haxe/ru/m/skin/ButtonSVGSkin.hx | 56 ++++++++++++++++++ src/resources/fonts/GamePlayed.eot | Bin 0 -> 28700 bytes src/resources/fonts/GamePlayed.svg | Bin 0 -> 28036 bytes src/resources/fonts/GamePlayed.ttf | Bin 0 -> 28420 bytes src/resources/fonts/GamePlayed.woff | Bin 0 -> 12648 bytes .../icon/arrow-alt-circle-left-solid.svg | 1 + .../icon/arrow-alt-circle-right-solid.svg | 1 + src/resources/image/icon/backspace-light.svg | 6 ++ src/resources/image/icon/bars-solid.svg | 1 + src/resources/image/icon/cog-solid.svg | 1 + src/resources/image/icon/keyboard-light.svg | 6 ++ .../image/icon/play-circle-solid.svg | 1 + src/resources/image/icon/sign-in-solid.svg | 1 + src/resources/image/icon/sign-out-solid.svg | 1 + .../image/icon/tablet-android-alt-light.svg | 7 +++ .../image/icon/times-circle-solid.svg | 1 + .../image/icon/window-close-solid.svg | 1 + 28 files changed, 176 insertions(+), 38 deletions(-) rename src/haxe/ru/m/puzzlez/{source => storage}/GameStorage.hx (95%) create mode 100644 src/haxe/ru/m/skin/ButtonSVGSkin.hx create mode 100644 src/resources/fonts/GamePlayed.eot create mode 100644 src/resources/fonts/GamePlayed.svg create mode 100644 src/resources/fonts/GamePlayed.ttf create mode 100644 src/resources/fonts/GamePlayed.woff create mode 100644 src/resources/image/icon/arrow-alt-circle-left-solid.svg create mode 100644 src/resources/image/icon/arrow-alt-circle-right-solid.svg create mode 100644 src/resources/image/icon/backspace-light.svg create mode 100644 src/resources/image/icon/bars-solid.svg create mode 100644 src/resources/image/icon/cog-solid.svg create mode 100644 src/resources/image/icon/keyboard-light.svg create mode 100644 src/resources/image/icon/play-circle-solid.svg create mode 100644 src/resources/image/icon/sign-in-solid.svg create mode 100644 src/resources/image/icon/sign-out-solid.svg create mode 100644 src/resources/image/icon/tablet-android-alt-light.svg create mode 100644 src/resources/image/icon/times-circle-solid.svg create mode 100644 src/resources/image/icon/window-close-solid.svg diff --git a/package.json b/package.json index e471bf7..c2712da 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "puzzlez", - "version": "0.2.1", + "version": "0.2.2", "private": true, "devDependencies": { "dateformat": "^3.0.3", @@ -15,7 +15,8 @@ "haxework": "git@bitbucket.org:shmyga/haxework.git", "lime": "7.6.3", "openfl": "8.9.5", - "hxcpp": "4.0.52" + "hxcpp": "4.0.52", + "svg": "1.1.3" }, "dependencies": {} } diff --git a/src/haxe/ru/m/puzzlez/PuzzlezTheme.hx b/src/haxe/ru/m/puzzlez/PuzzlezTheme.hx index 5726286..bac60d9 100644 --- a/src/haxe/ru/m/puzzlez/PuzzlezTheme.hx +++ b/src/haxe/ru/m/puzzlez/PuzzlezTheme.hx @@ -4,11 +4,13 @@ import haxework.color.Color; import haxework.view.geometry.Box; import haxework.view.geometry.SizeValue; import haxework.view.theme.Theme; +import openfl.Assets; +import ru.m.skin.ButtonSVGSkin; class PuzzlezTheme extends Theme { public function new() { - super({name: "Georgia"}, {light: "gray"}, {base: 22}); + super({embed: true}, {light: "gray"}, {base: 22}); data.get("frame").data.set("geometry.padding", Box.fromFloat(8)); register(new Style("view", [ "skin.background.color" => colors.light, @@ -20,5 +22,24 @@ class PuzzlezTheme extends Theme { register(new Style("text.error", [ "font.color" => Color.fromString("red"), ], "text")); + registerButton("close", "times-circle-solid.svg", false, 0xcc5500); + } + + private function registerButton(name:String, resource:String, solid:Bool = false, color:Color = null):Void { + if (color == null) { + color = colors.light; + } + var size = 42; + var smallSize = 32; + register(new Style('button.$name', [ + "geometry.width" => SizeValue.fromInt(size), + "geometry.height" => SizeValue.fromInt(size), + "skin" => function() return new ButtonSVGSkin(Assets.getText('resources/image/icon/$resource'), color, solid), + ])); + register(new Style('button.$name.small', [ + "geometry.width" => SizeValue.fromInt(smallSize), + "geometry.height" => SizeValue.fromInt(smallSize), + "skin" => function() return new ButtonSVGSkin(Assets.getText('resources/image/icon/$resource'), color, solid), + ])); } } diff --git a/src/haxe/ru/m/puzzlez/source/FileSource.hx b/src/haxe/ru/m/puzzlez/source/FileSource.hx index 839929c..b8a8c39 100644 --- a/src/haxe/ru/m/puzzlez/source/FileSource.hx +++ b/src/haxe/ru/m/puzzlez/source/FileSource.hx @@ -3,6 +3,7 @@ package ru.m.puzzlez.source; import flash.display.BitmapData; import flash.net.SharedObject; import haxe.crypto.Md5; +import haxe.DynamicAccess; import haxe.io.Bytes; import promhx.Promise; import ru.m.puzzlez.core.Id; @@ -50,7 +51,8 @@ class FileSource implements IImageSource { var fileData = SharedObject.getLocal(id); fileData.clear(); fileData.flush(); - Reflect.deleteField(listData.data, id); + var access:DynamicAccess = listData.data; + access.remove(id); listData.flush(); } } diff --git a/src/haxe/ru/m/puzzlez/source/GameStorage.hx b/src/haxe/ru/m/puzzlez/storage/GameStorage.hx similarity index 95% rename from src/haxe/ru/m/puzzlez/source/GameStorage.hx rename to src/haxe/ru/m/puzzlez/storage/GameStorage.hx index 1f644d7..5ff214d 100644 --- a/src/haxe/ru/m/puzzlez/source/GameStorage.hx +++ b/src/haxe/ru/m/puzzlez/storage/GameStorage.hx @@ -1,4 +1,4 @@ -package ru.m.puzzlez.source; +package ru.m.puzzlez.storage; import haxework.storage.SharedObjectStorage; import ru.m.puzzlez.core.GameState; diff --git a/src/haxe/ru/m/puzzlez/view/GameFrame.hx b/src/haxe/ru/m/puzzlez/view/GameFrame.hx index 81f571d..1e5d912 100644 --- a/src/haxe/ru/m/puzzlez/view/GameFrame.hx +++ b/src/haxe/ru/m/puzzlez/view/GameFrame.hx @@ -7,7 +7,7 @@ import ru.m.puzzlez.core.GameEvent; import ru.m.puzzlez.core.GameState; import ru.m.puzzlez.core.IGame; import ru.m.puzzlez.render.IRender; -import ru.m.puzzlez.source.GameStorage; +import ru.m.puzzlez.storage.GameStorage; @:template class GameFrame extends FrameView { public static var ID = "game"; diff --git a/src/haxe/ru/m/puzzlez/view/GameListFrame.hx b/src/haxe/ru/m/puzzlez/view/GameListFrame.hx index ef4a0ac..f18d52e 100644 --- a/src/haxe/ru/m/puzzlez/view/GameListFrame.hx +++ b/src/haxe/ru/m/puzzlez/view/GameListFrame.hx @@ -3,15 +3,16 @@ package ru.m.puzzlez.view; import haxework.view.data.DataView; import haxework.view.frame.FrameSwitcher; import haxework.view.frame.FrameView; -import ru.m.puzzlez.core.GameState; -import ru.m.puzzlez.source.GameStorage; +import haxework.view.popup.ConfirmView; +import ru.m.puzzlez.core.Id.ImageId; +import ru.m.puzzlez.storage.GameStorage; import ru.m.puzzlez.view.PuzzleImageView; @:template class GameListFrame extends FrameView { public static var ID(default, never) = "game_list"; - @:view var images:ActionDataView; + @:view var images:ActionDataView; @:provide var switcher:FrameSwitcher; @:provide var storage:GameStorage; @@ -21,18 +22,22 @@ import ru.m.puzzlez.view.PuzzleImageView; } override public function onShow(data:Dynamic):Void { - images.data = storage.list(); + images.data = storage.listIds(); } - private function start(state:GameState):Void { - switcher.change(GameFrame.ID, state); + private function start(id:ImageId):Void { + switcher.change(GameFrame.ID, storage.read(id)); } - private function onAction(state:GameState, action:Action):Void { + private function onAction(id:ImageId, action:Action):Void { switch action { - case CLOSE: - storage.delete(state.preset.imageId); - images.data = storage.list(); + case REMOVE: + ConfirmView.confirm("Delete?").then(function(result) { + if (result) { + storage.delete(id); + images.data = storage.listIds(); + } + }); } } diff --git a/src/haxe/ru/m/puzzlez/view/GameListFrame.yaml b/src/haxe/ru/m/puzzlez/view/GameListFrame.yaml index ee6b516..e559f78 100644 --- a/src/haxe/ru/m/puzzlez/view/GameListFrame.yaml +++ b/src/haxe/ru/m/puzzlez/view/GameListFrame.yaml @@ -8,7 +8,7 @@ views: margin: 5 vAlign: middle geometry.stretch: true - factory: ~ru.m.puzzlez.view.PuzzleImageView.stateFactory + factory: ~ru.m.puzzlez.view.PuzzleImageView.factory +onDataSelect: ~start +onDataAction: ~onAction geometry.margin: 5 diff --git a/src/haxe/ru/m/puzzlez/view/ImageListFrame.hx b/src/haxe/ru/m/puzzlez/view/ImageListFrame.hx index 751b462..b064c5d 100644 --- a/src/haxe/ru/m/puzzlez/view/ImageListFrame.hx +++ b/src/haxe/ru/m/puzzlez/view/ImageListFrame.hx @@ -4,17 +4,21 @@ import haxework.view.data.DataView; import haxework.view.form.ButtonView; import haxework.view.frame.FrameSwitcher; import haxework.view.frame.FrameView; +import haxework.view.popup.ConfirmView; import ru.m.puzzlez.core.Id; import ru.m.puzzlez.FileUtil; import ru.m.puzzlez.source.FileSource; +import ru.m.puzzlez.storage.GameStorage; import ru.m.puzzlez.storage.ImageStorage; +import ru.m.puzzlez.view.PuzzleImageView; @:template class ImageListFrame extends FrameView> { public static var ID = "image_list"; - @:view var images:DataView; + @:view var images:ActionDataView; @:view var select:ButtonView; @:provide var imageStorage:ImageStorage; + @:provide var gameStorage:GameStorage; @:provide var switcher:FrameSwitcher; private var source:ImageListSource; @@ -47,8 +51,28 @@ import ru.m.puzzlez.storage.ImageStorage; }); } - private function start(image:ImageId):Void { - switcher.change(PresetFrame.ID, image); + private function onAction(imageId:ImageId, action:Action):Void { + switch action { + case REMOVE: + var fileSource:FileSource = Std.instance(source.source, FileSource); + if (fileSource != null) { + ConfirmView.confirm("Delete?").then(function(result) { + if (result) { + fileSource.remove(imageId); + loading.promise = fileSource.getList().then(function(result) images.data = result); + } + }); + } + } + } + + private function start(imageId:ImageId):Void { + var state = gameStorage.read(imageId); + if (state != null) { + switcher.change(GameFrame.ID, state); + } else { + switcher.change(PresetFrame.ID, imageId); + } } private function back():Void { diff --git a/src/haxe/ru/m/puzzlez/view/ImageListFrame.yaml b/src/haxe/ru/m/puzzlez/view/ImageListFrame.yaml index 689db5c..3c86891 100644 --- a/src/haxe/ru/m/puzzlez/view/ImageListFrame.yaml +++ b/src/haxe/ru/m/puzzlez/view/ImageListFrame.yaml @@ -2,7 +2,7 @@ style: frame views: - id: images - $type: haxework.view.data.DataView + $type: haxework.view.data.ActionDataView layout: $type: haxework.view.layout.TailLayout margin: 5 @@ -10,6 +10,7 @@ views: geometry.stretch: true factory: ~ru.m.puzzlez.view.PuzzleImageView.factory +onDataSelect: ~start + +onDataAction: ~onAction geometry.margin: 5 overflow.y: scroll - id: select diff --git a/src/haxe/ru/m/puzzlez/view/PuzzleImageView.hx b/src/haxe/ru/m/puzzlez/view/PuzzleImageView.hx index bfbe28f..33b9f7c 100644 --- a/src/haxe/ru/m/puzzlez/view/PuzzleImageView.hx +++ b/src/haxe/ru/m/puzzlez/view/PuzzleImageView.hx @@ -1,16 +1,17 @@ package ru.m.puzzlez.view; -import haxework.view.data.DataView.ActionDataView; +import haxework.view.data.DataView; +import haxework.view.form.ButtonView; import haxework.view.form.LabelView; import haxework.view.group.GroupView; import haxework.view.ImageView; -import ru.m.puzzlez.core.GameState; import ru.m.puzzlez.core.GameUtil; import ru.m.puzzlez.core.Id; +import ru.m.puzzlez.storage.GameStorage; import ru.m.puzzlez.storage.ImageStorage; enum Action { - CLOSE; + REMOVE; } @:template class PuzzleImageView extends GroupView { @@ -37,7 +38,9 @@ enum Action { @:view("image") var imageView:ImageView; @:view("label") var labelView:LabelView; - @:provide var imageStorage:ImageStorage; + @:view("remove") var removeButton:ButtonView; + @:provide static var imageStorage:ImageStorage; + @:provide static var gameStorage:GameStorage; private var loading:LoadingWrapper; public function new() { @@ -45,25 +48,22 @@ enum Action { loading = new LoadingWrapper(this); } - private function close():Void { + private function emit(action:Action):Void { var dataView:ActionDataView = Std.instance(parent, ActionDataView); if (dataView != null) { var index = dataView.dataViews.indexOf(this); - dataView.onDataAction.emit(dataView.data[index], CLOSE); + dataView.onDataAction.emit(dataView.data[index], action); } } public static function factory(index:Int, imageId:ImageId):PuzzleImageView { var result = new PuzzleImageView(); result.imageId = imageId; - return result; - } - - public static function stateFactory(index:Int, state:GameState):PuzzleImageView { - var result = new PuzzleImageView(); - result.imageId = state.preset.imageId; - var progress = GameUtil.calcProgress(state); - result.text = '${progress.complete}/${progress.total}'; + var state = gameStorage.read(imageId); + if (state != null) { + var progress = GameUtil.calcProgress(state); + result.text = '${progress.complete}/${progress.total}'; + } return result; } } diff --git a/src/haxe/ru/m/puzzlez/view/PuzzleImageView.yaml b/src/haxe/ru/m/puzzlez/view/PuzzleImageView.yaml index cf2ee1e..1df16e3 100644 --- a/src/haxe/ru/m/puzzlez/view/PuzzleImageView.yaml +++ b/src/haxe/ru/m/puzzlez/view/PuzzleImageView.yaml @@ -8,9 +8,9 @@ views: fillType: COVER - id: label $type: haxework.view.form.LabelView - - id: close + - id: remove $type: haxework.view.form.ButtonView propagation: false geometry.hAlign: right - text: X - +onPress: ~close() + style: button.close.small + +onPress: ~emit(Action.REMOVE) diff --git a/src/haxe/ru/m/skin/ButtonSVGSkin.hx b/src/haxe/ru/m/skin/ButtonSVGSkin.hx new file mode 100644 index 0000000..807002e --- /dev/null +++ b/src/haxe/ru/m/skin/ButtonSVGSkin.hx @@ -0,0 +1,56 @@ +package ru.m.skin; + +import format.SVG; +import haxework.color.Color; +import haxework.view.form.ButtonView; +import haxework.view.skin.ISkin; + +using StringTools; +using haxework.color.ColorUtil; + +@:style class ButtonSVGSkin implements ISkin { + + @:style(null) public var svg:String; + @:style(0) public var color:Null; + @:style(false) public var solid:Null; + + private var svgs:Map; + + public function new(?svg:String, ?color:Color, ?solid:Bool) { + this.svg = svg; + this.color = color; + this.solid = solid; + init(solid); + } + + private inline function buildSVG(color:Color):SVG { + return new SVG(svg.replace("currentColor", '#${color}')); + } + + private function init(solid:Bool):Void { + var color = color; + if (solid) { + color = color.multiply(1.5); + } + svgs = new Map(); + svgs.set(UP, buildSVG(color)); + svgs.set(DOWN, buildSVG(color.diff(-24))); + svgs.set(OVER, buildSVG(color.diff(24))); + svgs.set(DISABLED, buildSVG(color.grey())); + } + + public function draw(view:ButtonView):Void { + var svg = svgs.get(view.state); + var graphics = view.content.graphics; + graphics.beginFill(0, 0); + graphics.drawRect(0, 0, view.width, view.height); + graphics.beginFill(color); + if (!solid) { + graphics.lineStyle(2, color.multiply(1.5)); + } + // ToDo: padding + svg.render(graphics, 0, 0, Std.int(view.width * 0.8), Std.int(view.height * 0.8)); + graphics.lineStyle(); + graphics.endFill(); + } +} diff --git a/src/resources/fonts/GamePlayed.eot b/src/resources/fonts/GamePlayed.eot new file mode 100644 index 0000000000000000000000000000000000000000..79b7a7344038708303cab66ba9ed6a6e9e9d3c3c GIT binary patch literal 28700 zcmeHw3wRvWeeXFlJG-m*?&_`8V|G`PjkS_($+C?xX3@h2TQ;^KSR%xhY{|C3Ho_Rk zIEXj|2$+T%(z+xeDX+9P4RmB4A>g)@q^Sadkk+KB<8lqR_ttGGrHOCa2y13d>d2Y{lEtpordyLbsA_y^ zyY|ax2 zxuQwT!S6+46>4_l>~^tHwXsDr&c@NE8RzGUg=n)>UA0TJqmKcMv z?dRdY8TIo~YD9m7Xeq?`XNr>&{{eh>gjl-ts+FJi|Ke*x>^Ozm%4Hp$OJx?%>=?y& z`-&@PH@E%i7w^GEcjJ5SrtN)0P47HAR|u;c5Pf;m?p=1l;@EFtL|(sq^U#*N4Mfi^X&7o~KZ0cKi(V|`dRdok zqu;7%$l8N*ule4UhjGN5(AOSSXA5b4hu=|s#{GX8-K<56rTX8uPah@fjra7w=RT0d zZD^0W%pVrqmJL!5}r>;dEuTP!x0fXwAC#D?Txv2i@MRR7q6W3(4$vmGb zPi@C}a_rPm^$luO?SBp9o7Za?@MyX4NX^v?@?x1V;?aB#M722$E6zLhow!mkBpkV( z)EeCDjZ4yNB%E{a)c<+FcWS)pj{aAsKX25Zz0Cj)aJ&xx3%w9y(_POxPZQ4l`26Rs z6r9m^Y9Ie8;{zTaIzGnbS~yl}Ji?Q3S8%;u&x>nJ(QN7*&u7A(yg~S8KdkF{&UaMf zglo%sK$pR4ru$#1c~Kr!d=9xPJQ7z!MB9)AMJQE?+r(KpS6(Ui7~eCF8z;=$>>|6u zuC}9gy*~BV*(NMHFT7LE{uHjX-co|U3K9(SIM(~ zfA)V0arU>*-f(uscyj#R@qa$^@X2RS9yvL3(mDC$$;VGVbn;6l`%gChkLTa|{#!4< zwO-F0V*$gz!jCC7icL_317b7O;8v)i>%{d?hT9?gcR+Owi5rzN+yxc6TYOsVf$H2V zJ|k`w!+^wR#Xj*lal81uxI^42?h;=RcZ++(esQn(ElAA!#BYlO;(qaf_>%Y?@w?)n z_&xEU__Fwl_^NnFd`)~^{JwZtJR%+ykBP@2TmL}(p*SQCizmb%iEoN0#Z%&sg(F5F z?VlFUh-bxf;#=Z*@on*fcu^b`e{mm#-`bG<~Fy?Yn{Jf;f0GXT72=6OA?p1 zwL`luyX^AiE4o&$x?=U3wO3yCiL2Lj_gwSIYd^JqLvNqBvx$pD8`{yr@e*d-CUwQRg;?KVGH-Gykxb;V${=pBA-M;^G_ul=* z`+obkzVtidfv$rMi1t_qb!mHVTcac6j@`St(J|t&NG#Imm~p%R zX|t$Uw6!~h?RIZ(+lW!r-ZoNawmU}qReNkFH-B+ua6XyWe(RTJ3o1uQ@VP z=CyZj>U6xF-4VyE>skBBZZr<>@3x)Qt5KEc3ER#>mKOH(*dw|%W;7F3?l;?+!}D|4 z@}S6}LNW$5YpbHTl|CcRRjVo8ynQ z0Ry6SR-?+IzVVmckk+O z-`bw;SWl$Kb`n>1<6M|B#M?C!drhCPex-uL=eW9u^ijRm;`zN|bLZNm? z_O&^|2C^JTt8Ju!9|3$gvIMv=>sEJ`o^iBBa+850G`M4_=w44MSR4= zV>muy@mLuj@$y&|AMx>69Ut-YSQ8(~;;|tPuxLa$-d=z_W;Z$VQ)HV)C!TS#Wa8wF z`eb9q$@+v&u@39wu^#K= zaR%1M<4mlN#|yAN9%o^FJT}Gc#fqb5#{uH9UK`R+_L4aIaCDkTymR8t>;`8x7;`Ro zVi`zxTF#91EsRmZe`pKPWuw!a!u3eLx09sj%$+r2$>Pp#NJnC^B?CO?Ycnryx2l=9 zqBq@7=ehC%VrbggvR;%t1Dz#A$CB8>k$JM1Yn=~xU;)!!(+jTYTiECJ+@_spZ3&S6+LYf zx!I837#}l;E$wx@!1iRm1#8I$t)4vXz5OxAf_8<}^R)McQSR-5pqP41AEpLH5L?=} zFdV}OOR-KI)F|k0nn5rT%4RQ^7|5_da8M;vW`Z93sJ1u>6Q8a~O^*d)S)76etXRjY zcVQ7*3@}|hamvYt46*H{v1J^TSX`1irxv3j?TD+oo9xBV?3}%!E79o$DjaVezFm$} z6Gn_i;<=R98*{M*70~Ehk{V4x-$hq1EuE=LPN6sf`O!ouE_F)VyH|&yT)Q82MCHa+rvx&hZieus&Pss!iue%(;!s$Pf@EP${D@RFYf(@& zSF+7AoVto_Soj3nuy8fou&^%vG-P2rO5G?y$)nU0e;R%ZOV^;J>psbLl6BXzohp5b z?Nn(!+o{q9j@gN3y&RK;K90%4MvlqCCbqc@g?_eSVSsH|*vvL8Y*F*-KxwO*7fXX` zUMyXw=Ec(WYF;dDQ}beJyP6kEJJh^bx&bg=Jb}O=_037(#ErUmDT+G@bT)I^@a-n( zS`^u4moBo+&8iJgu+45}<_L7PI?o{7Ye|PC3n}0zU+5B!? zd5P}t9$jRE{kq5o_r{OpC==K5hL3m*vlHGEbXiYZgX14?%-Yp^QVPA1Di+S*=vtVT z@;<0L?fwmo2w&UNqQVffSbDa`Q{XqUbvb5~dQ~~A?L|Ms$%e?mnVhy4MFPM4_H9N> zI!0>c-D}_++}+LZ{T(AS`Tcpn&=sPiCp{9 z%d>Yno-aaAcRX$NdqqbFCw;yj8P~szl)CX!9MfgNkUD-*H_Ct2&tjo}dl9ENE|VvbXDxDc&6f&ijx(;2+t2+7QQCDEqrVEzVOc~ zuc>^n@`=i$m9JNxto&J(QB_n`U$vv^wyFbFk5)ZX_1&r;SDmh2UVUx#j_Q5Y4^%&1 z{Z>u9W?@Z7&FY$KYqr+Bg80@Bd#`<${eb;-`w9Cw`(^v}NJ%6bX^Je0ERC#s(rZj<=Vfm^ViL< z+g7e!oLrZz zORlpvjJ+^CY%LugyVzRF%CQ%?HGpv;Xyc$D6MFzPiArG@9LWr>gxD1ua5f}X1%ttW z$5+vCfec1kBf*G_qjU8yxx@iM@L6xoPYR9 z9^;=pJ!*8LCbd*mn_e~AQ8t`i=yALWQ7&vTL##|J$Bgo%$IS8!3NONSa#KDg?6>-S z(z1dp3vvx0vyY$wP@|D>MSX2#Ms!9^RfQe4%S$oeXapaT0H!Phkyx>Uc5BQI1|lu3 zkz#*l@YtD?_yF#(yMsvjKY8=9qC8Mv1badEsyI+$CLk}eOp!I1>o-iV zv^=JDU5@lf>FL42Bm0bO17FvK6WAT{i954##sGHq;Y*h3JLft>UuX0Q!(*)JNkn7O zf_x!n)<+v+4R&?7yeO1kT2Pvs?XyVk!8~7SgC!$bfQB7x<%ev(Sk8+@t7Or%bq9>2 zGCtnnX-a-A`8ByoZc2V_!GZ5Tn80{{LApcVf>jFo>Qf18_{#p zWrc{5E=#3p1ON-8OBmTc!-Q(uqPQgs&E zo#pp>3{fE~a(pEXWCmcf1+<9IV04DJLE6E23+h_~Qehd3m4}T>#{YbH*z^q#Ke>7H zlW!;2Ed>V;55GNZ?MWU3ud9F7@ig%M)G&U)e&k7)w+j>4-vmQqn&iiT;VV;vYw{)! zs`kktqg%-!N+8rg2n`Altw{JjqyVsho$7PGiCh5 zZV=`$sZY*HBJyscyB>%c5`t+=^r?Dt`{dM&?(su1?m@hky`L%LHyP*5@OQxc58xyy z>JzbGfUwQ-`@En~>~u@nm9gBipjs}t$!9K@QCJF2T2SaKHH`<7$KE*j2L5DR9gThO zzrRO%_V6F2d>P(q=%BTm#xCY31luSWd$dK)d7AV>E5DL6(fA%`_l#&UM<{b1+1Hyba zx*=bh;LBnek(%2SKWSZ}_#_MAGeC+`8fgLK37}f`VbqXZm6ILF&o0a z7AwYfkF5ctn|L2Tq^Sxpv-y3L70?wF&q`RUCGo?^107_E@^&QV#}o3b zlA`3SWl5PV<1C0m3>(7? z+=Cq~@|6?^Oy8MbQh20426!$jp9&DHuz@7^};)HYQeA00_I1GAM&n zRtF^rn#ov}=e9FX(bC~^$X{awaHc(x1A79Ht&q|JWGz740^d%I&0)#HM#unUtHWg_ z#f5=9pGV}#Y=vK?aw60@Ep-#779@9-oZo_}5V*-lDWNg&qf{ZrW8@49qkgSwx_+qqw0?XOL5?b$ttdG z47pF+xGGUG!IK%%Gs7~bxYsh20!qdqt*ENl4`saD4>fCww?P3iQ`)mL*!Gn7lRJal z*S(QuMm=5VD^D~hX6IT4q;eOOkyD0+iD@5_cR6pl9(s@K_KA<0H!K1QKe`86?@;$p>hRIg@eV-l^!RawX2?34)*KvjA;O98>%5Oc zch(|d?utZL4aQb-2TW;f$p*6gQuqh6r1VLzDZMa&@KAWt4tWI!o?jC$QTI^JaY?Pb6Sq8-S|erzLJ}@nKZuuPSjNHvr_cHbSAC9H`8)P-$^tPB15spNk%{ zB3ZCs=7I^dhK$H!r8C`wdA*is<9}{kGCZt5VQRZl%+m$uY5X`oFeUP%mc0dHW}*(l zRcs(PViGQ$DM-NV_rYE$kOe6&q_IPCrdOlw9a59FduZ0X{w91-=2U4}q}J~f1A}!Ig{Q0^5f~63ODgY~^1pbW_`7nl*;cW<4R}-_g4<98{R`_0-S$*c6G8sy*bByX5nAXe87&})q zCT3yX>9N7RdTeEe!91X~Z-`u(>rEM992CDPh^p~UCXW%I7-jr8Ey;{A3YBE=K>B!G z56)emVWiim%sq`ir%CT!1%P0^Z{(zu!AV=wL{L=bkc2^15toSpZ0(k5oyWdS z`^?GlLz8K#i1^HNc~-62+M>ckE8QW`yhs$5gb)GASTRCeFfd`p;xI2pSwPzo0(bLf zut;j*qja&}x%Jj}lz>K0X&TNFkwmpJtKfJF*{hupDSR~Gvt*VhMLQHo6Rro>LbBva zAbxaz-p2v7GUCj~5J;C-M?iqE;7Y`*6rhj`7m7x)f+~fxK%}{Jev1-z6v=84QMHQG zoUU?bpl?S<%{$KA3dEkqvT|7(9aW!`VVEbvi82~+@Wi3OQh}sUR5|3NkrYl~Ez%xW zzZ5TA2bmqNIgU!CfVc4D+Ks<1e=R+x7jjHd95`Hp`zX&WEzgvr<@YgK;w$h&n0Xnk z(4Gw}QYF>E1*1y$!!)AiO&(JfP;5#Ole#h1*@x8n0*KsPn3(T_{hupA-?T9eX$%m7 zDF@ZE6jULuL&4JGU`41R3SH&XfevsxXix=cpk9?c1qW!!-BYvZ{jED5ILBT6hx@|G zV_%4!>$7IUpo9`g1=KhvrAZYeyb2PoCiVLm&n(FImH0~{m{KM%FfBNp+U?7PiDHjQ zU?IIRyg5YJr1_)tJPPRo?>*B40wjFG2N`I&K0M{0@gAspiO2DDeejHOroo+=>rp&H z&Vb+pr)&hL0H`X^2lEHu;4V2tLwJlx+ujKEZKozD+1AA26znEqalr(Fn?l}+ zp?9Z(gAxuGjGGR?-TU~tb4oc`=LB7+&Z!W4B%DhGNA4{3_ajc0T!)ESCxBVCV+7|I zdq`?dV3bo3C3&J^#M|GIC?J0JFp78?+HbuCUf7TWBF zTR{syoxEM5cn9k=ZE_6cJ1~3ZR(^7gXP&b5jNMJkg>?Fx<>RF3%Y+Amm`J`G!G{qC zR)$}v90Y&>j+EsI1r>setfF9mwj9Zsi=X7_kfuS)3JR{XW9=a=P4RTnxc+ZH=QqjE zN#mtJ#W7&(apRNG$CR*hgJgNBjSd8dQgIA7>_}PT$~fBX;C6%^!5auTQozyEapl`@ zq@R<9L5Y}~X!1{JH~2Y-7h0BUlDTdymQo^$Bhivb+W%Maxe5PzcmzRf zcmjlm>)@~|WlKO{{MY$6nR4Od<<`_e4A8#;=f6zT#yrK~c^Z!Y?b}RvIKM%@O&ZTB zyAiw&O?RE^-lVq~(srY3Fix@?X}h?-sG@->Ud|!tMVb;B^ziHSao&V&T`4Y3EJAt< zwianNA#jQG5E#iYrp`$dk)ph`ggGy{h_hA7N@Yg5UJt{0Dc48s%R~1Cj2q!;EM2Oc zpy3rOhLt0f98!DJLwdLT04-Grz{7+A!J+K^56ywliZnUoe^6gzOst~}u})aq+!q3( zFn=J;FtHx&xc6{xs84t-&l)L;Lcs#p9CX*=dP-^u@Zu&sCgkn7ZW9-vT&JZ=weytZ z5{4nfxxXk6s7##$YVTiu%R&+yEYk~>-_iu@0ow!y5~L*D6>M<8hUnqsp+7K7!$j~8 zX*jW1EW$J#b~7n@R(u`ORE37q-Xf*Y%$% zbNh00;w(ts1J5C}ji6T73f|C$Fs$T8&?eZtItvbVH&dnP>0m1XcO2HERW#K~+2wjm zkelL}E#cX_T}^4^^MzDPrc9vAo}Pq`p$CJdeqVKi^ulW>m4P~)Os5ypS{p~ zK*_)ZBKjaCIu?kdaq9w1fk;|bD)=01VTNKzxj5X!D2^2wLq=l!CD4l+Pz5|V6YOy+ zxE}^D(DFx^1+yO|-*vG7)SSWr$@KR_7CJQ*1|_MKY}AHL-~$3|AK&M2pHcRW#4&Y6SL_x|*!_hyvWDEAlw517P{@>gup zk+`%*$A(aiEn;(Djx@6&aZJzFENS_%jc9qdxPleP_N}U}szlDG@+BBO%0=pAX0*yG z2C3@bR%}kI-;8Kd8r>T0_`bv{LL3GKgmo7nZjOA(0!M-Q<$dOt$!8^%+K|bldqDEXG zmL)nu(uXZh!)q`bh#&xEVc){?Z2=r0w7eiSHK=lA)tC{xK4xDKnb{nvZ;sSuF%?ba z0FkiVaIMNN=M;#?5I!k!q9hn-J{3Iy6P_mgbzDa4JouE!W4<>K-^xR_ zZJoGU^|}K7B_LuADn8R9OK%uvNsrg->A}I{?aP*4k9SSDq99+2NKHjuxURS`zr3J4 zz2DD`bu|qrC=#|lNLvI0BBDMs%bqS3#e$uQjjz)(D!-E4oO}zvo8?zzG`Vs7Ib*r} zy8ODaeEd19h;+_hx+i1rvPI?lD}C*vI|VS+Y{&d;#mvDYRdSx}D1(BKE6Xk<8* z&5bZxC=}B9pG?aIDf5#~3HXBU>O_go3SAU6EL|1$0WD*$1x8cj#aaVed@U_J>bS^%--4F*a}O6!Va)X=ec zu^{*k@}Mw-#>{WRuem0>I{X^x>D5PiL&4Wx3x;I;2amk^>LVwCvHpk8p)R;R+g~gT zzoyBm|FS^vHPYg1!N9)J{(i&`=sF_5Vk(tUTp(s@o>F}Jk?~eCr_SpkTPn02Rr&tB zU%|Cp&?BhE#FhfF+QX=p=tGdp5Nq;skvJL5EzK)MVmJ1X>FFwli$a$`$3VY$&F1;7 z^I*w%i;GI+`uksd?SB3jS5+0`-#Dtj-v646s|r+tW=Xd~@k$ON@YrF-aF8)t6zENS zm<~RlcZ2YHLtY(o0ud==KoJoMNz0zeiMnzOzB``4}8pS(xU1@xff?jK1*g|WiO*jPW(6G%c_2W>^b zu|V&s>uo8I+=!{ej05%H1`;8H#;Rx#s+~Ef63F5X7|l-_AlNd;?wzCJg!G>DPWSks zmJhrMy>qYOrR@tP*=R?@vfhV5+)xaq8$xqYDkL|tmA8ffGZ#qib-@~-7&DGC(f|R+ z6wkI2JzwLRK$&DwBIJ1yy1*SqOO;LF9u)RE`#gqJz=z&QFYriGsRE* zzOxHO)`%gWKfBOrZTPUZJEw1(w^{XjlkS(#WMaQrw@vPsYfTO@xC2`zC>A8`xsuwFP!^nu5-Qv2G_BcDWL%GTV21$YMx!IWit(rc27kJ1td?pepkpxJWbr6i=<_^0#BvRBy^(|rfxxSD;q*D>I z>2~S8ZJD8TEDz%`O0v{Vs3k&>|E?aAbLC>4rzjV7{Gb(zkUawwVZ3(`lTW8XLcGQzwJN!w7P&KO za&8tRMOdpL$IoVNswELY88&Ab4ag0otbqTGUy8TM^f}X|;inYc$Z2U6Cy$@(g?kka`@nf#eT2mz44c zkGIQ^C6obk0h^Qza3MTN1^_}IDUWoU50^)}&4%ZIf|;pM~Hq~I>oJO*e`50Lg3tNENWmZp6rlU(1Kd$3du6snfGrg-vel* zOtgHMj>@MkV**F&7OrYp%^PnfqBO2$t`bHu6E{uWyq;W#+&cZaL-#~qhhcYW(Rr;E7@mg_N zqO$-IxoYY0Lt|swD%J~W0OMmzj`aETO~1gj-|yLwon@#6)kf`_Dm#Cg^I?+GQ>cJ~f4QbUpR+WSY|T)XCG;QxBuw)xGThCEY)3K%0>8(6_02>RUy# zuAWWRYdy<;v~Eq;Q@5fE{3BBG8>dgni)*mn>3DJNd3asdpUdmI{#;&X{rUS(^ZG%A zO5OoaFyAMhxPWFLZp%^OX}H_x+}{OG057EOly;47H@<|-VURcfRa_5gjqo2y!~Z|( zPSR5Md2pfY&&7qVpNxxiKMLlP|^o>lQDTG1Pvu*4rga)$FdQ%iN>N4?2P8Zs?@LM^qX1Pmo2x|T3HOMiRLNCHT9~>A52`zQT)!wqpRT^( zeYnsU71(zR>L*2D;>`C$7K~~1`Lgi{+2BfUPw3TPuhR0=Mr*3dON&&lJyHO}RyY{Q z$xH!sRfL_f5SV`MB7JXARish_wSt(umb9|a#`%Prm{(ojb~3BRrbcOB_8c@rj19dHJI=E`VrZ2qvCnk&(HrD`}xsn_VY_q+xhaDy6Q{n zl0P5*@z&wGnk98I4<&DTsOt_XFAlBvd=h~zjBV5-uJn=dNS!xL8qn8Z7vLkWu}+ND z0@Lm_47)-f>U+#E@<%;azlWFPu)$| z_vg5_C_}yAc}1u400Q-=Fnd063TxFtZ$24G3S``9v)^PmD`S61#&30;Tk$Usr~``H zCg3m%-Z{KKj!%t(r=@PJfv2VBtxOGiR|?*Qdj`xkv1PIlWkplh#_?UP$k}BZoNOTkrokGcjiw#9w`Tx z=S+J!9+9LkH=yVAQ<9n%%-7FJTD)lfB?~T@*F3xNyiZIDA=$q};Qw`Bz4Zj>YEbXdWV2R31P7T)x!ASIMMG_d zFf_Bm37~FrtHN_yWj5f`0r?$cq@Sn*b+&x0wwdx)&%@n+$$TCQl1&UFwU48p$AY~@ zZ0PY`BHS>ByNc93L3lm__kYQE+_eJDL%t{&>HV-UpJtUKjclamB83I!2yUkLVkbhy zDzIfsA>j4;HXsCzR2wN$4_D*UXVeo~^exz78CJ1pFjmwDvA|#VArrAyWHz<7gkU@& zX87dg@*4W($v?RKNq$e3TytV{^u#s1YodP)zu>G@QeyC4v`Y1YG|A^WoZIp94*t`P#yO$e8l7SoVI-X5;zJ%qVlz1M{~2DRfo z&7HYgY$EZJ;^DwoH*EMSW_gV1K>humE_H`4&h)E@!GXniumVf{>U%%o`Vr4%^6J|; zGM>vsIsTT$2v)lY@0~y|_`!oa#P{8@fff8Ow~U=eS>u-Ze45p6*%BAapSWeO$Tr-p zD(oZAy#PM(295!|9pYwu^7T>usJk5R;kX{hF3heU zZ}&*QY>MSe#Wwufc#YK{Jj$(TbCdcufFt|h>#F+k2wJ>f$zHv!@0Njn`>@@POE z2X>--`Ht)Du3i02cJrLM3!Cgqw{5f64sO}H>n3~cz)b@?cMtGdgj}b2cUDH1V(MG8 z)(&jBd0XGk^If~>yzkh`oamyf2X@{xc*72RZquAO=j$r-0&(7Me+{qh%AD*)t8Umm zuzlmePP-WoZYO9jT6)8dUF|yu`gYy0)1EuGskLcNQ}ev$W_$j;#*Kp@yA+Toy`GF9 z)<_c{N*bwmj*&ZOv#`4cHx2B#X#gilF1zrGmz%(3v+=v>9P(>I ze=JM zCYb4dPN0&BG05xV-XA#Jk6ff|aD6U#HXkw506d5gEUzL_4E`)dMpHTNVh-OTpV|QG4$&!=0wRmX0f;FDP8*%Q#yKue+-hLc!#W^lMFTMn6Y~tNGzbEb%-w|&~58i_F zg!n(=wD^U16z{zGzW7VL_hutdaR7Y#Do{BpUJ*YOKM=2p*Tp{q4Sy}(5I@43akhx} z@ot?Ti(`;YTg5*^D&2#3_Y4AA+kv7T;$a}{Mj)53vb!0Gl`yyNGO z#P`&@caGu)9xvYX^RK>}cMQ&%)7I=BTioM?JT}i+FwfI@^G?K$VX7c5QlKO+o^J{4 i@yB4j_$mH9>Kp4MKfZUY>B~I+r2MTPsAI)HF8IIZFD_{S literal 0 HcmV?d00001 diff --git a/src/resources/fonts/GamePlayed.svg b/src/resources/fonts/GamePlayed.svg new file mode 100644 index 0000000000000000000000000000000000000000..6008db28b97c4f971c56a0003e2d579ec17c3975 GIT binary patch literal 28036 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 literal 0 HcmV?d00001 diff --git a/src/resources/fonts/GamePlayed.ttf b/src/resources/fonts/GamePlayed.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f44116f8eb8e05ce9a8415e6124621456975f87d GIT binary patch literal 28420 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 P{-pe^AE;x+KQ8#cjlT`A literal 0 HcmV?d00001 diff --git a/src/resources/fonts/GamePlayed.woff b/src/resources/fonts/GamePlayed.woff new file mode 100644 index 0000000000000000000000000000000000000000..676be4a55363313ed3ee0682c33202c4cce029a6 GIT binary patch literal 12648 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 aVAIz@^2p3NI%-S!`uc#JYlcVw;Qs*JBLpJ= literal 0 HcmV?d00001 diff --git a/src/resources/image/icon/arrow-alt-circle-left-solid.svg b/src/resources/image/icon/arrow-alt-circle-left-solid.svg new file mode 100644 index 0000000..32c31ee --- /dev/null +++ b/src/resources/image/icon/arrow-alt-circle-left-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/resources/image/icon/arrow-alt-circle-right-solid.svg b/src/resources/image/icon/arrow-alt-circle-right-solid.svg new file mode 100644 index 0000000..523c283 --- /dev/null +++ b/src/resources/image/icon/arrow-alt-circle-right-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/resources/image/icon/backspace-light.svg b/src/resources/image/icon/backspace-light.svg new file mode 100644 index 0000000..467fb78 --- /dev/null +++ b/src/resources/image/icon/backspace-light.svg @@ -0,0 +1,6 @@ + diff --git a/src/resources/image/icon/bars-solid.svg b/src/resources/image/icon/bars-solid.svg new file mode 100644 index 0000000..8a8b715 --- /dev/null +++ b/src/resources/image/icon/bars-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/resources/image/icon/cog-solid.svg b/src/resources/image/icon/cog-solid.svg new file mode 100644 index 0000000..0bc8d22 --- /dev/null +++ b/src/resources/image/icon/cog-solid.svg @@ -0,0 +1 @@ + diff --git a/src/resources/image/icon/keyboard-light.svg b/src/resources/image/icon/keyboard-light.svg new file mode 100644 index 0000000..8dc7ee9 --- /dev/null +++ b/src/resources/image/icon/keyboard-light.svg @@ -0,0 +1,6 @@ + diff --git a/src/resources/image/icon/play-circle-solid.svg b/src/resources/image/icon/play-circle-solid.svg new file mode 100644 index 0000000..cc067c5 --- /dev/null +++ b/src/resources/image/icon/play-circle-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/resources/image/icon/sign-in-solid.svg b/src/resources/image/icon/sign-in-solid.svg new file mode 100644 index 0000000..a6b7b3d --- /dev/null +++ b/src/resources/image/icon/sign-in-solid.svg @@ -0,0 +1 @@ + diff --git a/src/resources/image/icon/sign-out-solid.svg b/src/resources/image/icon/sign-out-solid.svg new file mode 100644 index 0000000..efbfbbb --- /dev/null +++ b/src/resources/image/icon/sign-out-solid.svg @@ -0,0 +1 @@ + diff --git a/src/resources/image/icon/tablet-android-alt-light.svg b/src/resources/image/icon/tablet-android-alt-light.svg new file mode 100644 index 0000000..35ef4c5 --- /dev/null +++ b/src/resources/image/icon/tablet-android-alt-light.svg @@ -0,0 +1,7 @@ + diff --git a/src/resources/image/icon/times-circle-solid.svg b/src/resources/image/icon/times-circle-solid.svg new file mode 100644 index 0000000..9046b0f --- /dev/null +++ b/src/resources/image/icon/times-circle-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/resources/image/icon/window-close-solid.svg b/src/resources/image/icon/window-close-solid.svg new file mode 100644 index 0000000..eaa6802 --- /dev/null +++ b/src/resources/image/icon/window-close-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file