public void InstantiateEffect(GameObject effectToInstanciate) { GameObject effect = (GameObject)Instantiate(effectToInstanciate); effect.transform.parent = EffectCollection.GetInstance().transform; effect.transform.position = new Vector3(transform.position.x, waterSurfaceY, transform.position.z); }
private void InstantiateEffect(GameObject effectToInstanciate) { GameObject effect = (GameObject)Instantiate(effectToInstanciate); effect.transform.parent = EffectCollection.GetInstance().transform; effect.transform.position = transform.position; }
private static void CheckArguments(EffectCollection currentEffects, SurvivalStat stat, IEnumerable <SurvivalStatKeyPoint> keyPoints, ISurvivalRandomSource survivalRandomSource) { if (currentEffects == null) { throw new ArgumentNullException(nameof(currentEffects)); } if (stat == null) { throw new ArgumentNullException(nameof(stat)); } if (keyPoints == null) { throw new ArgumentNullException(nameof(keyPoints)); } if (survivalRandomSource == null) { throw new ArgumentNullException(nameof(survivalRandomSource)); } }
private void LoadEffects(Package package, EffectsDefinition effectsDef) { if (effectsDef?.Effects == null || effectsDef.Effects.Count == 0) { _assetErrors.Add($"{package.packageName} - effects list is null or empty."); return; } foreach (var effectDef in effectsDef.Effects) { if (effectDef?.Name == null) { _assetErrors.Add($"{package.packageName} - Effect name missing."); continue; } if (_effects.Any(e => e.name == effectDef.Name) || EffectCollection.FindEffect(effectDef.Name) != null) { //_assetErrors.Add($"{package.packageName} - {effectDef.Name} - Duplicate effect name!"); continue; } if (effectDef is EffectsDefinition.LightEffect lightEffectDef) { LoadLightEffect(package, lightEffectDef); } // TODO add support for other asset types! } }
/// <summary> /// Обновление эффекта модуля выживания. /// </summary> /// <param name="currentEffects"> Текущий список эффектов. </param> /// <param name="stat"> Характеристика, на которую влияет эффект. </param> /// <param name="keyPoints"> Ключевые точки, которые учавствуют в изменении характеристик. </param> /// <param name="survivalRandomSource"> Источник рандома выживания. </param> public static void UpdateSurvivalEffect( [NotNull] EffectCollection currentEffects, [NotNull] SurvivalStat stat, [NotNull][ItemNotNull] IEnumerable <SurvivalStatKeyPoint> keyPoints, [NotNull] ISurvivalRandomSource survivalRandomSource) { CheckArguments(currentEffects, stat, keyPoints, survivalRandomSource); var statType = stat.Type; var currentTypeEffect = GetCurrentEffect(currentEffects, statType); var keyPoint = keyPoints.Last(); if (currentTypeEffect != null) { // Эффект уже существует. Изменим его уровень. if (stat.Value <= keyPoint.Value) { currentTypeEffect.Level = keyPoint.Level; } else { if (keyPoint.Level == SurvivalStatHazardLevel.Lesser) { currentEffects.Remove(currentTypeEffect); } else { switch (keyPoint.Level) { case SurvivalStatHazardLevel.Strong: currentTypeEffect.Level = SurvivalStatHazardLevel.Lesser; break; case SurvivalStatHazardLevel.Max: currentTypeEffect.Level = SurvivalStatHazardLevel.Strong; break; case SurvivalStatHazardLevel.Undefined: throw new NotSupportedException(); case SurvivalStatHazardLevel.Lesser: throw new NotSupportedException(); default: throw new InvalidOperationException("Уровень эффекта, который не обрабатывается."); } } } } else { // Создаём эффект var newCurrentTypeEffect = new SurvivalStatHazardEffect(statType, keyPoint.Level, survivalRandomSource); currentEffects.Add(newCurrentTypeEffect); } }
/// <summary> /// Adds the effect with name effectName to info /// </summary> public static bool AddEffect(VehicleInfo info, string effectName, Vehicle.Flags flagsRequired = Vehicle.Flags.Created, Vehicle.Flags flagsForbidden = 0) { EffectInfo effect = EffectCollection.FindEffect(effectName); if (effect == null) { return(false); } int size = info.m_effects != null ? info.m_effects.Length + 1 : 1; VehicleInfo.Effect[] tmp = new VehicleInfo.Effect[size]; if (size > 1) { Array.Copy(info.m_effects, tmp, size - 1); } var newEffect = new VehicleInfo.Effect { m_effect = effect, m_parkedFlagsForbidden = VehicleParked.Flags.Created, m_parkedFlagsRequired = VehicleParked.Flags.None, m_vehicleFlagsForbidden = flagsForbidden, m_vehicleFlagsRequired = flagsRequired, }; tmp[size - 1] = newEffect; info.m_effects = tmp; return(true); }
/// <summary> /// Start this instance. /// </summary> private void Initialize() { print("Unit.Initialize"); Transform unitSpriteTransform = transform.Find("Sprite(Clone)"); _unitAnimationController = unitSpriteTransform.GetComponent <UnitAnimationController> (); _spriteRenderer = unitSpriteTransform.GetComponent <SpriteRenderer> (); _attributeCollection = UnitData.AttributeCollection; _effectCollection = new EffectCollection(); _modifyAttributeEffectCollection = new ModifyAttributeEffectCollection(); _unitColorEffects = new List <UnitColorEffect> (); SetMaximumValueToCurrentValue(AttributeEnums.AttributeType.HIT_POINTS); SetMaximumValueToCurrentValue(AttributeEnums.AttributeType.ABILITY_POINTS); _inventorySlots = UnitData.InventorySlots; _canvas = transform.Find("Canvas").GetComponent <Canvas> (); FacedDirection = TileDirection.EAST; _characterSheetController = GameManager.Instance.GetCharacterSheetController(); _combatMenuController = GameManager.Instance.GetCombatMenuController(); TileHighlighter = new TileHighlighter(GameManager.Instance.GetTileMap(), _movementHighlightCube); _movementAudioSource = gameObject.AddComponent <AudioSource> (); _weaponAudioSource = gameObject.AddComponent <AudioSource> (); _currentColor = DefaultColor; }
public ActionResult CreateRule(policyData vData, int linkId) { vData.PolicyLink = new PolicyLinkEntity(linkId); vData.Policy = vData.PolicyLink.Policy; vData.Rule = new RuleEntity(); vData.Rule.Policy = vData.Policy; vData.Rule.Condition.Type = constants.conditionType; vData.Condition = vData.Rule.Condition; vData.Condition.CombineAnd = true; RuleCollection maxColl = new RuleCollection(); PredicateExpression pe = new PredicateExpression(RuleFields.PolicyId == vData.PolicyLink.PolicyId); object maxObj = maxColl.GetScalar(RuleFieldIndex.Order, null, AggregateFunction.Max, pe); if (maxObj != null && maxObj != DBNull.Value) { vData.Rule.Order = (int)maxObj + 1; } else { vData.Rule.Order = 0; } EffectCollection ecoll = new EffectCollection(); ecoll.GetMulti((EffectFields.Name == "permit")); vData.Rule.EffectId = ecoll[0].Id; vData.Rule.Save(true); return(RedirectToAction("EditRule", new { id = vData.Rule.Id, linkId = linkId })); }
public MainWindowViewModel() { Configuration.LoadConfiguration(); Logger.Initialize(); engine = new AudioEngine(5, false); int result = engine.initialize(); if (AudioEngine.Failed(result)) { Logger.Log("Error initializing AudioEngine: " + AudioEngine.getErrorCode(result)); } renderDevices = engine.getRenderDevices().ToList(); renderDevices.Add("Default Render Device"); captureDevices = engine.getCaptureDevices().ToList(); captureDevices.Add("Default Capture Device"); captureDevice = captureDevices.Last(); renderDevice = renderDevices.Last(); effectWindow = new EffectCollection(); this.volume = 100; StartCommand = new RelayCommand( () => this.Start(), () => true); MuteCommand = new RelayCommand( () => this.Mute(), () => true); AddEffectCommand = new RelayCommand( () => this.AddEffect(), () => true); }
/// <summary> /// コンストラクタ /// </summary> public EffectObject() { Children = new EffectCollection(this); Scenario = new Scenario(); LocalTransform = new Matrix44d(); BaseScale = new Point3d(1.0, 1.0, 1.0); Scale = new Point3d(1.0, 1.0, 1.0); Opacity = 1.0; //Transform = new Matrix44d(); InheritedOpacity = 1.0; // 値をForeverにすると、子要素があってもなくてもオブジェクトが // 終了しなくなります。 // また0にすると最初のフレームでオブジェクトが破棄されてしまうため、 // 初期化の仕方によってはDurationの設定に失敗することがあります。 // そのため、ここでは非常に小さいけれど0より大きい値を設定しています。 Duration = TimeSpan.FromSeconds(0.001); this.AddPropertyChangedHandler("Parent", (_, __) => { OnDataContextChanged(true); UpdateInheritedOpacity(); }); this.AddPropertyChangedHandler("BasePath", (_, __) => OnBasePathChanged(BasePath)); this.AddPropertyChangedHandler("DataContext", (_, __) => OnDataContextChanged(false)); this.AddPropertyChangedHandler("Opacity", (_, __) => UpdateInheritedOpacity()); lock (instanceList) { instanceList.Add(new WeakReference(this)); } }
// Update is called once per frame void Update() { if (spawnAllowed) { if ((maxEnemies <= 0 || maxEnemies > numberSpawnedEnemies) && (maxEnemiesAtOnce <= 0 || transform.childCount < maxEnemiesAtOnce)) { if (timeLastSpawn + nextTimer < Time.timeSinceLevelLoad) { //spawn if (showSpawnEffect) { // spawn Effect GameObject effect = Instantiate(spawnEffectPrefab, positionSpawnEffect, transform.rotation); effect.transform.parent = EffectCollection.GetInstance().transform; StartCoroutine(SpawnEnemy(timeOffsetSpawnEffect)); } else { SpawnEnemy(timeOffsetSpawnEffect); } updateNextTimer(); timeLastSpawn = Time.timeSinceLevelLoad; numberSpawnedEnemies++; } } } }
public static EffectInfo FindEffect(string effectName) { // Particle Effects aren't all added to EffectCollection, so search for GameObjects as well var effect = EffectCollection.FindEffect(effectName) ?? GameObject.Find(effectName)?.GetComponent <EffectInfo>(); return(effect); }
ISolidWeapon CreatePrimaryWeapon() { EffectCollection DefaultEffectCollection = new EffectCollection(); DefaultEffectCollection.Effects.Add(new ShipStateEffect(TargetingInfo.All, EffectTypes.None, new EffectSounds(), new ShipStateChange(-4, 0, 0, 0))); ISolidWeapon w = new SpawningSolidWeapon( new LifeSpan(TimeWarp.RangeToTime(60, 80)), new PhysicsState(), BodyFlags.None, GetPrimaryWeaponShape(), new ShipMovementInfo( new Bounded <float>(TimeWarp.AngularAcceleration), new Bounded <float>(TimeWarp.ScaleTurning(3)), new Bounded <float>(TimeWarp.ScaleAcceleration(80, 0)), new Bounded <float>(TimeWarp.ScaleVelocity(80))), new ShipState( new Bounded <float>(1), new Bounded <float>(0), new Bounded <float>(0), new Bounded <float>(0)), new ControlableSounds(), new WeaponsLogic( new TargetingInfo(TargetingTypes.All, TargetingTypes.None, TargetingTypes.None), new EffectCollection(DefaultEffectCollection)), CreatePrimarySpawn(), true); w.ControlHandler = new DefaultControlHandler(); w.AddControler(null, new MissileControler(TargetingInfo.FromRequireAll(TargetingTypes.Enemy | TargetingTypes.Ship))); return(w); }
public void UpdateSurvivalEffect_HasLesserEffectAndValueMoreThatKetValue_HasNoEffect() { //ARRANGE var currentEffects = new EffectCollection(); var testedEffect = new SurvivalStatHazardEffect(SurvivalStatType.Satiety, SurvivalStatHazardLevel.Lesser); currentEffects.Add(testedEffect); var stat = new SurvivalStat(1) { Type = SurvivalStatType.Satiety, KeyPoints = new[] { new SurvivalStatKeyPoint { Level = SurvivalStatHazardLevel.Lesser, Value = 0 } } }; // ACT PersonEffectHelper.UpdateSurvivalEffect(currentEffects, stat, stat.KeyPoints[0]); // ASSERT var factEffect = currentEffects.Items.OfType <SurvivalStatHazardEffect>() .SingleOrDefault(x => x.Type == SurvivalStatType.Satiety); factEffect.Should().BeNull(); }
public void InstantiateEffect(GameObject effectToInstanciate, Vector2 position) { GameObject effect = (GameObject)Instantiate(effectToInstanciate); effect.transform.parent = EffectCollection.GetInstance().transform; effect.transform.position = position; }
private static PatchResult DuplicateEffectAudioInfo(string effectId, string audioInfoId, MultiEffect effectContainer = null) { SoundEffect soundEffect = null; if (effectContainer != null) { soundEffect = effectContainer.m_effects.FirstOrDefault(e => e.m_effect.name == effectId).m_effect as SoundEffect; } else { soundEffect = EffectCollection.FindEffect(effectId) as SoundEffect; } if (soundEffect == null || soundEffect.m_audioInfo == null) { return(PatchResult.NotFound); } // Check if the AudioInfo object has our name, if not, we have to patch it. if (soundEffect.m_audioInfo.name != audioInfoId) { AudioInfo audioInfo = GameObject.Instantiate(soundEffect.m_audioInfo); audioInfo.name = audioInfoId; soundEffect.m_audioInfo = audioInfo; return(PatchResult.Success); } return(PatchResult.AlreadyPatched); }
private Mock <IActor> CreateActorMock() { var actorMock = new Mock <IActor>(); var personMock = new Mock <IPerson>(); var person = personMock.Object; actorMock.SetupGet(x => x.Person).Returns(person); _survivalDataMock = new Mock <ISurvivalData>(); var survivalStats = new[] { new SurvivalStat(0, -10, 10) { Type = SurvivalStatType.Satiety, Rate = 1, KeyPoints = new SurvivalStatKeyPoint[0] } }; _survivalDataMock.Setup(x => x.Stats).Returns(survivalStats); var survivalData = _survivalDataMock.Object; personMock.SetupGet(x => x.Survival).Returns(survivalData); var effectCollection = new EffectCollection(); personMock.SetupGet(x => x.Effects).Returns(effectCollection); return(actorMock); }
public GameObject InstantiateEffect(GameObject effectToInstanciate) { GameObject effect = (GameObject)Instantiate(effectToInstanciate); effect.transform.parent = EffectCollection.GetInstance().transform; effect.transform.position = transform.position; return(effect); }
private void Awake() { if (this.IsIgnored()) { Destroy(this); return; } EffectCollection.InitializeEffects(this.m_effects); }
public override SoundContainer GetSoundInstance() { var soundEffect = EffectCollection.FindEffect(this.Id) as SoundEffect; if (soundEffect != null) { return(new SoundContainer(soundEffect)); } return(null); }
private void InstantiateDustEffects(GameObject prefabEffect) { for (int i = 0; i < transform.childCount; i++) { if (transform.GetChild(i).tag == "Effect") { GameObject effect = (GameObject)Instantiate(prefabEffect); effect.transform.parent = EffectCollection.GetInstance().transform; effect.transform.position = transform.GetChild(i).position; } } }
private void InstantiateLootChild(LootPackage lootPackage) { GameObject objToSpawn = new GameObject("LootChild_" + name); //Add Components objToSpawn.AddComponent <LootChild>(); objToSpawn.transform.position = transform.position; objToSpawn.transform.parent = EffectCollection.GetInstance().transform; LootChild lc = objToSpawn.GetComponent <LootChild>(); lc.SpawnLoot(lootPackage); }
public void BuildUp(PropInfo newProp) { var newEffect = EffectCollection.FindEffect("Street Light Medium Road"); if (newEffect != null) { for (var i = 0; i < newProp.m_effects.Length; i++) { newProp.m_effects[i].m_effect = newEffect; } } }
private void Reset() { EffectCollection.DestroyEffects(_effects.ToArray()); _effects.Clear(); _assetErrors.Clear(); if (_prefabCollection != null) { Destroy(_prefabCollection); _prefabCollection = null; } }
public SelectList effects(object selObjId) { if (m_effects == null) { m_effects = new EffectCollection(); SortExpression se = new SortExpression(EffectFields.Name | SortOperator.Ascending); m_effects.GetMulti(null, 0, se); } SelectList selList = new SelectList(m_effects, "Id", "Name", selObjId); return(selList); }
public void InstantiateEffect(GameObject effectToInstanciate, Vector2 position, float rotateAngel = 0F) { GameObject effect = (GameObject)Instantiate(effectToInstanciate); float scaleX = transform.localScale.x; effect.transform.localScale = new Vector3(scaleX, effect.transform.localScale.y, effect.transform.localScale.z); effect.transform.parent = EffectCollection.GetInstance().transform; effect.transform.position = position; if (rotateAngel != 0) { effect.transform.rotation = Quaternion.Euler(transform.eulerAngles + new Vector3(0, 0, rotateAngel)); } }
TargetedRayWeapon CreateSecondaryWeapon() { TargetingInfo DefaultEffectsWho = new TargetingInfo(TargetingTypes.Enemy | TargetingTypes.Other | TargetingTypes.Debris, TargetingTypes.None, TargetingTypes.Ally); EffectCollection DefaultEffectCollection = new EffectCollection(); DefaultEffectCollection.Effects.Add(new ShipStateEffect(DefaultEffectsWho, EffectTypes.None, new EffectSounds(), new ShipStateChange(-1, 0, 0, 0))); return(new TargetedRayWeapon( new LifeSpan(TimeWarp.RateToTime(0)), new WeaponsLogic( DefaultEffectsWho, DefaultEffectCollection), SecondaryImpulse, SecondaryRadius)); }
private void Die() { if (!IsTargetable) { return; } IsTargetable = false; EventHub.OnTargetableDestroyed.Invoke(this); // TODO: Explosion particles & Sound Instantiate(EffectCollection.GetShipKillEffect(), transform.position, new Quaternion()); var rb = GetComponent <Rigidbody>(); var engine = GetComponent <Engine>(); if (rb != null && engine != null) { rb.velocity = engine.currentSpeed * transform.forward; rb.useGravity = true; rb.isKinematic = false; rb.drag = 0; rb.angularDrag = 0.05f; engine.enabled = false; var engineParticles = engine.GetComponentsInChildren <ParticleSystem>(); foreach (var particles in engineParticles) { particles.Stop(); } var playerController = engine.GetComponent <PlayerController>(); if (playerController != null) { playerController.enabled = false; } // TODO: Fire particles engine.gameObject.AddComponent <Wreckage>(); enabled = false; } else { Destroy(gameObject, 0.1f); } }
private void InstantiateEffect(GameObject effectToInstanciate, float dirX, Vector3 position, Transform parent = null) { GameObject effect = (GameObject)Instantiate(effectToInstanciate); if (parent == null) { effect.transform.parent = EffectCollection.GetInstance().transform; } else { effect.transform.parent = parent; } effect.transform.position = position; effect.transform.localScale = new Vector3(dirX, effect.transform.localScale.y, effect.transform.localScale.z); }
/// <summary> /// Обновление эффекта модуля выживания. /// </summary> /// <param name="currentEffects"> Текущий список эффектов. </param> /// <param name="stat"> Характеристика, на которую влияет эффект. </param> /// <param name="keySegments"> Ключевые сегменты, которые были пересечены при изменении характеристики. /// <param name="survivalRandomSource"> Источник рандома выживания. </param> public static void UpdateSurvivalEffect( [NotNull] EffectCollection currentEffects, [NotNull] SurvivalStat stat, [NotNull][ItemNotNull] SurvivalStatKeySegment[] keySegments, [NotNull] ISurvivalRandomSource survivalRandomSource) { ThrowExceptionIfArgumentsInvalid(currentEffects, stat, keySegments, survivalRandomSource); // Эффект выставляем на основе текущего ключевого сегмента, в которое попадает значение характеристики выживания. // Если текущее значение не попадает ни в один сегмент, то эффект сбрасывается. var currentSegments = keySegments.CalcIntersectedSegments(stat.ValueShare); // Если попадаем на стык с двумя сегментами, просто берём первый. // Иногда это будет давать более сильный штрафной эффект, // но пока не понятно, как по другому сделать отрезки. var currentSegment = currentSegments.FirstOrDefault(); var statType = stat.Type; var currentTypeEffect = GetCurrentEffect(currentEffects, statType); if (currentTypeEffect != null) { // Эффект уже существует. Изменим его уровень. // Или удалим, если текущее значение не попадает ни в один из сегментов. if (currentSegment == null) { currentEffects.Remove(currentTypeEffect); } else { currentTypeEffect.Level = currentSegment.Level; } } else { if (currentSegment != null) { // Создаём эффект var newEffect = new SurvivalStatHazardEffect( statType, currentSegment.Level, survivalRandomSource); currentEffects.Add(newEffect); } } }
static void Initialize() { initialized = true; DefaultMovementInfo = new ShipMovementInfo( new Bounded <float>(0), new Bounded <float>(0), new Bounded <float>(0), new Bounded <float>(TimeWarp.ScaleVelocity(120))); DefaultDelay = new Bounded <float>(TimeWarp.RateToTime(1)); DefaultBuildUpDelay = new Bounded <float>(2); int length = 4; DefaultCost = new Costs(new ShipStateChange(0, 5, 0, 0), new ShipStateChange(0, TimeWarp.RechargeRateToPerSeconds(4, 1), 0, 0), new ShipStateChange(0, 0, 0, 0)); DefaultState = new ShipState[length]; DefaultLifeTimes = new LifeSpan[length]; DefaultEffectCollections = new EffectCollection[length]; EffectSounds sounds = null; for (int pos = 0; pos < length; ++pos) { switch (pos) { case 1: sounds = new EffectSounds(); break; case 2: sounds = new EffectSounds("Boom35", null, null); break; case 3: sounds = new EffectSounds(); break; default: sounds = new EffectSounds(); break; } DefaultEffectCollections[pos] = new EffectCollection(); DefaultEffectCollections[pos].Effects.Add(new ShipStateEffect(TargetingInfo.All, EffectTypes.None, sounds, new ShipStateChange(-(float)Math.Pow(2, pos + 1), 0, 0, 0))); DefaultState[pos] = new ShipState(new Bounded <float>((float)Math.Pow(2, pos + 1)), new Bounded <float>(0), new Bounded <float>(0), new Bounded <float>(0)); DefaultLifeTimes[pos] = new LifeSpan(TimeWarp.RangeToTime(21 + 3 * pos, 112)); } DefaultTargetingTypes = TargetingInfo.None; DefaultActionSounds = new ActionSounds(null, null, "EnergyGun2"); }
public AssetManager(Game game) : base(game) { _textures = new TextureCollection(); _fonts = new FontCollection(); _effects = new EffectCollection(); _skeletons = new SkeletonCollection(); _content = new ElegyEngine.Content.ExclusiveContentManager(game.Services); _textureLoad = false; _effectLoad = false; _fontLoad = false; _skeletonLoad = false; _frameCaptured = false; }
public ActionResult CreateRule(policyData vData, int linkId) { vData.PolicyLink = new PolicyLinkEntity(linkId); vData.Policy = vData.PolicyLink.Policy; vData.Rule = new RuleEntity(); vData.Rule.Policy = vData.Policy; vData.Rule.Condition.Type = constants.conditionType; vData.Condition = vData.Rule.Condition; vData.Condition.CombineAnd = true; RuleCollection maxColl = new RuleCollection(); PredicateExpression pe = new PredicateExpression(RuleFields.PolicyId == vData.PolicyLink.PolicyId); object maxObj = maxColl.GetScalar(RuleFieldIndex.Order, null, AggregateFunction.Max, pe); if (maxObj != null && maxObj != DBNull.Value) vData.Rule.Order = (int)maxObj + 1; else vData.Rule.Order = 0; EffectCollection ecoll = new EffectCollection(); ecoll.GetMulti((EffectFields.Name == "permit")); vData.Rule.EffectId = ecoll[0].Id; vData.Rule.Save(true); return RedirectToAction("EditRule", new { id = vData.Rule.Id, linkId = linkId }); }
/// <summary> /// Initializes an instance of a CompositeEffect. /// </summary> public CompositeEffect() { _effects = new EffectCollection(); }
public SelectList effects(object selObjId) { if (m_effects == null) { m_effects = new EffectCollection(); SortExpression se = new SortExpression(EffectFields.Name | SortOperator.Ascending); m_effects.GetMulti(null, 0, se); } SelectList selList = new SelectList(m_effects, "Id", "Name", selObjId); return selList; }
/// <summary>Creates a new <see cref="CompositeEffect"/> instance.</summary> public CompositeEffect() : base() { Children = new EffectCollection(); }
private void loadRule(int idx,PolicyEntity pe, XmlNode node) { RuleEntity re = new RuleEntity(); re.Policy = pe; re.Order = idx; string effect = "permit"; XmlNode attr = node.Attributes.GetNamedItem("effect"); if (attr != null) effect = attr.Value; EffectCollection ecoll = new EffectCollection(); ecoll.GetMulti(EffectFields.Name == effect); if (ecoll.Count != 1) throw new Exception(string.Format("unrecognised rule effect {0}", effect)); re.Effect = ecoll[0]; DecisionNodeEntity ce = new DecisionNodeEntity(); re.Condition = ce; ce.Type = constants.conditionType; ce.IsDirty = true; XmlNode condition = node.SelectSingleNode("condition"); if (condition != null) loadCondition(ce, condition); }