Rule
A Rule is a unit of logic in Castle decks. Rules can be added to blueprints in order to change the behavior of the blueprint in response to specific events or under certain conditions.
Each rule consists of a Trigger and one or more Responses. A trigger is the part of a Rule that describes when to run that rule, such as When this is tapped. Responses are the part of the rule that describe what to do after the rule is triggered, such as Destroy this actor. A blueprint can have many rules, but it doesn't have to have any.
There are many different possible triggers and even more responses. Simple rules can be used by anybody to add basic logic to a game or a piece of art, like playing a sound effect when the player taps an item, or restarting the card when the player collides with an enemy. When rules start to get more complex, they can do almost anything. Advanced users have used them to make procedural art, simulations, and even basic 3d games. Rules are one of the most powerful core elements of Castle.
Adding and editing rules
To add rules to blueprints, first open the Inspector for the blueprint you'd like to edit, then go to the Logic tab.
Learning how to write rules
The best way to learn Rules is to follow a guide, such as How to make your first Castle deck, which walks you through making your first Rules. Secondly, consider starting with one of the premade Castle Kits, and then inspect the blueprints that come with it. Lastly, you can also View the Source of any deck to see how it was made.
Examples of rules
As an illustrative example, imagine a golf game. You want to be able to sling the golf ball when it's sitting on the ground, but after it's flying through the air, the player shouldn't be able to sling it anymore. The golf ball might have a rule like this:
When this is slung: Disable behavior slingshot
Eventually, after the ball reaches the ground and comes to a stop, we want to allow the player to sling again:
When this stops moving: Enable behavior slingshot
If the player accidentally slings the ball out of the screen, we count that as losing the game, so we want to start the level over. The golf ball might have a third rule like this one:
When this exits the camera viewport: Crate text box "The ball fell out of the card" when tapped peform response: Restart this card
But if the player succeeds in putting the golf ball in the hole, we want to show a message saying they won:
When this collides with tag #hole: If variable: hits is greater than 1 Create text box "You got the ball into the hole! Hits: $hits else Create text box "HOLE IN ONE!
You can find a (slightly more complex) version of these exact rules if you check out the Golf Course Kit.