From 2aefd7fc4f38b12dbbde6e7451f11ce8767a3182 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 2 Jun 2020 16:46:44 +0200 Subject: [PATCH] made ui look nice --- .../Content/Localization/Localization.json | 12 +++-- TouchyTickets/Content/Textures/Ui.aseprite | Bin 1683 -> 1749 bytes TouchyTickets/Content/Textures/Ui.png | Bin 2646 -> 2782 bytes TouchyTickets/ParkMap.cs | 2 +- TouchyTickets/TouchyTickets.csproj | 2 +- TouchyTickets/Ui.cs | 44 +++++++++++++----- 6 files changed, 42 insertions(+), 18 deletions(-) diff --git a/TouchyTickets/Content/Localization/Localization.json b/TouchyTickets/Content/Localization/Localization.json index 49d40c0..700295f 100644 --- a/TouchyTickets/Content/Localization/Localization.json +++ b/TouchyTickets/Content/Localization/Localization.json @@ -2,21 +2,23 @@ "Back": "Back", "Place": "Place", "EarnStar": "Earn ", + "ReallyEarnStar": "Are you sure that you want to earn a ? This will remove all placed attractions and reset your !", + "Yes": "Yes", "RequiresTickets": "Requires {0}", "Carousel": "Carousel", "FoodCourt": "Food Court", "FerrisWheel": "Ferris Wheel", "WildMouse": "Wild Mouse", "MapSize1": "Big Park", - "MapSize1Description": "Increases your park's buildable area.", + "MapSize1Description": "Increases your park's buildable area. Existing attractions are not removed.", "MapSize2": "Bigger Park", - "MapSize2Description": "Increases your park's buildable area more.", + "MapSize2Description": "Increases your park's buildable area more. Existing attractions are not removed.", "MapSize3": "Biggest Park", - "MapSize3Description": "Increases your park's buildable area even more.", + "MapSize3Description": "Increases your park's buildable area even more. Existing attractions are not removed.", "MapSize4": "Biggester Park", - "MapSize4Description": "Increases your park's buildable area even more.", + "MapSize4Description": "Increases your park's buildable area even more. Existing attractions are not removed.", "MapSize5": "Biggestest Park", - "MapSize5Description": "Increases your park's buildable area to the maximum.", + "MapSize5Description": "Increases your park's buildable area to the maximum. Existing attractions are not removed.", "FoodCourtModifier": "Tasty Treats", "FoodCourtModifierDescription": "Doubles ticket sales for all attractions adjacent to food courts.", "FerrisWheelModifier": "Crowded Pods", diff --git a/TouchyTickets/Content/Textures/Ui.aseprite b/TouchyTickets/Content/Textures/Ui.aseprite index 6d0fd8070f1cbf5ac05dbd587badb20c9266179d..009b0ca8507344e1ebb5fe8f73419d65ef19e3dd 100644 GIT binary patch delta 1253 zcmVz0adYqhyj1h1ONa9AOHXW009910ssI20000006+jg0C=43 znN3JlK@`WOMVnSd5m+Q?XqKPvp${z+QKYg=${-0M3JTn`YvZO}3nQo?A_A#J7`2F~ zb?pk;h7q-J=ca9&HWTN;UyjE!b7$_yyCZbq&z+e!@6P$1b7t<<*VMGxZnb|MFhxjN zDoP_?-_M-NRb}vh`?xK5O|UPYsMUqsp`UgvDF#y$BPQhP!@l};y9teftXZDFJjQJ7 zKR;hIA=e`KwYo(gS}SmHD5kV8{WqlZ`;_3 z6YPK1=Ii1yaK(YwXx6>%Gp2vVfY^BcsV}AFpL2u#_xGK3@j7tDp@_Y18T z)&BE`I}8ai(73^lxf*-kd)+o>i-9Zu=;NyG0UiVJN_JcAlV5i)cNVUzqs^Pn0oOSX zR(aJpuopP5&vO8^N&YQN?<-WqublyTJpU!TtO;8TQ2*fn`>VPxje&p0Z%*uYa@xL2 z{0m(jg}e{qY?F147`XUR|KuaFxfp%dno zdN^2PU9Ic{N{}Rf=yO=|%l*%DXB(5BNk6oCa{tG| zPy3(xjZlpFr}`(q8l@Qd8>yK1`5DkCVcl5x;frmpBwu{TX$`q%O#F1;Ebk;P;odRx zlP`1~u5{-re(#w1QKRJZ_{fmArjGSl1^%s6|KJ}U=(mcqPu73Btpfj6tAFqxAKWa- zPgi2qYGW(cf1dod`X`n&%Ioi+r26;epPkUabV^F6*du%n;m zUc~(4{{6bvmX@qBcz0vSgeV)KpJm}DBUZDrVtD@1=ktG_&Gnfy%1*f1W>43QO;cn3 zYjRe~JBexleXR~|PaZLM&h$7%b9~mHtn4#M;`6b`iSxqCYpTHSa~`1XdH&Hx95(pd z(_%=($lJ1ywp>s8M10jlyRG8<{EP$t*?X6q{7EqYCvwm8FZTfPe0uSqE@GUY8LJDd z{4=y=45WWgNx46MbngZhNXtKBLHr@lg{Q5p>i(y3IalLH{xyEdEqx-!^T!Ta1%7$X zC)K~4@8W;^>Q$W;xwo;CHFu905;5|&?4ynEY0s*V{PP%4Th>3{2fY4$*dHw}8q@(~ zn-4BJ-*{X0B|l91n-wO5*u6n$}#*e9` delta 1187 zcmV;U1YG;o4U-K4laT>`0TZ!-hyj0!1ONa9AOHXW009910ssI20000006zdf0C=43 zm^)|{K@^6?!p2HbghUKRNsKXxxtHXUhlWc+P~#)`0D~Z+pkQNXV`FC#38)|6`TN|5^v+&FD+%r3~cVDx?13x=6JA3zhd;XbS?z(lYaczIs4wHwJ zTLl-C=d1a{nW_x-k8jo|x+l0-4mKj8X6Uy&=Hj25Ibf0;eYn4W*kF?IOP}((Wie*s z{`&5WNpj4ZUGq9>nAMnzpLFT`!r!({as1$heE6kj^N_|4?nZscynlV%@IJY1g*Tn8trkT)ghom(uFanZf<@^QK6={ppHj2d6x0 z>lXg!tgihYex%%P9Pi9k#ICLREZ*;uTY5p`hv&im`&<35wESuO%FKWESVr5m#C~I6 zZ!X_?*vF)|!Ea-S=P5tpisSQT*XHEOF848?bCR9suGLTDl4E7Cw-efWNA4Prd@kBJ zgzGWaw%*GMx!!F&oI~sL=Oxdh9b(<%Ja1!>N1NyQoGP-%d7b+l*K6}at-Dj-$Xkm_&J^EfsgpH78_tpa1Aw|KG*U37P%B=ac)~ zca4P1UWCf#^of7xwVEN7ok!6D?kxD9_4F7htNikc2fe+91a9=(`7Pr8va}TG$MUk3 z|K;T|lSJtV-I0cwf;i2mPlneWeLnBe!hX|^(i8q0r;jv@O><5E`*BXHH;HPGzE=P1 zvwO|Wql2-cIX?HFt#ulgFc)i@7*9RDs0!>p>mOd{bw__2&)}b22fGZ3_;_3P(U$j< zIT2fZ_ZF+b&i6C0AG>`vmfgh;n%bZ*_pX}de zj=sH?A=) zl77#&!;K)8mHWe9%Hz8R!S{|N`&zr)2w(Oz_wW;mB>Oo@dw_LJ+x8c Bg{1%h diff --git a/TouchyTickets/Content/Textures/Ui.png b/TouchyTickets/Content/Textures/Ui.png index d14ab4f614b01f227120794f25b8d577b7fd1782..e683757391dcc7bf40bfbfcb32d9892a4a777c12 100644 GIT binary patch delta 2482 zcmV;j2~GCa6y6n(F@KmzL_t(|obBCjXjS(e$MMg#X=0L_v`Ms0Yc)el!se7NKG+=f z!JtYy-RJ`g>kx$DBrC19WgWBNq|Jkjb=bPf7FsttDA=xf5VjUX2d-2qeW0^O2MIIN z)TB2vxzXI4d%ZDw_TYL>&fohl*W}K;Ul7hczu)it@xk|Zet-YYQ39}Fh5QnCuUcW; ziHjY$Fz9_9 zs(3W2W4-5ftoOXNUufFKHLEkWEH*!}!N_Nu&AH=?jBvP2=Z-JBBdrJ2UvVJ=d=TuQe$$ z9FdgXm!t!)HEH*+E?K`j-Wc}{ezUnB4wq@^BReEXSAQ-aQo1WJZAhXb0Bo#au=mf` zFMG%;aPoH3z1V5)R>0;bHW+(ftW!gMh1CKWi>5p`+)!U3$=L$12fidNePoA{R}V{) z;_*qx@$q=NWkE#%xLN>3>+fetbI%9_wE)bgz9hYOuvy!l>(_e+n?23{Q@xdvq;+eO z3Wv*-ynlMw6Zld(_|3ACHy>DNLXvajUn*XIKPW9+U+)W(H6&oR0AAP| z(VHEOiVR$*rUcW$Y)>+~nJoI!VDstkZt9zrfW+V*U}voav`^JN-#+5l z7Jq6qF}JaHs<+a&pTB+AWXQ||FvGJHSd!z(Zf^}_vTuLmoCmzy_Fa>qpniU)JYb=+ zDgbxC++=SBxP#oR9Lz4kTU`%oG!e4W&3$`WNs1?vMf@iKD3mn_xN*&D_3EOhz*}7p zTET7a_s{Illry=@&x{$Q^TU;uRwb~mX@6iZthF+9T;?$_2w^K(vatEOR3b9Mq>#{(#4Tj-p2#T@I3%Gcfi{N-OQ6_ zW(~}=S6_-aS_4DZ{Lfz(uFC7iBdICJex?}-Kl43a0h9u38c>oNzcaHAU^EfZl7A}0 z+WMur^CV{=`js2HX6U}l>3ZkDg~8CerlrQxB@Ovk0Ap7*Fg&96Cs*j=NUWd=Aa&yw zT>va-jxm7l%U{^C%%`>esqId4=1For;r+@v#{dA#AIBKLvS`hG-V1;^<`@H5Q-A-Q zUHIe>EdXG?l}XmS`E&a1JiZVN%zrpMQwOvtEo@0HCzw-36$)Hy!we3<5F>0F)NbM?otp%J104 z?&P@vQ{k@UjlDuvis9ZB-8QcmVDyRujCbzS?-~(Zav6pN}*D9)G0y50n5$5YE-$ z9KjEi2FDn{lA5YJJ`OMui|JC7)q6lG@Lvk7^b0yc^Y)qYvXr7f@v;Fhh~pL3UiE&xz6JQYC3CVIBu&6H2z z1OH#TTU(9p)>hW-1Alj^!1;K0;BP&By5PC{51X53RG1zP`MJ_rvC9V{Lo8B&oKpPA57$eJg>#?p&W&OXG)cpQIuIW+`J3nH51H zfiIG3^#d|Lv)*z^sfs@yX!>5!P3)^CpfE9*UMYF(DKQaO5hhzbM? zn)N{td!OIfw%Yg4uWTm$M~-M~PmfM?cIrfDr<&W^B&90?w@quCj5CpRSL3t6Yx-<( z=4-$9{WFnCZGT$Z5l9j-I{bxW4{^SV&SlIlKRD z2)NrVYJczR3;9j+O${d;Ta#I4baFD|>_E>49~fT_4r=GXKFl2p()#s=eJz0do)W2Pnt%B~7S^1b89d2kN_yvX#)I++{#^Vw zmed0^mAMwTj>&XSC(e(AzTUjbsH$A7Q(v67^8C_(g(_nZm;-FNE(0zk_)UkNdCUlJ z$nCKBrv{6FfFcN73TzIlneuJ+7vlZje=Dc;1wVTBp9DW}Cv~;780Oo6?(qRXZ@vCH wZwd_pcayG`mYjkglYt4nlaL8v7=ZcqKl!|Cl84ttKmY&$07*qoM6N<$f=j0TdH?_b delta 2436 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 - + all diff --git a/TouchyTickets/Ui.cs b/TouchyTickets/Ui.cs index c8a6651..9642418 100644 --- a/TouchyTickets/Ui.cs +++ b/TouchyTickets/Ui.cs @@ -34,6 +34,8 @@ namespace TouchyTickets { this.uiSystem.AutoScaleWithScreen = true; this.uiSystem.AutoScaleReferenceSize = new Point(720, 1280); this.uiSystem.Style.Font = new GenericSpriteFont(MlemGame.LoadContent("Fonts/Regular")); + this.uiSystem.Style.PanelTexture = this.uiSystem.Style.ScrollBarBackground = new NinePatch(Texture[2, 1], 4); + this.uiSystem.Style.ButtonTexture = this.uiSystem.Style.ScrollBarScrollerTexture = new NinePatch(Texture[3, 1], 4); this.uiSystem.Style.TextScale = 0.1F; this.uiSystem.TextFormatter.AddImage("ticket", Texture[2, 0]); this.uiSystem.TextFormatter.AddImage("star", Texture[3, 0]); @@ -50,7 +52,7 @@ namespace TouchyTickets { rainingTickets.Add(new RainingTicket()); }, OnDrawn = (e, time, batch, alpha) => { - batch.Draw(batch.GetBlankTexture(), e.DisplayArea, ColorExtensions.FromHex(0xff86cfcb) * alpha); + batch.Draw(batch.GetBlankTexture(), e.DisplayArea, ColorExtensions.FromHex(0xff86bccf) * alpha); foreach (var ticket in rainingTickets) ticket.Draw(batch, e.DisplayArea.Size, e.Scale, Color.White * alpha); } @@ -63,11 +65,14 @@ namespace TouchyTickets { PositionOffset = new Vector2(0, -8) }); BigInteger lastTickets = 0; + ActiveCoroutine storeWobble = null; var storeGroup = main.AddChild(new CustomDrawGroup(Anchor.AutoCenter, new Vector2(1, 0.5F), null, null, false) { OnUpdated = (e, time) => { if (lastTickets != GameImpl.Instance.Tickets) { lastTickets = GameImpl.Instance.Tickets; - CoroutineHandler.Start(WobbleElement((CustomDrawGroup) e)); + // only wobble if we're not already wobbling + if (storeWobble == null || storeWobble.IsFinished) + storeWobble = CoroutineHandler.Start(WobbleElement((CustomDrawGroup) e)); } } }); @@ -90,11 +95,12 @@ namespace TouchyTickets { var (scaleX, scaleY) = e.DisplayArea.Size / mapSize; var scale = Math.Min(scaleX, scaleY); var pos = e.DisplayArea.Location + (e.DisplayArea.Size - mapSize * scale) / 2; + batch.Draw(this.uiSystem.Style.PanelTexture, new RectangleF(pos - new Vector2(2) * e.Scale, mapSize * scale + new Vector2(4) * e.Scale), Color.White * alpha, e.Scale); map.Draw(time, batch, pos, scale, alpha, false, new RectangleF(Vector2.Zero, mapSize * scale)); }, OnPressed = e => { var backUi = new Group(Anchor.BottomLeft, new Vector2(1)); - backUi.AddChild(new Button(Anchor.AutoInlineIgnoreOverflow, new Vector2(1, 40), Localization.Get("Back")) { + backUi.AddChild(new Button(Anchor.AutoInlineIgnoreOverflow, new Vector2(1, 20), Localization.Get("Back")) { OnPressed = e2 => this.FadeUi(false, () => this.uiSystem.Remove(e2.Root.Name)) }); // we want this to render below the main ui while it fades away @@ -115,6 +121,7 @@ namespace TouchyTickets { BigInteger price = 0; var button = buyUi.AddChild(new Button(Anchor.AutoLeft, new Vector2(1, 40)) { ChildPadding = new Vector2(4), + PositionOffset = new Vector2(0, 1), OnPressed = e => { var map = GameImpl.Instance.Map; map.PlacingAttraction = attraction.Value.Create(); @@ -123,10 +130,10 @@ namespace TouchyTickets { map.PlacingPosition = new Point(MathHelper.Clamp(posX, 0, map.Width - attraction.Value.Width), MathHelper.Clamp(posY, 0, map.Height - attraction.Value.Height)); var yesNoUi = new Group(Anchor.BottomLeft, new Vector2(1)); - yesNoUi.AddChild(new Button(Anchor.AutoInlineIgnoreOverflow, new Vector2(0.5F, 40), Localization.Get("Back")) { + yesNoUi.AddChild(new Button(Anchor.AutoInlineIgnoreOverflow, new Vector2(0.5F, 20), Localization.Get("Back")) { OnPressed = e2 => this.FadeUi(false, () => this.uiSystem.Remove(e2.Root.Name)) }); - yesNoUi.AddChild(new Button(Anchor.AutoInlineIgnoreOverflow, new Vector2(0.5F, 40), Localization.Get("Place")) { + yesNoUi.AddChild(new Button(Anchor.AutoInlineIgnoreOverflow, new Vector2(0.5F, 20), Localization.Get("Place")) { OnPressed = e2 => { GameImpl.Instance.Tickets -= price; map.Place(map.PlacingPosition, map.PlacingAttraction); @@ -170,11 +177,25 @@ namespace TouchyTickets { PositionOffset = new Vector2(0, 4), OnUpdated = (e, time) => ((Button) e).IsDisabled = GameImpl.Instance.Tickets < GameImpl.Instance.GetStarPrice(), OnPressed = e => { - var game = GameImpl.Instance; - game.TimesRestarted++; - game.Stars++; - game.Map = new ParkMap(game.Map.Width, game.Map.Height); - game.Tickets = 0; + var infoBox = new Group(Anchor.TopLeft, Vector2.One, false) { + OnDrawn = (e2, time, batch, alpha) => batch.Draw(batch.GetBlankTexture(), e2.DisplayArea, Color.Black * 0.35F) + }; + var panel = infoBox.AddChild(new Panel(Anchor.Center, new Vector2(0.8F), Vector2.Zero, true)); + panel.AddChild(new Paragraph(Anchor.AutoLeft, 1, Localization.Get("ReallyEarnStar"))); + panel.AddChild(new Button(Anchor.AutoLeft, new Vector2(0.5F, 20), Localization.Get("Back")) { + OnPressed = e2 => this.uiSystem.Remove(e2.Root.Name) + }); + panel.AddChild(new Button(Anchor.AutoInlineIgnoreOverflow, new Vector2(0.5F, 20), Localization.Get("Yes")) { + OnPressed = e2 => { + this.uiSystem.Remove(e2.Root.Name); + var game = GameImpl.Instance; + game.TimesRestarted++; + game.Stars++; + game.Map = new ParkMap(game.Map.Width, game.Map.Height); + game.Tickets = 0; + } + }); + this.uiSystem.Add("ReallyEarnStarBox", infoBox); } }); upgradeHeader.AddChild(new Paragraph(Anchor.AutoCenter, 1, p => string.Format(Localization.Get("RequiresTickets"), PrettyPrintNumber(GameImpl.Instance.GetStarPrice())), true) { @@ -186,6 +207,7 @@ namespace TouchyTickets { foreach (var upgrade in Upgrade.Upgrades.Values) { var button = upgradeList.AddChild(new Button(Anchor.AutoLeft, new Vector2(1)) { SetHeightBasedOnChildren = true, + PositionOffset = new Vector2(0, 1), ChildPadding = new Vector2(4), OnPressed = e => { GameImpl.Instance.Stars--; @@ -213,7 +235,7 @@ namespace TouchyTickets { public void Update(GameTime time) { // swiping between tabs - if (!this.currentUi.IsHidden) { + if (!this.currentUi.IsHidden && this.uiSystem.Controls.HandleTouch) { if (MlemGame.Input.GetGesture(GestureType.HorizontalDrag, out var gesture)) { this.swipeProgress -= gesture.Delta.X / this.currentUi.DisplayArea.Width; } else if (!this.finishingSwipe && this.swipeProgress != 0 && !MlemGame.Input.TouchState.Any()) {