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);
    }
示例#2
0
    private void InstantiateEffect(GameObject effectToInstanciate)
    {
        GameObject effect = (GameObject)Instantiate(effectToInstanciate);

        effect.transform.parent   = EffectCollection.GetInstance().transform;
        effect.transform.position = transform.position;
    }
示例#3
0
        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!
            }
        }
示例#5
0
        /// <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);
        }
示例#7
0
    /// <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;
    }
示例#8
0
        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 }));
        }
示例#9
0
        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);
        }
示例#10
0
        /// <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++;
                }
            }
        }
    }
示例#12
0
        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);
        }
示例#14
0
        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();
        }
示例#15
0
    public void InstantiateEffect(GameObject effectToInstanciate, Vector2 position)
    {
        GameObject effect = (GameObject)Instantiate(effectToInstanciate);

        effect.transform.parent   = EffectCollection.GetInstance().transform;
        effect.transform.position = position;
    }
示例#16
0
        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);
        }
示例#17
0
        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);
 }
示例#20
0
        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;
         }
     }
 }
示例#22
0
    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);
    }
示例#23
0
        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;
            }
        }
示例#25
0
        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);
        }
示例#26
0
    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);
        }
    }
示例#29
0
    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);
    }
示例#30
0
        /// <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 });
        }
示例#34
0
 /// <summary>
 /// Initializes an instance of a CompositeEffect.
 /// </summary>
 public CompositeEffect()
 {
     _effects = new EffectCollection();
 }
示例#35
0
        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;
        }
示例#36
0
 /// <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);
        }