From de0568142591d45139af6c500687bfb5ca3f4350 Mon Sep 17 00:00:00 2001 From: Atridad Lahiji Date: Mon, 8 Dec 2025 11:55:58 -0700 Subject: [PATCH] iOS 1.1.0 - Drag and Drop --- ios/MagicCounter.xcodeproj/project.pbxproj | 8 ++--- .../UserInterfaceState.xcuserstate | Bin 31715 -> 34756 bytes ios/MagicCounter/GameView.swift | 34 ++++++++++++++++++ ios/MagicCounter/Logo.icon/icon.json | 2 +- 4 files changed, 39 insertions(+), 5 deletions(-) diff --git a/ios/MagicCounter.xcodeproj/project.pbxproj b/ios/MagicCounter.xcodeproj/project.pbxproj index 4bcd6a5..4baf49a 100644 --- a/ios/MagicCounter.xcodeproj/project.pbxproj +++ b/ios/MagicCounter.xcodeproj/project.pbxproj @@ -411,7 +411,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = 4BC9Y2LL4B; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -426,7 +426,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.0; + MARKETING_VERSION = 1.1.0; PRODUCT_BUNDLE_IDENTIFIER = com.atridad.MagicCounter; PRODUCT_NAME = "$(TARGET_NAME)"; STRING_CATALOG_GENERATE_SYMBOLS = YES; @@ -446,7 +446,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = 4BC9Y2LL4B; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -461,7 +461,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.0; + MARKETING_VERSION = 1.1.0; PRODUCT_BUNDLE_IDENTIFIER = com.atridad.MagicCounter; PRODUCT_NAME = "$(TARGET_NAME)"; STRING_CATALOG_GENERATE_SYMBOLS = YES; diff --git a/ios/MagicCounter.xcodeproj/project.xcworkspace/xcuserdata/atridad.xcuserdatad/UserInterfaceState.xcuserstate b/ios/MagicCounter.xcodeproj/project.xcworkspace/xcuserdata/atridad.xcuserdatad/UserInterfaceState.xcuserstate index a5f11ebb94374fa3f5a37592e4087f6ac0155924..e0b4c04aac2eede4f8f4d9b7324d5e464d4d62dc 100644 GIT binary patch delta 17745 zcmbVz2Ut``7xtaG9i&(Q=^d8dVL`y9mu02H3P@*{r7B>Jx_9hd;~GoUC}8hB#u7{H z#>5s|j4_(nVz048|JhwJ@a22H|9^gY*yWxxGxyB; zB5H_QqK>F18i+<>ATg2{MT{oYgg}fVrVvw!&xtRHxx_-^D`Fk7p4dQaBsLM7i7mud zVjHoaI6xdEz9SA1Cy0~8_rxjU9C3lTNc=)vCw?RD68DHdi5J96;uY~1@frZY0z+T| zdV*e{H?Ra&zzw*ofe3g2Pv8#%KrjdaQ6L)h1riVgQa~z@f_@+q_?><0(H zL2v;ofV6pV&_p#;W2DNKVh*bipGN>~dA!NG7i90fn%`45z{Aa0Z+U=fU}K z5nK#g;WD@eu7#W6F1Q=+fk)s`H9Q87!&C4KJPR+u%kVdN1KuP72}zQqNSb6wmgGpD zG$0MhZln=uOj?unqyyGMUUH^GP|`pDZ8? z$ue>n^6kz>dSVyOO90aZv9Q3I%AHB~~DQe{**RY57K z2C9)7NDZTgQzNKx)OczFHIbT1&7|g0^Qi^Ym()V4omxhHOYNifQwOMn)OXY&>M(VL zI!Ya*j#HNWK@4QQS=pq*%E+J$zd-Dr1OM0?Pl zwAzdIrv2$Kx-TuEW9Sq*m6p=EbRL~g%jqJzl&+>#G@{4QW9f19czOaok)A|Prl-(T z>6!FgdLBKWUP`ypZS*>NJ-vb6NN=UTruWhN=>zm}`UHK0zC}NvAJQ-BSM*;DWEjSP z>B015dNF2bW(%{G*~V;VzG3zx=I30J`>xmvD~YvzV>pK)q# zEH{yx%FX07+&pd}w}flwR&r~(joeo5Yi>8UkNb{0%AMqX3jyC$!GD| zd=8(>=kfWxobS&U@CshZSMw^qhOg!8_5k`bDVL}Wdh7jJ%h$f<$Xdwm*&Vq~JD!45ph7!Yw;lxnEUGNY* z1$WH_UeyB;V+ix5O9jzcVmvW{m`F_0WEwb=6N$;1p$6Vo(})>_c`GqY@MtAw3SQb~ zCd6z)L(I`!GH~i?x}|(zovOLT-~T*-BtASqXX4{O z=lu@)zuJt9oh41zbr;T(X&Jgdxb7~#k-+ndBl9p zqi$aG0^&<-vc1u)LhUpb5sOPqd-ltg4Q?qbud9kzRkWxY8_Jr7w__EaTL)50h~y0qiYOu02qBoaP{C0M(`+>L2oL$cla|!fIC!9M zeq&RuszDjoI8deK&s8Jg%{7lq=V%6)I%D4KKJm4k*rnxb2k|wrllVpm7b1i{LgX@H zH?fDH~-^6?3 z10Xaa6GwH1KnOWP?m5B)KtKWt(16KlsT$TIZ>egk&lx_jO2`&6O$qF1fCD@*=-)5f zx4ESWBPnDR)(ok47*f^LjM>!j54r)P5>t~;OlRvFwqvm|FT# zSWut`_LWN}fh_hFUIJ@D)n*>^Oal84!dKE=}(a-uy?1# z8%!OTHgCT+AK(8H_x=IexSwrqn_Gg@q6%lIA;efhn`JaO0@vblb_=ncIF4QUB5|3x zhD+90#B1U`E>kh1xJ%7(XrbYk*ZZOR2%AbY7$r*Dx9@`^t>q^@B*$kjIel=3?6 z*&kFA-fKVsCQkYM=r& zpcd4Dde9&Y7sd)-3JZlr!Uo}ta7Fl8_(i+6^u()5e3hbXa9vA$Rrz3LOjA{v=6r8| z%{WU3jf>>~lVVxfFjc*3L{+8Emo%GuyJ|>F$A}K&J_CZ*@kfGDU^Gw*BZSX{k;15D z0D&=JEEp$@7RCv)gwF+Ed0LgCB~Mi~RMXwHcWgmg+3?1}Ei$~Y_0Li%t96==F{grA z+A*hr>0kz!DX0ZOK*E@1ge#s`BH@Bp*0F+0ljl0d6f6Xb3GY_0NEqJ=z7i&AHo9Aj zK^w?!1MOg$Fj1H;)OC!y609Z6+rcWZ8mti}36q5>?O+|@0yYR!1tVb^jzVu2U-c(5 zoh1|W3r9bnhL`tQd5_X;y`|Cxg5pNTk2CW&=!V+uNYe+RxNyjOuk;4nA>j)G(0 zI5+`L3bO@`Fh}@8m@CW^<_il}ZE;%yT*0s4I^m6%TVGS+0{9*L0d8UExee}syWk%9 z6Wj+6fI^dRRb#kP_)1tKtQQswV>RDfiKS0~tQ|ZB&%kqGiO?=A7i!LdSKu$)`!#q2 z-WH@(RyDM!6e?|0H&j*)6P60CLR+VxWc1GY0TP-zYkRs40-WyfU$T$mKoWECR#=7^ zXe;WRB|7w+PQT*cdT2zLKx1eEO^NrKR%;7xm9SbMN=!2}C@@LmQ^@nWTf<(^Ok?kC zj&E(QU89f*{#rB*!amypeGCM+DZ(D%2jR3P&Q9tN(}AoNW(a$Qn#(X7=D=K-2lMd+<*+|20Iy*Y8~}@P zr&9cPIjqopYj;?^R5&J_5WdBO{D=uVEFACR6tD^^I-Ei{B<$;O2wlp7b=V_dJ#2uD z!hYd^aPU7oLhk?_ZYx4f*mst|uS zRn?WXsD@PGMg6F7q!Z_jdfukMsk!~KbFHFuaCh7XTsTpc^jMsKNn64-{UL|=in@T3WxZC zLO(;e0CNBoct$mvY-bOhYkUQlXqGrzV6R(>ePfBUt!-qOGGk<-{Dijdp-OE z-h#K`9e5YsgMY&N@Bw@XAHm1)iN@HYca-pWJ$weA!xun-L*g&|`v$&+@8I9?JxQC^5~|8S~!Xq_a9vuO>@O2k6xPz810i$2T&C zOveu;WGX2o(?}WF4*?nh1_2fU4gr2SnL%cfS!6bugMa}7&Il3+IwG9Ud^MZ=yfiO; z12r2R#F{yNb{dgip!%bOkVRxMb`Y|=@U)dILBLS(?a-8ywRj05E67T+id2wFvYJ$p zH3)P=zz6|j1WXVxMW8zZJrL-*imW5+$p*5K97ql#o5*GadLdwefF%M}2v{RvgMcFf zPTDfWqFFOyz+5#sniN_|H3DV`n3tHE`})OHRNxgWuCWfsc!l<}xvE9y>Eu{)T+yfc zDZ8qr9ZSX&lW`uw7rNX>PSlPz34z}KYqSzm+mzUpxVW;GGEH`|t1~%+oT*=YJLWx` zoTEiVgMe)-`2_-YnuW!dYH|U&u$BB00eb`-GJW+%jVHfq(^^s7tb0;V!wlXY`5SqIyh;8}{z2YCAP9kA1VRu9MIa0TF#_QTL?F-yfyg!F z9m0ihC0xn-Brc!u_hSNs9EH=ZG0sq+F9Q8^2@9leO;5-HGV(oMCddy6L~DzBT)tBf z$d=*qM)!l8>VIlJl1uSaH@xUj29zNJ5(Hw}C?g7w8;d|9PWrZDTTOL{XARYpGS@ci zMPVP0Lm<8lrck|w(+J>)?7})#LzOOhS2Y(`HdYL-$IhQt)u3#t?rwCa<3@Ir6J9$g zd&+^r@sor=G6E^>lr!Z*xgwB?fD{24zGZibqoyROQ0*+KT&i0*&QjiZ7Cw|O4jkXX zgH@H~!&|DF(@jltUwC-k*dJ56qTzMwNzMibbehheDSs*;4=>EQDe-NTKYog#g75&r z{~jRv-Rb@0<`{ppv~kb+t!>xv0H1boTsrI)Q+>2E52r9A83<%{p1H<4%%+NprDT{} zDvpY$5~xHfiAttYs8mWyr6G`w0M2B&2;?D4X$8mgb3TPlmnrg8{Z zDo@MpfDUfU5U5A^Aqdmas3SL*s>I|{RR|P!kXwz(rBqan_7{N?1WNUvLXBytsdvX5 z22m~AIW$o?os}a{(MAoXh9FRhKn+Ixabl8)`ixR*=^06lqDCWtZ=pay*-i-*qMQ+^ zMnHv0!i`IkMsd_6jOS#^SJNbRGDtg1O~aSd@#R-yC)c!&d(NUX+IxOZ;rv;Pou-YN z0}>Ia!zGPK^M}~gW)ZbS5A0VuU%c;$T_gZR&CML=}y$Jzq zeG3AE5x}+&MPL{L!x0#Pz-I`ITuW{F2<8s*0ku;bDinUsL10t|oN62@2u#&S%QQ`T z!dcD8hz)5cw2+=eU~~thKm5;l`H8xuwfX{e5di@K)J9#Vt{^Z5f$`YvkMUwl{Yu@? zHoLB!{aD@XZ)#^hPB;52eXQK?QV+Cv-=qGd?jtY(fr$uAYNsAjkFgD>CW%kLwdLOs4zWj(W9q_*}rp2^2|Elb-vSlaoCr9(QFa;9ln znvTHs4whzNmgvvv+1g(Ob|CPz{u3t`LsQ!hKo`)9v}}DzW7@w#U{@Qxn8sA?M&JNu z>v3YTdpo^S3;8m7IgP>HgTP({zHO&h(W|wP??Yh!C&<}N7{<-mxBE!6u1;^mm)r5B zQu0q~p?A`|^~CSe5r0q%++Hp5-{Bi>kXYK%2kFClXbk zKcf0GeU<)&aHW6MqI$Fg)e{JuL*TqNX=|UHaD|1}VEU#O+TRg4_7PeMeOrs|9iY(u zB5+(7tNXyn7IxtJh<>WY^)dYf0i2({Z=;{l&k;CG9+QbP#DF4SS_dwi!V8RIUx2QP#HtUSO+R&qyzN~hKw=Qf_fI;ZCR{~En~r0 z=|E*Hb)a78(n1R=p^Aw^{&bUYeCgMRO+f6oM1mzIX6FH%7`(hOgI9U zKVr)CiTqz#g^6PlvH46qlYqd_2wZJrk{Dcr{DQ!BJj0KfTg}KAoF8yjVQ_YcL*SZr zmRVXHe*ITgF@61!D<+>Q{4Y!}Ma%##6TcyF<0BJg82a*mXNiLiKRL;^_nW;{^I1Hv zrKk$GQ(%f_#CM`d#nkBu!0Rb4MSkyWns&vkWSW>!m;k1kX<-I4Lztn=FlIP2g87UY ziNGxcZX<99fx8IYL*P#Y@WS%|frkh@TEpPnpe-|*F&_z-pe5jO2LVq%5%6ADiO85a zTJ-Uf@T3F%`TrCAB}|(Z{H07Q0?!b5-o~^u%Mf^h@GgzM0%2A&>oJDR8fGnn6WU7z zULo*TJF|h=sKxL#0&hC9#3+v0f${koAGb&${OT2s=Fnd+Q&AnQP1qyy?dL%3NoDLlEye&letZ2L?vD{MMzjbQIi zrn7deJ?p?cLl7&h5VX`8tldu4Zh07qn%7F^9^C$s4AzwuVar)J)*V3`1Z~?`4=vDk z!ZK{QtJc6YHh>N6YG4S9UyZc0p|G44Bj_X?M$o05jbQt*kqEjW=!u|j7p7SKeg@uW z?Yhsw>NheVeg@U=_s%KoZk58OX-!IHr3hlHMA$#re%Py^hh|@4pm#Q&vwoMZV-ERj zfwqI3?T?@rg7`g5B3q>G;G^xJF8f!9Dz^Gxcc{^J@cX!&u=W4yGl?C$FtDeG6Wv8*z*%|Ci zb{6|NI~&0O1cML^K`;!#a0L4x7=>V81Y;14LoflsBm`3s!~n<;Oh+&i!E6L`5zI#r zPqGlf0SJ~LScYH)f>j7A5ya-#B3O@LBZ7mphR$KXVCS;))a-nA0sAGpkX^(sX1`*W zuuIuiwhjB?GIlw;f?dh3Vpp?k*tP6Bc0Id+-N>H5FCo& zFa(DqI0C`X5FCl%CFOun=p#B%b4Kbbjth(r3rmcN_lb)M3ik<)3yAd*i{t%$62n7c z!o^`>;)H~RP8%BRxBAY(+RmB)nQN!51ok_t&gNMLYCSa@i>PhcD#Jvb&Y#wRv0 zCcq~?E>;{6Dh><@4Giu)@G*U7v2NgbT?am;*F|VRx?h-oU`Rr6u)mLgh<4mSY_&Kf zL~C$jd~i%cLYRMec;|7?>ib6O#`VeUV(>-1E?Q@BLSS$}U_w}ePeNQ!7)ByA$R{=- zG0-PY?C&2I94C$q_wQoxRefg(HY&R_3cu;)v6_G^e@%$gxwGz;UKg)3=6Js@#{8+* zCF+a`j|&eD4~q}*NeBwV#>59D`h*Aghxr7?2ge5n$N9%51O#@T6EEmbZ_*!G@b5sS9Ct;b^Y)}{4_AtrPD+>O0Ubn{W?#c*grPjN9-S(=#!8T8xjx@9)_JDrqd)iV}0iwoiRr!Iv>q>RN%*pI> zzW}|iT-R@bw9A;GdR?VXce3mK`sj5Eo$ibDF8w5WUA0d4D!Yp=L9eUP>Abq?QuVqz zo$hVdG1K+B20Vu@1m@`F19g2)b#WH1zh2jb`vhvf$aYlg>j18Z8_;F#;!3%)u7XOg zs;i)yQ*{;8arIpV1Gzz61uYzYg4Dj4{kSA?!_?gHu9A@)E*v{I5jfOUFpeAFRWOO0 z+*L4*o8DD0i~GE*U=H_%UeK{`&&}r+bZxSTTijK!lxyuOSjH{yDp?kZTvt?w$> z#Nmyk&a+c*SuWa!h|>EyJ_F1wy5f>oV90poF=Y)hhVF2 zi$+cOUjz+LxZbIOd~6Yv{Y6NQB_p=;5YTE46Qn& zuB^hfs=BeRvZ~3aqesL*Ed40_G>p#D5>wIt>kakzdGXz}xP75AI~lFTO$Vy4Ubxoj z%*yyr!hnxL*Haa^X#3bQSTCG=u4E5}v-J~FVSEf>zM2>F;d}(&hmYi=_-MW_FF|l4 zf}0TBjNldow<3t^tL+HxK=A9;gbN=>xbks)BA>)3^C^UjV1)3yVf+NK6Txo~+=bw7 z1oz;_MNxsOIiXIaRNj(!t&7V5@aGHpQY}wK`~bd~$0g#o2<}60 zKY|CA@nw8DU%^)*co4zw5Ilt7Va*Ta^ON}okloHV@&oxn2p&Q3dj!vXdUMUU@WXJm z&kyE@@VEp#ir_H>kGJ!~`4K#>KTjZd5)Y{5+f9R1cAD=iT4MOI{KWs(XA(b|$Hm|& z1b;yAN5R**?_=E?2%>^;aD{}!S$-z=>skEgTT!JYr9Q29Weq=Pz^7Mw*rUtZc@6&s zF(TN!E@MP1kWS*(+YkG7|XZvZTJupu2nAx zxDdUF;3a$(X_j^hPWa_|3_k8TMAb4pOB1c?q482pRO=jL-A5mAyEEMh)7@y=oyfue z!J-l$(;ZGY;LjHP8GwHxh!7&!!HlgY-X#`Brc%oj`>J`cWK&3ugygzv^j!uK%;nD3bL%msWT z{0cr4ehoj~-oTHvxA5U_Up9(W;3tmb>>s*Q*^qPM{P02Rczo14nM=h-t^47_)>&K* zK4PuHhpg-IG3!D2p!HyU)Ot8RY(0Z(<+gLjxU1YF?j3K!yYhj24ED$bUY*3J@KSt8 zIvu-IDfXdCd?>maABe8w8~BC%M*aYQ+kiF@85A4T8nhS;F&Jhr!eFGqc!P-slMSXC zOgETmu)<)M!8wD625$}C8T@VV!H_fTX=r2UVd!fZW|(DIVpwiiX{a<*8P*!M7=CW3 zG5n%iYPaleBfE|5w$7-#+Q`bt-zdx|-YDHD(G)#;DGy!Dyh- z7e=RyUKj@$=NOMLUTnPE_?Yn-<8#J88DBKMY<$D`cjH^ecZ}~D-!~ymEKK}Oq$YBc zLX!a|r6%Pjl_u)$PkMCgVcEl`hg}cH9?m^nd-(S7?-AH@cF!d}+j=hRsb1N0b-ptKRWaeq+ZRTqx zGb=Z1Fq>dD&#cvKo!QrB-?Ivnq4!yZg$t~nb`|-U~XV;WA1G3 zZ60DSGtV-wF&|?-)qI`#X7jV=7tJrJ&HpfeX#UvzsrhsBm*yWVfCXtmTd)?qg@Z+~ zh0LPbVz9+9ixC#1EYudrVv)siiCT5Yx3X?4Krpw%I(Q&v~4Zd%>9dTp&X zwl=lyVcpBx+`6~5m9>qvowb9tlXaMNxOE@vDC@q~G1hU`3D!y0Db`YJnRSKrEbFb- z-&+4}{m#bJ#@;5@rpl(t<};g7HfkGWGuCFB%?z7aHnVN!*vz$AV)M1lL7VSwF5BF& z`Q7H0%^jP2HqUHc*u1iNZS&UVZ(D1;YgnkZZLvkR<7_9`PPUzDJKeU`c8%>u+s(FH zZMWMVv^{Qn()N_?kG2aa|dS!e}@2vK!;$5P=|Dfa)&_~z@Wu*czBhy4x*9S%9X zbok)NIC72#j@=xM9jzVR9K9WV9sL~x9U~p19g`dtjoF=QC<~YrDn(y?x(*vj1&V+L}XFF$i z=Pc)Z=P}Mxoo6`Da-QwH#Ce_b2Io!ATb#E!?{MDfeAxM@^Ks{s&ZnGzbUx#J&iR@1 z2NwgE-Y(uQ(JmP-SuQ0m3YTh^8kahkW|zS(LtTcueC9ICWtGc5mt!s`T~4|D=O(Y4Z5J;HT{>zA%OU3auuM&u7A2daDC+Z zm+J>N;6}R9Zme4`H*>e%ZdPvYZXRx4Za!`iZjo-$ZW1?{TY+1VTd`ZITfN(0H{>?f zZM@q=w<~Tp-R`Z!x4NHj z|Iz)H`y=J$8Y>zvnkbqqnkAYonj@MknlD--+A7*EIw-mzx-0rq^xT8+pgp>KxOoJ5gnEcQ z`go|LJo@mz^gvUsa(H?U>c6uE4xbAVo<9Cl+9(O$MdEEDS=<(R& zsmF7VmmYt4yzw;iwD7d@wDq+2bo6xbbo2D^^!D`g4D<}~4D$^4%<&xLIofl%=PA!$ zJzseB@N)Bt@*3zh#%qCBo7dM~-+1lz+UvE?>wwpHYOljyN4-vXo$~t8>#El^uj^hn zy!&`3d#8G*dH3^f_1@sU$$N|UHXmajYad%5dml%ikv@}srut0xndx)S=atWEpSM1L z`)2wU`Ew*zcI%Nk8=|zrXxN{^kCo{kQn<^FQc+$p5JS3IFf?FZd}0IvX_fTV!z07U=_m>JL(ur1(Vz{!9g0?q`S4|ovp zGLQ^32s90}473Tf4|EFb6Id8n88|4gDX=+kaNwB0@qv>9r>X;I1kMU<3tStxA#iix zw!j^M`vMOIo(sGl_*>wOz~2L(1i>IGhz&9bG72&c>KSAnWEtccv6ZaPviHpUbiN6xB6>n0Dw~BX&cZ>Im_lpmT ze-Qs7zAkb z^CK2UERI+b(HgNVLcKC#O~ks0jS-t8wnm(ec+{t7pO8NN`>6Z0_c_?-w?6M9*+_#( zqezp;-jR-xE|Kn$o{>J0evtu@L6MTkgvjJbX=FxZc4S_pJo2;1`H{;b*F|oO+!DDx za!=&G$b*rGBacQtj&h2Mi%N^?A5|CC7&R8a*O=#F#H*7RRiJ*&1^s=6KA7 zn2Rx&Vy?v8j=3N6DCTL*tC-g@?_%D^8pT@0`o#vuhQx|v`@}}a#;9ZCW0PW2V`Z`B zu~o6kSXFFoY(wmz*yh;5vBP3V#Ey(z5W6$>YV7+sr?}*}y11!vYvPW^osK&fcOmXl z+;4IB;_k;ijC&mSH12skh-c#Y_-^st<9o$h#9PLP#`lj`#Mj0*#1D!e5Z{qjFe;a>0!7?EtAub^!p&~(%(3mhXVP?YYge3{f z5>_UxN!XaMIbmDEj)cPrXA^EG+)H?n@HpXF!pnr$3GWgsm_ld?W#Q_9v9^^TNpQud_mOF5WwIOR&pFDbvK{FZVvvvb)acZ>)Wp=3RB38M>eSTv zsY_DZQkSQ$O5K>cC3So1&eUD0-=&^Ty_tF|^-=0Osfo0Q)L!Z$b(eZd{iFeEX|Oa@ znjlSX%T6C z(_+&S(vs3D(A({`opNjsi)I_+HAg|y3Q*VAsM-AcQg z_Gj928IbjoS;!n@J~D|cPL?6dmC0p=vQk;OtV*Vo4UvtN&6h2deI;v^Et9R3t&y#l zZIW%3?U0?6{UAFnJ1aXcyC}ONyDGaT`%QLJ_D4V1&#_-ZKV`qE{Wh!n{nYPyde3zK z^zih^^uFma>8a`2>AC6o>HX6S(+8y2q&KEFr4LRYkv=M2NFS5FJpEw$kLefEFQ;Ek z|26$q`rY*V>5tN%WLRaSWz=U3$rzh4H)BCYTgJwWgBgc2&SqT9xRUWp#*K{MGj3}r@m#plpky+!jCS^^{nx6Gl)~c+vSsSu8XKl;wm2I2t zneCSym>rTGksXyS$&SrV$#)h zcaC+AQ;utnD90b8h5@fE)tJ9GEt9?U(Ido=fl+%vi7b1&vz&b^g;C-+|N zgS?+$e)xyC4XN2)%;)c zZ{+`xe<%OX{D=8Z@}K9w%72spx15lZaz@U}yU9)DJ>+Kc-g0ZXo!n9GB6pX2%6-&w ze|eBRR30vml=qd7lTVaSkx!S;l56C1%CU(~<2e`)`U{@eQ> z?0=~Lk^aXEtP4a1o(0|oeg&vtM!~EC_3VN#3T_uXFL+t-SHastSz$q8QDJdmS>e{g z{e=e$4;3CQvMh2d5*2wC`4p*(rWMU7npLDJ`lIM+(et90MXv`)2gnB$3@92`|9|Te838yHc}Kr&5<@d`UmOn0kR*_JVRgqJXSJA&> zZN<)tT@`yO_EmPTw5xQebgFc%99lW9azf>#%Bhv=Un=ia-miRE`J^hYDx)f^DyJ&H zYIW6)s-0E4s`e^O6gCQ5g`L7d;iK?X_$dMu(Tctbi6T~!uE7(>j`YWT9(aOHc7-c_Y zx-vtVr7TgFD$A4=%7My3$|hxt5-GiN|RtG}vVTD`h@ zUG;|QP1Sp=4^MPa1RR5|XRAN<`szEhK)uI}z8lf7gnyi|wR(+{z zSFKQORP9jhRvlBFRQ;ejqdKp;pt`BLuXsmYR})whQX{VEQxjj4RFhgGtI4Rz zsu^9gx8_c5&sv*W*IH3+Ky5^ARBd8ydTmy1VQpotvbLpmV(paL>9wcrD-m*ThURGaSzp%cwepUUN`mOc5>i5>~ zum7(8aQ)f(%k@|5f33e!f4BaA{iFJ)_0Jn@8>9_G8-#{24Ko|&HY{jZ)Uc#sMZ@ZW z4eJ^bZaqb32upMiPrBqLa6`dx9Gn+K3gRJ2fn#P1ONa4 delta 15659 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 diff --git a/ios/MagicCounter/GameView.swift b/ios/MagicCounter/GameView.swift index f64441f..5e68eeb 100644 --- a/ios/MagicCounter/GameView.swift +++ b/ios/MagicCounter/GameView.swift @@ -6,6 +6,7 @@ // import SwiftUI +import UniformTypeIdentifiers /** * Main game screen displaying the grid of players. @@ -17,6 +18,7 @@ struct GameView: View { @State private var gameState: GameState @State private var showingStopConfirmation = false @State private var selectedPlayerForCommander: PlayerState? + @State private var draggedPlayer: PlayerState? init(match: MatchRecord) { self._gameState = State(initialValue: match.state) @@ -97,6 +99,11 @@ struct GameView: View { onScoop: { scoopPlayer(player) } ) .frame(height: 260) + .onDrag { + self.draggedPlayer = player + return NSItemProvider(object: String(player.id) as NSString) + } + .onDrop(of: [.text], delegate: PlayerDropDelegate(item: player, items: $gameState.players, draggedItem: $draggedPlayer)) } } .padding(24) @@ -357,3 +364,30 @@ struct CommanderDamageView: View { } } } + +struct PlayerDropDelegate: DropDelegate { + let item: PlayerState + @Binding var items: [PlayerState] + @Binding var draggedItem: PlayerState? + + func performDrop(info: DropInfo) -> Bool { + return true + } + + func dropEntered(info: DropInfo) { + guard let draggedItem = draggedItem else { return } + if draggedItem.id != item.id { + if let from = items.firstIndex(where: { $0.id == draggedItem.id }), + let to = items.firstIndex(where: { $0.id == item.id }) { + withAnimation { + let movedItem = items.remove(at: from) + items.insert(movedItem, at: to) + } + } + } + } + + func dropUpdated(info: DropInfo) -> DropProposal? { + return DropProposal(operation: .move) + } +} diff --git a/ios/MagicCounter/Logo.icon/icon.json b/ios/MagicCounter/Logo.icon/icon.json index 02e6c94..c290098 100644 --- a/ios/MagicCounter/Logo.icon/icon.json +++ b/ios/MagicCounter/Logo.icon/icon.json @@ -8,7 +8,7 @@ "layers" : [ { "image-name" : "logo 2.png", - "name" : "logo 2", + "name" : "logo", "position" : { "scale" : 0.85, "translation-in-points" : [