Shield bubble - Vanilla-Expanded/VanillaExpandedFramework GitHub Wiki
This allows you to create shields, defined as "a force field that protects against damage". If you want a regular shield, we have those too!
For an apparel (because this can be added to Pawns too!):
- Add
<tickerType>Normal</tickerType>to it's def
You'll also need a comp class, VEF.Apparels.CompProperties_ShieldBubble:
<li Class="VEF.Apparels.CompProperties_ShieldBubble">
<EnergyShieldRechargeRate>0.1</EnergyShieldRechargeRate> <!-- Set the shield energy recharge rate -->
<EnergyShieldEnergyMax>100</EnergyShieldEnergyMax> <!-- Set the shield max energy -->
<blockRangedAttack>true</blockRangedAttack> <!-- Set if it blocks incoming ranged attack -->
<blockMeleeAttack>false</blockMeleeAttack> <!-- Set if it blocks incoming melee attack -->
<dontAllowRangedAttack>false</dontAllowRangedAttack> <!-- Set if it allows ranged attacks from user -->
<dontAllowMeleeAttack>false</dontAllowMeleeAttack> <!-- Set if it allows melee attacks from user -->
<shieldTexPath>Other/ShieldBubble</shieldTexPath> <!-- Shield texture path -->
<showWhenDrafted>true</showWhenDrafted> <!-- Set if it should be shown when the pawn is drafted -->
<showAlways>false</showAlways> <!-- Set if it should always be shown -->
<showOnHostiles>true</showOnHostiles> <!-- Set if it should be shown on hostile pawns -->
<showOnNeutralInCombat>true</showOnNeutralInCombat> <!-- Set if it should be shown on neutral pawns -->
<maxShieldSize>1.8</maxShieldSize> <!-- Set maximum shield size (when energy is full) -->
<minShieldSize>1.4</minShieldSize> <!-- Set minimum shield size (when energy is empty) -->
<shieldColor>(1, 1, 1, 1)</shieldColor> <!-- Set the shield color (can be rgb or rgba) -->
<EnergyLossPerDamage>1f</EnergyLossPerDamage> <!-- Set the damage multiplier (0 mean the shield will never break) -->
<disableRotation>true</disableRotation> <!-- Set if the shield texture can be rotated -->
<absorbDamageSound>EnergyShield_AbsorbDamage</absorbDamageSound><!-- SoundDef played when absorbing damage -->
<brokenSound>EnergyShield_Broken</brokenSound> <!-- SoundDef played when the shield break -->
<resetSound>EnergyShield_Reset</resetSound> <!-- SoundDef played when the shield resets (regenerates) -->
</li> It is a comp class, so you just add it in XML in the <comps> tag. For example, these are the shields for the Siegebreaker armors in Vanilla Armour Expanded:
<comps>
<li Class="VEF.Apparels.CompProperties_ShieldBubble">
<compClass>VEF.Apparels.CompShieldBubble</compClass>
<blockRangedAttack>true</blockRangedAttack>
<blockMeleeAttack>false</blockMeleeAttack>
<showWhenDrafted>true</showWhenDrafted>
<showOnHostiles>true</showOnHostiles>
<showOnNeutralInCombat>true</showOnNeutralInCombat>
<shieldTexPath>Other/ShieldBubble</shieldTexPath>
<EnergyShieldRechargeRate>0.1</EnergyShieldRechargeRate>
<EnergyShieldEnergyMax>100</EnergyShieldEnergyMax>
<minShieldSize>1.4</minShieldSize>
<maxShieldSize>1.8</maxShieldSize>
<disableRotation>true</disableRotation>
</li>
</comps>