Shield bubble - Vanilla-Expanded/VanillaExpandedFramework GitHub Wiki

<- Back

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>      

How do I use this code?

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