Logic director query
This entity is used in Left 4 Dead 2 to create a reference to the AI Director's 'Anger' value and create different outputs for different values. Basically the whole point of this entity is to create a range of numbers to judge the anger level of the director. Since the entity does not actually alter the director's anger, but references it, you can create multiple logic_director_query entities on the same map.
Keyvalues
- Name (targetname) <string>[ Edit ]
- The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g.
parentname
ortarget
).
Also displayed in Hammer's 2D views and Entity Report.See also: Generic Keyvalues, Inputs and Outputs available to all entities
- Min Anger Range <integer>
- Max Anger Range <integer>
- A range of integers that will be used to represent the director's anger. The director's anger level does not change when altering this, but is calculated into whatever range of values you placed here. This allows the use of multiple logic_director_queries on one map that each have their own ranges and noise settings. These numbers are what is actually sent to other entities.
- Noise <choices>
- Lets you change the way the director's anger value is calculated. “No noise” will result in the output of the exact remapped value of the director's anger, while “complete noise” will pick a random number in the range, with various levels between.
Inputs
- HowAngry
- The primary input used to trigger dynamic changes of layout or events. Creating a HowAngry input from another entity or brush basically asks the director: “On a scale from 1 to X, how angry are you?”
Outputs
- OutAnger
- The primary Output used to dynamic changes of layout or events. OutAnger will send the current number value of the director's anger to an entity of your choice (logic_case appears to be most useful).
- On20SecondsToMob
- This Output seems to do exactly what its name suggests, triggering an event 20 seconds before the director's anger forces it to spawn a mob.
Note:I've not experimented with this one much yet
Examples
The logic_director_query can be used both as a dynamic reference to the AI Director's anger and as semi-random number generator.
To use the entity to reference the AI director's anger level: Set up the events you want to use the entity to trigger, create the logic_director_query and whatever method you want to use to trigger it. Name the logic_director_query something you'll remember (directorAnger01 or whatever), then set its Min/Max Anger Range to 1 (or the lowest value you want it to output) and X (being the highest value you want the entity to output).
Select your triggering entity/brush and create an output pointing to the logic_director_query using HowAngry (such as OnTrigger – directorAnger01 – HowAngry).
Create a logic_case entity and name it something relevant or something you'll remember (ex. barricadePicker). Set the cases to do whatever it is you want them to do, keeping in mind that any case over CaseX (X being Max Anger Range) won't be called. Now go to your logic_director_query and create an output pointing at the logic_case entity that reads OutAnger – (logic_case) – InValue . This will send the value of the director's anger to the logic_case entity to execute the corresponding case number.
Playing around with the Noise setting will allow the output to less predictable, and combining this with multiple case statements will allow for a large amount of dynamic events.