From 171f80e97244228b5cc269f6b0c5aa6f3805af1e Mon Sep 17 00:00:00 2001 From: Brad Gearon Date: Wed, 18 Nov 2020 13:32:16 -0600 Subject: [PATCH] latest version added privacy htm --- .../Packages/I2/Resources/I2Languages.prefab | Bin 39276 -> 43000 bytes Assets/Plugins/Android/AndroidManifest.xml | 5 +- Assets/Resources/GameManager.prefab | Bin 8064 -> 7944 bytes Assets/Resources/Image.prefab | Bin 7200 -> 7200 bytes Assets/Scripts/AdLauncher.cs | 53 ++++++++++++++++++ Assets/Scripts/DragDropHandler.cs | 34 +++++++++-- Assets/Scripts/GameManager.cs | 18 ++---- Assets/Scripts/GameOverManager.cs | 2 +- Assets/Scripts/TileManager.cs | 31 +++++++--- Library/CurrentLayout.dwlt | Bin 53808 -> 53760 bytes Library/ProjectSettings.asset | Bin 43245 -> 43245 bytes ProjectSettings/EditorBuildSettings.asset | Bin 4276 -> 4276 bytes ProjectSettings/ProjectSettings.asset | Bin 43245 -> 43245 bytes privacy.htm | 1 + 14 files changed, 115 insertions(+), 29 deletions(-) create mode 100644 Assets/Scripts/AdLauncher.cs create mode 100644 privacy.htm diff --git a/Assets/Packages/I2/Resources/I2Languages.prefab b/Assets/Packages/I2/Resources/I2Languages.prefab index a2cebfa9834d6b9b0f12ea9865c02419b911301b..3f37f49e9b70807269b34f2fbd5ef6d0be267f10 100644 GIT binary patch delta 5107 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 gg}nUSq@q-X)M5okuvT - - + + diff --git a/Assets/Resources/GameManager.prefab b/Assets/Resources/GameManager.prefab index e67f8b83fdae38b0f33888198b171eb71b1eb220..96b56974ba5bd758143525a033367e8a22f2fdfb 100644 GIT binary patch delta 208 zcmZp$@30eKV31~JV36lvU|`?}vK2N8l(MUp_ViV{tu@rM@I12q&#q6c$G^(DGG9qQ zm9k~m?LVH=&dLB)>oaWhcVn9TkuzrUR4xs+s{FiE&y>wixFY!{J4hAquDWG&FP&*B z;|xXyhLp*BrNo&Sm?mG7vSMVNEGR7{z|M8%^J_Ls_Z_G2v|Kq>{${eZw9({dY1zs1 zq$jb0^=>wmac7j10@{?4nwD6aQxcY$lA7(); - var draggedMatches = tileManager.FindMatches(dragged).ToArray(); - var droppedMatches = tileManager.FindMatches(droppedOn).ToArray(); + + var draggedMatches = tileManager.FindMatches(dragged); + var droppedMatches = tileManager.FindMatches(droppedOn); Func, bool> notNull = l => l != null; - foreach (var gr in draggedMatches.Where(notNull)) + foreach (var tiles in draggedMatches) { - var tiles = gr as Tile[] ?? gr.ToArray(); var toAdd = tiles; - foreach (var gri in droppedMatches.Where(notNull)) + + foreach (var gri in droppedMatches) { var enumerable = gri.ToArray(); if (toAdd.Intersect(enumerable).Any() @@ -105,9 +106,32 @@ private IEnumerator CheckMatchedTiles([CanBeNull] TileManager tileManager) toAdd = enumerable; } } + matches.Add(toAdd); } + var first = droppedMatches.OrderBy(t => t.Length).FirstOrDefault(); + if (first != null) + { + matches.Add(first); + } + + foreach (var tiles in droppedMatches) + { + var toAdd = tiles; + foreach (var gr in draggedMatches) + { + var enumerable = gr.ToArray(); + if (toAdd.Intersect(enumerable).Any() + && enumerable.Count() > tiles.Count()) + { + toAdd = enumerable; + } + + matches.Add(toAdd); + } + } + Debug.Log("step taken"); ScoreManager.Instance.TakeStep(); diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs index 0c49c70..37aee05 100644 --- a/Assets/Scripts/GameManager.cs +++ b/Assets/Scripts/GameManager.cs @@ -8,7 +8,6 @@ using DG.Tweening; using DG.Tweening.Core; using Facebook.Unity; -using I2.Loc; public class GameManager : MonoBehaviour { @@ -38,13 +37,8 @@ public class GameManager : MonoBehaviour public Level[] Levels = new Level[12]; public int LevelIndex = 0; - - void Awake() { - - Debug.Log("on awake:" + Application.systemLanguage); - Debug.Log("current I2 Language: " + LocalizationManager.CurrentLanguage); Instance = this; _screenFader = GetComponent(); @@ -59,11 +53,6 @@ void Awake() } } - -#if !UNITY_EDITOR - UntitledLauncher.Init(); -#endif - if (FB.IsInitialized) { FB.ActivateApp(); @@ -72,7 +61,6 @@ void Awake() { FB.Init(FB.ActivateApp); } - } void Start() @@ -205,4 +193,10 @@ public void OnTrackAppNext() var tracking = GetComponent(); tracking.Track(); } + + public void ShowAd() + { + var ads = GetComponent(); + ads.ShowAdPlacement(); + } } \ No newline at end of file diff --git a/Assets/Scripts/GameOverManager.cs b/Assets/Scripts/GameOverManager.cs index 06e0e8a..d595c61 100644 --- a/Assets/Scripts/GameOverManager.cs +++ b/Assets/Scripts/GameOverManager.cs @@ -80,7 +80,7 @@ IEnumerator ShowResults(Transform starTransform, Level level) if (Random.Range(0f, 1f) < .77f) { - UntitledLauncher.Show(); + GameManager.Instance.ShowAd(); } nextButton.gameObject.SetActive(didWin); diff --git a/Assets/Scripts/TileManager.cs b/Assets/Scripts/TileManager.cs index cd702fd..76a1c04 100644 --- a/Assets/Scripts/TileManager.cs +++ b/Assets/Scripts/TileManager.cs @@ -202,14 +202,14 @@ public Tile FindMatchingTile(Transform toFind) /// /// starting point /// a list of lists... of tiles - public IEnumerable> FindMatches(Tile current) + public Tile[][] FindMatches(Tile current) { Debug.Log("enter find matches"); return CheckDirections(current); } - private IEnumerable> CheckDirections(Tile current) + private Tile[][] CheckDirections(Tile current) { var matches = new TileMatch[4]; @@ -218,9 +218,20 @@ private IEnumerable> CheckDirections(Tile current) matches[2] = GetMatchesNew(current, TileAxis.Vertical, 1, default(TileMatch)); matches[3] = GetMatchesNew(current, TileAxis.Vertical, -1, matches[2]); - return matches - .Where(arr => arr.Tiles.Length > 2) - .Select(arr => arr.Tiles.AsEnumerable()); + var eligibleCount = matches.Count(match => match.Tiles.Length > 2); + + var eligible = new Tile[eligibleCount][]; + var ii = 0; + + foreach (var match in matches) + { + if (match.Tiles.Length > 2) + { + eligible[ii++] = match.Tiles; + } + } + + return eligible; } /// @@ -353,7 +364,9 @@ private TileMatch GetPreviousMatches(TileMatch match, TileMatch current) if (previousMatching.Any()) { match.Factors = previousMatching; - match.Tiles = match.Tiles.Union(current.Tiles).ToArray(); + match.Tiles = match.Tiles + .Where(t => !current.Tiles.Contains(t)) + .Union(current.Tiles).ToArray(); } return match; @@ -379,9 +392,11 @@ private TileMatch getMatches(TileMatch match, int start, int offset, int max) tiles.Add(tile); } + match.Factors = factors; + return new TileMatch { - Tiles = tiles.ToArray(), + Tiles = tiles.Distinct().ToArray(), Factors = factors }; } @@ -403,7 +418,7 @@ private TileMatch GetMatchesNew(Tile start, TileAxis axis, int direction, }; var newMatch = getMatches(tileMatch, start.Index + offset, offset, max); - var previous = GetPreviousMatches(previousMatch, tileMatch); + var previous = GetPreviousMatches(previousMatch, newMatch); if (previous.Factors != null) { diff --git a/Library/CurrentLayout.dwlt b/Library/CurrentLayout.dwlt index 69604e8b763d5f21940ae9b8042cdb86480b27eb..4996759c87eec0d29e51f8dd3830e496510b7e5f 100644 GIT binary patch delta 1135 zcmZ8fe@IhN6h2QwOe@P&jOGv6D9r^@7KC8Wy(#`txIZ)}2^DC%Fp?Qqn)NV=5KHkw zN>nP02qe%fP;_oOo3=LFBts%g(IQfsNaT-PuXC@iwhnynoqNx@-#PcYr_&H98Ulj> z20j9eLsxLEFyCQ(ORE<P+F!6t>d56e(!QcAdpM87%qs+*b{e@Spdqg`3Va`AO$1w zq|LO2e6>ZMqPgZY^^=~$;}jrP;CcYh`&)iZ9X)HwuL(gxbJbKxmhYbi-rDmc7jp_9 z#w0nPDdYW8#8u?R9s!W2nDO+jwkEY(-8|)_Hla&OAGm&N5GHG>ZoKcBOxq%edGti6 z?CKpB#6NMn(wj^vr2bWkqORyr(6^3yFBRisAN~y1qq?lA$Te$8uvftD99t=;czm?? z?fJpa&HwVL*N+t<5KcUXvT-H_l}!(b^S?cX9v<8lXn~ z03|>g0&MqFaoBI*`y`N2yM{f;oL!0jHgeX%b28HIh$F)e<-RdIHjbdSSO74GzL=Sy^WcK+%J}UU zPaVrX5p<~t^u167(JlDL0Jh_XVZkE}A!6MgNsD-d_=5P3SX}o=vI$8FUza3$_BS&9 t6j-lX=VYAkh{R(U6=7)`z4nr9*PiI9*CFc0b2@C}IUO6`yC$Nm^ADSMU#|cF delta 1135 zcmah|TS${}6hCuPGe_P>nds1k(#1(gSVT!W-S(JmfC zA0j784_Tn7-RIQVv^8(pLkQhp0t+=FEVF;-|82(BO9y`6|8jok_nmXT^NF4E?oPP^ zVBihFi;Nycts_J!$IA}YE^`Ec7XUsp#;g!VJAgRp36K>D&>#btlYHUQt;+8k>wWFG zDwB(A1*~vdH!bL4&>{dF&;xYoL0z2-#^qd!g=4tlG=_^&0*FKs@99zJjz!C0eau1P zf7io8S00#;=W%W!zJF>=E(lmjlFd zI@b|`Z6^Q72tdWiO#Td|upsbWN&H|MwaoW|xzW;s!>5&>`ukT>f+*r5Y4b#=S7M2z z^Y};G)^_*2j%#vj-CdcT9M+r-&_^u?UEmqtd17&J%n*M6OC#@_j#hL|XE!-BvEf;! z=7a0*P?;96e1n?N1LQn-|A83 z)S%rNYDgeQw#{a$v}uh+#ixo&Og8QQ9ol@8t-Q)wY_jn>Xl{Y8|KnnYR}@AINkjR4|!gk diff --git a/Library/ProjectSettings.asset b/Library/ProjectSettings.asset index 6c22e68bb3cce391414f3dd6becf9569f4287808..2fdca11105620aba3c80c384caeb65ebfdc81697 100644 GIT binary patch delta 47 ucmaERk?HM4rVW#33mcm;AOQG1*}*%jO4jczFO$Uk%3q delta 41 ocmaERk?HM4rVW#33mcg;Ac5~J3=9IBm(JE_WMtlab&doN00_tnQ~&?~ diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset index 98383fbd87878844c16338ea1571629b0f5ccdfa..952c89ea96f7cc12a7e1ac4e9f309ae9026f3982 100644 GIT binary patch delta 15 Wcmdm@xJ7Y8iNNF;0y2{e1XKVqO$BWL delta 15 Wcmdm@xJ7Y8iNNG30t%B01QY-G1*}*%jO4jczFO$Uk%3q delta 41 ocmaERk?HM4rVW#33mcg;Ac5~J3=9IBm(JE_WMtlab&doN00_tnQ~&?~ diff --git a/privacy.htm b/privacy.htm new file mode 100644 index 0000000..7923240 --- /dev/null +++ b/privacy.htm @@ -0,0 +1 @@ +
PRIVACY NOTICE

Last updated November 18, 2020



Thank you for choosing to be part of our community at We Develop Software LLC ("Company", "we", "us", "our"). We are committed to protecting your personal information and your right to privacy. If you have any questions or concerns about this privacy notice, or our practices with regards to your personal information, please contact us at bradgearon@gmail.com.

When you use our mobile application, as the case may be (the "App") and more generally, use any of our services (the "Services", which include the App), we appreciate that you are trusting us with your personal information. We take your privacy very seriously. In this privacy notice, we seek to explain to you in the clearest way possible what information we collect, how we use it and what rights you have in relation to it. We hope you take some time to read through it carefully, as it is important. If there are any terms in this privacy notice that you do not agree with, please discontinue use of our Services immediately.

This privacy notice applies to all information collected through our Services (which, as described above, includes our App), as well as, any related services, sales, marketing or events.

Please read this privacy notice carefully as it will help you understand what we do with the information that we collect.

TABLE OF CONTENTS


1. WHAT INFORMATION DO WE COLLECT?

2. WILL YOUR INFORMATION BE SHARED WITH ANYONE?

In Short:  We only share information with your consent, to comply with laws, to provide you with services, to protect your rights, or to fulfill business obligations.

We may process or share your data that we hold based on the following legal basis:
  • Consent: We may process your data if you have given us specific consent to use your personal information for a specific purpose.
  • Legitimate Interests: We may process your data when it is reasonably necessary to achieve our legitimate business interests.
  • Performance of a Contract: Where we have entered into a contract with you, we may process your personal information to fulfill the terms of our contract.
  • Legal Obligations: We may disclose your information where we are legally required to do so in order to comply with applicable law, governmental requests, a judicial proceeding, court order, or legal process, such as in response to a court order or a subpoena (including in response to public authorities to meet national security or law enforcement requirements).
  • Vital Interests: We may disclose your information where we believe it is necessary to investigate, prevent, or take action regarding potential violations of our policies, suspected fraud, situations involving potential threats to the safety of any person and illegal activities, or as evidence in litigation in which we are involved.
More specifically, we may need to process your data or share your personal information in the following situations:
  • Business Transfers. We may share or transfer your information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company.

3. IS YOUR INFORMATION TRANSFERRED INTERNATIONALLY?     

In Short:  We may transfer, store, and process your information in countries other than your own.

Our servers are located in. If you are accessing our App from outside, please be aware that your information may be transferred to, stored, and processed by us in our facilities and by those third parties with whom we may share your personal information (see "WILL YOUR INFORMATION BE SHARED WITH ANYONE?" above), in and other countries.

If you are a resident in the European Economic Area, then these countries may not necessarily have data protection laws or other similar laws as comprehensive as those in your country. We will however take all necessary measures to protect your personal information in accordance with this privacy notice and applicable law.

4. HOW LONG DO WE KEEP YOUR INFORMATION?

In Short:  We keep your information for as long as necessary to fulfill the purposes outlined in this privacy notice unless otherwise required by law.

We will only keep your personal information for as long as it is necessary for the purposes set out in this privacy notice, unless a longer retention period is required or permitted by law (such as tax, accounting or other legal requirements). No purpose in this notice will require us keeping your personal information for longer than __________.

When we have no ongoing legitimate business need to process your personal information, we will either delete or anonymize such information, or, if this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible.

5. WHAT ARE YOUR PRIVACY RIGHTS?

In Short:  You may review, change, or terminate your account at any time.
 
If you are a resident in the European Economic Area and you believe we are unlawfully processing your personal information, you also have the right to complain to your local data protection supervisory authority. You can find their contact details here: http://ec.europa.eu/justice/data-protection/bodies/authorities/index_en.htm.

If you are a resident in Switzerland, the contact details for the data protection authorities are available here: https://www.edoeb.admin.ch/edoeb/en/home.html.

6. CONTROLS FOR DO-NOT-TRACK FEATURES

Most web browsers and some mobile operating systems and mobile applications include a Do-Not-Track ("DNT") feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. At this stage no uniform technology standard for recognizing and implementing DNT signals has been finalized. As such, we do not currently respond to DNT browser signals or any other mechanism that automatically communicates your choice not to be tracked online. If a standard for online tracking is adopted that we must follow in the future, we will inform you about that practice in a revised version of this privacy notice. 

7. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?

In Short:  Yes, if you are a resident of California, you are granted specific rights regarding access to your personal information.

California Civil Code Section 1798.83, also known as the "Shine The Light" law, permits our users who are California residents to request and obtain from us, once a year and free of charge, information about categories of personal information (if any) we disclosed to third parties for direct marketing purposes and the names and addresses of all third parties with which we shared personal information in the immediately preceding calendar year. If you are a California resident and would like to make such a request, please submit your request in writing to us using the contact information provided below.

If you are under 18 years of age, reside in California, and have a registered account with the App, you have the right to request removal of unwanted data that you publicly post on the App. To request removal of such data, please contact us using the contact information provided below, and include the email address associated with your account and a statement that you reside in California. We will make sure the data is not publicly displayed on the App, but please be aware that the data may not be completely or comprehensively removed from all our systems (e.g. backups, etc.).

8. DO WE MAKE UPDATES TO THIS NOTICE?     

In Short:  Yes, we will update this notice as necessary to stay compliant with relevant laws.

We may update this privacy notice from time to time. The updated version will be indicated by an updated "Revised" date and the updated version will be effective as soon as it is accessible. If we make material changes to this privacy notice, we may notify you either by prominently posting a notice of such changes or by directly sending you a notification. We encourage you to review this privacy notice frequently to be informed of how we are protecting your information.

9. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?     

If you have questions or comments about this notice, you may email us at __________ or by post to:

We Develop Software LLC
11318 N Marsh Ave
Kansas City, MO 64157
United States

10. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?     

Based on the applicable laws of your country, you may have the right to request access to the personal information we collect from you, change that information, or delete it in some circumstances. To request to review, update, or delete your personal information, please submit a request form by clicking here. We will respond to your request within 30 days.
This privacy policy was created using Termly’s Privacy Policy Generator.