Fixed Plunder effect.

This commit is contained in:
MobiusDevelopment
2019-03-20 00:27:18 +00:00
parent 7ca4b242c5
commit 3c6ad12888
22 changed files with 315 additions and 176 deletions

View File

@ -100,6 +100,7 @@ public class L2Attackable extends L2Npc
private final AtomicReference<ItemHolder> _harvestItem = new AtomicReference<>();
// Spoil
private int _spoilerObjectId;
private boolean _plundered = false;
private final AtomicReference<Collection<ItemHolder>> _sweepItems = new AtomicReference<>();
// Over-hit
private boolean _overhit;
@ -1028,7 +1029,7 @@ public class L2Attackable extends L2Npc
npcTemplate.getExtendDrop().stream().map(ExtendDropData.getInstance()::getExtendDropById).filter(Objects::nonNull).forEach(e -> e.reward(player, this));
if (isSpoiled())
if (isSpoiled() && !_plundered)
{
_sweepItems.set(npcTemplate.calculateDrops(DropType.SPOIL, this, player));
}
@ -1484,6 +1485,7 @@ public class L2Attackable extends L2Npc
// Clear Harvester reward
_harvestItem.set(null);
_sweepItems.set(null);
_plundered = false;
// fake players
if (isFakePlayer())
@ -1566,6 +1568,17 @@ public class L2Attackable extends L2Npc
_spoilerObjectId = spoilerObjectId;
}
/**
* Sets state of the mob to plundered.
* @param player
*/
public void setPlundered(L2PcInstance player)
{
_plundered = true;
_spoilerObjectId = player.getObjectId();
_sweepItems.set(getTemplate().calculateDrops(DropType.SPOIL, this, player));
}
/**
* Sets state of the mob to seeded. Parameters needed to be set before.
* @param seeder