From df9abb63bfb73e7af7df1e9aaf5943270d08623e Mon Sep 17 00:00:00 2001 From: fiore Date: Wed, 16 Apr 2025 17:05:08 +0900 Subject: [PATCH] =?UTF-8?q?DEG-34=20[feat]=20=EC=BA=90=EB=A6=AD=ED=84=B0?= =?UTF-8?q?=20=EB=B2=A0=EC=9D=B4=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assembly-CSharp.csproj.DotSettings | 2 + Assets/JYY/Scripts.meta | 8 +++ Assets/JYY/Scripts/Character.meta | 8 +++ Assets/JYY/Scripts/Character/CharacterBase.cs | 63 +++++++++++++++++++ .../Scripts/Character/CharacterBase.cs.meta | 11 ++++ 5 files changed, 92 insertions(+) create mode 100644 Assembly-CSharp.csproj.DotSettings create mode 100644 Assets/JYY/Scripts.meta create mode 100644 Assets/JYY/Scripts/Character.meta create mode 100644 Assets/JYY/Scripts/Character/CharacterBase.cs create mode 100644 Assets/JYY/Scripts/Character/CharacterBase.cs.meta diff --git a/Assembly-CSharp.csproj.DotSettings b/Assembly-CSharp.csproj.DotSettings new file mode 100644 index 00000000..47f964ba --- /dev/null +++ b/Assembly-CSharp.csproj.DotSettings @@ -0,0 +1,2 @@ + + True \ No newline at end of file diff --git a/Assets/JYY/Scripts.meta b/Assets/JYY/Scripts.meta new file mode 100644 index 00000000..2f884734 --- /dev/null +++ b/Assets/JYY/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d71915ab89436f04291470c4877deb39 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/JYY/Scripts/Character.meta b/Assets/JYY/Scripts/Character.meta new file mode 100644 index 00000000..6ed931e0 --- /dev/null +++ b/Assets/JYY/Scripts/Character.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 04daad0a5fd8ee441ac26c6addd95d0c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/JYY/Scripts/Character/CharacterBase.cs b/Assets/JYY/Scripts/Character/CharacterBase.cs new file mode 100644 index 00000000..d2a3932f --- /dev/null +++ b/Assets/JYY/Scripts/Character/CharacterBase.cs @@ -0,0 +1,63 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public abstract class CharacterBase : MonoBehaviour +{ + [Header("기본 능력치")] + public string characterName; // 이름 + public int maxHP = 100; // 최대 체력 + public int currentHP; // 현재 체력 + public float attackPower = 10f; // 공격력 + public float defensePower = 5f; // 방어력 + public float moveSpeed = 5f; // 이동 속도 + public float gravity = -9.81f; // 중력 + + [Header("상태 이상")] + public List statusEffects = new List(); + + protected virtual void Start() + { + currentHP = maxHP; + } + + public virtual void TakeDamage(float damage) + { + float actualDamage = Mathf.Max(0, damage - defensePower); + currentHP -= Mathf.RoundToInt(actualDamage); + Debug.Log($"{characterName}이 {actualDamage}의 피해를 입었습니다. 현재 체력: {currentHP}"); + + if (currentHP <= 0) + { + Die(); + } + } + + public virtual void Die() + { + Debug.Log($"{characterName}이 사망했습니다."); + // TODO: 사망 처리 + } + + // 상태이상 추가 메서드 + public virtual void AddStatusEffect(StatusEffect effect) + { + statusEffects.Add(effect); + // TODO: 상태이상 처리 로직 추가 + } +} + +public abstract class StatusEffect +{ + // 받는 피해 증가 + // 주는 피해 감소 + // 느려짐 + // 기절 + // 넉백 + + public string effectName; + public float duration; + + public virtual void ApplyEffect(CharacterBase target) {} + public virtual void RemoveEffect(CharacterBase target) {} +} \ No newline at end of file diff --git a/Assets/JYY/Scripts/Character/CharacterBase.cs.meta b/Assets/JYY/Scripts/Character/CharacterBase.cs.meta new file mode 100644 index 00000000..7a35fb3a --- /dev/null +++ b/Assets/JYY/Scripts/Character/CharacterBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4ca899178d924fa4e8de15831c666f22 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: