Ejemplo n.º 1
0
 private void RemoveEffect(EffectAction ea)
 {
     for (int i = 0; i < ea.tiles.Count; i++)
     {
         ea.tiles[i].tilehelper.Undo();
     }
 }
Ejemplo n.º 2
0
        public override void LoadFromStream(BinaryReader stream, FileVersion version)
        {
            base.LoadFromStream(stream, version);

            Action    = (EffectAction)(StreamUtils.ReadByte(stream));
            Duration  = StreamUtils.ReadInt(stream);
            Magnitude = StreamUtils.ReadInt(stream);
        }
Ejemplo n.º 3
0
 public Effect(GameSpace space, object owner, EffectID eID, object source, EffectAction actionKind, int duration, int magnitude)
     : base(space, owner)
 {
     CLSID     = (int)eID;
     Action    = actionKind;
     Duration  = duration;
     Magnitude = magnitude;
     Source    = source;
 }
Ejemplo n.º 4
0
 public ConsumableItem(string _name, string _description, ItemType _itemType, int _value, bool _usedInCombat, EffectAction _effectAction, int _strenght)
 {
     name         = _name;
     describtion  = _description;
     itemType     = _itemType;
     Value        = _value;
     UseInCombat  = _usedInCombat;
     strenght     = _strenght;
     effectAction = _effectAction;
 }
    public void ProjectileEffect()
    {
        Vector3 from     = new Vector3(3, 2, 0);
        Vector3 to       = new Vector3(-2, 3, 4);
        float   duration = 1.0f;

        EffectAction effectAction = EffectAction.CreateProjectileEffect(projectilePrefab, from, to, duration);

        actionManager.RunAction(effectAction);
    }
Ejemplo n.º 6
0
        public void ParseEffect(Character client)
        {
            var datas = Args.Split('|');

            foreach (var effect in datas)
            {
                var infos = effect.Split(';');
                EffectAction.ParseEffect(client, int.Parse(infos[0]), infos[1]);
            }
        }
