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