Hi,
I think the title is vague (apologies, didn't know what to call this).
Consider this case where, once determined, the value of some predicate P (true or false) is set permanently. In our case predicates are some chains of conjunctions/disjunctions of Starcraft conditions.
In any case, is it more efficient to:
1. Have a single trigger that detects P's value, then stores this in a boolean variable.
2. Triggers which need to know P's valuation now reference this boolean instead of testing all of P's valuations.
Or
1. Triggers which need to know P's valuations always test them as part of their conditions.
I am figuring that the former case is probably more efficient, but in any case, is it the norm for SC mapmaking (or coding in general)?
None.
An artist's depiction of an Extended Unit Death
You're thinking on an efficiency level that doesn't matter for most maps, so if performance isn't an issue, I wouldn't bother increasing the complexity of your triggers.
That being said, checking the value of a switch / death counter is much more efficient than checking certain conditions, such as the Bring condition (which is notorious for causing performance issues on large-scale maps).
It's always wise to order your conditions so that switches come first, followed by simple numerical comparisons (like death counters or accumulated resources), followed by the other, more complicated conditions.
For coding in general, your suggestion is a form of caching or maintaining state, where computing a result once and storing it can be much more efficient than computing the value repetitively. However, for a lot of higher-level languages, this is unnecessary, as the compiler will optimize it for you (e.g., you can say "1000 * 60 * 60 * 5" as means of calculating 5 hours from milliseconds, and the compiler will convert this to a constant value rather than do the multiplication every time).