private void SetRandomTargetType(BeachBallTarget target) { int num = UnityEngine.Random.Range(0, definitions.Length); TargetDefinition defintion = definitions[num]; target.SetDefintion(defintion); }
public void SetAITargetDefinition(TargetAdder adder, TargetEvaluator eval, params TargetFilter[] filters) { AITargetHandlerDefintion = new TargetDefinition(adder, filters); if (eval != null) { CustomTargetEvaluator = eval; } }
public SpellFailedReason FindAllTargets() { this.IsInitialized = true; WorldObject casterObject = this.Cast.CasterObject; if (casterObject == null) { SpellTargetCollection.log.Warn("Invalid SpellCast - Tried to find targets, without Caster set: {0}", (object)casterObject); return(SpellFailedReason.Error); } SpellEffect effect = this.FirstHandler.Effect; if (effect.Spell.IsPreventionDebuff) { SpellFailedReason spellFailedReason = SpellFailedReason.Ok; foreach (SpellEffectHandler handler in this.m_handlers) { spellFailedReason = handler.ValidateAndInitializeTarget(casterObject); if (spellFailedReason != SpellFailedReason.Ok) { return(spellFailedReason); } } this.Add(casterObject); return(spellFailedReason); } SpellFailedReason spellFailedReason1 = SpellFailedReason.Ok; TargetDefinition targetDefinition = effect.GetTargetDefinition(); if (targetDefinition != null) { SpellFailedReason failReason = SpellFailedReason.Ok; targetDefinition.Collect(this, ref failReason); } else { if (effect.ImplicitTargetA != ImplicitSpellTargetType.None) { spellFailedReason1 = this.FindTargets(effect.ImplicitTargetA); if (spellFailedReason1 != SpellFailedReason.Ok) { return(spellFailedReason1); } } if (effect.ImplicitTargetB != ImplicitSpellTargetType.None) { spellFailedReason1 = this.FindTargets(effect.ImplicitTargetB); } } return(spellFailedReason1); }
public SpellFailedReason FindTargets(ImplicitSpellTargetType targetType) { SpellFailedReason failReason = SpellFailedReason.Ok; TargetDefinition targetDefinition = DefaultTargetDefinitions.GetTargetDefinition(targetType); if (targetDefinition != null) { targetDefinition.Collect(this, ref failReason); } return(failReason); }
/// <summary> /// Whether this effect can share targets with the given effect /// </summary> public bool SharesTargetsWith(SpellEffect b) { TargetDefinition targetDefinition = GetTargetDefinition(); if (targetDefinition != null && targetDefinition.Equals(b.GetTargetDefinition())) { return(true); } if (ImplicitTargetA == b.ImplicitTargetA) { return(ImplicitTargetB == b.ImplicitTargetB); } return(false); }
/// <summary> /// Removes all targets that don't satisfy the effects' constraints /// </summary> public void RevalidateAll() { SpellEffectHandler firstHandler = this.FirstHandler; SpellCast cast = firstHandler.Cast; for (int index = this.Count - 1; index >= 0; --index) { WorldObject target = this[index]; if (target.IsInWorld) { TargetDefinition targetDefinition = firstHandler.Effect.GetTargetDefinition(); if (targetDefinition != null) { if (this.ValidateTarget(target, targetDefinition.Filter) == SpellFailedReason.Ok) { continue; } } else if (this.ValidateTarget(target, DefaultTargetDefinitions.GetTargetFilter(firstHandler.Effect.ImplicitTargetA)) == SpellFailedReason.Ok) { TargetFilter targetFilter = DefaultTargetDefinitions.GetTargetFilter(firstHandler.Effect.ImplicitTargetB); if (targetFilter != null) { SpellFailedReason failReason = SpellFailedReason.Ok; targetFilter(firstHandler, target, ref failReason); if (failReason == SpellFailedReason.Ok) { continue; } } else { continue; } } } this.RemoveAt(index); } }
public VyosConfiguration(ZoneConfig zoneConfig, CLIOptions options) { foreach (ZoneName zName in zoneConfig.Zones) { ZoneConfiguration.Add(zName, new ZoneConfiguration(zName, zoneConfig.ZoneDefinitions.GetValueOrDefault(zName, Zone.DefaultZone))); FirewallConfiguration.Add(zName, new Dictionary <ZoneName, FirewallConfiguration>()); foreach (ZoneName other in zoneConfig.Zones.Where(z => z != zName)) { var dict = FirewallConfiguration[zName]; dict.Add(other, new FirewallConfiguration($"{zName}-{other}", options)); } } foreach (var(zName, definition) in zoneConfig.ZoneDefinitions) { var pingableZones = definition.AllowPingTo == TargetDefinition.All ? TargetDefinition.GetTargetDefinition(FirewallConfiguration[zName].Keys.ToList()) : definition.AllowPingTo; foreach (var pingableZone in pingableZones) { FirewallConfiguration[zName][pingableZone.Name].AllowPing(); } var whitelistedZones = definition.AllowTrafficTo == TargetDefinition.All ? TargetDefinition.GetTargetDefinition(FirewallConfiguration[zName].Keys.ToList()) : definition.AllowTrafficTo; foreach (var whitelistedZone in whitelistedZones) { if (whitelistedZone.Name == TargetDefinition.WILDCARD) { foreach (var other in TargetDefinition.GetTargetDefinition(FirewallConfiguration[zName].Keys.ToList())) { FirewallConfiguration[zName][other.Name].AllowTraffic(whitelistedZone.AllowedPorts, whitelistedZone.AllowedAddresses); } } else { FirewallConfiguration[zName][whitelistedZone.Name].AllowTraffic(whitelistedZone.AllowedPorts, whitelistedZone.AllowedAddresses); } } } }
public void SetAITargetDefinition(TargetAdder adder, params TargetFilter[] filters) { AITargetHandlerDefintion = new TargetDefinition(adder, filters); }