using System.Text;
using Content.Shared._CP14.Skill.Prototypes;
using Content.Shared._CP14.Workbench.Prototypes;
using Content.Shared._CP14.Workbench.Requirements;
using Robust.Shared.Prototypes;
namespace Content.Shared._CP14.Skill.Effects;
///
/// This effect only exists for parsing the description.
///
public sealed partial class UnlockRecipes : CP14SkillEffect
{
public override void AddSkill(IEntityManager entManager, EntityUid target)
{
//
}
public override void RemoveSkill(IEntityManager entManager, EntityUid target)
{
//
}
public override string? GetName(IEntityManager entMagager, IPrototypeManager protoManager)
{
return null;
}
public override string? GetDescription(IEntityManager entMagager, IPrototypeManager protoManager, ProtoId skill)
{
var allRecipes = protoManager.EnumeratePrototypes();
var sb = new StringBuilder();
sb.Append(Loc.GetString("cp14-skill-desc-unlock-recipes") + "\n");
var affectedRecipes = new List();
foreach (var recipe in allRecipes)
{
foreach (var req in recipe.RequiredSkills)
{
if (req == skill)
{
affectedRecipes.Add(recipe);
break;
}
}
}
foreach (var recipe in affectedRecipes)
{
if (!protoManager.TryIndex(recipe.Result, out var indexedResult))
continue;
sb.Append("- " + indexedResult.Name + "\n");
}
return sb.ToString();
}
}