Skip to content

Instantly share code, notes, and snippets.

View victorysoftworks's full-sized avatar

Victory Softworks victorysoftworks

View GitHub Profile
<entity>
<component type="Name" name="rod of corrosion" />
<component type="LimitedUse" uses="6" />
<component type="Zappable" directional="true" range="12">
<effect type="Corrode" amount="10" corrodeMessage="A hissing green bolt hits the %t" />
</component>
<!-- Other components ... -->
</entity>
<entity>
<component type="Name" name="potion of acid" />
<component type="LimitedUse" uses="1" />
<component type="Quaffable">
<effect type="DealDamage" damage="5d4" damageMessage="Acid burns the %t's insides" />
</component>
<component type="Throwable">
<effect type="Corrode" amount="20" corrodeMessage="The %s shatters and covers the %t in hissing green liquid" />
</component>
<component type="Pourable">
<entity>
<component type="Name" name="acid worm" />
<component type="NaturalMeleeAttack" verb="bite" damage="1d8" />
<component type="DamageEffect" chance="100" allowsSave="false">
<effect type="Corrode" amount="3" corrodeMessage="Corrosive slime drips from the %s's maw" />
</component>
<!-- Other components ... -->
</entity>
<entity>
<component type="Enchantment" bonus="1" />
<component type="NamePrefix" prefix="acidic" />
<component type="Name" name="short sword" />
<component type="MeleeWeapon" verb="slash" damage="1d6" />
<!-- Using a DamageEffect rather than a ContactEffect so that the entity using this weapon doesn't corrode herself when handling it -->
<component type="DamageEffect" chance="100" allowsSave="false">
<effect type="Corrode" amount="2" corrodeMessage="The %s drips corrosive fluid all over the %t" />
</component>
<!-- Other components ... -->
<entity>
<component type="Name" name="green slime" />
<component type="NaturalMeleeAttack" verb="engulf" damage="1d6" />
<component type="ContactEffect">
<effect type="Corrode" amount="5" corrodeMessage="The %s covers the %t in corrosive fluid" />
</component>
<!-- Other components ... -->
</entity>
<entity>
<component type="NamePrefix" prefix="slime-covered" />
<component type="Name" name="pillar" />
<component type="Solid" />
<component type="ContactEffect">
<effect type="Corrode" amount="2" corrodeMessage="The corrosive slime covering the %S sticks to the %t" />
</component>
<!-- Other components ... -->
</entity>
<entity>
<component type="NamePrefix" prefix="slime-covered" />
<component type="Name" name="treasure chest" />
<!-- A container can be opened; doing so broadcasts a `contact` event -->
<component type="Container" capacity="10">
<item><!-- Item inside treasure chest ... --></item>
</component>
<component type="ContactEffect">
<effect type="Corrode" amount="2" corrodeMessage="The corrosive slime covering the %S sticks to the %t" />
</component>
<entity>
<component type="NamePrefix" prefix="slime-covered" />
<component type="Name" name="pillar" />
<component type="Solid">
<!-- Capital %S only retrieves the source entity's base name, such as "pillar" -->
<effect type="Corrode" amount="2" corrodeMessage="The corrosive slime covering the %S sticks to the %t" />
</component>
<!-- Other components ... -->
</entity>
<entity>
<component type="Name" name="idol of corrosion" />
<component type="AuraEffect" range="3" once="false">
<effect type="Corrode" amount="2" corrodeMessage="The %s emits a cloud of corrosive gas" />
</component>
<!-- Other components ... -->
</entity>
<entity>
<component type="Name" name="pool of acid" />
<component type="SameSquareEffect" once="false">
<effect type="Conditional" condition="target:not:flying">
<effect type="Corrode" amount="5" corrodeMessage="Corrosive acid splashes all over the %t" />
</effect>
</component>
<!-- Other components ... -->
</entity>