1package com.osroyale.game.world.entity.combat.effect.impl;
3import com.osroyale.game.world.entity.combat.PoisonType;
4import com.osroyale.game.world.entity.combat.effect.CombatEffect;
5import com.osroyale.game.world.entity.combat.hit.Hit;
6import com.osroyale.game.world.entity.combat.hit.HitIcon;
7import com.osroyale.game.world.entity.combat.hit.Hitsplat;
8import com.osroyale.game.world.entity.mob.Mob;
9import com.osroyale.game.world.entity.mob.npc.definition.NpcDefinition;
10import com.osroyale.game.world.entity.mob.player.Player;
11import com.osroyale.game.world.items.Item;
12import com.osroyale.game.world.items.containers.equipment.Equipment;
13import com.osroyale.net.packet.out.SendMessage;
14import com.osroyale.net.packet.out.SendPoison;
16import java.util.Optional;
69 if (mob.getPoisonType() ==
null || mob.isPoisoned() || mob.isVenomed()) {
73 if (mob.isNpc() && mob.getNpc().definition.hasPoisonImmunity()) {
77 if (mob.isPlayer() && mob.getPlayer().equipment
79 .filter(helm -> helm.getId() == 13197 || helm.getId() == 13199 || helm.getId() == 12931)
85 Player player = mob.getPlayer();
86 if (player.getPoisonImmunity().get() > 0 || mob.isDead())
88 player.send(
new SendMessage(
"You have been poisoned!"));
91 mob.getPoisonDamage().set(mob.getPoisonType().getDamage());
98 boolean remove = mob.isVenomed() || !mob.isPoisoned() || mob.isDead();
99 if (
remove && mob.isPlayer()) {
112 mob.getPoisonDamage().decrementAndGet();
118 boolean poisoned = mob.isPoisoned();
119 if (poisoned && mob.isPlayer()) {
136 String name = item.getName();
137 if (name.endsWith(
"(p)")) {
140 if (name.endsWith(
"(p+)")) {
143 if (name.endsWith(
"(p++)")) {
147 return Optional.empty();
162 return Optional.empty();
boolean removeOn(Mob mob)
static Optional< PoisonType > getPoisonType(int npc)
static Optional< PoisonType > getPoisonType(Item item)
static final NpcDefinition[] DEFINITIONS