forked from 2009Scape/Server
Merge 2009scape updates #19
6 changed files with 67 additions and 33 deletions
|
|
@ -5,6 +5,7 @@ import core.cache.def.impl.SceneryDefinition
|
||||||
import core.game.interaction.OptionHandler
|
import core.game.interaction.OptionHandler
|
||||||
import core.game.node.Node
|
import core.game.node.Node
|
||||||
import content.global.skill.summoning.familiar.GiantEntNPC
|
import content.global.skill.summoning.familiar.GiantEntNPC
|
||||||
|
import content.global.skill.summoning.familiar.WolpertingerNPC
|
||||||
import core.game.node.entity.player.Player
|
import core.game.node.entity.player.Player
|
||||||
import core.game.node.entity.player.link.diary.DiaryType
|
import core.game.node.entity.player.link.diary.DiaryType
|
||||||
import core.game.node.entity.skill.Skills
|
import core.game.node.entity.skill.Skills
|
||||||
|
|
@ -76,8 +77,15 @@ class FruitAndBerryPicker : OptionHandler() {
|
||||||
|
|
||||||
animate(player, animation)
|
animate(player, animation)
|
||||||
playAudio(player, Sounds.FARMING_PICK_2437)
|
playAudio(player, Sounds.FARMING_PICK_2437)
|
||||||
addItemOrDrop(player, reward.id, reward.amount)
|
|
||||||
rewardXP(player, Skills.FARMING, plantable.harvestXP)
|
if (familiar != null && familiar is WolpertingerNPC && patch.patch.type == PatchType.BUSH_PATCH) {
|
||||||
|
addItemOrDrop(player, reward.id, reward.amount * 2)
|
||||||
|
rewardXP(player, Skills.FARMING, plantable.harvestXP * 2)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
addItemOrDrop(player, reward.id, reward.amount)
|
||||||
|
rewardXP(player, Skills.FARMING, plantable.harvestXP)
|
||||||
|
}
|
||||||
patch.setCurrentState(patch.getCurrentState() - 1)
|
patch.setCurrentState(patch.getCurrentState() - 1)
|
||||||
|
|
||||||
if (patch.patch.type == PatchType.CACTUS_PATCH) {
|
if (patch.patch.type == PatchType.CACTUS_PATCH) {
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import core.game.node.item.Item;
|
||||||
import core.game.world.map.Location;
|
import core.game.world.map.Location;
|
||||||
import core.game.world.map.zone.ZoneRestriction;
|
import core.game.world.map.zone.ZoneRestriction;
|
||||||
import core.game.world.update.flag.context.Animation;
|
import core.game.world.update.flag.context.Animation;
|
||||||
|
import org.rs09.consts.Items;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
@ -341,6 +342,9 @@ public final class FamiliarManager {
|
||||||
for (int food : pets.getFood()) {
|
for (int food : pets.getFood()) {
|
||||||
if (food == foodId) {
|
if (food == foodId) {
|
||||||
player.getInventory().remove(new Item(foodId));
|
player.getInventory().remove(new Item(foodId));
|
||||||
|
if (foodId == Items.BUCKET_OF_MILK_1927) {
|
||||||
|
player.getInventory().add(new Item(Items.BUCKET_1925));
|
||||||
|
}
|
||||||
player.getPacketDispatch().sendMessage("Your pet happily eats the " + ItemDefinition.forId(food).getName() + ".");
|
player.getPacketDispatch().sendMessage("Your pet happily eats the " + ItemDefinition.forId(food).getName() + ".");
|
||||||
player.animate(new Animation(827));
|
player.animate(new Animation(827));
|
||||||
npc.getDetails().updateHunger(-15.0);
|
npc.getDetails().updateHunger(-15.0);
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ public final class KittenInteractDialogue extends DialoguePlugin {
|
||||||
interpreter.sendDialogues(player, null, "That cat sure loves to be stroked.");
|
interpreter.sendDialogues(player, null, "That cat sure loves to be stroked.");
|
||||||
stage = 99;
|
stage = 99;
|
||||||
break;
|
break;
|
||||||
case 2:// chase-vermine
|
case 2:// chase-vermin
|
||||||
end();
|
end();
|
||||||
player.sendChat("Go on puss...kill that rat!");
|
player.sendChat("Go on puss...kill that rat!");
|
||||||
boolean cant = true;
|
boolean cant = true;
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ import content.global.skill.summoning.familiar.Familiar;
|
||||||
import content.global.skill.summoning.familiar.FamiliarSpecial;
|
import content.global.skill.summoning.familiar.FamiliarSpecial;
|
||||||
import core.game.node.entity.player.Player;
|
import core.game.node.entity.player.Player;
|
||||||
import core.game.node.item.Item;
|
import core.game.node.item.Item;
|
||||||
import core.game.world.GameWorld;
|
|
||||||
|
|
||||||
import static core.api.ContentAPIKt.*;
|
import static core.api.ContentAPIKt.*;
|
||||||
|
|
||||||
|
|
@ -67,10 +66,13 @@ public final class Pet extends Familiar {
|
||||||
@Override
|
@Override
|
||||||
public void handleTickActions() {
|
public void handleTickActions() {
|
||||||
final PetDetails petDetails = details;
|
final PetDetails petDetails = details;
|
||||||
if (getPet().getFood().length > 0) {
|
if (getPet().getFood().length > 0 && !pet.isGrownCat(itemId)) {
|
||||||
if(!SkillcapePerks.isActive(SkillcapePerks.PET_MASTERY, owner)) {
|
if(!SkillcapePerks.isActive(SkillcapePerks.PET_MASTERY, owner)) {
|
||||||
double amount = itemId == pet.getBabyItemId() ? 0.025 : 0.018;
|
double amount = itemId == pet.getBabyItemId() ? 0.025 : 0.018;
|
||||||
if (GameWorld.getSettings().isDevMode()) {
|
if (owner.getAttribute("petrate",1) == 0) {
|
||||||
|
amount = 0 ;
|
||||||
|
}
|
||||||
|
else if (owner.getAttribute("petrate",1) == 2) {
|
||||||
amount *= 100;
|
amount *= 100;
|
||||||
}
|
}
|
||||||
petDetails.updateHunger(amount);
|
petDetails.updateHunger(amount);
|
||||||
|
|
@ -96,7 +98,10 @@ public final class Pet extends Familiar {
|
||||||
double growth = petDetails.getGrowth();
|
double growth = petDetails.getGrowth();
|
||||||
double growthrate = pet.getGrowthRate();
|
double growthrate = pet.getGrowthRate();
|
||||||
if (growthrate > 0.000) {
|
if (growthrate > 0.000) {
|
||||||
if (GameWorld.getSettings().isDevMode()) {
|
if (owner.getAttribute("petrate",1) == 0) {
|
||||||
|
growthrate = 0;
|
||||||
|
}
|
||||||
|
else if (owner.getAttribute("petrate",1) == 2) {
|
||||||
growthrate *= 100;
|
growthrate *= 100;
|
||||||
}
|
}
|
||||||
petDetails.updateGrowth(growthrate);
|
petDetails.updateGrowth(growthrate);
|
||||||
|
|
|
||||||
|
|
@ -25,16 +25,6 @@ public enum Pets {
|
||||||
*/
|
*/
|
||||||
CLOCKWORK_CAT(7771, 7772, -1, 3598, -1, -1, 0.0, 0),
|
CLOCKWORK_CAT(7771, 7772, -1, 3598, -1, -1, 0.0, 0),
|
||||||
|
|
||||||
/**
|
|
||||||
* The firemaker's curse pets.
|
|
||||||
*/
|
|
||||||
SEARING_FLAME(22994, -1, -1, 14769, -1, -1, 0.0, 0), GLOWING_EMBER(22993, -1, -1, 14768, -1, -1, 0.0, 0), TWISTED_FIRESTARTER(22995, -1, -1, 14770, -1, -1, 0.0, 0), WARMING_FLAME(22992, -1, -1, 14767, -1, -1, 0.0, 0),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Troll baby pet.
|
|
||||||
*/
|
|
||||||
TROLL_BABY(23030, 23030, -1, 14846, -1, -1, 0.0, 0),
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A bulldog pet.
|
* A bulldog pet.
|
||||||
*/
|
*/
|
||||||
|
|
@ -63,7 +53,7 @@ public enum Pets {
|
||||||
/**
|
/**
|
||||||
* A terrier pet.
|
* A terrier pet.
|
||||||
*/
|
*/
|
||||||
TERRIER(12512, 12513, -1, 6958, 6859, -1, 0.0033333333333333, 4, 2132, 2134, 2136, 2138, 10816, 9986, 9978, 526), TERRIER_1(12700, 12701, -1, 7237, 7238, -1, 0.0033333333333333, 4, 2132, 2134, 2136, 2138, 10816, 9986, 9978, 526), TERRIER_2(12702, 12703, -1, 7239, 7240, -1, 0.0033333333333333, 4, 2132, 2134, 2136, 2138, 10816, 9986, 9978, 526),
|
TERRIER(12512, 12513, -1, 6958, 6959, -1, 0.0033333333333333, 4, 2132, 2134, 2136, 2138, 10816, 9986, 9978, 526), TERRIER_1(12700, 12701, -1, 7237, 7238, -1, 0.0033333333333333, 4, 2132, 2134, 2136, 2138, 10816, 9986, 9978, 526), TERRIER_2(12702, 12703, -1, 7239, 7240, -1, 0.0033333333333333, 4, 2132, 2134, 2136, 2138, 10816, 9986, 9978, 526),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A creeping hand pet.
|
* A creeping hand pet.
|
||||||
|
|
@ -90,11 +80,6 @@ public enum Pets {
|
||||||
*/
|
*/
|
||||||
//ABYSSAL_MINION(14651, -1, -1, 8624, -1, -1, 0.0033333333333333, 4, 592),
|
//ABYSSAL_MINION(14651, -1, -1, 8624, -1, -1, 0.0033333333333333, 4, 592),
|
||||||
|
|
||||||
/**
|
|
||||||
* Rune guardian pets.
|
|
||||||
*/
|
|
||||||
RUNE_GUARDIAN(15626, -1, -1, 9656, -1, -1, 0.0033333333333333, 4), RUNE_GUARDIAN_1(15627, -1, -1, 9657, -1, -1, 0.0033333333333333, 4), RUNE_GUARDIAN_2(15628, -1, -1, 9658, -1, -1, 0.0033333333333333, 4), RUNE_GUARDIAN_3(15629, -1, -1, 9659, -1, -1, 0.0033333333333333, 4), RUNE_GUARDIAN_4(15630, -1, -1, 9660, -1, -1, 0.0033333333333333, 4), RUNE_GUARDIAN_5(15631, -1, -1, 9661, -1, -1, 0.0033333333333333, 4), RUNE_GUARDIAN_6(15632, -1, -1, 9662, -1, -1, 0.0033333333333333, 4), RUNE_GUARDIAN_7(15633, -1, -1, 9663, -1, -1, 0.0033333333333333, 4), RUNE_GUARDIAN_8(15634, -1, -1, 9664, -1, -1, 0.0033333333333333, 4), RUNE_GUARDIAN_9(15635, -1, -1, 9665, -1, -1, 0.0033333333333333, 4), RUNE_GUARDIAN_10(15636, -1, -1, 9666, -1, -1, 0.0033333333333333, 4), RUNE_GUARDIAN_11(15637, -1, -1, 9667, -1, -1, 0.0033333333333333, 4), RUNE_GUARDIAN_12(15638, -1, -1, 9668, -1, -1, 0.0033333333333333, 4), RUNE_GUARDIAN_13(15639, -1, -1, 9669, -1, -1, 0.0033333333333333, 4),
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gecko pet.
|
* Gecko pet.
|
||||||
*/
|
*/
|
||||||
|
|
@ -115,11 +100,6 @@ public enum Pets {
|
||||||
*/
|
*/
|
||||||
PENGUIN(12481, 12482, -1, 6908, 6909, -1, 0.0046296296296296, 30, 321, 363, 341, 15264, 345, 377, 353, 389, 7944, 349, 331, 327, 395, 383, 317, 371, 335, 359, 15264, 15270), PENGUIN_1(12763, 12762, -1, 7313, 7314, -1, 0.0046296296296296, 30, 321, 363, 341, 15264, 345, 377, 353, 389, 7944, 349, 331, 327, 395, 383, 317, 371, 335, 359, 15264, 15270), PENGUIN_2(12765, 12764, -1, 7316, 7317, -1, 0.0046296296296296, 30, 321, 363, 341, 15264, 345, 377, 353, 389, 7944, 349, 331, 327, 395, 383, 317, 371, 335, 359, 15264, 15270),
|
PENGUIN(12481, 12482, -1, 6908, 6909, -1, 0.0046296296296296, 30, 321, 363, 341, 15264, 345, 377, 353, 389, 7944, 349, 331, 327, 395, 383, 317, 371, 335, 359, 15264, 15270), PENGUIN_1(12763, 12762, -1, 7313, 7314, -1, 0.0046296296296296, 30, 321, 363, 341, 15264, 345, 377, 353, 389, 7944, 349, 331, 327, 395, 383, 317, 371, 335, 359, 15264, 15270), PENGUIN_2(12765, 12764, -1, 7316, 7317, -1, 0.0046296296296296, 30, 321, 363, 341, 15264, 345, 377, 353, 389, 7944, 349, 331, 327, 395, 383, 317, 371, 335, 359, 15264, 15270),
|
||||||
|
|
||||||
/**
|
|
||||||
* A tooth creature pet.
|
|
||||||
*/
|
|
||||||
TOOTH_CREATURE(18671, 18669, -1, 11411, 11413, -1, 0.075757575757576, 37, 1927, 1977),
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A giant crab pet.
|
* A giant crab pet.
|
||||||
*/
|
*/
|
||||||
|
|
@ -155,11 +135,6 @@ public enum Pets {
|
||||||
*/
|
*/
|
||||||
RACCOON(12486, 12487, -1, 6913, 6914, -1, 0.0029444444444444, 80, 321, 363, 341, 15264, 345, 377, 353, 389, 7944, 349, 331, 327, 395, 383, 317, 371, 335, 359, 15264, 15270, 2132, 2134, 2136, 2138, 10816, 9986, 9978), RACCOON_1(12734, 12735, -1, 7271, 7272, -1, 0.0029444444444444, 80, 321, 363, 341, 15264, 345, 377, 353, 389, 7944, 349, 331, 327, 395, 383, 317, 371, 335, 359, 15264, 15270, 2132, 2134, 2136, 2138, 10816, 9986, 9978), RACCOON_2(12736, 12737, -1, 7273, 7274, -1, 0.0029444444444444, 80, 321, 363, 341, 15264, 345, 377, 353, 389, 7944, 349, 331, 327, 395, 383, 317, 371, 335, 359, 15264, 15270, 2132, 2134, 2136, 2138, 10816, 9986, 9978),
|
RACCOON(12486, 12487, -1, 6913, 6914, -1, 0.0029444444444444, 80, 321, 363, 341, 15264, 345, 377, 353, 389, 7944, 349, 331, 327, 395, 383, 317, 371, 335, 359, 15264, 15270, 2132, 2134, 2136, 2138, 10816, 9986, 9978), RACCOON_1(12734, 12735, -1, 7271, 7272, -1, 0.0029444444444444, 80, 321, 363, 341, 15264, 345, 377, 353, 389, 7944, 349, 331, 327, 395, 383, 317, 371, 335, 359, 15264, 15270, 2132, 2134, 2136, 2138, 10816, 9986, 9978), RACCOON_2(12736, 12737, -1, 7273, 7274, -1, 0.0029444444444444, 80, 321, 363, 341, 15264, 345, 377, 353, 389, 7944, 349, 331, 327, 395, 383, 317, 371, 335, 359, 15264, 15270, 2132, 2134, 2136, 2138, 10816, 9986, 9978),
|
||||||
|
|
||||||
/**
|
|
||||||
* A sneaker peeper pet.
|
|
||||||
*/
|
|
||||||
SNEAKER_PEEPER(19894, 19895, -1, 13089, 13090, -1, 0.05, 80, 221),
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A vulture pet.
|
* A vulture pet.
|
||||||
*/
|
*/
|
||||||
|
|
@ -446,4 +421,24 @@ public enum Pets {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if this pet is a grown cat
|
||||||
|
* @return a boolean, true if the pet is a grown cat
|
||||||
|
*/
|
||||||
|
public boolean isGrownCat(int id) {
|
||||||
|
switch (this) {
|
||||||
|
case CAT:
|
||||||
|
case CAT_1:
|
||||||
|
case CAT_2:
|
||||||
|
case CAT_3:
|
||||||
|
case CAT_4:
|
||||||
|
case CAT_5:
|
||||||
|
case CAT_6:
|
||||||
|
case HELLCAT:
|
||||||
|
return id == grownItemId || id == overgrownItemId;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -217,6 +217,28 @@ class FunCommandSet : CommandSet(Privilege.ADMIN) {
|
||||||
p.graphics(Graphics(369, 0))
|
p.graphics(Graphics(369, 0))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggles pet hunger to off, normal, or dev
|
||||||
|
* 0 = No hunger/growth mode (hunger/growth does not progress)
|
||||||
|
* 1 = Normal hunger/growth mode (1x speed)
|
||||||
|
* 2 = Dev hunger/growth mode (100x speed)
|
||||||
|
*/
|
||||||
|
define("petrate", Privilege.ADMIN, "petrate <lt>0-2<gt>", "Sets pet hunger and growth to off, normal, or dev."){ player, args ->
|
||||||
|
if(args.size < 2) {
|
||||||
|
notify(player, "Pet mode is currently ${player.getAttribute("petrate", 1)}")
|
||||||
|
return@define
|
||||||
|
}
|
||||||
|
val mode = args[1].toIntOrNull() ?: (-1).also { reject(player, "Please enter a valid number") }
|
||||||
|
if (mode in 0 .. 2) {
|
||||||
|
player.setAttribute("petrate", mode)
|
||||||
|
notify(player, "Setting pet mode to $mode")
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
reject(player, "Only modes 0-2 are valid")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun bury(player: Player){
|
fun bury(player: Player){
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue