Upgrade Types - Grim-/Talented GitHub Wiki

Upgrade System Documentation

Upgrade Definitions

Upgrades can grant various benefits including organs, abilities, and hediffs. Each upgrade is defined through Talented.UpgradeDef.

Organ Upgrades

<Talented.UpgradeDef>
    <defName>AuxiliaryHeartUpgrade</defName>
    <label>Auxiliary Heart</label>
    <uiIconPath>DragonBall1</uiIconPath>
    <description>Grows an additional heart to improve blood circulation and stamina.</description>
    <parasiteLevelRequired>4</parasiteLevelRequired>
    <organEffects>
        <li>
            <addedOrganHediff>AuxiliaryHeart</addedOrganHediff>
            <isAddition>true</isAddition>
        </li>
    </organEffects>
</Talented.UpgradeDef>

Ability Upgrades

<Talented.UpgradeDef>
    <defName>CombatReflexesUpgrade</defName>
    <label>Combat Reflexes</label>
    <uiIconPath>DragonBall1</uiIconPath>
    <description>Grants enhanced combat abilities through parasitic nervous system modifications.</description>
    <parasiteLevelRequired>3</parasiteLevelRequired>
    <abilityEffects>
        <li>
            <abilities>
                <li>
                    <abilityDef>ParasiticDodge</abilityDef>
                </li>
            </abilities>
        </li>
    </abilityEffects>
</Talented.UpgradeDef>

Upgrade Tree Nodes

Tree nodes define the structure and progression of upgrades. Each node can contain multiple upgrades that are unlocked either sequentially or cumulatively.

<Talented.UpgradeTreeNodeDef>
    <defName>SymbiosisPathNode1</defName>
    <position>(23,12)</position>
    <type>Branch</type>
    <sequential>true</sequential>
    <upgrades>
        <li>SensoryEnhancementUpgrade</li>
        <li>CombatReflexesUpgrade</li>
        <li>AuxiliaryHeartUpgrade</li>
    </upgrades>
    <path>SymbiosisPath</path>
    <connections>
        <li>SymbiosisPathNode2</li>
        <li>SymbiosisPathNode3</li>
    </connections>
    <branchPaths>
        <li>
            <path>SymbiosisPathBranch1_A</path>
            <nodes>
                <li>SymbiosisPathNode2</li>
            </nodes>
        </li>
        <li>
            <path>SymbiosisPathBranch1_B</path>
            <nodes>
                <li>SymbiosisPathNode3</li>
            </nodes>
        </li>
    </branchPaths>
</Talented.UpgradeTreeNodeDef>

Node Properties

  1. Position (Only used by the manual placement display strategy)

    • Defines node location in the tree
    • Uses (x,y) coordinates
    • Example: <position>(23,12)</position>
  2. Type

    • Determines node behavior
    • Available types: Branch, Normal
    • Example: <type>Branch</type>
  3. Upgrade Mode

    • Sequential: Unlocks upgrades in order
    • Culminative: Unlocks all upgrades at once
    • Controlled by <sequential>true/false</sequential>
  4. Path System

    • Main path: <path>SymbiosisPath</path>
    • Branch paths for divergent progressions
    • Supports multiple branches per node

Upgrade Effects

  1. Organ Effects

    • Adds or modifies body parts
    • Can be permanent additions
    • Supports hediff application
    <organEffects>
        <li>
            <addedOrganHediff>AuxiliaryHeart</addedOrganHediff>
            <isAddition>true</isAddition>
        </li>
    </organEffects>
  2. Ability Effects

    • Grants new abilities
    • Can include multiple abilities per upgrade
    <abilityEffects>
        <li>
            <abilities>
                <li><abilityDef>ParasiticDodge</abilityDef></li>
            </abilities>
        </li>
    </abilityEffects>
  3. Hediff Effects

    • Applies permanent or temporary status effects
    • Can modify stats and capacities
    <stages>
        <li>
            <statOffsets>
                <MoveSpeed>0.15</MoveSpeed>
                <WorkSpeedGlobal>0.1</WorkSpeedGlobal>
            </statOffsets>
        </li>
    </stages>

Sequential Unlock Example

For a node with sequential upgrades:

<upgrades>
    <li>BasicUpgrade</li>      <!-- Unlocked first -->
    <li>IntermediateUpgrade</li>  <!-- Unlocked second -->
    <li>AdvancedUpgrade</li>    <!-- Unlocked last -->
</upgrades>

The player must invest points multiple times to unlock each upgrade in order.

⚠️ **GitHub.com Fallback** ⚠️