DEG-34 [feat] 캐릭터 베이스 추가

This commit is contained in:
fiore 2025-04-16 17:05:08 +09:00
parent 73cc82de24
commit df9abb63bf
5 changed files with 92 additions and 0 deletions

View File

@ -0,0 +1,2 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=assets_005Cjyy_005Cscripts/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

8
Assets/JYY/Scripts.meta Normal file
View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d71915ab89436f04291470c4877deb39
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 04daad0a5fd8ee441ac26c6addd95d0c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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<StatusEffect> statusEffects = new List<StatusEffect>();
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) {}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 4ca899178d924fa4e8de15831c666f22
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: