student 1 settimana fa
parent
commit
1265acfded
27 ha cambiato i file con 169 aggiunte e 170 eliminazioni
  1. 1 1
      KittyFallWs/KittyFallWs/src/com/vas/kittyfallwsvas/wsfw/services/WSProcessor.java
  2. 4 4
      KittyFallWs/KittyFallWs/src/com/vas/webservices/KittyFallWs.java
  3. 0 51
      KittyFallWs/etc/key/MYJOB_DAILY/PrivateKeyCP.pem
  4. 0 14
      KittyFallWs/etc/key/MYJOB_DAILY/PublicKeyCP.pem
  5. 0 14
      KittyFallWs/etc/key/MYJOB_DAILY/PublicKeyVT.pem
  6. 0 51
      KittyFallWs/etc/key/MYJOB_MONTHLY/PrivateKeyCP.pem
  7. 0 14
      KittyFallWs/etc/key/MYJOB_MONTHLY/PublicKeyCP.pem
  8. 0 14
      KittyFallWs/etc/key/MYJOB_MONTHLY/PublicKeyVT.pem
  9. 1 1
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/Language/Lang.vi.resx
  10. 47 1
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/Views/Shared/_Layout.cshtml
  11. 0 0
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/data.json
  12. BIN
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/block1a-sheet0.webp
  13. BIN
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/block1a-sheet1.webp
  14. BIN
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/cats-sheet0.webp
  15. BIN
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/cats-sheet1.webp
  16. BIN
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/cats-sheet2.webp
  17. BIN
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/cats-sheet4.webp
  18. BIN
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/sprite3-sheet0.webp
  19. BIN
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/sprite3-sheet1.webp
  20. BIN
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/sprite3-sheet2.webp
  21. 1 1
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/offline.json
  22. 3 3
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/scripts/c3runtime.js
  23. 10 1
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/scripts/project/main.js
  24. 51 0
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/kitty/css/all.min.css
  25. 51 0
      Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/kitty/css/input.css
  26. BIN
      Kitty_Fall/catpuzzle_aquang.zip
  27. BIN
      Kitty_Fall/catpuzzle_fix.zip

+ 1 - 1
KittyFallWs/KittyFallWs/src/com/vas/kittyfallwsvas/wsfw/services/WSProcessor.java

