Implemented Zogre Flesh Eaters quest

This commit is contained in:
Oven Bread
2025-02-16 07:09:36 +00:00
committed by Ryan
parent f1131b7d00
commit 9886049429
35 changed files with 2637 additions and 160 deletions
+5 -2
View File
@@ -1818,8 +1818,11 @@ fun sendItemDialogue(player: Player, item: Any, message: String) {
* @param item2 the ID of the second item to show
* @param message the text to display
*/
fun sendDoubleItemDialogue(player: Player, item1: Int, item2: Int, message: String) {
player.dialogueInterpreter.sendDoubleItemMessage(item1, item2, message)
fun sendDoubleItemDialogue(player: Player, item1: Any, item2: Any, message: String) {
when (item1) {
is Item -> player.dialogueInterpreter.sendDoubleItemMessage(item1, item2 as Item, message)
is Int -> player.dialogueInterpreter.sendDoubleItemMessage(item1, item2 as Int, message)
}
}
/**
@@ -3,6 +3,7 @@ package core.game.global.action;
import core.game.node.entity.player.Player;
import core.game.node.entity.player.link.diary.DiaryType;
import core.game.world.map.Location;
import content.region.kandarin.feldip.quest.zogreflesheaters.ZogreFleshEatersListeners;
import java.util.Arrays;
import java.util.HashMap;
@@ -80,6 +81,13 @@ public enum SpecialLadders implements LadderAchievementCheck {
PATERDOMUS_TEMPLE_STAIRCASE_SOUTH_DOWN(new Location(3415, 3486,1), new Location(3414, 3486,0)),
PHASMATYS_BAR_DOWN(new Location(3681,3498,0), new Location(3682,9961,0)),
PHASMATYS_BAR_UP(new Location(3682,9962,0), new Location(3681,3497,0)),
YANNILE_HOUSE_DOWN(new Location(2597, 3107,1), new Location(2597, 3107,0)),
YANNILE_HOUSE_UP(new Location(2597, 3107,0), new Location(2597, 3107,1)) {
@Override
public void checkAchievement(Player player) {
ZogreFleshEatersListeners.ladderMakesSithikTurnIntoOgre(player);
}
},
SEERS_VILLAGE_SPINNING_HOUSE_ROOFTOP_UP(new Location(2715,3472,1), new Location(2714,3472,3)) {
@Override
public void checkAchievement(Player player) {
@@ -36,18 +36,28 @@ class FunCommandSet : CommandSet(Privilege.ADMIN) {
/**
* Force animation + messages on all NPCs in a radius of 10 from the player.
* Add an optional 3rd argument if cycling through a range of animation ids.
*/
define("npcanim", Privilege.ADMIN, "::npcanim <lt>Animation ID<gt>") { player, args ->
define("npcanim", Privilege.ADMIN, "::npcanim <lt>Animation ID<gt> <lt>Optional: End Animation ID<gt>") { player, args ->
if (args.size < 2) {
reject(player, "Syntax error: ::npcanim <Animation ID>")
}
npcs = RegionManager.getLocalNpcs(player.location, 10)
for (n in npcs) {
n.sendChat(args.slice(1 until args.size).joinToString(" "))
n.lock(6)
n.faceTemporary(player, 6)
n.animator.animate(Animation(args[1].toInt()))
n.animate(Animation.create(-1), 6)
if (args.size == 2) {
n.sendChat(args.slice(1 until args.size).joinToString(" "))
n.animate(Animation(args[1].toInt()))
n.animate(Animation.create(-1), 6)
}
if (args.size == 3) {
var count = 0
for(animNum in args[1].toInt()..args[2].toInt()) {
count++
n.animate(Animation(animNum), count*6)
}
}
}
}