Love the Caster - KonradHeinser/EBSGFramework GitHub Wiki
This is a variant of the vanilla word of love that just creates a hediff that targets the caster instead of a second target. The ability comp only requires a hediff to point to, and the hediff only require the specific hediff class, but beyond that you're free to set it up however you wish:
<comps>
<li Class="EBSGFramework.CompProperties_LoveTheCaster">
<hediffToApply>InsertHediffDefNameHere</hediffToApply>
</li>
</comps>
<HediffDef>
<defName>InsertHediffDefNameHere</defName>
<hediffClass>EBSGFramework.Hediff_LoveTheCaster</hediffClass>
<targetPrefix>for</targetPrefix>
</HediffDef>
<ThoughtDef>
<defName>InsertThoughtDefNameHere</defName>
<thoughtClass>Thought_SituationalSocial</thoughtClass>
<workerClass>ThoughtWorker_HediffWithTarget</workerClass>
<hediff>InsertHediffDefNameHere</hediff>
<validWhileDespawned>true</validWhileDespawned>
<stages>
<li>
<label>insert opinion label here</label>
<baseOpinionOffset>50</baseOpinionOffset>
</li>
</stages>
</ThoughtDef>
Example from SHG - Just the Psionist. This ability raises the opinion the target has of the caster by 50 for 8 hours.
<AbilityDef Name="PsycastBase">
<defName>SHG_Psionist_DropTheirGuard</defName>
<label>drop their guard</label>
<description>Make another pawn feel more comfortable around this Placater.</description>
<iconPath>Psionist/Empath/Gene_Psionist_DropTheirGuard</iconPath>
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
<statBases>
<Ability_PsyfocusCost>0.0</Ability_PsyfocusCost>
<Ability_EntropyGain>50</Ability_EntropyGain>
<Ability_Duration>8000</Ability_Duration>
</statBases>
<verbProperties>
<range>15</range>
<requireLineOfSight>False</requireLineOfSight>
<warmupTime>2</warmupTime>
<targetParams>
<canTargetMechs>False</canTargetMechs>
<onlyTargetColonistsOrPrisonersOrSlaves>true</onlyTargetColonistsOrPrisonersOrSlaves>
</targetParams>
</verbProperties>
<comps>
<li Class="EBSGFramework.CompProperties_LoveTheCaster">
<psychic>True</psychic>
<hediffToApply>SHG_Psionist_DropTheirGuard</hediffToApply>
</li>
<li Class="CompProperties_AbilitySocialInteraction">
<interactionDef>SHG_Psionist_EmpathOpinionManipulation</interactionDef>
</li>
</comps>
</AbilityDef>
<HediffDef ParentName="PsycastHediffBase">
<defName>SHG_Psionist_DropTheirGuard</defName>
<label>guard dropped</label>
<description>Psychically-induced attachment to a Placater.</description>
<hediffClass>EBSGFramework.Hediff_LoveTheCaster</hediffClass>
<targetPrefix>for</targetPrefix>
<isBad>false</isBad>
<stages><li></li></stages>
</HediffDef>
<ThoughtDef>
<defName>SHG_Psionist_DropTheirGuard</defName>
<thoughtClass>Thought_SituationalSocial</thoughtClass>
<workerClass>ThoughtWorker_HediffWithTarget</workerClass>
<hediff>SHG_Psionist_DropTheirGuard</hediff>
<validWhileDespawned>true</validWhileDespawned>
<effectMultiplyingStat>PsychicSensitivity</effectMultiplyingStat>
<developmentalStageFilter>Baby, Child, Adult</developmentalStageFilter>
<stages>
<li>
<label>guard dropped</label>
<baseOpinionOffset>50</baseOpinionOffset>
</li>
</stages>
</ThoughtDef>
<InteractionDef>
<defName>SHG_Psionist_EmpathOpinionManipulation</defName>
<label>empath manipulation</label>
<workerClass>InteractionWorker</workerClass>
<ignoreTimeSinceLastInteraction>True</ignoreTimeSinceLastInteraction>
<symbol>Psionist/Empath/Gene_Psionist_DropTheirGuard</symbol>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->[RECIPIENT_nameDef]'s perception of [INITIATOR_nameDef] has been psychically improved for a time.</li>
</rulesStrings>
</logRulesInitiator>
</InteractionDef>