public static ILocalSpawnBuilder WithSettings(this ILocalSpawnBuilder builder, LocalSpawnSettings settings) { settings.PrefabName.Set(builder.SetPrefabName); settings.Enabled.Set(builder.SetEnabled); settings.SpawnInterval.SetNullable(builder.SetSpawnInterval); settings.MinLevel.Set(builder.SetMinLevel); settings.MaxLevel.Set(builder.SetMaxLevel); settings.SpawnDuringNight.Set(builder.SetSpawnDuringDay); settings.SpawnDuringNight.Set(builder.SetSpawnDuringNight); settings.SpawnInPlayerBase.Set(builder.SetSpawnInPlayerBase); settings.SetPatrolSpawn.Set(builder.SetPatrolSpawn); settings.LevelUpChance.Set(builder.SetLevelUpChance); settings.ConditionPlayerWithinDistance.Set(builder.SetConditionPlayerWithinDistance); settings.ConditionPlayerNoise.Set(builder.SetConditionPlayerNoise); foreach (var condition in settings.Conditions) { builder.SetCondition(condition); } foreach (var modifier in settings.Modifiers) { builder.SetModifier(modifier); } return(builder); }
public static ILocalSpawnBuilder SetCllcConditionWorldLevel(this ILocalSpawnBuilder builder, int?minWorldLevel, int?maxWorldLevel) { if (IntegrationManager.InstalledCLLC) { SetConditionWorldLevel(builder, minWorldLevel, maxWorldLevel); } return(builder); }
public static ILocalSpawnBuilder SetCllcModifierExtraEffect(this ILocalSpawnBuilder builder, CllcCreatureExtraEffect extraEffect) { if (IntegrationManager.InstalledCLLC) { SetExtraEffect(builder, extraEffect); } return(builder); }
public static ILocalSpawnBuilder SetCllcModifierExtraEffect(this ILocalSpawnBuilder builder, string extraEffectName) { if (IntegrationManager.InstalledCLLC) { SetExtraEffect(builder, extraEffectName); } return(builder); }
public static ILocalSpawnBuilder SetCllcModifierRandomLevel(this ILocalSpawnBuilder builder) { if (IntegrationManager.InstalledCLLC) { SetRandomLevel(builder); } return(builder); }
public static ILocalSpawnBuilder SetMobAiModifier(this ILocalSpawnBuilder builder, string aiName, string mobAiConfig) { if (IntegrationManager.InstalledMobAI) { SetModifier(builder, aiName, mobAiConfig); } return(builder); }
public static ILocalSpawnBuilder SetCllcModifierInfusion(this ILocalSpawnBuilder builder, string infusionName) { if (IntegrationManager.InstalledCLLC) { SetInfusion(builder, infusionName); } return(builder); }
public static ILocalSpawnBuilder SetCllcModifierInfusion(this ILocalSpawnBuilder builder, CllcCreatureInfusion infusion) { if (IntegrationManager.InstalledCLLC) { SetInfusion(builder, infusion); } return(builder); }
public static ILocalSpawnBuilder SetCllcModifierBossAffix(this ILocalSpawnBuilder builder, string bossAffixName) { if (IntegrationManager.InstalledCLLC) { SetBossAffix(builder, bossAffixName); } return(builder); }
public static ILocalSpawnBuilder SetModifierDespawnOnConditionsInvalid( this ILocalSpawnBuilder builder, bool?conditionAllowDuringDay = null, bool?conditionAllowDuringNight = null, List <string> conditionAllowDuringEnvironments = null) { builder.SetModifier( new ModifierDespawnOnConditionsInvalid( conditionAllowDuringDay, conditionAllowDuringNight, conditionAllowDuringEnvironments)); return(builder); }
private static void SetInfusion(ILocalSpawnBuilder builder, string infusionName) => builder.SetModifier(new ModifierCllcInfusion(infusionName));
private static void SetExtraEffect(ILocalSpawnBuilder builder, CllcCreatureExtraEffect extraEffect) => builder.SetModifier(new ModifierCllcExtraEffect(extraEffect));
/// <summary> /// <para>Sets global keys which must not be present for spawning to be allowed.</para> /// <para> /// Eg., if GlobalKey.Troll, GlobalKey.Eikthyr and world has global key "defeated_eikthyr", /// then this template will be disabled. /// </para> /// </summary> public static ILocalSpawnBuilder SetGlobalKeysRequiredMissing(this ILocalSpawnBuilder builder, IEnumerable <GlobalKey> globalKeys) { builder.SetCondition(new ConditionGlobalKeysRequiredMissing(globalKeys.Select(x => x.GetName()).ToArray())); return(builder); }
private static void SetConditionWorldLevel(ILocalSpawnBuilder builder, int?minWorldLevel, int?maxWorldLevel) => builder.SetCondition(new ConditionWorldLevel(minWorldLevel, maxWorldLevel));
public static ILocalSpawnBuilder SetModifierRelentless(this ILocalSpawnBuilder builder, bool relentless) { builder.SetModifier(new ModifierSetRelentless(relentless)); return(builder); }
private static void SetBossAffix(ILocalSpawnBuilder builder, string bossAffixName) => builder.SetModifier(new ModifierCllcBossAffix(bossAffixName));
public static ILocalSpawnBuilder SetModifierDespawnOnAlert(this ILocalSpawnBuilder builder, bool despawnOnAlert) { builder.SetModifier(new ModifierDespawnOnAlert(despawnOnAlert)); return(builder); }
/// <summary> /// Sets a custom string on entity zdo with key "spawn_template_id". /// Intended for integration between mods, and detecting a modified entity. /// </summary> public static ILocalSpawnBuilder SetModifierTemplateId(this ILocalSpawnBuilder builder, string templateId) { builder.SetModifier(new ModifierSetTemplateId(templateId)); return(builder); }
public static ILocalSpawnBuilder SetModifierTamedCommandable(this ILocalSpawnBuilder builder, bool commandable) { builder.SetModifier(new ModifierSetTamedCommandable(commandable)); return(builder); }
public static ILocalSpawnBuilder SetModifierTamed(this ILocalSpawnBuilder builder, bool tamed) { builder.SetModifier(new ModifierSetTamed(tamed)); return(builder); }
public static ILocalSpawnBuilder SetModifierFaction(this ILocalSpawnBuilder builder, Character.Faction faction) { builder.SetModifier(new ModifierSetFaction(faction)); return(builder); }
private static void SetInfusion(ILocalSpawnBuilder builder, CllcCreatureInfusion infusion) => builder.SetModifier(new ModifierCllcInfusion(infusion));
private static void SetBossAffix(ILocalSpawnBuilder builder, CllcBossAffix bossAffix) => builder.SetModifier(new ModifierCllcBossAffix(bossAffix));
private static void SetModifier(ILocalSpawnBuilder builder, string aiName, string mobAiConfig) => builder.SetModifier(new ModifierSetAI(aiName, mobAiConfig));
private static void SetRandomLevel(ILocalSpawnBuilder builder) => builder.SetModifier(new ModifierCllcRandomLevel());
/// <summary> /// <para>Set spawn chance based on each area.</para> /// <para> /// Each area rolls chance pr template id once pr seed. /// If the chance roll is less than listed here, /// this area will never activate this template, and vice versa. /// </para> /// <para> /// This allows for sitations where only some areas (eg., 10% of blackforests) will have a spawn show up. /// </para> /// </summary> public static ILocalSpawnBuilder SetConditionAreaSpawnChance(this ILocalSpawnBuilder builder, float areaChance, uint templateId) { builder.SetCondition(new ConditionAreaSpawnChance(areaChance, (int)templateId)); return(builder); }
/// <summary> /// Sets range from center of world, in which spawning is allowed. /// </summary> /// <param name="minDistance">Required distance from center.</param> /// <param name="maxDistance">Maximum distance from center. If null, there will be no limit.</param> public static ILocalSpawnBuilder SetConditionDistanceToCenter(this ILocalSpawnBuilder builder, double?minDistance = null, double?maxDistance = null) { builder.SetCondition(new ConditionDistanceToCenter(minDistance, maxDistance)); return(builder); }
private static void SetExtraEffect(ILocalSpawnBuilder builder, string extraEffectName) => builder.SetModifier(new ModifierCllcExtraEffect(extraEffectName));
/// <summary> /// <para>Spawn template is only active when player is within <c>withinDistance</c> to Spawner.</para> /// </summary> public static ILocalSpawnBuilder SetConditionCloseToPlayer(this ILocalSpawnBuilder builder, float withinDistance) { builder.SetCondition(new ConditionCloseToPlayer(withinDistance)); return(builder); }
/// <summary> /// <para>Sets global keys which must not be present for spawning to be allowed.</para> /// <para> /// Eg., if "KilledTroll", "defeated_eikthyr" and world has global key "defeated_eikthyr", /// then this template will be disabled. /// </para> /// </summary> public static ILocalSpawnBuilder SetGlobalKeysRequiredMissing(this ILocalSpawnBuilder builder, params string[] globalKeys) { builder.SetCondition(new ConditionGlobalKeysRequiredMissing(globalKeys.ToArray())); return(builder); }