From a15fee01676c0e8d886169a32692bd305823c772 Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Sun, 29 Oct 2023 10:38:46 +0800 Subject: *misc --- "Doc/ROUNDS\345\210\206\346\236\220.xlsx" | Bin 6075929 -> 9613266 bytes ROUNDS/.vs/ROUNDS/DesignTimeBuild/.dtbcache.v2 | Bin 116511 -> 116543 bytes ROUNDS/.vs/ROUNDS/v17/.suo | Bin 155648 -> 172032 bytes ROUNDS/_Player/CharacterData.cs | 503 +++++++++++---------- ROUNDS/_Player/Gravity.cs | 1 + ROUNDS/_Player/PlayerCollision.cs | 100 ++-- ROUNDS/_Player/PlayerVelocity.cs | 12 +- .../bin/Debug/netstandard2.1/Assembly-CSharp.dll | Bin 909824 -> 908288 bytes .../bin/Debug/netstandard2.1/Assembly-CSharp.pdb | Bin 486972 -> 486512 bytes .../obj/Debug/netstandard2.1/Assembly-CSharp.dll | Bin 909824 -> 908288 bytes .../obj/Debug/netstandard2.1/Assembly-CSharp.pdb | Bin 486972 -> 486512 bytes 11 files changed, 333 insertions(+), 283 deletions(-) diff --git "a/Doc/ROUNDS\345\210\206\346\236\220.xlsx" "b/Doc/ROUNDS\345\210\206\346\236\220.xlsx" index 6a3132f..9273472 100644 Binary files "a/Doc/ROUNDS\345\210\206\346\236\220.xlsx" and "b/Doc/ROUNDS\345\210\206\346\236\220.xlsx" differ diff --git a/ROUNDS/.vs/ROUNDS/DesignTimeBuild/.dtbcache.v2 b/ROUNDS/.vs/ROUNDS/DesignTimeBuild/.dtbcache.v2 index 62e3f8e..de301f8 100644 Binary files a/ROUNDS/.vs/ROUNDS/DesignTimeBuild/.dtbcache.v2 and b/ROUNDS/.vs/ROUNDS/DesignTimeBuild/.dtbcache.v2 differ diff --git a/ROUNDS/.vs/ROUNDS/v17/.suo b/ROUNDS/.vs/ROUNDS/v17/.suo index db81732..8011a78 100644 Binary files a/ROUNDS/.vs/ROUNDS/v17/.suo and b/ROUNDS/.vs/ROUNDS/v17/.suo differ diff --git a/ROUNDS/_Player/CharacterData.cs b/ROUNDS/_Player/CharacterData.cs index 394fe79..be9f482 100644 --- a/ROUNDS/_Player/CharacterData.cs +++ b/ROUNDS/_Player/CharacterData.cs @@ -6,62 +6,60 @@ using UnityEngine.Serialization; public class CharacterData : MonoBehaviour { - public Vector3 aimDirection; + public Vector3 aimDirection; - public List currentCards; + public List currentCards; - public PlayerActions playerActions; + public float sinceGroundedMultiplierWhenWallGrab = 0.2f; - public ParticleSystem[] landParts; + public PlayerActions playerActions; - public int jumps = 1; + public ParticleSystem[] landParts; - public int currentJumps = 1; + public int jumps = 1; - public bool isPlaying; + public int currentJumps = 1; - public bool dead; + public bool isPlaying; - public bool isStunned; + public bool dead; - public bool isSilenced; + public bool isStunned; - public float stunTime; + public bool isSilenced; - public float silenceTime; + public float stunTime; - public float health = 100f; + public float silenceTime; - public float maxHealth = 100f; + public float health = 100f; - public AnimationCurve slamCurve; + public float maxHealth = 100f; - public Vector3 wallPos; + public AnimationCurve slamCurve; - public Vector2 wallNormal; + public Vector3 wallPos; - public Transform hand; + public Vector2 wallNormal; - public float sinceWallGrab = float.PositiveInfinity; + public Vector3 groundPos; - public bool isWallGrab; + public Transform hand; - public float wallDistance = 1f; + public float sinceWallGrab = float.PositiveInfinity; - private bool wasWallGrabLastFrame; + public bool isWallGrab; - #region Ground + public float wallDistance = 1f; - public Vector3 groundPos; + private bool wasWallGrabLastFrame; public float sinceGrounded; - public float sinceGroundedMultiplierWhenWallGrab = 0.2f; - // 经过测试,isGrounded可以指示是否着地 [FormerlySerializedAs("isGrounded")] - private bool m_IsGrounded = true; - private bool m_preGrounded = true; + private bool m_IsGrounded = true; + private bool m_preGrounded = true; public bool isGrounded { @@ -77,180 +75,209 @@ public class CharacterData : MonoBehaviour } } - private bool wasGroundedLastFrame = true; + //#region Ground + + //public Vector3 groundPos; + + //public float sinceGrounded; + + //public float sinceGroundedMultiplierWhenWallGrab = 0.2f; + + //// 经过测试,isGrounded可以指示是否着地 + //[FormerlySerializedAs("isGrounded")] + //private bool m_IsGrounded = true; + //private bool m_preGrounded = true; + + //public bool isGrounded + //{ + // get { return m_IsGrounded; } + // set + // { + // m_IsGrounded = value; + // if (m_preGrounded != value) + // { + // //this.gameObject.name = "Player_" + value; + // } + // m_preGrounded = value; + // } + //} + + //private bool wasGroundedLastFrame = true; + + //#endregion - #endregion + private bool wasGroundedLastFrame = true; public Player player; - public float sinceJump = 1f; + public float sinceJump = 1f; + + public PlayerVelocity playerVel; + + public HealthHandler healthHandler; + + public GeneralInput input; + + public PlayerMovement movement; + + public PlayerJump jump; + + public Block block; + + public CharacterStatModifiers stats; + + public WeaponHandler weaponHandler; + + public StunHandler stunHandler; + + public SilenceHandler silenceHandler; + + public Player lastSourceOfDamage; + + public Player master; - public PlayerVelocity playerVel; + public Player lastDamagedPlayer; - public HealthHandler healthHandler; + public Collider2D mainCol; - public GeneralInput input; + public PlayerSounds playerSounds; - public PlayerMovement movement; + private Transform wobblePos; - public PlayerJump jump; + private LayerMask groundMask; - public Block block; + public PhotonView view; + + private CrownPos crownPos; + + public Rigidbody2D standOnRig; + + public Action TouchGroundAction; + + public Action TouchWallAction; + + public float HealthPercentage + { + get + { + return health / maxHealth; + } + internal set + { + } + } + + private void Awake() + { + crownPos = GetComponentInChildren(); + view = GetComponent(); + mainCol = GetComponent(); + wobblePos = GetComponentInChildren().transform; + stats = GetComponent(); + player = GetComponent(); + weaponHandler = GetComponent(); + block = GetComponent(); + input = GetComponent(); + movement = GetComponent(); + jump = GetComponent(); + stunHandler = GetComponent(); + silenceHandler = GetComponent(); + hand = GetComponentInChildren().transform; + playerVel = GetComponent(); + healthHandler = GetComponent(); + playerSounds = GetComponent(); + } + + internal Vector3 GetCrownPos() + { + if ((bool)crownPos) + { + return crownPos.transform.position + Vector3.up * crownPos.GetOffset(); + } + Debug.LogError("NO CROWN POS!?"); + return Vector3.up * 1000f; + } + + private void Start() + { + groundMask = LayerMask.GetMask("Default"); + if (!view.IsMine) + { + PlayerManager.RegisterPlayer(player); + } + } + + private void Update() + { + if (!playerVel.simulated) + { + sinceGrounded = 0f; + } + sinceJump += TimeHandler.deltaTime; + Wall(); + } - public CharacterStatModifiers stats; + private void FixedUpdate() + { + Ground(); + } - public WeaponHandler weaponHandler; + private void Ground() + { + if (!isPlaying) + { + return; + } + if (!isGrounded) + { + sinceGrounded += TimeHandler.fixedDeltaTime * ((isWallGrab && wallDistance < 0.7f) ? sinceGroundedMultiplierWhenWallGrab : 1f); + if (sinceGrounded < 0f) + { + sinceGrounded = Mathf.Lerp(sinceGrounded, 0f, TimeHandler.fixedDeltaTime * 15f); + } + } + if (!wasGroundedLastFrame) + { + isGrounded = false; + } + wasGroundedLastFrame = false; + } - public StunHandler stunHandler; + private void Wall() + { + if (!isWallGrab) + { + sinceWallGrab += TimeHandler.deltaTime; + } + if (!wasWallGrabLastFrame) + { + isWallGrab = false; + } + wasWallGrabLastFrame = false; + } - public SilenceHandler silenceHandler; + // 比较重要 + // 有且只有这个方法设置了 isGrounded = true + public void TouchGround(Vector3 pos, Vector3 groundNormal, Rigidbody2D groundRig, Transform groundTransform = null) + { + //this.gameObject.name = "Player_" + pos.ToString() + "_" + (groundTransform != null ? groundTransform.gameObject.name : "null"); - public Player lastSourceOfDamage; - - public Player master; - - public Player lastDamagedPlayer; - - public Collider2D mainCol; - - public PlayerSounds playerSounds; - - private Transform wobblePos; - - private LayerMask groundMask; - - public PhotonView view; - - private CrownPos crownPos; - - public Rigidbody2D standOnRig; - - public Action TouchGroundAction; - - public Action TouchWallAction; - - public float HealthPercentage - { - get - { - return health / maxHealth; - } - internal set - { - } - } - - private void Awake() - { - crownPos = GetComponentInChildren(); - view = GetComponent(); - mainCol = GetComponent(); - wobblePos = GetComponentInChildren().transform; - stats = GetComponent(); - player = GetComponent(); - weaponHandler = GetComponent(); - block = GetComponent(); - input = GetComponent(); - movement = GetComponent(); - jump = GetComponent(); - stunHandler = GetComponent(); - silenceHandler = GetComponent(); - hand = GetComponentInChildren().transform; - playerVel = GetComponent(); - healthHandler = GetComponent(); - playerSounds = GetComponent(); - } - - internal Vector3 GetCrownPos() - { - if ((bool)crownPos) - { - return crownPos.transform.position + Vector3.up * crownPos.GetOffset(); - } - Debug.LogError("NO CROWN POS!?"); - return Vector3.up * 1000f; - } - - private void Start() - { - groundMask = LayerMask.GetMask("Default"); - if (!view.IsMine) - { - PlayerManager.RegisterPlayer(player); - } - } - - private void Update() - { - if (!playerVel.simulated) - { - sinceGrounded = 0f; - } - sinceJump += TimeHandler.deltaTime; - Wall(); - } - - private void FixedUpdate() - { - Ground(); - } - - private void Ground() - { - if (!isPlaying) - { - return; - } - if (!isGrounded) - { - sinceGrounded += TimeHandler.fixedDeltaTime * ((isWallGrab && wallDistance < 0.7f) ? sinceGroundedMultiplierWhenWallGrab : 1f); - if (sinceGrounded < 0f) - { - sinceGrounded = Mathf.Lerp(sinceGrounded, 0f, TimeHandler.fixedDeltaTime * 15f); - } - } - if (!wasGroundedLastFrame) - { - isGrounded = false; - } - wasGroundedLastFrame = false; - } - - private void Wall() - { - if (!isWallGrab) - { - sinceWallGrab += TimeHandler.deltaTime; - } - if (!wasWallGrabLastFrame) - { - isWallGrab = false; - } - wasWallGrabLastFrame = false; - } - - // 比较重要 - // 有且只有这个方法设置了 isGrounded = true - public void TouchGround(Vector3 pos, Vector3 groundNormal, Rigidbody2D groundRig, Transform groundTransform = null) - { - this.gameObject.name = "Player_" + pos.ToString() + "_" + (groundTransform != null ? groundTransform.gameObject.name : "null"); - - if (sinceJump > 0.2f) - { - currentJumps = jumps; - } - if (TouchGroundAction != null) - { - TouchGroundAction(sinceGrounded, pos, groundNormal, groundTransform); - } - if (groundRig == null) - { - standOnRig = null; - } - else if (!groundRig.GetComponent()) - { - standOnRig = groundRig; - } + if (sinceJump > 0.2f) + { + currentJumps = jumps; + } + if (TouchGroundAction != null) + { + TouchGroundAction(sinceGrounded, pos, groundNormal, groundTransform); + } + if (groundRig == null) + { + standOnRig = null; + } + else if (!groundRig.GetComponent()) + { + standOnRig = groundRig; + } if (playerVel.velocity.y < -20f && !isGrounded) { for (int i = 0; i < landParts.Length; i++) @@ -263,55 +290,55 @@ public class CharacterData : MonoBehaviour GamefeelManager.instance.AddGameFeel(Vector2.down * Mathf.Clamp((sinceGrounded - 0.5f) * 1f, 0f, 4f)); } groundPos = pos; - wasGroundedLastFrame = true; - isGrounded = true; - sinceGrounded = 0f; - } - - public void TouchWall(Vector2 normal, Vector3 pos) - { - if (isGrounded) - { - return; - } - wallNormal = normal; - wallPos = pos; - groundPos = pos; - wallDistance = Vector2.Distance(base.transform.position, pos); - if (!(sinceJump < 0.15f)) - { - currentJumps = jumps; - if (TouchWallAction != null) - { - TouchWallAction(sinceWallGrab, pos, normal); - } - _ = sinceWallGrab; - _ = 0.15f; - sinceWallGrab = 0f; - wasWallGrabLastFrame = true; - isWallGrab = true; - } - } - - public bool ThereIsGroundBelow(Vector3 pos, float range = 5f) - { - RaycastHit2D raycastHit2D = Physics2D.Raycast(pos, Vector2.down, range, groundMask); - if ((bool)raycastHit2D.transform && raycastHit2D.distance > 0.1f) - { - return true; - } - return false; - } - - public void SetAI(Player aiMaster = null) - { - master = aiMaster; - input.controlledElseWhere = true; - GetComponent().enabled = true; - } - - public void SetWobbleObjectChild(Transform obj) - { - obj.transform.SetParent(wobblePos, worldPositionStays: true); - } + wasGroundedLastFrame = true; + isGrounded = true; + sinceGrounded = 0f; + } + + public void TouchWall(Vector2 normal, Vector3 pos) + { + if (isGrounded) + { + return; + } + wallNormal = normal; + wallPos = pos; + groundPos = pos; + wallDistance = Vector2.Distance(base.transform.position, pos); + if (!(sinceJump < 0.15f)) + { + currentJumps = jumps; + if (TouchWallAction != null) + { + TouchWallAction(sinceWallGrab, pos, normal); + } + _ = sinceWallGrab; + _ = 0.15f; + sinceWallGrab = 0f; + wasWallGrabLastFrame = true; + isWallGrab = true; + } + } + + public bool ThereIsGroundBelow(Vector3 pos, float range = 5f) + { + RaycastHit2D raycastHit2D = Physics2D.Raycast(pos, Vector2.down, range, groundMask); + if ((bool)raycastHit2D.transform && raycastHit2D.distance > 0.1f) + { + return true; + } + return false; + } + + public void SetAI(Player aiMaster = null) + { + master = aiMaster; + input.controlledElseWhere = true; + GetComponent().enabled = true; + } + + public void SetWobbleObjectChild(Transform obj) + { + obj.transform.SetParent(wobblePos, worldPositionStays: true); + } } diff --git a/ROUNDS/_Player/Gravity.cs b/ROUNDS/_Player/Gravity.cs index 1d9cb83..c6fc7d3 100644 --- a/ROUNDS/_Player/Gravity.cs +++ b/ROUNDS/_Player/Gravity.cs @@ -1,5 +1,6 @@ using UnityEngine; +//施加重力 public class Gravity : MonoBehaviour { public float gravityForce; diff --git a/ROUNDS/_Player/PlayerCollision.cs b/ROUNDS/_Player/PlayerCollision.cs index c998a15..612f8e0 100644 --- a/ROUNDS/_Player/PlayerCollision.cs +++ b/ROUNDS/_Player/PlayerCollision.cs @@ -4,6 +4,7 @@ using Photon.Pun; using Sonigon; using UnityEngine; +//重要 public class PlayerCollision : MonoBehaviour { [Header("Sounds")] @@ -47,77 +48,90 @@ public class PlayerCollision : MonoBehaviour // 经过测试,注释掉fixedupdate,有点影响地面碰撞,但还是可以站在地面上 + // PlayerVelocity强制设置一个向下的速度后,角色并没有陷到地面以下,是因为这里的碰撞检测。如果注释掉,角色就会陷入地面以下 + private void FixedUpdate() { - if (checkForGoThroughWall && ignoreWallFor <= 0) - { - RaycastHit2D raycastHit2D = default(RaycastHit2D); - RaycastHit2D[] array = Physics2D.RaycastAll(lastPos, (Vector2)base.transform.position - lastPos, Vector2.Distance(base.transform.position, lastPos), mask); - for (int i = 0; i < array.Length; i++) - { - if (!(array[i].transform.root == base.transform.root)) - { - Debug.DrawLine(lastPos, array[i].point, Color.green, 1f); - if (!(Vector2.Angle(array[i].normal, (Vector2)base.transform.position - lastPos) < 90f) && (!raycastHit2D.transform || array[i].distance < raycastHit2D.distance)) - { - raycastHit2D = array[i]; - } - } - } - if ((bool)raycastHit2D) - { - base.transform.position = raycastHit2D.point + raycastHit2D.normal * 0.5f; - if (data.healthHandler.flyingFor > 0f) - { - DoBounce(raycastHit2D); - } - } - } - ignoreWallFor--; + #region 检测墙,和地面无关(好像也有关) + if (checkForGoThroughWall && ignoreWallFor <= 0) + { + RaycastHit2D raycastHit2D = default(RaycastHit2D); + RaycastHit2D[] array = Physics2D.RaycastAll(lastPos, (Vector2)base.transform.position - lastPos, Vector2.Distance(base.transform.position, lastPos), mask); + for (int i = 0; i < array.Length; i++) + { + if (!(array[i].transform.root == base.transform.root)) + { + Debug.DrawLine(lastPos, array[i].point, Color.green, 1f); + if (!(Vector2.Angle(array[i].normal, (Vector2)base.transform.position - lastPos) < 90f) && (!raycastHit2D.transform || array[i].distance < raycastHit2D.distance)) + { + raycastHit2D = array[i]; + } + } + } + if ((bool)raycastHit2D) + { + base.transform.position = raycastHit2D.point + raycastHit2D.normal * 0.5f; + if (data.healthHandler.flyingFor > 0f) + { + DoBounce(raycastHit2D); + } + } + } + #endregion + + #region 碰撞检测 + ignoreWallFor--; lastPos = base.transform.position; - float num = cirCol.radius * base.transform.localScale.x; - float num2 = cirCol.radius * base.transform.localScale.x * 0.75f; - RaycastHit2D[] array2 = Physics2D.CircleCastAll(lastPos, num, (Vector2)base.transform.position - lastPos, Vector2.Distance(base.transform.position, lastPos), mask); + float realRadius = cirCol.radius * base.transform.localScale.x; + float innerRadius = cirCol.radius * base.transform.localScale.x * 0.75f; + // 以circlecollider的位置和大小为参考做碰撞检测 + RaycastHit2D[] array2 = Physics2D.CircleCastAll(lastPos, realRadius, (Vector2)base.transform.position - lastPos, Vector2.Distance(base.transform.position, lastPos), mask); for (int j = 0; j < array2.Length; j++) { - if (array2[j].transform.root == base.transform.root) + if (array2[j].transform.root == base.transform.root) // 自己和自己碰撞 { continue; } - Vector2 vector = base.transform.position; + Vector2 characterPosition = base.transform.position; Vector2 point = array2[j].point; - float num3 = Vector2.Distance(vector, point); - Vector2 normalized = (vector - point).normalized; - float value = num + (0f - num3); - float value2 = num2 + (0f - num3); - value = Mathf.Clamp(value, 0f, 10f); - value2 = Mathf.Clamp(value2, 0f, 10f); + float distToHitpoint = Vector2.Distance(characterPosition, point); + Vector2 dirFromHitpoint = (characterPosition - point).normalized; + float realPushAmount = realRadius + (0f - distToHitpoint); + float innerPushAmount = innerRadius + (0f - distToHitpoint); + realPushAmount = Mathf.Clamp(realPushAmount, 0f, 10f); + innerPushAmount = Mathf.Clamp(innerPushAmount, 0f, 10f); + NetworkPhysicsObject component = array2[j].transform.GetComponent(); if ((bool)component) { component.Push(data); } + if (vel.simulated || !vel.isKinematic) { - vel.transform.position += (Vector3)normalized * value2; - if (Mathf.Abs(normalized.y) < 0.45f && Mathf.Abs(data.input.direction.x) > 0.1f && Vector3.Angle(data.input.direction, normalized) > 90f) + vel.transform.position += (Vector3)dirFromHitpoint * innerPushAmount; // 把角色往返方向推 + if (Mathf.Abs(dirFromHitpoint.y) < 0.45f && Mathf.Abs(data.input.direction.x) > 0.1f && Vector3.Angle(data.input.direction, dirFromHitpoint) > 90f) { - data.TouchWall(normalized, point); + data.TouchWall(dirFromHitpoint, point); } - vel.velocity += normalized * value * 10f * TimeHandler.timeScale; - vel.velocity -= vel.velocity * value * 1f * TimeHandler.timeScale; + vel.velocity += dirFromHitpoint * realPushAmount * 10f * TimeHandler.timeScale; + vel.velocity -= vel.velocity * realPushAmount * 1f * TimeHandler.timeScale; } + Player componentInParent = array2[j].transform.GetComponentInParent(); if (componentInParent != null && collideWithPlayerAction != null) { - collideWithPlayerAction(point, value * normalized, componentInParent); + collideWithPlayerAction(point, realPushAmount * dirFromHitpoint, componentInParent); } + if (data.healthHandler.flyingFor > 0f) { DoBounce(array2[j]); } } - lastPos = base.transform.position; + #endregion + + lastPos = base.transform.position; } private void DoBounce(RaycastHit2D hit) diff --git a/ROUNDS/_Player/PlayerVelocity.cs b/ROUNDS/_Player/PlayerVelocity.cs index 47822f6..9355a5d 100644 --- a/ROUNDS/_Player/PlayerVelocity.cs +++ b/ROUNDS/_Player/PlayerVelocity.cs @@ -32,11 +32,14 @@ public class PlayerVelocity : MonoBehaviour private void Start() { - data = GetComponent(); + data = GetComponent(); } private void FixedUpdate() { + bool bAsign = false; // 为true + //velocity = new Vector2(velocity.x, -0.3f); + Vector2 preVel = velocity; if (data.isPlaying) { if (isKinematic) @@ -45,11 +48,16 @@ public class PlayerVelocity : MonoBehaviour } if (simulated && !isKinematic) { - velocity += Vector2.down * Time.fixedDeltaTime * TimeHandler.timeScale * 20f; + bAsign = true;//确实进来了 + velocity += Vector2.down * Time.fixedDeltaTime * TimeHandler.timeScale * 20f; + base.transform.position += Time.fixedDeltaTime * TimeHandler.timeScale * (Vector3)velocity; base.transform.position = new Vector3(base.transform.position.x, base.transform.position.y, 0f); } } + + // 静止的时候速度为0,0 + this.gameObject.name = "Player_" + bAsign + "_"+ velocity + "_"+ preVel; } internal void AddForce(Vector2 force, ForceMode2D forceMode) diff --git a/ROUNDS/bin/Debug/netstandard2.1/Assembly-CSharp.dll b/ROUNDS/bin/Debug/netstandard2.1/Assembly-CSharp.dll index 98dcc58..2105001 100644 Binary files a/ROUNDS/bin/Debug/netstandard2.1/Assembly-CSharp.dll and b/ROUNDS/bin/Debug/netstandard2.1/Assembly-CSharp.dll differ diff --git a/ROUNDS/bin/Debug/netstandard2.1/Assembly-CSharp.pdb b/ROUNDS/bin/Debug/netstandard2.1/Assembly-CSharp.pdb index 25eda73..50af66e 100644 Binary files a/ROUNDS/bin/Debug/netstandard2.1/Assembly-CSharp.pdb and b/ROUNDS/bin/Debug/netstandard2.1/Assembly-CSharp.pdb differ diff --git a/ROUNDS/obj/Debug/netstandard2.1/Assembly-CSharp.dll b/ROUNDS/obj/Debug/netstandard2.1/Assembly-CSharp.dll index 98dcc58..2105001 100644 Binary files a/ROUNDS/obj/Debug/netstandard2.1/Assembly-CSharp.dll and b/ROUNDS/obj/Debug/netstandard2.1/Assembly-CSharp.dll differ diff --git a/ROUNDS/obj/Debug/netstandard2.1/Assembly-CSharp.pdb b/ROUNDS/obj/Debug/netstandard2.1/Assembly-CSharp.pdb index 25eda73..50af66e 100644 Binary files a/ROUNDS/obj/Debug/netstandard2.1/Assembly-CSharp.pdb and b/ROUNDS/obj/Debug/netstandard2.1/Assembly-CSharp.pdb differ -- cgit v1.1-26-g67d0