using Cthangover.Core.Characters; using Cthangover.Core.Relationship; using Cthangover.Core.Settings; namespace Cthangover.Core.Relationship { /// /// Recruitment condition that gates the "enslave" recruit option /// behind the slave_master skill. When the player attempts to /// recruit an NPC, the recruitment system queries all registered /// implementations; if this condition /// is present and the player does not have the skill, the enslavement /// option is hidden or disabled. /// public class EnslaveCondition : IRecruitCondition { /// /// Identifies this condition as the enslavement gate for the /// recruitment system (maps to enslave option). /// public string Id => "enslave"; /// /// Determines whether enslavement is available for the given enemy. /// Checks the runtime skill data for the slave_master skill. /// The target is provided but not inspected /// because the condition depends solely on the player's skills. /// public bool CanRecruit(Character enemy, RuntimeData runtime) { return runtime.SkillData.HasSkill("slave_master"); } } }