- 패시브 트리/노드/프리셋 데이터와 카탈로그 참조 구조를 추가하고 Resources 의존을 Data/Passives 자산 구조로 정리 - 플레이어 런타임, 전투 계수, 프리셋 적용, 멀티플레이 동기화 경로에 패시브 적용 로직 연결 - 프리팹 기반 패시브 트리 UI와 노드 아이콘/프리셋/상세 패널 흐름을 추가하고 HUD에 연동 - 패시브 디버그/부트스트랩 메뉴와 UI 프리팹 재생성 경로를 추가
52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
using System;
|
|
|
|
using UnityEngine;
|
|
|
|
using Colosseum.Skills;
|
|
using Colosseum.Stats;
|
|
|
|
namespace Colosseum.Passives
|
|
{
|
|
/// <summary>
|
|
/// 패시브 노드의 개별 효과 정의입니다.
|
|
/// </summary>
|
|
[Serializable]
|
|
public class PassiveEffectEntry
|
|
{
|
|
[Tooltip("패시브 효과 종류")]
|
|
[SerializeField] private PassiveEffectType effectType = PassiveEffectType.StatModifier;
|
|
|
|
[Tooltip("스탯 수정자일 때 대상 스탯")]
|
|
[SerializeField] private StatType statType = StatType.Vitality;
|
|
|
|
[Tooltip("스탯 수정자일 때 적용 방식")]
|
|
[SerializeField] private StatModType modType = StatModType.PercentAdd;
|
|
|
|
[Tooltip("효과 값")]
|
|
[SerializeField] private float value = 1f;
|
|
|
|
[Tooltip("스킬 역할에 따른 제한이 필요한 경우 사용")]
|
|
[SerializeField] private SkillRoleType skillRoleMask = SkillRoleType.All;
|
|
|
|
public PassiveEffectType EffectType => effectType;
|
|
public StatType StatType => statType;
|
|
public StatModType ModType => modType;
|
|
public float Value => value;
|
|
public SkillRoleType SkillRoleMask => skillRoleMask;
|
|
|
|
/// <summary>
|
|
/// 이 효과가 현재 스킬에 적용 가능한지 확인합니다.
|
|
/// </summary>
|
|
public bool AppliesToSkill(SkillData skill)
|
|
{
|
|
if (skillRoleMask == SkillRoleType.None || skillRoleMask == SkillRoleType.All)
|
|
return true;
|
|
|
|
if (skill == null)
|
|
return false;
|
|
|
|
return (skillRoleMask & skill.SkillRole) != 0;
|
|
}
|
|
}
|
|
}
|