Exemple #1
0
        private void ProcessConditionEffects(RealmTime time)
        {
            if (_effects == null || !_tickingEffects)
            {
                return;
            }

            ConditionEffects newEffects = 0;

            _tickingEffects = false;
            for (var i = 0; i < _effects.Length; i++)
            {
                if (_effects[i] > 0)
                {
                    _effects[i] -= time.ElapsedMsDelta;
                    if (_effects[i] > 0)
                    {
                        newEffects     |= (ConditionEffects)((ulong)1 << i);
                        _tickingEffects = true;
                    }
                    else
                    {
                        _effects[i] = 0;
                    }
                }
                else if (_effects[i] == -1)
                {
                    newEffects |= (ConditionEffects)((ulong)1 << i);
                }
            }

            ConditionEffects = newEffects;
        }
Exemple #2
0
        public void TickEffects()
        {
            ConditionEffects newEffects = 0;

            for (int i = 0; i < Effects.Length; i++)
            {
                int time = Effects[i];

                //No effect to add
                if (time == 0)
                {
                    continue;
                }

                newEffects |= (ConditionEffects)((ulong)1 << (i - 1));

                if (time != -1) //Infinite duration
                {
                    Effects[i] -= Settings.MillisecondsPerTick;
#if DEBUG
                    if (Effects[i] < 0)
                    {
                        throw new Exception("Desynced effect duration");
                    }
#endif
                }
            }

            if (ConditionEffects != newEffects)
            {
                ConditionEffects = newEffects;
            }
        }
 protected virtual void ImportStats(StatsType stats, object val)
 {
     if (stats == StatsType.Name)
     {
         Name = (string)val;
     }
     else if (stats == StatsType.Size)
     {
         Size = (int)val;
     }
     else if (stats == StatsType.Effects)
     {
         ConditionEffects = (ConditionEffects)(int)val;
     }
 }
Exemple #4
0
        public override void Read(PacketReader r)
        {
            TargetId = r.ReadInt32();
            byte c = r.ReadByte();

            Effects = 0;
            for (int i = 0; i < c; i++)
            {
                Effects |= (ConditionEffects)(1 << r.ReadByte());
            }
            Damage   = r.ReadUInt16();
            Killed   = r.ReadBoolean();
            BulletId = r.ReadByte();
            ObjectId = r.ReadInt32();
        }
        protected virtual void ImportStats(StatsType stats, object val)
        {
            switch (stats)
            {
            case StatsType.Name:
                Name = (string)val;
                break;

            case StatsType.Size:
                Size = (int)val;
                break;

            case StatsType.Effects:
                ConditionEffects = (ConditionEffects)(int)val;
                break;
            }
        }
Exemple #6
0
 private void AEClearConditionEffectAura(RealmTime time, Item item, Position target, ActivateEffect eff)
 {
     this.AOE(eff.Range, true, player =>
     {
         var condition = eff.CheckExistingEffect;
         ConditionEffects conditions = 0;
         conditions |= (ConditionEffects)(1 << (Byte)condition.Value);
         if (!condition.HasValue || player.HasConditionEffect(conditions))
         {
             player.ApplyConditionEffect(new ConditionEffect()
             {
                 Effect     = eff.ConditionEffect.Value,
                 DurationMS = 0
             });
         }
     });
 }
