Просмотр исходного кода

Merge branch 'master' of https://github.com/Hex-Dragon/GMTK2022

= 4 лет назад
Родитель
Сommit
f3307da3af

+ 14 - 3
Assets/Resources/Entities/EnemyBase.cs

@@ -5,9 +5,21 @@ using DG.Tweening;
 
 public abstract class EnemyBase : EntityBase {
 
+    internal override void OnUpdate() {
+        rb.mass = baseMass * (towardsRight ? 1.2f : 0.8f);
+        // 反向
+        if (towardsRight != (Mathf.Abs(rb.velocity.x) > filpSpeed ? rb.velocity.x > 0 : towardsRight)) {
+            towardsRight = !towardsRight;
+            transform.DOScaleX(towardsRight ? 1 : -1, 0.15f);
+        }
+    }
+
     public bool movingLeft = false;
     internal override void OnHitBorder() {
-        transform.localScale = Vector3.zero; Destroy(gameObject, 1);
+        // 死亡
+        transform.position = new Vector3(1000, 1000);
+        gameObject.SetActive(false);
+        Destroy(gameObject, 1);
     }
 
     public int hp; internal int currentHp = -1;
@@ -19,8 +31,7 @@ public abstract class EnemyBase : EntityBase {
         currentHp--;
         if (currentHp <= 0) {
             AudioM.Play("enemy_die", 0.5f);
-            transform.localScale = Vector3.zero;
-            Destroy(gameObject, 1); // 防止动画没播放完导致报错
+            OnHitBorder();
         }
     }
 

+ 4 - 2
Assets/Resources/Entities/EnemyHeavy.cs

@@ -10,14 +10,16 @@ public class EnemyHeavy : EnemyBase {
     internal override bool isPressingRight() => !movingLeft;
     private float turnCooldown = 0f;
     internal override void OnUpdate() {
+        base.OnUpdate();
+        if (!isLand) return;
         bool shouldTurn =
             (movingLeft && Physics2D.Linecast(transform.position, transform.position + Vector3.left * 0.5f, LayerMask.GetMask("Marker"))) ||
             (!movingLeft && Physics2D.Linecast(transform.position, transform.position + Vector3.right * 0.5f, LayerMask.GetMask("Marker")));
-        if (Mathf.Abs(rb.velocity.x) > 0.0001f && (rb.velocity.x > 0 == movingLeft)) shouldTurn = true;
+        if (Mathf.Abs(rb.velocity.x) > filpSpeed && (rb.velocity.x > 0 == movingLeft)) shouldTurn = true;
         turnCooldown -= Time.deltaTime;
         if (shouldTurn && turnCooldown <= 0f) {
             movingLeft = !movingLeft;
-            turnCooldown = 1f;
+            turnCooldown = 0.6f;
         }
     }
 

+ 4 - 2
Assets/Resources/Entities/EnemyMover.cs

@@ -11,14 +11,16 @@ public class EnemyMover : EnemyBase {
 
     private float turnCooldown = 0f;
     internal override void OnUpdate() {
+        base.OnUpdate();
+        if (!isLand) return;
         bool shouldTurn =
             (movingLeft && Physics2D.Linecast(transform.position, transform.position + new Vector3(-0.7f, 0.5f, 0f), LayerMask.GetMask("Marker"))) ||
             (!movingLeft && Physics2D.Linecast(transform.position, transform.position + new Vector3(0.7f, 0.5f, 0f), LayerMask.GetMask("Marker")));
-        if (Mathf.Abs(rb.velocity.x) > 0.0001f && (rb.velocity.x > 0 == movingLeft)) shouldTurn = true;
+        if (Mathf.Abs(rb.velocity.x) > filpSpeed && (rb.velocity.x > 0 == movingLeft)) shouldTurn = true;
         turnCooldown -= Time.deltaTime;
         if (shouldTurn && turnCooldown <= 0f) {
             movingLeft = !movingLeft;
-            turnCooldown = 1f;
+            turnCooldown = 0.6f;
         }
     }
 

+ 1 - 0
Assets/Resources/Entities/EnemyShooter.cs

@@ -13,6 +13,7 @@ public class EnemyShooter : EnemyBase {
     public float shootDelay = 5f, bulletSpeed = 1f; private float shootCooldown = 0f;
     public GameObject bullet;
     internal override void OnUpdate() {
+        base.OnUpdate();
         if (!isLand) return;
         shootCooldown += Time.deltaTime;
         if (shootCooldown < shootDelay) return;

+ 0 - 6
Assets/Resources/Entities/EntityBase.cs

@@ -65,12 +65,6 @@ public abstract class EntityBase : MonoBehaviour {
         }
         // ÉèÖÃ
         rb.velocity = new Vector2(speedX, speedY);
-        rb.mass = baseMass * (towardsRight ? 1.2f : 0.8f);
-        if (towardsRight != (Mathf.Abs(speedX) > filpSpeed ? speedX > 0 : towardsRight)) {
-            // ·´Ïò
-            towardsRight = !towardsRight;
-            transform.DOScaleX(towardsRight ? 1 : -1, 0.1f);
-        }
     }
     internal abstract bool isPressingLeft();
     internal abstract bool isPressingRight();

+ 10 - 1
Assets/Resources/Entities/Player.cs

@@ -9,6 +9,7 @@ public class Player : EntityBase {
     public static Player instance;
     private void Awake() {
         instance = this;
+        _hp = 3;
     }
 
     internal override bool isPressingCrouch() => InputM.GetKeyEvent(InputM.KeyType.Crouch);
@@ -18,7 +19,7 @@ public class Player : EntityBase {
 
     // 生命
     public RectTransform[] hearts;
-    private static int _hp = 3;
+    private static int _hp;
     public static int hp {
         get { return _hp; }
         set {
@@ -70,6 +71,11 @@ public class Player : EntityBase {
     public float bulletSpeed = 50f, bulletKnockback = 1f;
     public GameObject bullet; public TMPro.TextMeshProUGUI textBullet;
     internal override void OnUpdate() {
+        // 反向
+        if ((towardsRight && isPressingLeft()) || (!towardsRight && isPressingRight())) {
+            towardsRight = !towardsRight;
+            transform.DOScaleX(towardsRight ? 1 : -1, 0.15f);
+        }
         // 无敌
         if (resistanceTime > 0f) resistanceTime -= Time.deltaTime;
         // 治疗
@@ -108,6 +114,9 @@ public class Player : EntityBase {
         } else if (currentShootDelay > 0) {
             currentShootDelay -= Time.deltaTime;
         }
+        if (Input.GetKeyDown(InputM.GetKeyRaw(InputM.KeyType.Fire)) && currentBullet == 0 && currentReloadDelay <= 0f) {
+            //TODO: 弹药不足时的提示音效
+        }
         // 更新 UI
         textBullet.text = currentReloadDelay > 0f ?
             "".PadLeft(maxBullet - Mathf.RoundToInt(currentReloadDelay / reloadDelay * maxBullet), "|".ToCharArray().First()) :

+ 31 - 50
Assets/Resources/System/StoryM.cs

@@ -123,17 +123,17 @@ public class StoryM : MonoBehaviour {
         yield return new WaitForSeconds(1.5f);
         if (!noDifficulty) {
             _ = Modules.randomDefault.Next(0, 4) switch {
-                0 => SetStoryText("完了,寄咯!", ""),
-                1 => SetStoryText("哦吼,下辈子加油吧", ""),
-                2 => SetStoryText("诶,怎么回事?", ""),
-                3 => SetStoryText("还好没开极限模式……", ""),
+                0 => SetStoryText("完了,寄咯!", "Woops, you died!"),
+                1 => SetStoryText("哦吼,下辈子加油吧", "Ouch, work harder next life!"),
+                2 => SetStoryText("诶,怎么回事?", "Yo, what's happening?"),
+                3 => SetStoryText("还好没开极限模式……", "Luckily I didn't have hardcore mode on..."),
                 _ => throw new System.NotImplementedException(),
             };
         } else {
             _ = Modules.randomDefault.Next(0, 3) switch {
-                0 => SetStoryText("不是吧?这也能死?", ""),
-                1 => SetStoryText("你是特么故意的吧!", ""),
-                2 => SetStoryText("嗯?", ""),
+                0 => SetStoryText("不是吧?这也能死?", "What? How you die from that?"),
+                1 => SetStoryText("你是特么故意的吧!", "Excuse me? Are you doing this on purpose?"),
+                2 => SetStoryText("嗯?", "Hey!"),
                 _ => throw new System.NotImplementedException(),
             };
         }
@@ -164,16 +164,17 @@ public class StoryM : MonoBehaviour {
         yield return StartCoroutine(WaitForStoryText("游戏的按键操作写在了右上角,应该是个人都看得懂", "All control buttons are shown on the top-right corner. I bet nobody can't understand that."));
         SetStoryText("你不如先拿它们俩试试按键吧!", "Now, let's try some buttons with these two cute guys!");
         Spawn(Spawner.EnemyType.Mover, 2);
-        yield return StartCoroutine(WaitUntilClear(0, 10f, "快点把它干掉,然后才好继续……", "You have to defeat them to continue..."));
+        yield return StartCoroutine(WaitUntilClear(0, 10f, "快点把它干掉,然后才好继续……", "Come on! You have to defeat them to continue..."));
         stageCompleted = true;
     }
     IEnumerator Stage2() {
         arrowMax = 1; noDifficulty = false;
         Spawn(Spawner.EnemyType.Mover, 2);
-        yield return StartCoroutine(WaitForStoryText("哦,教程最后一条……", "Oh, a final reminder before I leave..."));
+        yield return StartCoroutine(WaitForStoryText("哦,教程最后一条……", "Oh, a final reminder before I leave...")); //TODO t 不会leave...
         Spawn(Spawner.EnemyType.Mover, 2);
-        yield return StartCoroutine(WaitForStoryText("弹药不够的时候记得换弹!", "Don't forget to reload the weapon before you run out of ammo!"));
+        yield return StartCoroutine(WaitForStoryText("弹药不够的时候记得右键换弹!", "Don't forget to reload the weapon before you run out of ammo!")); //TODO t
         Spawn(Spawner.EnemyType.Shooter, 1);
+        Spawn(Spawner.EnemyType.Mover, 1);
         SetStoryText("加油,教程结束了!", "There you go, that's end of the tutrial!");
         yield return StartCoroutine(WaitUntilClear(1, 10f, "仔细一看,这个角色的手上连枪都没有……", "Hmm... He does not even have a gun in his hand after a closer look."));
         if (Player.hp < 3) {
@@ -188,20 +189,20 @@ public class StoryM : MonoBehaviour {
         Spawn(Spawner.EnemyType.Mover, 1);
         yield return StartCoroutine(WaitForStoryText("说实话啊,我觉得这个游戏有点无聊", "To be honest, I think this game is kind of boring..."));
         Spawn(Spawner.EnemyType.Mover, 1);
-        yield return StartCoroutine(WaitForStoryText("我看了看,这游戏往后的新内容就只剩一种换皮怪了!", "Let's see... We only have one more skin for our monsters!"));
+        yield return StartCoroutine(WaitForStoryText("我看了看,这游戏往后的新内容就只剩一种换皮怪了!", "Let's see... We only have one more skin to replace our monsters!"));
         Spawn(Spawner.EnemyType.Mover, 1);
-        yield return StartCoroutine(WaitForStoryText("然后就是“在无限的怪物中生存下来吧!”的无尽模式……", "And then, all we have is endless mode of \"Survive with infinite monsters!\"....."));
+        yield return StartCoroutine(WaitForStoryText("然后就是“在无限的怪物中生存下来吧!”的无尽模式……", "And then, all we have is endless mode of \"Survive with infinite monsters!\"..."));
         Spawn(Spawner.EnemyType.Mover, 1);
         yield return StartCoroutine(WaitForStoryText("没有升级,没有装备,没有峰回路转的牛逼剧情", "No upgrade, no equipments, no twist to the plot or any boss to fight."));
         Spawn(Spawner.EnemyType.Shooter, 1);
         yield return StartCoroutine(WaitForStoryText("并且最重要的是,“丢骰子”的主题呢?", "And most importantly, where's our \"Roll of the Dice\" theme?"));
         yield return StartCoroutine(WaitForStoryText("骰子、骰子……哪儿有骰子……?", "Dice... Dice... Where is the dice...?"));
-        SetStoryText("这里一个骰子都没有!", "");
+        SetStoryText("这里一个骰子都没有!", "Not a single dice here!");
         arrowMax = 0;
         Spawn(Spawner.EnemyType.Mover, 1);
         yield return StartCoroutine(WaitUntilClear(0, 6f, "切题呢?作者到底咋想的?", "What's the point? What's wrong with this author?"));
         noDifficulty = true;
-        yield return StartCoroutine(WaitForStoryText("要不然这样,我们随便拿个东西,把它弄成骰子算了", "Hold on... How about we grab something and make it a dice?"));
+        yield return StartCoroutine(WaitForStoryText("要不然这样,我们随便拿个东西,把它弄成骰子算了", "How about we just grab something and make it a dice?"));
         yield return new WaitForSeconds(2f);
         InputM.DropDice(InputM.KeyType.Fire);
         SetStoryText("嘿,成了!", "Let's go!");
@@ -215,70 +216,50 @@ public class StoryM : MonoBehaviour {
     IEnumerator Stage5() {
         arrowMax = 0; noDifficulty = true;
         yield return new WaitForSeconds(1f);
-        yield return StartCoroutine(WaitForStoryText("噔噔噔……!", ""));
+        yield return StartCoroutine(WaitForStoryText("噔噔噔……!", "Pow!"));
         yield return new WaitForSeconds(7f);
-        yield return StartCoroutine(WaitForStoryText("你看,这就是天才制作的骰子", ""));
+        yield return StartCoroutine(WaitForStoryText("你看,这就是天才制作的骰子", "See, what a master piece!"));
         yield return new WaitForSeconds(1.5f);
         Spawn(Spawner.EnemyType.Mover, 1);
         if (Player.hp < 3) {
             Player.hp = 3;
-            yield return StartCoroutine(WaitForStoryText("让我帮你回个血,我们继续!", ""));
+            yield return StartCoroutine(WaitForStoryText("让我帮你回个血,我们继续!", "Let me heal you first and then keep going!"));
         } else {
-            yield return StartCoroutine(WaitForStoryText("来,我们继续!", ""));
+            yield return StartCoroutine(WaitForStoryText("来,我们继续!", "Let's keep going!"));
         }
         stageCompleted = true;
     }
     IEnumerator Stage6() {
         arrowMax = 1; noDifficulty = false;
         Spawn(Spawner.EnemyType.Mover, 3);
-        yield return StartCoroutine(WaitUntilClear(1, 8f, "骰子有六面,按键有六个,完美!", ""));
+        yield return StartCoroutine(WaitUntilClear(1, 8f, "骰子有六面,按键有六个,完美!", "Six sides to six buttons, perfect!"));
         Spawn(Spawner.EnemyType.Shooter, 1);
-        yield return StartCoroutine(WaitForStoryText("感觉如何?", ""));
+        yield return StartCoroutine(WaitForStoryText("感觉如何?", "How do you feel?"));
         arrowMax = 3;
-        yield return StartCoroutine(WaitForStoryText("是不是还想马上再来一颗?", ""));
+        yield return StartCoroutine(WaitForStoryText("是不是还想马上再来一颗?", "Want to have another dice now?"));
         Spawn(Spawner.EnemyType.Mover, 2);
-        yield return StartCoroutine(WaitForStoryText("但如果给你太多骰子,那岂不是显得它很……普通", ""));
+        yield return StartCoroutine(WaitForStoryText("但如果给你太多骰子,那岂不是显得它很……普通", "But if I give you too many dices, it will look... ordinary."));
         arrowMax = 1;
         Spawn(Spawner.EnemyType.Mover, 1);
-        yield return StartCoroutine(WaitForStoryText("不如让我们先等等,我先给你看看之前说的新敌人", ""));
-        SetStoryText("额……就是换皮的那个", "");
+        yield return StartCoroutine(WaitForStoryText("不如让我们先等等,我先给你看看之前说的新敌人", "Why don't we wait while I show you the new enemy we were talking about..."));
+        SetStoryText("额……就是换皮的那个", "Ugh... That monster with new skin!");
         Spawn(Spawner.EnemyType.Mover, 1);
-        yield return StartCoroutine(WaitUntilClear(1, 6f, "别抱太大期望就是了……", ""));
+        yield return StartCoroutine(WaitUntilClear(1, 6f, "别抱太大期望就是了……", "Just don't hope too much on that..."));
         stageCompleted = true;
     }
     IEnumerator Stage7() {
         arrowMax = 0; noDifficulty = false;
-        yield return StartCoroutine(WaitForStoryText("让我找找它在哪……", ""));
+        yield return StartCoroutine(WaitForStoryText("让我找找它在哪……", "Hold on... I can't find where it is."));
         yield return new WaitForSeconds(1.5f);
-        SetStoryText("卧槽!", "");
+        SetStoryText("卧槽!小心!", ""); // TODO: t
         for (int i = 0; i < Mathf.Max(6, 15 - deathInStage); i++) {
             Spawn(Spawner.EnemyType.Mover, 1);
             yield return new WaitForSeconds(0.4f);
         }
-        yield return StartCoroutine(WaitForStoryText("我把圆锯片的仓库弄漏了……", ""));
-        yield return StartCoroutine(WaitForStoryText("明明打算之后用来做点装饰的,唉", ""));
+        yield return StartCoroutine(WaitForStoryText("我把圆锯片的仓库弄漏了……", "I mix up the wrong repository for circular saw blades..."));
+        yield return StartCoroutine(WaitForStoryText("明明打算之后用来做点装饰的,唉", "Awww... I was gonna use it for decoration later."));
     }
-    //IEnumerator test() {
-    //    while (true) {
-    //        Spawn(Spawner.EnemyType.Mover, 3);
-    //        SetStoryText("先刷几个瞎晃悠的", "");
-    //        yield return new WaitForSeconds(3f);
-
-    //        Spawn(Spawner.EnemyType.Shooter);
-    //        SetStoryText("炮塔!", "");
-    //        yield return new WaitForSeconds(2f);
-
-    //        Spawn(Spawner.EnemyType.Heavy, 2);
-    //        SetStoryText("最后是两个贼硬的……", "");
-    //        yield return StartCoroutine(WaitUntilClear(2));
-
-    //        InputM.DropDice(Modules.RandomOne(InputM.keyTypes.ToList()));
-    //        SetStoryText("来一个骰子吧……?", "");
-    //        yield return StartCoroutine(WaitUntilPickDice());
-
-    //        yield return StartCoroutine(WaitForStoryText("准备好,下一轮要来了!", ""));
-    //    }
-    //}
+    
     int arrowMax = 0; float arrowTime = 4f;
     IEnumerator ArrowSpawner() {
         while (true) {

+ 70 - 326
Assets/Scenes/SceneMain.unity

@@ -1877,26 +1877,26 @@ CompositeCollider2D:
         Y: -30000100
       - X: -29999959
         Y: -30000100
-    - - X: 120000100
-        Y: -100000041
+    - - X: 99999900
+        Y: -69999959
+      - X: 99999959
+        Y: -69999900
+      - X: 120000041
+        Y: -69999900
+      - X: 120000100
+        Y: -69999959
       - X: 120000100
         Y: -70000100
       - X: 139999900
         Y: -70000100
       - X: 139999900
-        Y: -100000041
+        Y: -69999959
       - X: 139999959
-        Y: -100000100
-      - X: 150000041
-        Y: -100000100
-      - X: 150000100
-        Y: -100000041
-      - X: 150000100
-        Y: -80000100
+        Y: -69999900
       - X: 160000041
-        Y: -80000100
+        Y: -69999900
       - X: 160000100
-        Y: -80000041
+        Y: -69999959
       - X: 160000100
         Y: -70000100
       - X: 170000041
@@ -1917,57 +1917,81 @@ CompositeCollider2D:
         Y: -70000100
       - X: 99999900
         Y: -70000100
-      - X: 99999900
-        Y: -80000041
-      - X: 99999959
-        Y: -80000100
-      - X: 109999900
-        Y: -80000100
-      - X: 109999900
-        Y: -100000041
-      - X: 109999959
-        Y: -100000100
-      - X: 120000041
-        Y: -100000100
     - - X: -129999900
         Y: -100000041
       - X: -129999900
         Y: -90000100
-      - X: -109999959
+      - X: -130000041
         Y: -90000100
-      - X: -109999900
+      - X: -130000100
         Y: -90000041
-      - X: -109999900
-        Y: -80000100
+      - X: -130000100
+        Y: -79999959
+      - X: -130000041
+        Y: -79999900
+      - X: -129999900
+        Y: -79999900
+      - X: -129999900
+        Y: -70000100
+      - X: -110000100
+        Y: -70000100
+      - X: -110000100
+        Y: -69999959
+      - X: -110000041
+        Y: -69999900
       - X: -99999959
-        Y: -80000100
+        Y: -69999900
       - X: -99999900
-        Y: -80000041
+        Y: -69999959
       - X: -99999900
         Y: -70000100
       - X: -70000100
         Y: -70000100
       - X: -70000100
-        Y: -90000041
+        Y: -69999959
       - X: -70000041
-        Y: -90000100
+        Y: -69999900
+      - X: -59999959
+        Y: -69999900
+      - X: -59999900
+        Y: -69999959
+      - X: -59999900
+        Y: -70000100
+      - X: -20000100
+        Y: -70000100
+      - X: -20000100
+        Y: -69999959
+      - X: -20000041
+        Y: -69999900
       - X: -9999959
-        Y: -90000100
+        Y: -69999900
       - X: -9999900
-        Y: -90000041
+        Y: -69999959
       - X: -9999900
         Y: -70000100
       - X: 9999900
         Y: -70000100
       - X: 9999900
-        Y: -80000041
+        Y: -69999959
       - X: 9999959
-        Y: -80000100
-      - X: 19999900
-        Y: -80000100
-      - X: 19999900
+        Y: -69999900
+      - X: 20000041
+        Y: -69999900
+      - X: 20000100
+        Y: -69999959
+      - X: 20000100
+        Y: -70000100
+      - X: 39999900
+        Y: -70000100
+      - X: 39999900
+        Y: -79999900
+      - X: 40000041
+        Y: -79999900
+      - X: 40000100
+        Y: -79999959
+      - X: 40000100
         Y: -90000041
-      - X: 19999959
+      - X: 40000041
         Y: -90000100
       - X: 39999900
         Y: -90000100
@@ -2005,30 +2029,6 @@ CompositeCollider2D:
         Y: -100000100
       - X: -129999959
         Y: -100000100
-    - - X: 20000100
-        Y: -79999900
-      - X: 20000100
-        Y: -70000100
-      - X: 39999900
-        Y: -70000100
-      - X: 39999900
-        Y: -79999900
-    - - X: -59999900
-        Y: -79999900
-      - X: -59999900
-        Y: -70000100
-      - X: -20000100
-        Y: -70000100
-      - X: -20000100
-        Y: -79999900
-    - - X: -129999900
-        Y: -79999900
-      - X: -129999900
-        Y: -70000100
-      - X: -110000100
-        Y: -70000100
-      - X: -110000100
-        Y: -79999900
   m_CompositePaths:
     m_Paths:
     - - {x: -8.000026, y: 0.99999}
@@ -2052,28 +2052,8 @@ CompositeCollider2D:
       - {x: 1.99999, y: -2.0000253}
       - {x: 2.0000253, y: -3.00001}
     - - {x: -13.000026, y: -10.00001}
-      - {x: -12.999961, y: -9.00001}
-      - {x: -10.99999, y: -8.999974}
-      - {x: -11.000019, y: -7.9999905}
-      - {x: -12.99999, y: -7.999961}
       - {x: -12.999961, y: -7.0000095}
-      - {x: -11.00001, y: -7.000039}
-      - {x: -10.999981, y: -8.00001}
-      - {x: -9.99999, y: -7.9999747}
-      - {x: -9.999961, y: -7.0000095}
-      - {x: -7.0000095, y: -7.000039}
-      - {x: -6.9999743, y: -9.00001}
-      - {x: -0.99999, y: -8.999974}
-      - {x: -0.9999606, y: -7.0000095}
-      - {x: 0.99999, y: -7.000039}
-      - {x: 1.0000252, y: -8.00001}
-      - {x: 2.00001, y: -7.999981}
-      - {x: 2.0000393, y: -7.0000095}
       - {x: 3.99999, y: -7.000039}
-      - {x: 3.999961, y: -7.9999905}
-      - {x: 1.99999, y: -8.000019}
-      - {x: 2.0000253, y: -9.00001}
-      - {x: 3.99999, y: -9.000039}
       - {x: 4.0000253, y: -10.00001}
       - {x: 5.00001, y: -9.999974}
       - {x: 5.000039, y: -7.0000095}
@@ -2083,26 +2063,10 @@ CompositeCollider2D:
       - {x: -15.999974, y: -7.0000095}
       - {x: -14.00001, y: -7.000039}
       - {x: -13.999974, y: -10.00001}
-    - - {x: 11.999974, y: -10.00001}
-      - {x: 12.000039, y: -7.0000095}
-      - {x: 13.99999, y: -7.000039}
-      - {x: 14.000026, y: -10.00001}
-      - {x: 15.00001, y: -9.999974}
-      - {x: 15.00004, y: -8.00001}
-      - {x: 16.00001, y: -7.9999747}
-      - {x: 16.00004, y: -7.0000095}
-      - {x: 17.00001, y: -6.9999743}
+    - - {x: 16.99998, y: -7.0000043}
       - {x: 16.999975, y: -5.99999}
       - {x: 8.99999, y: -6.0000253}
-      - {x: 9.000026, y: -7.0000095}
-      - {x: 9.99999, y: -7.000039}
-      - {x: 10.000026, y: -8.00001}
-      - {x: 10.99999, y: -8.000039}
-      - {x: 11.000026, y: -10.00001}
-    - - {x: -2.00001, y: -7.999961}
-      - {x: -5.99999, y: -7.999961}
-      - {x: -5.999961, y: -7.0000095}
-      - {x: -2.00001, y: -7.000039}
+      - {x: 9.000019, y: -7.0000043}
   m_VertexDistance: 0.0005
   m_OffsetDistance: 0.00005
 --- !u!19719996 &558216836
@@ -2220,26 +2184,6 @@ Tilemap:
       m_TileObjectToInstantiateIndex: 65535
       dummyAlignment: 0
       m_AllTileFlags: 2147483649
-  - first: {x: 11, y: -10, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: 14, y: -10, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
   - first: {x: -14, y: -9, z: 0}
     second:
       serializedVersion: 2
@@ -2250,106 +2194,6 @@ Tilemap:
       m_TileObjectToInstantiateIndex: 65535
       dummyAlignment: 0
       m_AllTileFlags: 2147483649
-  - first: {x: -13, y: -9, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: -12, y: -9, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: -7, y: -9, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: -6, y: -9, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: -5, y: -9, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: -4, y: -9, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: -3, y: -9, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: -2, y: -9, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: 2, y: -9, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: 3, y: -9, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
   - first: {x: 4, y: -9, z: 0}
     second:
       serializedVersion: 2
@@ -2360,26 +2204,6 @@ Tilemap:
       m_TileObjectToInstantiateIndex: 65535
       dummyAlignment: 0
       m_AllTileFlags: 2147483649
-  - first: {x: 11, y: -9, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: 14, y: -9, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
   - first: {x: -14, y: -8, z: 0}
     second:
       serializedVersion: 2
@@ -2390,46 +2214,6 @@ Tilemap:
       m_TileObjectToInstantiateIndex: 65535
       dummyAlignment: 0
       m_AllTileFlags: 2147483649
-  - first: {x: -11, y: -8, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: -7, y: -8, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: -2, y: -8, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: 1, y: -8, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
   - first: {x: 4, y: -8, z: 0}
     second:
       serializedVersion: 2
@@ -2440,46 +2224,6 @@ Tilemap:
       m_TileObjectToInstantiateIndex: 65535
       dummyAlignment: 0
       m_AllTileFlags: 2147483649
-  - first: {x: 10, y: -8, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: 11, y: -8, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: 14, y: -8, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
-  - first: {x: 15, y: -8, z: 0}
-    second:
-      serializedVersion: 2
-      m_TileIndex: 5
-      m_TileSpriteIndex: 4294967295
-      m_TileMatrixIndex: 0
-      m_TileColorIndex: 0
-      m_TileObjectToInstantiateIndex: 65535
-      dummyAlignment: 0
-      m_AllTileFlags: 2147483649
   - first: {x: -16, y: -7, z: 0}
     second:
       serializedVersion: 2
@@ -3152,11 +2896,11 @@ Tilemap:
     m_Data: {fileID: 0}
   - m_RefCount: 0
     m_Data: {fileID: 0}
-  - m_RefCount: 94
+  - m_RefCount: 72
     m_Data: {fileID: 11400000, guid: 8415aca5ed2fabd418fa41366a33fd69, type: 2}
   m_TileSpriteArray: []
   m_TileMatrixArray:
-  - m_RefCount: 94
+  - m_RefCount: 72
     m_Data:
       e00: 1
       e01: 0
@@ -3175,7 +2919,7 @@ Tilemap:
       e32: 0
       e33: 1
   m_TileColorArray:
-  - m_RefCount: 94
+  - m_RefCount: 72
     m_Data: {r: 1, g: 1, b: 1, a: 1}
   m_TileObjectToInstantiateArray: []
   m_AnimationFrameRate: 1
@@ -10794,7 +10538,7 @@ AudioSource:
   OutputAudioMixerGroup: {fileID: 0}
   m_audioClip: {fileID: 8300000, guid: fad5f40108e03ec4dbe42eb884f842c1, type: 3}
   m_PlayOnAwake: 1
-  m_Volume: 1
+  m_Volume: 0.2
   m_Pitch: 1
   Loop: 1
   Mute: 0