Skip to content

Commit

Permalink
wonderful mjolnir
Browse files Browse the repository at this point in the history
  • Loading branch information
salt26 committed Jul 15, 2023
1 parent 0979228 commit 591f808
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 9 deletions.
3 changes: 2 additions & 1 deletion Assets/Scenes/Boss_AJS1.unity
Original file line number Diff line number Diff line change
Expand Up @@ -1128,7 +1128,7 @@ MonoBehaviour:
hitFan120Prefab: {fileID: 8185774758853152804, guid: 5e27c890947f92240b411863eaa761e8, type: 3}
hitAreaParent: {fileID: 232505336}
mjolnir: {fileID: 372160546}
mjolnirSpeed: 10
mjolnirSpeed: 30
--- !u!1 &372160546
GameObject:
m_ObjectHideFlags: 0
Expand Down Expand Up @@ -5187,6 +5187,7 @@ MonoBehaviour:
- tenacity
- alertness
_bookDB: {fileID: 4900000, guid: cc436d12d0e8c7647835c7a7941e395f, type: 3}
bookDescription:
--- !u!1 &1638829294
GameObject:
m_ObjectHideFlags: 0
Expand Down
4 changes: 2 additions & 2 deletions Assets/Scripts/Boss/Boss.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ public void GetDamaged(int attackBookLevel)
}
}

protected void InstantiateHitBox(Vector3 origin, Vector3 destination, float width = 1f)
protected void InstantiateHitBox(Vector3 origin, Vector3 destination, float width = 1f, float length = 28.4f)
{
Debug.Log(origin + ", " + destination);
GameObject hit = Instantiate(hitBoxPrefab, hitAreaParent.transform);
hit.transform.localScale = new Vector3(width, hit.transform.localScale.y, 1f);
hit.transform.localScale = new Vector3(width, length, 1f);
hit.transform.position = origin;
Vector3 v = destination - origin;
hit.transform.localRotation = Quaternion.Euler(0f, 0f, 270f + Mathf.Atan2(v.y, v.x) / Mathf.PI * 180f);
Expand Down
15 changes: 9 additions & 6 deletions Assets/Scripts/Boss/Thor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ public IEnumerator Pattern1()
// 얼만큼 기다려야 하는가: 0.5초 - effect1
yield return new WaitForSeconds(0.5f - effect1);

// HitBoxAreaWarning을 (망치 앞 -> playerPos)과 네 외벽 근처에 생성
InstantiateHitBox(mjolnir.transform.localPosition, playerPos, 0.5f);

mjolnir.transform.localPosition = transform.localPosition;

// HitBoxAreaWarning을 (망치 앞 -> playerPos)과 네 외벽 근처에 생성
InstantiateHitBox(mjolnir.transform.localPosition, playerPos, 1f);

Vector3 v = playerPos - mjolnir.transform.localPosition;
mjolnir.transform.localRotation = Quaternion.Euler(0f, 0f, 270f + Mathf.Atan2(v.y, v.x) / Mathf.PI * 180f);

Expand All @@ -73,7 +73,7 @@ public IEnumerator Pattern1()
!mjolnir.GetComponent<PolygonCollider2D>().IsTouching(GameManager.Instance.FieldManager.wall4.GetComponent<BoxCollider2D>()))
{
yield return null;
mjolnir.transform.localPosition = mjolnir.transform.localPosition + velocity * mjolnirSpeed * Time.deltaTime;
mjolnir.transform.localPosition = mjolnir.transform.localPosition + mjolnirSpeed * Time.deltaTime * velocity;
}
// TODO 벽에 안 닿으면 영원히 패턴이 종료되지 않는 버그에 빠질 것!

Expand All @@ -86,7 +86,7 @@ public IEnumerator Pattern1()

// 시간 조금 기다리면서 다시 HitBoxAreaWarning을 (망치 앞 -> 토르)에 생성
// TODO 돌아오는 망치의 경로 미리 표시하기
InstantiateHitBox(tempMjolnirPos, transform.position, 0.5f);
InstantiateHitBox(tempMjolnirPos, transform.position, 1f, Vector3.Distance(tempMjolnirPos, transform.position));

yield return new WaitForSeconds(0.3f);
// effect1 시간 기다리기
Expand All @@ -101,10 +101,13 @@ public IEnumerator Pattern1()
while (!mjolnir.GetComponent<PolygonCollider2D>().IsTouching(this.GetComponent<BoxCollider2D>()))
{
yield return null;
mjolnir.transform.localPosition = mjolnir.transform.localPosition + velocity * mjolnirSpeed * Time.deltaTime;
mjolnir.transform.localPosition = mjolnir.transform.localPosition + mjolnirSpeed * Time.deltaTime * velocity;
}
// 묠니르가 토르에 닿으면 패턴 종료
// TODO 안 돌아오면 영원히 패턴이 종료되지 않는 버그에 빠질 것!

mjolnir.transform.localPosition = transform.localPosition;

Debug.Log("end");
isBusy = false;
}
Expand Down

0 comments on commit 591f808

Please sign in to comment.