RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
DragonfireShield.java
1package com.osroyale.content.itemaction.impl;
2
3import com.osroyale.content.itemaction.ItemAction;
4import com.osroyale.game.world.entity.combat.Combat;
5import com.osroyale.game.world.entity.combat.strategy.player.custom.DragonfireShieldStrategy;
6import com.osroyale.game.world.entity.mob.Mob;
7import com.osroyale.game.world.entity.mob.player.Player;
8import com.osroyale.game.world.items.Item;
9
33
34public class DragonfireShield extends ItemAction {
35
36 @Override
37 public String name() {
38 return "Dragonfire shield";
39 }
40
41 @Override
42 public boolean inventory(Player player, Item item, int opcode) {
43 if (opcode == 2) {
44 inspect(player);
45 } else if (opcode == 3) {
46 empty(player);
47 }
48 return true;
49 }
50
51 private void empty(Player player) {
52 if (player.dragonfireCharges > 0) {
53 player.dragonfireCharges = 0;
54 player.graphic(1160);
55 player.inventory.replace(11283, 11284, true);
56 player.message("You clear your remaining charges.");
57 } else {
58 player.message("You have no remaining charges.");
59 }
60 }
61
62 private void inspect(Player player) {
63 player.message("You have " + player.dragonfireCharges + " charges remaining.");
64 }
65
66 @Override
67 public boolean equipment(Player player, Item item, int opcode) {
68 if (opcode == 1) {
69 long remaining = System.currentTimeMillis() - player.dragonfireUsed;
70 if (remaining < 120_000) {
71 player.message("My shield still needs " + (120 - remaining / 1000) + " seconds to recharge.");
72 return true;
73 }
74 if (player.dragonfireCharges == 0) {
75 player.message("You have no charges to do this!");
76 return true;
77 }
78 Mob defender = player.getCombat().getDefender();
79 if (defender == null && player.getCombat().isAttacking()) {
80 defender = player.getCombat().getLastVictim();
81 }
82 if (defender == null && player.getCombat().isUnderAttack()) {
83 defender = player.getCombat().getLastAggressor();
84 }
85 if (defender == null) {
86 player.message("You are not in combat with anything...");
87 return true;
88 }
89 if (defender.isDead() || defender.getCurrentHealth() == 0) {
90 player.message("He dead tho...");
91 return true;
92 }
93 player.dragonfireUsed = System.currentTimeMillis();
94
95 final Combat<Player> combat = player.getCombat();
96 combat.performChecks(defender);
97 combat.submitStrategy(defender, DragonfireShieldStrategy.get());
98 }
99 return true;
100 }
101
102}
boolean inventory(Player player, Item item, int opcode)
final boolean replace(int oldId, int newId, int index, boolean refresh)