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>
⚠️ **GitHub.com Fallback** ⚠️