Exemple #7
0
        private void AEClearConditionEffectSelf(RealmTime time, Item item, Position target, ActivateEffect eff)
        {
            var condition = eff.CheckExistingEffect;
            ConditionEffects conditions = 0;

            if (condition.HasValue)
            {
                conditions |= (ConditionEffects)(1 << (Byte)condition.Value);
            }

            if (!condition.HasValue || HasConditionEffect(conditions))
            {
                ApplyConditionEffect(new ConditionEffect()
                {
                    Effect     = eff.ConditionEffect.Value,
                    DurationMS = 0
                });
            }
        }
        private void ProcessConditionEffects(RealmTime time)
        {
            if (effects == null || !tickingEffects)
            {
                return;
            }

            ConditionEffects newEffects = 0;

            tickingEffects = false;
            for (int i = 0; i < effects.Length; i++)
            {
                if (effects[i] > 0)
                {
                    effects[i] -= time.thisTickTimes;
                    if (effects[i] > 0)
                    {
                        newEffects |= (ConditionEffects)(1 << i);
                    }
                    else
                    {
                        effects[i] = 0;
                    }
                    tickingEffects = true;
                }
                else if (effects[i] != 0)
                {
                    newEffects |= (ConditionEffects)(1 << i);
                }
            }
            if (newEffects == ConditionEffects)
            {
                return;
            }
            ConditionEffects = newEffects;
            UpdateCount++;
        }
Exemple #9
0
        void ProcessConditionEffects(RealmTime time)
        {
            if (effects == null || !tickingEffects)
            {
                return;
            }

            ConditionEffects newEffects = 0;

            tickingEffects = false;
            for (int i = 0; i < effects.Length; i++)
            {
                if (effects[i] > 0)
                {
                    effects[i] -= time.ElapsedMsDelta;
                    if (effects[i] > 0)
                    {
                        newEffects |= (ConditionEffects)((ulong)1 << i);
                    }
                    else
                    {
                        effects[i] = 0;
                    }
                    tickingEffects = true;
                }
                else if (effects[i] != 0)
                {
                    newEffects |= (ConditionEffects)((ulong)1 << i);
                }
            }
            if (newEffects != ConditionEffects)
            {
                ConditionEffects = newEffects;
                UpdateCount++;
            }
        }
Exemple #10
0
        void ProcessConditionEffects(RealmTime time)
        {
            if (effects == null || !tickingEffects) return;

            ConditionEffects newEffects = 0;
            tickingEffects = false;
            for (int i = 0; i < effects.Length; i++)
                if (effects[i] > 0)
                {
                    effects[i] -= time.thisTickTimes;
                    if (effects[i] > 0)
                        newEffects |= (ConditionEffects)((ulong)1 << i);
                    else
                        effects[i] = 0;
                    tickingEffects = true;
                }
                else if (effects[i] != 0)
                    newEffects |= (ConditionEffects)((ulong)1 << i);
            if (newEffects != ConditionEffects)
            {
                ConditionEffects = newEffects;
                UpdateCount++;
            }
        }
Exemple #11
0
 public static CheckConditionEffects Instance(ConditionEffects[] effects)
 {
     CheckConditionEffects ret;
     if (!instances.TryGetValue(effects, out ret))
         ret = instances[effects] = new CheckConditionEffects(effects);
     return ret;
 }
Exemple #12
0
 public bool HasConditionEffect(ConditionEffects eff)
 {
     return((ConditionEffects & eff) != 0);
 }
Exemple #13
0
 public ConditionalBehavior(ConditionEffects effect, Behavior behavior)
 {
     this.effect   = effect;
     this.behavior = behavior;
 }
Exemple #14
0
 // Token: 0x06000290 RID: 656 RVA: 0x00012070 File Offset: 0x00010270
 public bool HasConditionEffect(ConditionEffects effect)
 {
     return((this.Effects & (int)effect) != 0);
 }
Exemple #15
0
 public bool HasConditionEffect(ConditionEffects effect)
 {
     return (Effects & (int)effect) != 0;
 }
Exemple #16
0
 public bool HasConditionEffect(ConditionEffects eff)
 {
     return (ConditionEffects & eff) != 0;
 }
Exemple #17
0
 protected virtual void ImportStats(StatsType stats, object val)
 {
     if (stats == StatsType.Name) Name = (string)val;
     else if (stats == StatsType.Size) Size = (int)val;
     else if (stats == StatsType.Effects) ConditionEffects = (ConditionEffects)(int)val;
 }