Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.ruseps.game.engine.task.impl;
- import java.util.ArrayList;
- import java.util.concurrent.CopyOnWriteArrayList;
- import com.ruseps.game.GameSettings;
- import com.ruseps.game.engine.task.Task;
- import com.ruseps.model.Animation;
- import com.ruseps.model.Flag;
- import com.ruseps.model.GroundItem;
- import com.ruseps.model.Item;
- import com.ruseps.model.Locations.Location;
- import com.ruseps.model.PlayerRights;
- import com.ruseps.model.Position;
- import com.ruseps.model.Skill;
- import com.ruseps.util.Misc;
- import com.ruseps.world.World;
- import com.ruseps.world.content.ItemsKeptOnDeath;
- import com.ruseps.world.content.PlayerPanel;
- import com.ruseps.world.content.RandomPkDrop;
- import com.ruseps.world.entity.impl.GroundItemManager;
- import com.ruseps.world.entity.impl.npc.NPC;
- import com.ruseps.world.entity.impl.player.Player;
- /**
- * Represents a player's death task, through which the process of dying is
- * handled, the animation, dropping items, etc.
- *
- * @author relex lawl, redone by Gabbe.
- */
- public class PlayerDeathTask extends Task {
- /**
- * The PlayerDeathTask constructor.
- *
- * @param player
- * The player setting off the task.
- */
- public PlayerDeathTask(Player player) {
- super(1, player, false);
- this.player = player;
- }
- private Player player;
- private int ticks = 5;
- private boolean dropItems = false;
- Position oldPosition;
- Location loc;
- ArrayList<Item> itemsToKeep = null;
- NPC death;
- @Override
- public void execute() {
- if (player == null) {
- stop();
- return;
- }
- try {
- switch (ticks) {
- case 5:
- player.getPacketSender().sendInterfaceRemoval();
- player.getMovementQueue().setLockMovement(true).reset();
- break;
- case 3:
- player.performAnimation(new Animation(0x900));
- player.getPacketSender().sendMessage("Oh dear, you are dead!");
- this.death = getDeathNpc(player);
- break;
- /*
- case 1:
- this.oldPosition = player.getPosition().copy();
- this.loc = player.getLocation();
- if (loc != Location.FREE_FOR_ALL_WAIT) {
- System.out.println("is not in ffa");
- Player killer = player.getCombatBuilder().getKiller(true);
- System.out.println("drop items is true");
- final Position position = player.getPosition();
- if (killer != null) {
- System.out.println("killer is not null: " + player.getLocation() +"nigga");
- if(player.getLocation() != Location.WILDERNESS &&
- killer.getLocation() != Location.WILDERNESS) {
- System.out.println("Drop items" + player.getUsername());
- itemsToKeep = ItemsKeptOnDeath.getItemsToKeep(player);
- final CopyOnWriteArrayList<Item> playerItems = new CopyOnWriteArrayList<Item>();
- playerItems.addAll(player.getInventory().getValidItems());
- playerItems.addAll(player.getEquipment().getValidItems());
- for (Item item : playerItems) {
- if (!item.tradeable() || itemsToKeep.contains(item)) {
- if (!itemsToKeep.contains(item)) {
- itemsToKeep.add(item);
- }
- continue;
- }
- if (item != null && item.getId() > 0 && item.getAmount() > 0) {
- System.out.println("Fffa");
- player.getInventory().resetItems().refreshItems();
- player.getEquipment().resetItems().refreshItems();
- player.getUpdateFlag().flag(Flag.APPEARANCE);
- GroundItemManager.spawnGroundItem(player, new GroundItem(item, position, killer != null ? killer.getUsername() : player.getUsername(), player.getHostAddress(), false, 150, true, 150));
- }
- }
- player.getUpdateFlag().flag(Flag.APPEARANCE);
- }
- int multiplier = 0;
- if(multiplier == 0) {
- if(player.getRights() == PlayerRights.BRONZE_MEMBER
- || player.getRights() == PlayerRights.SILVER_MEMBER
- || player.getRights() == PlayerRights.GOLD_MEMBER
- || player.getRights() == PlayerRights.PLATINUM_MEMBER
- || player.getRights() == PlayerRights.DIAMOND_MEMBER)
- multiplier = 3;
- else multiplier = 2;
- }
- Item items = new Item(12852, multiplier);
- if(player.getPlayerKillingAttributes().getPlayerKillStreak() > 0) {
- GroundItemManager.spawnGroundItem((killer != null ? killer : player), new GroundItem(items, position, killer != null ? killer.getUsername() : player.getUsername(), player.getHostAddress(), false, 150, true, 150));
- World.sendMessage(killer.getUsername() + " has ended " + player.getUsername() + "'s killstreak of " + player.getPlayerKillingAttributes().getPlayerKillStreak());
- }
- GroundItemManager.spawnGroundItem((killer != null ? killer : player), new GroundItem(items, position, killer != null ? killer.getUsername() : player.getUsername(), player.getHostAddress(), false, 150, true, 150));
- RandomPkDrop.dropItems(killer, player);
- killer.getPlayerKillingAttributes().add(player);
- player.getPlayerKillingAttributes().setPlayerDeaths(player.getPlayerKillingAttributes().getPlayerDeaths() + 1);
- player.getPlayerKillingAttributes().setPlayerKillStreak(0);
- player.eloRating -= player.eloRating * 0.01;
- player.setSpecialPercentage(100);
- if(killer.getPlayerKillingAttributes().getPlayerKillStreak() >= 5) {
- World.sendMessage(killer.getUsername() + " is now on a " + killer.getPlayerKillingAttributes().getPlayerKillStreak()
- + " killstreak, bounty is set at " + (multiplier + killer.getPlayerKillingAttributes().getPlayerHighestKillStreak()));
- }
- int pkLevel = 1 + (killer.pkExperience / 10);
- player.getPacketSender().sendString(23995, pkLevel + "/" + pkLevel);
- PlayerPanel.refreshPvpPanel(player, player);
- }
- }
- dropItems = false;
- player.getPacketSender().sendInterfaceRemoval();
- player.setEntityInteraction(null);
- player.getMovementQueue().setFollowCharacter(null);
- player.getCombatBuilder().cooldown(false);
- player.setTeleporting(false);
- player.setWalkToTask(null);
- player.getSkillManager().stopSkilling();
- player.getUpdateFlag().flag(Flag.APPEARANCE);
- break;
- */
- case 1:
- this.oldPosition = player.getPosition().copy();
- this.loc = player.getLocation();
- Player killer = player.getCombatBuilder().getKiller(true);
- if(loc == Location.DANGER_ZONE) {
- itemsToKeep = ItemsKeptOnDeath.getItemsToKeep(player);
- final CopyOnWriteArrayList<Item> playerItems = new CopyOnWriteArrayList<Item>();
- playerItems.addAll(player.getInventory().getValidItems());
- playerItems.addAll(player.getEquipment().getValidItems());
- final Position position = player.getPosition();
- for (Item item : playerItems) {
- if(!item.tradeable() || itemsToKeep.contains(item)) {
- if(!itemsToKeep.contains(item)) {
- itemsToKeep.add(item);
- }
- continue;
- }
- if(killer != null) {
- killer.getPlayerKillingAttributes().add(player);
- player.getPlayerKillingAttributes().setPlayerDeaths(player.getPlayerKillingAttributes().getPlayerDeaths() + 1);
- player.getPlayerKillingAttributes().setPlayerKillStreak(0);
- player.getPointsHandler().refreshPanel();
- if (item != null && item.getId() > 0 && item.getAmount() > 0) {
- player.getInventory().resetItems().refreshItems();
- player.getEquipment().resetItems().refreshItems();
- player.getUpdateFlag().flag(Flag.APPEARANCE);
- GroundItemManager.spawnGroundItem(player, new GroundItem(item, position, killer != null ? killer.getUsername() : player.getUsername(), player.getHostAddress(), false, 150, true, 150));
- }
- }
- }
- } else
- System.out.println(itemsToKeep);
- player.getPacketSender().sendInterfaceRemoval();
- player.setEntityInteraction(null);
- player.getMovementQueue().setFollowCharacter(null);
- player.getCombatBuilder().cooldown(false);
- player.setTeleporting(false);
- player.setWalkToTask(null);
- player.getSkillManager().stopSkilling();
- break;
- case 0:
- if (loc == Location.DANGER_ZONE) {
- {
- if (itemsToKeep != null) {
- for (Item it : itemsToKeep) {
- player.getInventory().add(it.getId(), 1);
- }
- itemsToKeep.clear();
- }
- }
- }
- if (death != null) {
- World.deregister(death);
- }
- player.restart();
- player.getUpdateFlag().flag(Flag.APPEARANCE);
- loc.onDeath(player);
- if (loc != Location.DUNGEONEERING) {
- if (player.getPosition().equals(oldPosition))
- player.moveTo(GameSettings.DEFAULT_POSITION.copy());
- }
- player = null;
- oldPosition = null;
- stop();
- break;
- }
- ticks--;
- } catch (Exception e) {
- setEventRunning(false);
- e.printStackTrace();
- if (player != null) {
- player.moveTo(GameSettings.DEFAULT_POSITION.copy());
- player.setConstitution(player.getSkillManager().getMaxLevel(Skill.CONSTITUTION));
- }
- }
- }
- public static NPC getDeathNpc(Player player) {
- NPC death = new NPC(2862, new Position(player.getPosition().getX() + 1, player.getPosition().getY() + 1));
- World.register(death);
- death.setEntityInteraction(player);
- death.performAnimation(new Animation(401));
- death.forceChat(randomDeath(player.getUsername()));
- return death;
- }
- public static String randomDeath(String name) {
- switch (Misc.getRandom(8)) {
- case 0:
- return "There is no escape, " + Misc.formatText(name) + "...";
- case 1:
- return "Muahahahaha!";
- case 2:
- return "You belong to me!";
- case 3:
- return "Beware mortals, " + Misc.formatText(name) + " travels with me!";
- case 4:
- return "Your time here is over, " + Misc.formatText(name) + "!";
- case 5:
- return "Now is the time you die, " + Misc.formatText(name) + "!";
- case 6:
- return "I claim " + Misc.formatText(name) + " as my own!";
- case 7:
- return "" + Misc.formatText(name) + " is mine!";
- case 8:
- return "Let me escort you back to Edgeville, " + Misc.formatText(name) + "!";
- case 9:
- return "I have come for you, " + Misc.formatText(name) + "!";
- }
- return "";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement