idSummoningTemplate
An entity to control summoning behaviour of a Summoner.
Usage
entity {
entityDef example_summoning_template {
class = "idSummoningTemplate";
expandInheritance = false;
poolCount = 0;
poolGranularity = 2;
edit = {
fixedSummoningWaves = { // List of tiered summoning waves, executed sequentially.
num = 1;
item[0] = {
tier1_SpawnList = { // An Imp or Possessed Soldier can be summoned for this tier.
num = 2;
item[0] = "ENCOUNTER_SPAWN_IMP";
item[1] = "ENCOUNTER_SPAWN_HELL_SOLDIER";
}
tier2_SpawnList = {
num = 2;
item[0] = "ENCOUNTER_SPAWN_IMP";
item[1] = "ENCOUNTER_SPAWN_ZOMBIE";
}
tier3_SpawnList = {
num = 2;
item[0] = "ENCOUNTER_SPAWN_SHOTGUN_SOLDIER";
item[1] = "ENCOUNTER_SPAWN_BEAM_SOLDIER";
}
completionTest = "SUMMON_CONDITIONS_ALL_DEAD"; // SUMMON_CONDITIONS_ALL_DEAD, SUMMON_CONDITIONS_FIXED_TIMER, or SUMMON_CONDITIONS_WEIGHTED_TIMER
}
}
randomSummoningWaves = { // List of tiered summoning waves, executed in order but looped until the summoning encounter is complete.
num = 3;
item[0] = {
tier1_SpawnList = {
num = 2;
item[0] = "ENCOUNTER_SPAWN_IMP";
item[1] = "ENCOUNTER_SPAWN_ZOMBIE";
}
tier2_SpawnList = {
num = 1;
item[0] = "ENCOUNTER_SPAWN_REVENANT";
}
completionTest = "SUMMON_CONDITIONS_ALL_DEAD";
}
item[1] = {
tier1_SpawnList = {
num = 2;
item[0] = "ENCOUNTER_SPAWN_ZOMBIE";
item[1] = "ENCOUNTER_SPAWN_ZOMBIE";
}
tier2_SpawnList = {
num = 1;
item[0] = "ENCOUNTER_SPAWN_PINKY";
}
completionTest = "SUMMON_CONDITIONS_ALL_DEAD";
}
item[2] = {
tier1_SpawnList = {
num = 3;
item[0] = "ENCOUNTER_SPAWN_IMP";
item[1] = "ENCOUNTER_SPAWN_ZOMBIE";
item[2] = "ENCOUNTER_SPAWN_IMP";
}
tier2_SpawnList = {
num = 2;
item[0] = "ENCOUNTER_SPAWN_PINKY";
item[1] = "ENCOUNTER_SPAWN_REVENANT";
}
completionTest = "SUMMON_CONDITIONS_ALL_DEAD";
}
}
fixedSummonGroups = { // List of groups that is sequentially run
item[0] = {
aiSpawnTypeList = {
item[0] = "ENCOUNTER_SPAWN_BEAM_SOLDIER";
item[1] = "ENCOUNTER_SPAWN_BEAM_SOLDIER";
item[2] = "ENCOUNTER_SPAWN_IMP";
}
}
item[1] = {
aiSpawnTypeList = {
item[0] = "ENCOUNTER_SPAWN_BEAM_SOLDIER";
item[1] = "ENCOUNTER_SPAWN_IMP";
item[2] = "ENCOUNTER_SPAWN_HELL_KNIGHT";
}
}
}
randomSummonPool = { // List of group to randomly run after all fixed encounters are complete
item[0] = {
aiSpawnTypeList = {
item[0] = "ENCOUNTER_SPAWN_IMP";
item[1] = "ENCOUNTER_SPAWN_BEAM_SOLDIER";
item[2] = "ENCOUNTER_SPAWN_BEAM_SOLDIER";
}
}
item[1] = {
aiSpawnTypeList = {
item[0] = "ENCOUNTER_SPAWN_IMP";
item[1] = "ENCOUNTER_SPAWN_BEAM_SOLDIER";
item[2] = "ENCOUNTER_SPAWN_HELL_KNIGHT";
}
}
}
spawnPosition = {
x = 8170;
y = 6877;
z = 8000;
}
}
}
}
-
fixedSummoningWaves
: The summoner summons up to three demons, each one drawn from the given tier list. OncecompletionTest
is fulfilled, the rift will summon the next wave. These waves are executed in the listed order, ie. item[0] -> item[1] -> item[2] etc. Ends once all waves are complete. -
randomSummoningWaves
: Similar tofixedSummoningWaves
, but will loop upon completion, instead of stopping. -
fixedSummonGroups
: List of groups that is sequentially run (?); the function of this summoning behaviour is not fully understood at this time. -
randomSummonPool
: One the preceding fixedSummoningWaves or fixedSummonGroups is complete, the summoning rift will randomly cycle through the defined aiSpawnTypeLists and summon. -
completionTest
: AllidSummoningTemplates
in the vanilla game useSUMMON_CONDITIONS_ALL_DEAD
. WhileSUMMON_CONDITIONS_FIXED_TIMER
, orSUMMON_CONDITIONS_WEIGHTED_TIMER
are also options, it is currently not understood how to use those conditions.
Note that once the summoning rift is created, these behaviours will execute on their own, as long as the Summoner remains alive. If killed, the rift will close, and anything defined by the idSummoningTemplate will stop immediately.
No Comments