Ejemplo n.º 1
0
        public void OnConsume(MobileEntity entity, Consumable item)
        {
            if (entity.GetStatus <PoisonStatus>() is PoisonStatus status)
            {
                var poisons = status.Poisons;

                if (_relative)
                {
                    for (var i = 0; i < _potency; i++)
                    {
                        poisons.Where(p => p.Potency > 0).Random().Potency--;
                    }
                }
                else
                {
                    foreach (var p in poisons.Where(p => p.Potency > 5))
                    {
                        p.Potency = 5;
                    }
                }

                if (status.Potency <= 0)
                {
                    entity.NeutralizePoison();
                }
            }
        }
Ejemplo n.º 2
0
        protected override bool OnEquip(MobileEntity entity)
        {
            if (!base.OnEquip(entity))
            {
                return(false);
            }

            if (!entity.GetStatus(typeof(StrengthSpellStatus), out var status))
            {
                status = new StrengthSpellStatus(entity)
                {
                    Inscription = new SpellInscription()
                    {
                        SpellId = 53
                    }
                };
                status.AddSource(new ItemSource(this));

                entity.AddStatus(status);
            }
            else
            {
                status.AddSource(new ItemSource(this));
            }

            return(true);
        }
Ejemplo n.º 3
0
        protected override bool OnEquip(MobileEntity entity)
        {
            if (!base.OnEquip(entity))
            {
                return(false);
            }

            if (!entity.GetStatus(typeof(BlindResistanceStatus), out var resistance))
            {
                resistance = new BlindResistanceStatus(entity)
                {
                    Inscription = new SpellInscription()
                    {
                        SpellId = 47
                    }
                };
                resistance.AddSource(new ItemSource(this));

                entity.AddStatus(resistance);
            }
            else
            {
                resistance.AddSource(new ItemSource(this));
            }

            return(true);
        }
Ejemplo n.º 4
0
 public void OnConsume(MobileEntity entity, Consumable item)
 {
     if (entity.GetStatus(typeof(BlindStatus), out var status))
     {
         entity.RemoveStatus(status);
     }
 }
Ejemplo n.º 5
0
        protected override bool OnEquip(MobileEntity entity)
        {
            if (!base.OnEquip(entity))
            {
                return(false);
            }

            if (!entity.GetStatus(typeof(IceProtectionStatus), out var iceStatus))
            {
                iceStatus = new IceProtectionStatus(entity)
                {
                    Inscription = new SpellInscription()
                    {
                        SpellId = 42
                    }
                };
                iceStatus.AddSource(new ItemSource(this));

                entity.AddStatus(iceStatus);
            }
            else
            {
                iceStatus.AddSource(new ItemSource(this));
            }

            return(true);
        }
Ejemplo n.º 6
0
        protected override bool OnEquip(MobileEntity entity)
        {
            if (!base.OnEquip(entity))
            {
                return(false);
            }

            if (ProvidesNightVision)
            {
                if (!entity.GetStatus(typeof(NightVisionStatus), out var status))
                {
                    status = new NightVisionStatus(entity)
                    {
                        Inscription = new SpellInscription()
                        {
                            SpellId = 36
                        }
                    };
                    status.AddSource(new ItemSource(this));

                    entity.AddStatus(status);
                }
                else
                {
                    status.AddSource(new ItemSource(this));
                }
            }

            return(true);
        }
Ejemplo n.º 7
0
        protected override bool OnUnequip(MobileEntity entity)
        {
            if (!base.OnUnequip(entity))
            {
                return(false);
            }

            if (entity.GetStatus(typeof(FireProtectionStatus), out var fireStatus))
            {
                fireStatus.RemoveSourceFor(this);
            }

            if (entity.GetStatus(typeof(IceProtectionStatus), out var iceStatus))
            {
                iceStatus.RemoveSourceFor(this);
            }

            return(true);
        }
Ejemplo n.º 8
0
        protected override bool OnUnequip(MobileEntity entity)
        {
            if (!base.OnUnequip(entity))
            {
                return(false);
            }

            if (entity.GetStatus(typeof(StrengthSpellStatus), out var status))
            {
                status.RemoveSourceFor(this);
            }

            return(true);
        }
Ejemplo n.º 9
0
        protected override bool OnUnequip(MobileEntity entity)
        {
            if (!base.OnUnequip(entity))
            {
                return(false);
            }

            if (entity.GetStatus(typeof(BlindResistanceStatus), out var resistance))
            {
                resistance.RemoveSourceFor(this);
            }

            return(true);
        }
Ejemplo n.º 10
0
        protected override bool OnUnequip(MobileEntity entity)
        {
            if (!base.OnUnequip(entity))
            {
                return(false);
            }

            if (ProvidesNightVision)
            {
                if (entity.GetStatus(typeof(NightVisionStatus), out var status))
                {
                    status.RemoveSourceFor(this);
                }
            }

            return(true);
        }
Ejemplo n.º 11
0
        protected override bool OnEquip(MobileEntity entity)
        {
            if (!base.OnEquip(entity))
            {
                return(false);
            }

            if (!entity.GetStatus(typeof(WaterWalkingStatus), out var status))
            {
                status = new WaterWalkingStatus(entity);
                status.AddSource(new ItemSource(this));

                entity.AddStatus(status);
            }
            else
            {
                status.AddSource(new ItemSource(this));
            }

            return(true);
        }
Ejemplo n.º 12
0
        /// <inheritdoc />
        protected override bool OnEquip(MobileEntity entity)
        {
            var onEquip = base.OnEquip(entity);

            if (!entity.GetStatus(typeof(FeatherFallStatus), out var status))
            {
                status = new FeatherFallStatus(entity)
                {
                    Inscription = new SpellInscription()
                    {
                        SpellId = 14
                    }
                };
                status.AddSource(new ItemSource(this));

                entity.AddStatus(status);
            }
            else
            {
                status.AddSource(new ItemSource(this));
            }

            return(onEquip);
        }