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(); } } }
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); }
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); }
public void OnConsume(MobileEntity entity, Consumable item) { if (entity.GetStatus(typeof(BlindStatus), out var status)) { entity.RemoveStatus(status); } }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
/// <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); }