feat: 패시브 트리 프로토타입 구현
- 패시브 트리/노드/프리셋 데이터와 카탈로그 참조 구조를 추가하고 Resources 의존을 Data/Passives 자산 구조로 정리 - 플레이어 런타임, 전투 계수, 프리셋 적용, 멀티플레이 동기화 경로에 패시브 적용 로직 연결 - 프리팹 기반 패시브 트리 UI와 노드 아이콘/프리셋/상세 패널 흐름을 추가하고 HUD에 연동 - 패시브 디버그/부트스트랩 메뉴와 UI 프리팹 재생성 경로를 추가
This commit is contained in:
44
Assets/_Game/Scripts/Passives/PassivePresetData.cs
Normal file
44
Assets/_Game/Scripts/Passives/PassivePresetData.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
namespace Colosseum.Passives
|
||||
{
|
||||
/// <summary>
|
||||
/// 패시브 선택 상태를 빠르게 적용하기 위한 프리셋입니다.
|
||||
/// </summary>
|
||||
[CreateAssetMenu(fileName = "PassivePreset", menuName = "Colosseum/Passives/Passive Preset")]
|
||||
public class PassivePresetData : ScriptableObject
|
||||
{
|
||||
[Header("기본 정보")]
|
||||
[SerializeField] private string presetName;
|
||||
[TextArea(2, 4)]
|
||||
[SerializeField] private string description;
|
||||
|
||||
[Header("트리")]
|
||||
[SerializeField] private PassiveTreeData tree;
|
||||
|
||||
[Header("선택 노드")]
|
||||
[SerializeField] private List<PassiveNodeData> selectedNodes = new List<PassiveNodeData>();
|
||||
|
||||
public string PresetName => presetName;
|
||||
public string Description => description;
|
||||
public PassiveTreeData Tree => tree;
|
||||
public IReadOnlyList<PassiveNodeData> SelectedNodes => selectedNodes;
|
||||
|
||||
public List<string> BuildSelectedNodeIdList()
|
||||
{
|
||||
List<string> nodeIds = new List<string>(selectedNodes.Count);
|
||||
for (int i = 0; i < selectedNodes.Count; i++)
|
||||
{
|
||||
PassiveNodeData node = selectedNodes[i];
|
||||
if (node == null || string.IsNullOrWhiteSpace(node.NodeId))
|
||||
continue;
|
||||
|
||||
nodeIds.Add(node.NodeId);
|
||||
}
|
||||
|
||||
return nodeIds;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user