fix: input mapping
This commit is contained in:
@@ -490,6 +490,7 @@ void USkillTreeComponent::UpdateSkillStates()
|
||||
{
|
||||
for (auto& Pair : AllSkills)
|
||||
{
|
||||
const FName& SkillID = Pair.Key;
|
||||
FSkillNodeRuntime& SkillNode = Pair.Value;
|
||||
|
||||
// Only update Locked and Available states based on prerequisites
|
||||
@@ -503,14 +504,18 @@ void USkillTreeComponent::UpdateSkillStates()
|
||||
|
||||
case ESkillNodeState::Locked:
|
||||
case ESkillNodeState::Available:
|
||||
// Update state based on prerequisites
|
||||
if (ArePrerequisitesMet(SkillNode.NodeData))
|
||||
{
|
||||
SkillNode.CurrentState = ESkillNodeState::Available;
|
||||
}
|
||||
else
|
||||
{
|
||||
SkillNode.CurrentState = ESkillNodeState::Locked;
|
||||
// Calculate new state based on prerequisites
|
||||
ESkillNodeState NewState = ArePrerequisitesMet(SkillNode.NodeData)
|
||||
? ESkillNodeState::Available
|
||||
: ESkillNodeState::Locked;
|
||||
|
||||
// Only broadcast if state actually changed
|
||||
if (SkillNode.CurrentState != NewState)
|
||||
{
|
||||
SkillNode.CurrentState = NewState;
|
||||
OnSkillStateChanged.Broadcast(SkillID);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user