void OnTriggerEnter2D(Collider2D col) { if (!col.IsTouchingLayers(LayerMask.GetMask("CharacterHitbox"))) return; if ((col.tag == "Enemy" || col.tag == "Player") && this.tag != col.tag) { AttackController attackIncoming = col.GetComponent<AttackController>(); // Hit if (CheckIfHit(attackIncoming) == true) { // Guard if (state == CharacterState.Guard && attackIncoming.AttackBehavior.GuardBreak) { GuardBreak(); } else if (state == CharacterState.Guard) { OnGuard.Invoke(this); return; } characterStat.TakeDamage(attackIncoming.AttackBehavior); attackIncoming.HasHit(this); if (characterStat.GetHP() <= 0 && state != CharacterState.Dead) { Knockback(attackIncoming); KnockbackDeath(attackIncoming); } else { Knockback(attackIncoming); } } } }
/*public void DrawCharacter(Character characterData) { textCharacterName.text = characterData.CharacterName; if (characterData.CharacterFace == null) characterFace.enabled = false; else characterFace.enabled = true; characterFace.sprite = characterData.CharacterFace; characterFaceOutline.sprite = characterData.CharacterFace; int healthBarNumber = ((int)characterData.CharacterStat.HpMax / 1000); healthBarNumber = Mathf.Max(0, healthBarNumber); for (int i = 0; i < healthBarNumber; i++) { if (healthBarList.Count <= i) healthBarList.Add(Instantiate(transformBar, transformBarNumber)); healthBarList[i].gameObject.SetActive(true); } for (int i = healthBarNumber; i < healthBarList.Count; i++) { healthBarList[i].gameObject.SetActive(false); } if (healthBarList.Count == 0) transformBarNumber.gameObject.SetActive(false); DrawHealth((int)characterData.CharacterStat.Hp, (int)characterData.CharacterStat.HpMax); }*/ public void DrawCharacter(PlayerData characterData, CharacterStatController characterStat) { textCharacterName.text = characterData.CharacterName; if (characterData.CharacterFace == null) characterFace.enabled = false; else characterFace.enabled = true; characterFace.sprite = characterData.CharacterFace; characterFaceOutline.sprite = characterData.CharacterFace; int healthBarNumber = (characterStat.GetHPMax() / healthBarAmount); healthBarNumber = Mathf.Max(0, healthBarNumber); for(int i = 0; i < healthBarNumber; i++) { if(healthBarList.Count <= i) healthBarList.Add(Instantiate(transformBar, transformBarNumber)); healthBarList[i].gameObject.SetActive(true); } for(int i = healthBarNumber; i < healthBarList.Count; i++) { healthBarList[i].gameObject.SetActive(false); } if (healthBarList.Count == 0) transformBarNumber.gameObject.SetActive(false); DrawHealth(characterStat.GetHP(), characterStat.GetHPMax()); }