캐릭터 기본 공격 로직 적용을 위한 몬스터 방어력 변수 적용

This commit is contained in:
aube.lee
2025-02-07 17:01:57 +09:00
parent ab2fd3d02e
commit 5968ae7a73
2 changed files with 17 additions and 10 deletions

View File

@@ -28,7 +28,10 @@ namespace TON
// 기본 데미지 계산 // 기본 데미지 계산
// TODO: 장비 공격력 반영 필요 // TODO: 장비 공격력 반영 필요
// float damage = damageCalculator.CalculateBaseDamage(playerData.attackPower, playerData.equipmentAttack, playerData.defensivePower); // float damage = damageCalculator.CalculateBaseDamage(playerData.attackPower, playerData.equipmentAttack, playerData.defensivePower);
float damage = damageCalculator.CalculateBaseDamage(playerData.attackPower, 0, playerData.defensivePower);
// 몬스터 방어력
float monsterDefencePower = collision.GetComponent<MonsterBase>().defencePower;
float damage = damageCalculator.CalculateBaseDamage(playerData.attackPower, 0, monsterDefencePower);
// 치명타 적용 (캐릭터는 적용) // 치명타 적용 (캐릭터는 적용)
damage = damageCalculator.ApplyCriticalDamage(damage, true); damage = damageCalculator.ApplyCriticalDamage(damage, true);

View File

@@ -23,37 +23,41 @@ namespace TON
private Vector3 _direction; private Vector3 _direction;
private bool _isWalking; private bool _isWalking;
private float _currentTime; private float _currentTime;
[SerializeField] [SerializeField]
private int _idleTime = 2; private int _idleTime = 2;
[SerializeField] [SerializeField]
private int walkingTime = 2; private int walkingTime = 2;
[SerializeField] [SerializeField]
private GameObject _target; private GameObject _target;
public float defencePower;
// Start is called before the first frame update // Start is called before the first frame update
void Start() void Start()
{ {
_currentTime = Time.realtimeSinceStartup; _currentTime = Time.realtimeSinceStartup;
_animator = GetComponent<Animator>(); _animator = GetComponent<Animator>();
_direction = new Vector3(1, 0, 0); _direction = new Vector3(1, 0, 0);
_spriteRenderer.flipX = !(_direction.x > 0); _spriteRenderer.flipX = !(_direction.x > 0);
// TODO: 몬스터 방어력 세팅 임시값
defencePower = 10f;
} }
// Update is called once per frame // Update is called once per frame
void Update() void Update()
{ {
// todo : 타겟 감지 >> 몬스터의 원형 시야 안에 플레이어가 충돌했는지 여부 // todo : 타겟 감지 >> 몬스터의 원형 시야 안에 플레이어가 충돌했는지 여부
// todo : 충돌 했으면 attack 전환 (바로 그냥 공격하게 따라가지 말고) // todo : 충돌 했으면 attack 전환 (바로 그냥 공격하게 따라가지 말고)
// todo : 시야를 벗어났으면 idle 전환 // todo : 시야를 벗어났으면 idle 전환
if (_isWalking) if (_isWalking)
{ {
// walking 상태에서 walkingTime을 초과할 경우 idle 애니메이션 재생 // walking 상태에서 walkingTime을 초과할 경우 idle 애니메이션 재생