Ejemplo n.º 7
0
        private void ApplyEffect(EffectAction action, string name)
        {
            AddRestorationPoint();

            lock (mCurrentBuffer.Value)
            {
                action(mCurrentBuffer.Value);
            }

            Redraw();
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Receive Effect event raise request and dispatch it through the internal Queue.
        /// </summary>
        private void ProcessEffect(EffectAction ef)
        {
            if (disposedValue)
            {
                return;
            }

            _effectsQueue.Enqueue(ef);
            _effectsTimer.Start();
            Application.DoEvents();
        }
Ejemplo n.º 9
0
 public void ApplyEffects(Character character)
 {
     try
     {
         foreach (var effect in Effects.Split('|'))
         {
             var infos = effect.Split(';');
             EffectAction.ParseEffect(character, int.Parse(infos[0]), infos[1]);
         }
     }
     catch { }
 }
Ejemplo n.º 10
0
    public void RemoveEffect(A_Effect effect, Tile tile)
    {
        int index = activeEffects.FindIndex(x => (x.effect == effect && x.tile == tile));

        if (index != -1)
        {
            EffectAction ea = activeEffects[index];
            RemoveEffect(ea);
            activeEffects.RemoveAt(index);
            Refresh();
        }
    }
Ejemplo n.º 11
0
        public MasterSweeper.Job RegisterJob(EffectAction.Action action, TimeSpan oneSweepDuration, int? iterations)
        {
            var job = new MasterSweeper.Job(action, oneSweepDuration, this.intervalMs, iterations);

            lock (lockTicks)
            {
                lock (lockJobs)
                {
                    jobs.Add(job);
                }
            }

            return job;
        }
Ejemplo n.º 12
0
        public CreateTokens(
            DynParam <int> count,
            CardTemplate token,
            EffectAction <Card> afterTokenComesToPlay   = null,
            DynParam <Player> tokenController           = null,
            EffectAction <CardTemplate> tokenParameters = null)
        {
            _afterTokenComesToPlay = afterTokenComesToPlay ?? delegate { };
            _tokenController       = tokenController;
            _setTokenParameters    = tokenParameters ?? delegate { };

            _count = count;
            _tokenFactories.Add(token);

            RegisterDynamicParameters(count, tokenController);
        }
Ejemplo n.º 13
0
        public SearchLibraryPutToZone(Zone zone, EffectAction <Card> afterPutToZone = null,
                                      int maxCount = 1, int minCount        = 0, CardSelector validator      = null,
                                      string text  = null, bool revealCards = true, DynParam <Player> player = null,
                                      CardOrder rankingAlgorithm = null)
        {
            _validator        = validator ?? delegate   { return(true); };
            _player           = player ?? new DynParam <Player>((e, g) => e.Controller, EvaluateAt.OnResolve);
            _text             = text ?? "Search your library for a card.";
            _zone             = zone;
            _afterPutToZone   = afterPutToZone ?? delegate { };
            _revealCards      = revealCards;
            _rankingAlgorithm = rankingAlgorithm ?? ((c, ctx) => - c.Score);
            _maxCount         = maxCount;
            _minCount         = minCount;

            RegisterDynamicParameters(_player);
        }
Ejemplo n.º 14
0
    public AnimeAction CreateHitDamageAction(Model targetModel,
                                             GameObject hitEffect = null)
    {
        ParallelAction hitDamagePack = new ParallelAction();

        hitDamagePack.name = "HitDamage";


        ModelHitAction hitAction = new ModelHitAction();

        hitAction.name  = "enemyHit";
        hitAction.actor = targetModel;
        hitDamagePack.AddAction(hitAction);

        GameTextAction damageAction = new GameTextAction();

        damageAction.textPrefab   = damageTextPrefab;
        damageAction.text         = 1000.ToString();
        damageAction.spawnPostion = targetModel.transform.position + new Vector3(0, 2, -2);

        hitDamagePack.AddAction(damageAction);

        if (hitEffect == null)
        {
            return(hitDamagePack);
        }
        //

        EffectAction effectAction = EffectAction.CreatePointEffect(hitEffect,
                                                                   targetModel.GetPosition());

        effectAction.onHitAction = hitDamagePack;
        return(effectAction);


        // SimpleAnimationAction effectAction = new SimpleAnimationAction();
        //  effectAction.clip = hitEffect;
        //  effectAction.spawnPosition = targetModel.transform.position  + new Vector3(0, 1, -2);
        //  hitDamagePack.AddAction(effectAction);
        // }



        // return hitDamagePack;
    }
Ejemplo n.º 15
0
    public void EffectCloud()
    {
        ParallelAction parallel = new ParallelAction();

        int effectCount = 30;

        for (int i = 0; i < effectCount; i++)
        {
            float x = Random.Range(-4f, 4f);
            float y = Random.Range(-2f, 2f);

            Vector3      spawnPos     = new Vector3(x, y, -5);
            EffectAction effectAction = EffectAction.CreatePointEffect(effectPrefab, spawnPos, null, 3);
            parallel.AddAction(effectAction);
        }

        actionManager.RunAction(parallel);
    }
Ejemplo n.º 16
0
    public AnimeAction CreateProjectileAction(Model actor,
                                              Model target,
                                              GameObject projectile,
                                              GameObject hitEffect)
    {
        // Sequence: Projectile Movement, Hit Effect, ModelHit HitValue

        SequenceAction sequence = new SequenceAction();

        Vector3 launchPos       = actor.GetLaunchPosition();
        Vector3 targetCenterPos = (Vector3)target.GetCenterPosition() + new Vector3(0, 0, -5);
        Vector3 targetPos       = (Vector3)target.GetOriginPosition() + new Vector3(0, 0, -5);
        float   duration        = 0.5f;

        // Projectile Move
        EffectAction projectileAction = EffectAction.CreateProjectileEffect(
            projectile, launchPos, targetCenterPos, duration);

        sequence.AddAction(projectileAction);

        // Hit Effect
        ParallelAction damagePack = new ParallelAction();

        sequence.AddAction(damagePack);

        EffectAction effectAction = EffectAction.CreatePointEffect(hitEffect, targetPos);

        damagePack.AddAction(effectAction);

        ModelHitAction hitAction = new ModelHitAction();

        hitAction.name  = "enemyHit";
        hitAction.actor = target;
        damagePack.AddAction(hitAction);


        int            damage       = Random.Range(500, 10000);
        GameTextAction damageAction = GameTextAction.Create(
            damageTextPrefab, damage.ToString(), target.transform.position + new Vector3(0, 2, -2));

        damagePack.AddAction(damageAction);

        return(sequence);
    }
Ejemplo n.º 17
0
        private void ConsumeEffectQueue()
        {
            if (disposedValue)
            {
                return;
            }

            if (_effectsQueue.Count > 0)
            {
                EffectAction ef = _effectsQueue.Dequeue();
                ef.Fire();
                // during this event SM can be eventually disposed from outside!!!!!
                if (disposedValue)
                {
                    return;
                }
            }
            if (_effectsQueue.Count > 0)
            {
                _effectsTimer.Start();
            }
        }
Ejemplo n.º 18
0
    public AnimeAction CreateHitDamageAction(Model targetModel,
                                             GameObject hitEffect = null)
    {
        ParallelAction hitDamagePack = new ParallelAction();

        hitDamagePack.name = "HitDamage";


        ModelHitAction hitAction = new ModelHitAction();

        hitAction.name  = "enemyHit";
        hitAction.actor = targetModel;
        hitDamagePack.AddAction(hitAction);

        GameTextAction damageAction = new GameTextAction();

        damageAction.textPrefab   = damageTextPrefab;
        damageAction.text         = 1000.ToString();
        damageAction.spawnPostion = targetModel.transform.position + new Vector3(0, 2, -2);

        hitDamagePack.AddAction(damageAction);

        if (hitEffect == null)
        {
            return(hitDamagePack);
        }
        //


        //
        Effect       effect  = hitEffect.GetComponent <Effect>();
        PositionType posType = effect == null ? PositionType.Ground : effect.positionType;

        EffectAction effectAction = EffectAction.CreatePointEffect(hitEffect,
                                                                   targetModel.GetPositionByType(posType));

        effectAction.onHitAction = hitDamagePack;
        return(effectAction);
    }
Ejemplo n.º 19
0
            public Job Reset(EffectAction.Action action, TimeSpan oneSweepDuration, int? iterations)
            {
                lock (lockObject)
                {
                    this.action = action;
                    this.step = (double)SweeperTables.DataPoints / (1000 / (double)intervalMs) / oneSweepDuration.TotalSeconds;
                    this.iterationCounter = iterations;
                }

                return this;
            }
Ejemplo n.º 20
0
 protected void AddAction <T>(EffectAction onAdded, EffectAction onUpdate, EffectAction onRemoved)
 {
     actions.Add((typeof(T), onAdded, onUpdate, onRemoved));
 }
Ejemplo n.º 21
0
        public Sweeper RegisterJob(EffectAction.Action job)
        {
            lock (lockJobs)
            {
                jobs.Add(job);
            }

            return this;
        }
Ejemplo n.º 22
0
 public bool CanCombine(EffectAction action)
 {
     return(false);
 }
Ejemplo n.º 23
0
    public void ParticleEffect()
    {
        EffectAction effectAction = EffectAction.CreatePointEffect(particlePrefab, Vector3.zero);

        actionManager.RunAction(effectAction);
    }
Ejemplo n.º 24
0
 public void Start()
 {
     action = GetComponent <EffectAction> ();
 }
Ejemplo n.º 25
0
            public Job ChangeAction(EffectAction.Action action)
            {
                lock (lockObject)
                {
                    this.action = action;
                }

                return this;
            }
Ejemplo n.º 26
0
 public CreateTokens(params CardTemplate[] tokens)
 {
     _tokenFactories.AddRange(tokens);
     _afterTokenComesToPlay = delegate { };
     _count = 1;
 }
Ejemplo n.º 27
0
 public bool CanCombine(EffectAction action)
 {
     return(action is MakeRestImpossibleEffectAction);
 }
Ejemplo n.º 28
0
 public MapEffect(GameSpace space, object owner, EffectID eID, object source, EffectAction actionKind, int duration, int magnitude)
     : base(space, owner, eID, source, actionKind, duration, magnitude)
 {
     Ext = null;
 }
Ejemplo n.º 29
0
        public static void InvokeEffect(EffectID effectID, LocatedEntity creature, object source, InvokeMode invokeMode, EffectAction action, EffectExt ext)
        {
            if (effectID == EffectID.eid_None)
            {
                return;
            }

            try {
                if (creature != null)
                {
                    GameEvent @event = new GameEvent(GameSpace.Instance, null);
                    @event.CLSID = (int)effectID;
                    @event.SetPos(creature.PosX, creature.PosY);
                    GlobalVars.nwrWin.DoEvent(EventID.event_EffectSound, null, null, @event);
                    @event.Dispose();
                }

                ItemState state;
                if (source != null && source is Item)
                {
                    state = ((Item)source).State;
                }
                else
                {
                    state = ItemState.is_Normal;
                }

                bool valid = (ext == null || ext.Valid);
                if (valid)
                {
                    IEffectProc proc = EffectsData.dbEffectProcs[(int)effectID].Proc;
                    if (proc != null)
                    {
                        proc.Invoke(effectID, (NWCreature)creature, source, state, invokeMode, ext);
                    }
                }
            } catch (Exception ex) {
                //EffectsData.dbEffects[(int)effectID]
                string msg = "Effect.invokeEffect(): " + effectID.ToString();
                if (creature != null)
                {
                    msg = msg + "/" + ((NWCreature)creature).Entry.Sign;
                }
                if (source != null && source is Item)
                {
                    msg = msg + "/" + ((Item)source).Entry.Sign;
                }
                msg = msg + ", " + ex.Message;
                Logger.Write(msg);
            }
        }
Ejemplo n.º 30
0
 public ViewModelActionStatusEffect(EffectAction effectAction)
     : base(effectAction.ProtoStatusEffect)
 {
     this.effectAction = effectAction;
 }
Ejemplo n.º 31
0
 public void AddAction(EffectAction action, ITarget target)
 {
     action.Initialize(target);
     _actionQueue.Enqueue(action);
 }
Ejemplo n.º 32
0
            internal Job(EffectAction.Action action, TimeSpan oneSweepDuration, int intervalMs, int? iterations)
            {
                this.action = action;
                this.intervalMs = intervalMs;
                this.iterationCounter = iterations;
                this.offset1 = 0;
                this.offset2 = SweeperTables.DataPoints / 4;
                this.offset3 = SweeperTables.DataPoints / 2;

                this.iterationsComplete = new ManualResetEvent(false);

                SetDuration(oneSweepDuration);
            }