@@ -51,7 +51,7 @@ public class WSProcessor extends WebserviceFW {
 
 
         // TODO add your handling code here:  
         // TODO add your handling code here:  
         // insert to webservice table
         // insert to webservice table
-        WebserviceObject wsObj = this.getWebservice("register");
+        WebserviceObject wsObj = this.getWebservice("register_otp");
 //        String isdn = msisdn.substring(Common.COUNTRY_CODE.length());
 //        String isdn = msisdn.substring(Common.COUNTRY_CODE.length());
 //        String keyPath = "../etc/key/" + packName + "/";
 //        String keyPath = "../etc/key/" + packName + "/";
 
 

+ 4 - 4
KittyFallWs/KittyFallWs/src/com/vas/webservices/KittyFallWs.java

@@ -1521,7 +1521,7 @@ public class KittyFallWs extends WebserviceAbstract {
                         String REQ = reqDf.format(new Date()) + productInfo.getProductId() + msisdn.substring(Common.COUNTRY_CODE.length());
                         String REQ = reqDf.format(new Date()) + productInfo.getProductId() + msisdn.substring(Common.COUNTRY_CODE.length());
                         logger.info("after get product info " + fee);
                         logger.info("after get product info " + fee);
                         // right -----------------------------------------------
                         // right -----------------------------------------------
-//                        resultPaid = ws.requestMpsOtp(msisdn, fee, REQ, productInfo.getProductName());
+                        resultPaid = ws.requestMpsOtp(msisdn, fee, REQ, productInfo.getProductName());
                         
                         
                         String errorCode = resultPaid.split("\\|")[0];
                         String errorCode = resultPaid.split("\\|")[0];
                         if (WSProcessor.LIST_SUCCESS_RES.contains(resultPaid)) {
                         if (WSProcessor.LIST_SUCCESS_RES.contains(resultPaid)) {
@@ -1721,7 +1721,7 @@ public class KittyFallWs extends WebserviceAbstract {
                                 response.setErrorCode(Common.ErrorCode.NOT_REGISTERED);
                                 response.setErrorCode(Common.ErrorCode.NOT_REGISTERED);
                                 response.setContent(message);
                                 response.setContent(message);
                             } else {
                             } else {
-//                                rsCancelMps = ws.cancelService(msisdn, regInfo.get(0).getProductName());
+                                rsCancelMps = ws.cancelService(msisdn, regInfo.get(0).getProductName());
                                 if (WSProcessor.LIST_CANCEL_SUCCESS_RES.contains(rsCancelMps)) {
                                 if (WSProcessor.LIST_CANCEL_SUCCESS_RES.contains(rsCancelMps)) {
                                     db.disableAutoExtend(regInfo.get(0).getRegisterId());
                                     db.disableAutoExtend(regInfo.get(0).getRegisterId());
 
 
@@ -2001,8 +2001,8 @@ public class KittyFallWs extends WebserviceAbstract {
                     String REQ = reqDf.format(new Date()) + "1" + msisdn.substring(Common.COUNTRY_CODE.length());
                     String REQ = reqDf.format(new Date()) + "1" + msisdn.substring(Common.COUNTRY_CODE.length());
 
 
                     // charge
                     // charge
-//                    String resultPaid = ws.chargeFeeOtp(msisdn, moneyCharge, REQ);
-                    String resultPaid = "0";
+                    String resultPaid = ws.chargeFeeOtp(msisdn, moneyCharge, REQ);
+//                    String resultPaid = "0";
                     boolean registered = false;
                     boolean registered = false;
                     List<RegisterInfo> listRegInday = null;
                     List<RegisterInfo> listRegInday = null;
                     listRegInday = db.getRegisterInday(msisdn, productInfo.getProductName());
                     listRegInday = db.getRegisterInday(msisdn, productInfo.getProductName());

+ 0 - 51
KittyFallWs/etc/key/MYJOB_DAILY/PrivateKeyCP.pem

@@ -1,51 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-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
------END RSA PRIVATE KEY-----

+ 0 - 14
KittyFallWs/etc/key/MYJOB_DAILY/PublicKeyCP.pem

@@ -1,14 +0,0 @@
------BEGIN PUBLIC KEY-----
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAksq8Pw1FPQq4p6ypuBZD
-rKywDqLK3uAKB8smD/tTpGtL6zpVS/WZQf/uyNoL8vIwhLTMqcat8HkOC+L4ZHWc
-7wnBwQeYzk3BskPMVluEy9+VCdpUF1nYGOQgiMjwRmV5G93nKHiVJM/du/y3/p3A
-MTOx5Nuy3HSA5mHGCX3MwLUxzpicWB42FVi+JZlCBMLueaPMqSChnrGxaXDrmxtO
-coIOU4GLAwM37cxvO8AVuQkfMRFUKk/DqPTlRdbeO2B2JHLhGpJdXTwAo+Gn/SHM
-b/JIPjQfoJlnpxJ4r6nPQFvTXDnMlyYl3uZPygJWm7v/mD/C0bVfPIKxbzIujC4d
-QsIXS31O7zlnXCc5G/6TkjdOgw+yqYX2kT3qV+12Si4PudIyPuXFjbaIPLcJ1TAc
-LaK0a1YS9ZDkwPzKl2RwlHIYi1ar1lWE66nnjlBwze3AyW0L1JxVkWer3QmxD85u
-LIYIhBoj16mRFcsVrUJ1plcoXKAOATjlH9UIDP3xcoT4peG+9bFFlgGTo3/8Q4mT
-hslmWz3unst4GyUvJl7OoojyidgyiaamJvygB4WT6jYYv1nG8jW7OHTjaFZLc95r
-bhGwDlVJzEJ6Bw++UcqgGN6mQi+8CBqOD0i/COwtgzHA/U8mjrfCeIS6H0adT6Hv
-91ZMdb+4TIlAeZLTl0me1AcCAwEAAQ==
------END PUBLIC KEY-----

+ 0 - 14
KittyFallWs/etc/key/MYJOB_DAILY/PublicKeyVT.pem

@@ -1,14 +0,0 @@
------BEGIN PUBLIC KEY-----
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmYTjwe5Uno4Zf3x53QVL
-KykJWRqvPLH3O+MUK7lepZkIoTdMRE+DEXd3lTON9uPig8iw2Wm5CTNbdgMeUrkw
-jpP4CZFBJ05jwcR8RMDqTUlK8NvhkUcF6uIzJTGWnMKoCkcwlt3CmG2FRPIM2+3J
-qwWhM75mIkE8pPP6pN/mTT5vDggyFUNbgDZntCu/+W/mkFbkA0eg7DbJZtR2ssWO
-/2qh7auC4Yrc36LYTcUmf9m/4l6Xa55NznsPfxm78951aH7ag2jO1INdKktWSYvW
-hStJ0F1dDKfxa/MHrIQG62FtQ4ymoIzPHdXaRuuUVk79tumGrw8ZLUnR/7ExntRC
-ieP0gzC7f//VsMy6MpI6+RC5MCZsMbkMNcB0X9NB5ljKA/vyYyxkjdYfay1d9UN+
-4toK3DsmQxtIKd1SoM1b5VhuIqxNaMG7pFzl+X3HpXBvObLVqUFt+c/KgCMfhQsG
-E4RtiGmt1DDD75niCM+AFNlCmh979ahkMVZRPfhFlelSqjx6YozSyI8C9BgTReZg
-E52twmwR/vHlNvNXPbNV8lDODhYGBvZm5ggYaMB82kDwgpAWyR5j+6eF7lKW/aYO
-dhFoTGetOL6ySMhWKBhEUN1XmM3rldfJsyNlVNJJSRyBYaP6dzKLLlmyzcOYBagt
-/Mg+rlOKeH0+r9VNV5nIdS0CAwEAAQ==
------END PUBLIC KEY-----

+ 0 - 51
KittyFallWs/etc/key/MYJOB_MONTHLY/PrivateKeyCP.pem

@@ -1,51 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-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
------END RSA PRIVATE KEY-----

+ 0 - 14
KittyFallWs/etc/key/MYJOB_MONTHLY/PublicKeyCP.pem

@@ -1,14 +0,0 @@
------BEGIN PUBLIC KEY-----
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAksq8Pw1FPQq4p6ypuBZD
-rKywDqLK3uAKB8smD/tTpGtL6zpVS/WZQf/uyNoL8vIwhLTMqcat8HkOC+L4ZHWc
-7wnBwQeYzk3BskPMVluEy9+VCdpUF1nYGOQgiMjwRmV5G93nKHiVJM/du/y3/p3A
-MTOx5Nuy3HSA5mHGCX3MwLUxzpicWB42FVi+JZlCBMLueaPMqSChnrGxaXDrmxtO
-coIOU4GLAwM37cxvO8AVuQkfMRFUKk/DqPTlRdbeO2B2JHLhGpJdXTwAo+Gn/SHM
-b/JIPjQfoJlnpxJ4r6nPQFvTXDnMlyYl3uZPygJWm7v/mD/C0bVfPIKxbzIujC4d
-QsIXS31O7zlnXCc5G/6TkjdOgw+yqYX2kT3qV+12Si4PudIyPuXFjbaIPLcJ1TAc
-LaK0a1YS9ZDkwPzKl2RwlHIYi1ar1lWE66nnjlBwze3AyW0L1JxVkWer3QmxD85u
-LIYIhBoj16mRFcsVrUJ1plcoXKAOATjlH9UIDP3xcoT4peG+9bFFlgGTo3/8Q4mT
-hslmWz3unst4GyUvJl7OoojyidgyiaamJvygB4WT6jYYv1nG8jW7OHTjaFZLc95r
-bhGwDlVJzEJ6Bw++UcqgGN6mQi+8CBqOD0i/COwtgzHA/U8mjrfCeIS6H0adT6Hv
-91ZMdb+4TIlAeZLTl0me1AcCAwEAAQ==
------END PUBLIC KEY-----

+ 0 - 14
KittyFallWs/etc/key/MYJOB_MONTHLY/PublicKeyVT.pem

@@ -1,14 +0,0 @@
------BEGIN PUBLIC KEY-----
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmYTjwe5Uno4Zf3x53QVL
-KykJWRqvPLH3O+MUK7lepZkIoTdMRE+DEXd3lTON9uPig8iw2Wm5CTNbdgMeUrkw
-jpP4CZFBJ05jwcR8RMDqTUlK8NvhkUcF6uIzJTGWnMKoCkcwlt3CmG2FRPIM2+3J
-qwWhM75mIkE8pPP6pN/mTT5vDggyFUNbgDZntCu/+W/mkFbkA0eg7DbJZtR2ssWO
-/2qh7auC4Yrc36LYTcUmf9m/4l6Xa55NznsPfxm78951aH7ag2jO1INdKktWSYvW
-hStJ0F1dDKfxa/MHrIQG62FtQ4ymoIzPHdXaRuuUVk79tumGrw8ZLUnR/7ExntRC
-ieP0gzC7f//VsMy6MpI6+RC5MCZsMbkMNcB0X9NB5ljKA/vyYyxkjdYfay1d9UN+
-4toK3DsmQxtIKd1SoM1b5VhuIqxNaMG7pFzl+X3HpXBvObLVqUFt+c/KgCMfhQsG
-E4RtiGmt1DDD75niCM+AFNlCmh979ahkMVZRPfhFlelSqjx6YozSyI8C9BgTReZg
-E52twmwR/vHlNvNXPbNV8lDODhYGBvZm5ggYaMB82kDwgpAWyR5j+6eF7lKW/aYO
-dhFoTGetOL6ySMhWKBhEUN1XmM3rldfJsyNlVNJJSRyBYaP6dzKLLlmyzcOYBagt
-/Mg+rlOKeH0+r9VNV5nIdS0CAwEAAQ==
------END PUBLIC KEY-----

+ 1 - 1
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/Language/Lang.vi.resx

@@ -136,7 +136,7 @@
     <value>အမှတ်များ</value>
     <value>အမှတ်များ</value>
   </data>
   </data>
   <data name="PlayTurns" xml:space="preserve">
   <data name="PlayTurns" xml:space="preserve">
-    <value>အလှည့်အပြောင်းများ ကစားပါ</value>
+    <value>ကစားလှည့်များ</value>
   </data>
   </data>
   <data name="DailyPackage" xml:space="preserve">
   <data name="DailyPackage" xml:space="preserve">
     <value>နေ့စဉ်ပက်ကေ့ဂျ်</value>
     <value>နေ့စဉ်ပက်ကေ့ဂျ်</value>

+ 47 - 1
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/Views/Shared/_Layout.cshtml

@@ -157,6 +157,19 @@
         </section>
         </section>
     </div>
     </div>
 
 
+    <div class="cancel-package-dialog" data-cancel-package-dialog aria-hidden="true">
+        <button class="cancel-package-dialog-backdrop" type="button" data-cancel-dialog-close aria-label="Close confirmation"></button>
+        <section class="cancel-package-dialog-card" role="dialog" aria-modal="true" aria-labelledby="cancel-package-dialog-title">
+            <div class="cancel-package-dialog-icon" aria-hidden="true">!</div>
+            <h2 id="cancel-package-dialog-title">Cancel package?</h2>
+            <p>Your current package benefits will no longer be available. Are you sure you want to continue?</p>
+            <div class="cancel-package-dialog-actions">
+                <button class="cancel-package-dialog-keep" type="button" data-cancel-dialog-close>Keep package</button>
+                <button class="cancel-package-dialog-confirm" type="button" data-cancel-dialog-confirm>Cancel package</button>
+            </div>
+        </section>
+    </div>
+
     @if (showBottomNav)
     @if (showBottomNav)
     {
     {
         <nav class="@navShellClass" data-scale-floor="368" data-scale-height="60" data-scale-var="--bottom-nav-height" aria-label="Main navigation">
         <nav class="@navShellClass" data-scale-floor="368" data-scale-height="60" data-scale-var="--bottom-nav-height" aria-label="Main navigation">
@@ -261,10 +274,43 @@
             });
             });
 
 
             const cancelPackageButton = accountMenu.querySelector("[data-cancel-package]");
             const cancelPackageButton = accountMenu.querySelector("[data-cancel-package]");
+            const cancelPackageDialog = document.querySelector("[data-cancel-package-dialog]");
+
+            const confirmPackageCancellation = function () {
+                if (!cancelPackageDialog) return Promise.resolve(false);
+
+                return new Promise(function (resolve) {
+                    const confirmButton = cancelPackageDialog.querySelector("[data-cancel-dialog-confirm]");
+                    const closeButtons = cancelPackageDialog.querySelectorAll("[data-cancel-dialog-close]");
+
+                    const closeDialog = function (confirmed) {
+                        cancelPackageDialog.classList.remove("is-open");
+                        cancelPackageDialog.setAttribute("aria-hidden", "true");
+                        confirmButton.removeEventListener("click", confirmHandler);
+                        closeButtons.forEach(button => button.removeEventListener("click", closeHandler));
+                        document.removeEventListener("keydown", escapeHandler);
+                        cancelPackageButton?.focus({ preventScroll: true });
+                        resolve(confirmed);
+                    };
+                    const confirmHandler = function () { closeDialog(true); };
+                    const closeHandler = function () { closeDialog(false); };
+                    const escapeHandler = function (event) {
+                        if (event.key === "Escape") closeDialog(false);
+                    };
+
+                    confirmButton.addEventListener("click", confirmHandler);
+                    closeButtons.forEach(button => button.addEventListener("click", closeHandler));
+                    document.addEventListener("keydown", escapeHandler);
+                    cancelPackageDialog.classList.add("is-open");
+                    cancelPackageDialog.setAttribute("aria-hidden", "false");
+                    requestAnimationFrame(() => confirmButton.focus({ preventScroll: true }));
+                });
+            };
+
             cancelPackageButton?.addEventListener("click", async function () {
             cancelPackageButton?.addEventListener("click", async function () {
                 const packageName = cancelPackageButton.dataset.packageName;
                 const packageName = cancelPackageButton.dataset.packageName;
                 const message = accountMenu.querySelector("[data-cancel-package-message]");
                 const message = accountMenu.querySelector("[data-cancel-package-message]");
-                if (!packageName || !window.confirm("Are you sure you want to cancel this package?")) return;
+                if (!packageName || !await confirmPackageCancellation()) return;
 
 
                 cancelPackageButton.disabled = true;
                 cancelPackageButton.disabled = true;
                 message.textContent = "Cancelling...";
                 message.textContent = "Cancelling...";

File diff suppressed because it is too large
+ 0 - 0
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/data.json


BIN
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/block1a-sheet0.webp


BIN
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/block1a-sheet1.webp


BIN
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/cats-sheet0.webp


BIN
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/cats-sheet1.webp


BIN
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/cats-sheet2.webp


BIN
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/cats-sheet4.webp


BIN
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/sprite3-sheet0.webp


BIN
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/sprite3-sheet1.webp


BIN
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/images/sprite3-sheet2.webp


+ 1 - 1
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/offline.json

@@ -1 +1 @@
-{"version":1784790149579,"fileList":["scripts/main.js","scripts/c3runtime.js","scripts/objRefTable.js","scripts/project/main.js","scripts/c3main.js","scripts/dispatchworker.js","scripts/jobworker.js","data.json","scripts/modernjscheck.js","scripts/supportcheck.js","scripts/offlineclient.js","icons/loading-logo.png","icons/icon-16.png","icons/icon-32.png","icons/icon-64.png","icons/icon-128.png","icons/icon-256.png","icons/icon-512.png","media/congratulations.webm","media/click.webm","media/Button03.webm","media/cute-cat-352656.webm","media/win2.webm","media/timeup_.webm","media/click_sound.webm","media/playground.webm","box2d.wasm.js","box2d.wasm","style.css","images/shared-0-sheet0.webp","images/shared-0-sheet1.webp","images/shared-0-sheet2.webp","images/shared-0-sheet3.webp","images/shared-0-sheet4.webp","images/shared-0-sheet5.webp","images/shared-0-sheet6.webp","images/block1a-sheet0.webp","images/block1a-sheet1.webp","images/cats-sheet0.webp","images/cats-sheet1.webp","images/cats-sheet2.webp","images/cats-sheet3.webp","images/cats-sheet4.webp","images/confettix-sheet0.webp","images/confettix-sheet1.webp","images/sprite3-sheet0.webp","images/sprite3-sheet1.webp","images/sprite3-sheet2.webp","images/scroll-sheet0.webp","images/btn_lvl-sheet0.webp","images/btn_lvl-sheet1.webp","scripts/register-sw.js"]}
+{"version":1784799761185,"fileList":["scripts/main.js","scripts/c3runtime.js","scripts/objRefTable.js","scripts/project/main.js","scripts/c3main.js","scripts/dispatchworker.js","scripts/jobworker.js","data.json","scripts/modernjscheck.js","scripts/supportcheck.js","scripts/offlineclient.js","icons/loading-logo.png","icons/icon-16.png","icons/icon-32.png","icons/icon-64.png","icons/icon-128.png","icons/icon-256.png","icons/icon-512.png","media/congratulations.webm","media/click.webm","media/Button03.webm","media/cute-cat-352656.webm","media/win2.webm","media/timeup_.webm","media/click_sound.webm","media/playground.webm","box2d.wasm","box2d.wasm.js","style.css","images/shared-0-sheet0.webp","images/shared-0-sheet1.webp","images/shared-0-sheet2.webp","images/shared-0-sheet3.webp","images/shared-0-sheet4.webp","images/shared-0-sheet5.webp","images/shared-0-sheet6.webp","images/block1a-sheet0.webp","images/block1a-sheet1.webp","images/cats-sheet0.webp","images/cats-sheet1.webp","images/cats-sheet2.webp","images/cats-sheet3.webp","images/cats-sheet4.webp","images/confettix-sheet0.webp","images/confettix-sheet1.webp","images/sprite3-sheet0.webp","images/sprite3-sheet1.webp","images/sprite3-sheet2.webp","images/scroll-sheet0.webp","images/btn_lvl-sheet0.webp","images/btn_lvl-sheet1.webp","scripts/register-sw.js"]}

+ 3 - 3
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/scripts/c3runtime.js

@@ -1557,7 +1557,7 @@ self.C3_ExpressionFuncs = [
 			const v3 = p._GetNode(3).GetVar();
 			const v3 = p._GetNode(3).GetVar();
 			const f4 = p._GetNode(4).GetBoundMethod();
 			const f4 = p._GetNode(4).GetBoundMethod();
 			const v5 = p._GetNode(5).GetVar();
 			const v5 = p._GetNode(5).GetVar();
-			return () => C3.distanceTo(n0.ExpObject("Center"), n1.ExpObject("Center"), (f2() - v3.GetValue()), (f4() - v5.GetValue()));
+			return () => C3.clamp((C3.distanceTo(n0.ExpObject("Center"), n1.ExpObject("Center"), (f2() - v3.GetValue()), (f4() - v5.GetValue())) * 2), 15, 150);
 		},
 		},
 		p => {
 		p => {
 			const f0 = p._GetNode(0).GetBoundMethod();
 			const f0 = p._GetNode(0).GetBoundMethod();
@@ -1572,7 +1572,7 @@ self.C3_ExpressionFuncs = [
 			const n2 = p._GetNode(2);
 			const n2 = p._GetNode(2);
 			const f3 = p._GetNode(3).GetBoundMethod();
 			const f3 = p._GetNode(3).GetBoundMethod();
 			const v4 = p._GetNode(4).GetVar();
 			const v4 = p._GetNode(4).GetVar();
-			return () => C3.distanceTo(n0.ExpObject("Center"), n1.ExpObject("Center"), n2.ExpObject("Center"), (f3() - v4.GetValue()));
+			return () => C3.clamp((C3.distanceTo(n0.ExpObject("Center"), n1.ExpObject("Center"), n2.ExpObject("Center"), (f3() - v4.GetValue())) * 2), 15, 150);
 		},
 		},
 		p => {
 		p => {
 			const n0 = p._GetNode(0);
 			const n0 = p._GetNode(0);
@@ -1585,7 +1585,7 @@ self.C3_ExpressionFuncs = [
 			const f2 = p._GetNode(2).GetBoundMethod();
 			const f2 = p._GetNode(2).GetBoundMethod();
 			const v3 = p._GetNode(3).GetVar();
 			const v3 = p._GetNode(3).GetVar();
 			const n4 = p._GetNode(4);
 			const n4 = p._GetNode(4);
-			return () => C3.distanceTo(n0.ExpObject("Center"), n1.ExpObject("Center"), (f2() - v3.GetValue()), n4.ExpObject("Center"));
+			return () => C3.clamp((C3.distanceTo(n0.ExpObject("Center"), n1.ExpObject("Center"), (f2() - v3.GetValue()), n4.ExpObject("Center")) * 2), 15, 150);
 		},
 		},
 		p => {
 		p => {
 			const v0 = p._GetNode(0).GetVar();
 			const v0 = p._GetNode(0).GetVar();

+ 10 - 1
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/catpuzzle/scripts/project/main.js

@@ -250,6 +250,11 @@ function Tick(runtime)
         lastExitGame = 0;
         lastExitGame = 0;
     }
     }
 
 
+
+
+
+
+
 }
 }
 
 
 
 
@@ -311,7 +316,7 @@ async function SaveLevelResult(runtime)
 		else if (runtime.globalVars.data > 0)
 		else if (runtime.globalVars.data > 0)
 		{
 		{
 			runtime.globalVars.gGiftValues = runtime.globalVars.data;
 			runtime.globalVars.gGiftValues = runtime.globalVars.data;
-			runtime.globalVars.gGiftText = "M";
+			runtime.globalVars.gGiftText = "MB";
 		}
 		}
 		else if (runtime.globalVars.score > 0)
 		else if (runtime.globalVars.score > 0)
 		{
 		{
@@ -328,6 +333,10 @@ async function SaveLevelResult(runtime)
 	{
 	{
 		console.error("SaveLevelResult Error:", error);
 		console.error("SaveLevelResult Error:", error);
 	}
 	}
+	finally
+	{
+		
+	}
 }
 }
 
 
 
 

+ 51 - 0
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/kitty/css/all.min.css

@@ -4529,6 +4529,57 @@ body.has-account-menu {
     font-style: normal;
     font-style: normal;
 }
 }
 
 
+.cancel-package-dialog {
+    position: fixed;
+    z-index: 10010;
+    inset: 0;
+    display: none;
+    place-items: center;
+    padding: 20px;
+}
+
+.cancel-package-dialog.is-open { display: grid; }
+
+.cancel-package-dialog-backdrop {
+    position: absolute;
+    inset: 0;
+    border: 0;
+    background: rgba(8, 39, 99, .64);
+    backdrop-filter: blur(3px);
+}
+
+.cancel-package-dialog-card {
+    position: relative;
+    width: min(350px, calc(100vw - 32px));
+    border: 3px solid #ff8a82;
+    border-radius: 20px;
+    padding: 26px 22px 22px;
+    background: #fff8f5;
+    box-shadow: 0 12px 36px rgba(70, 20, 40, .28);
+    color: #37233b;
+    text-align: center;
+}
+
+.cancel-package-dialog-icon {
+    display: grid;
+    width: 54px;
+    height: 54px;
+    margin: 0 auto 12px;
+    place-items: center;
+    border-radius: 50%;
+    background: #ffe2df;
+    color: #d93631;
+    font-size: 30px;
+    font-weight: 900;
+}
+
+.cancel-package-dialog-card h2 { margin: 0; font-size: 23px; }
+.cancel-package-dialog-card p { margin: 10px 0 20px; color: #705f71; font-size: 14px; line-height: 1.5; }
+.cancel-package-dialog-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
+.cancel-package-dialog-actions button { min-height: 44px; border-radius: 10px; padding: 8px; font-size: 13px; font-weight: 800; cursor: pointer; }
+.cancel-package-dialog-keep { border: 2px solid #d8d0dc; background: #fff; color: #49394e; }
+.cancel-package-dialog-confirm { border: 0; background: linear-gradient(#ff7168, #d93631); color: #fff; box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .14); }
+
 .account-language-card {
 .account-language-card {
     min-height: 76px;
     min-height: 76px;
     border-color: #ddd6ff;
     border-color: #ddd6ff;

+ 51 - 0
Kitty_Fall/Kitty_Fall/Kitty_Fall.Website/wwwroot/kitty/css/input.css

@@ -4529,6 +4529,57 @@ body.has-account-menu {
     font-style: normal;
     font-style: normal;
 }
 }
 
 
+.cancel-package-dialog {
+    position: fixed;
+    z-index: 10010;
+    inset: 0;
+    display: none;
+    place-items: center;
+    padding: 20px;
+}
+
+.cancel-package-dialog.is-open { display: grid; }
+
+.cancel-package-dialog-backdrop {
+    position: absolute;
+    inset: 0;
+    border: 0;
+    background: rgba(8, 39, 99, .64);
+    backdrop-filter: blur(3px);
+}
+
+.cancel-package-dialog-card {
+    position: relative;
+    width: min(350px, calc(100vw - 32px));
+    border: 3px solid #ff8a82;
+    border-radius: 20px;
+    padding: 26px 22px 22px;
+    background: #fff8f5;
+    box-shadow: 0 12px 36px rgba(70, 20, 40, .28);
+    color: #37233b;
+    text-align: center;
+}
+
+.cancel-package-dialog-icon {
+    display: grid;
+    width: 54px;
+    height: 54px;
+    margin: 0 auto 12px;
+    place-items: center;
+    border-radius: 50%;
+    background: #ffe2df;
+    color: #d93631;
+    font-size: 30px;
+    font-weight: 900;
+}
+
+.cancel-package-dialog-card h2 { margin: 0; font-size: 23px; }
+.cancel-package-dialog-card p { margin: 10px 0 20px; color: #705f71; font-size: 14px; line-height: 1.5; }
+.cancel-package-dialog-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
+.cancel-package-dialog-actions button { min-height: 44px; border-radius: 10px; padding: 8px; font-size: 13px; font-weight: 800; cursor: pointer; }
+.cancel-package-dialog-keep { border: 2px solid #d8d0dc; background: #fff; color: #49394e; }
+.cancel-package-dialog-confirm { border: 0; background: linear-gradient(#ff7168, #d93631); color: #fff; box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .14); }
+
 .account-language-card {
 .account-language-card {
     min-height: 76px;
     min-height: 76px;
     border-color: #ddd6ff;
     border-color: #ddd6ff;

BIN
Kitty_Fall/catpuzzle_aquang.zip


BIN
Kitty_Fall/catpuzzle_fix.zip


Some files were not shown because too many files changed in this diff