mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2026-08-25 04:15:14 -06:00
Total cutscene overhaul
This commit is contained in:
parent
63af11240a
commit
7f1b1ef685
3 changed files with 137 additions and 76 deletions
|
|
@ -20,44 +20,47 @@ import org.rs09.consts.NPCs
|
|||
*/
|
||||
|
||||
class BalloonConstructionCutscene(player: Player) : Cutscene(player) {
|
||||
companion object {
|
||||
private const val REGION_ENTRANA_11060 = 11060
|
||||
private const val JINGLE_A_HOT_AIR_JOURNEY_116 = 116
|
||||
}
|
||||
|
||||
override fun setup() {
|
||||
setExit(Location.create(player.location))
|
||||
loadRegion(11060)
|
||||
addNPC(NPCs.AUGUSTE_5049, 57, 26, Direction.WEST)
|
||||
loadRegion(REGION_ENTRANA_11060)
|
||||
}
|
||||
|
||||
override fun runStage(stage: Int) {
|
||||
when (stage) {
|
||||
0 -> {
|
||||
fadeToBlack()
|
||||
timedUpdate(6)
|
||||
timedUpdate(5)
|
||||
}
|
||||
|
||||
1 -> {
|
||||
teleport(player, 56, 26, 0)
|
||||
moveCamera(41, 25, 2000)
|
||||
rotateCamera(56, 27)
|
||||
val obj = getObject(55, 26)!!
|
||||
face(player, obj.location)
|
||||
fadeFromBlack()
|
||||
playJingle(player, 116)
|
||||
face(player, base.transform(55, 26, 0))
|
||||
addNPC(NPCs.AUGUSTE_5049, 57, 27, Direction.SOUTH)
|
||||
moveCamera(48, 25, 1100)
|
||||
rotateCamera(60, 31)
|
||||
setVarbit(player, VARBIT_ENTRANA_BALLOON_2867, ENTRANA_BALLOON_COMPLETE_2, true)
|
||||
timedUpdate(5)
|
||||
}
|
||||
|
||||
2 -> {
|
||||
fadeFromBlack()
|
||||
move(getNPC(NPCs.AUGUSTE_5049)!!, 56, 27)
|
||||
timedUpdate(1)
|
||||
timedUpdate(2)
|
||||
}
|
||||
|
||||
3 -> {
|
||||
moveCamera(39, 25, 200, 2)
|
||||
timedUpdate(3)
|
||||
playJingle(player, JINGLE_A_HOT_AIR_JOURNEY_116)
|
||||
timedUpdate(2)
|
||||
}
|
||||
|
||||
4 -> {
|
||||
moveCamera(38, 24, 2000, 2)
|
||||
timedUpdate(3)
|
||||
moveCamera(39, 20, 2000, 8)
|
||||
timedUpdate(6)
|
||||
}
|
||||
|
||||
5 -> {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package content.region.misc.entrana.quest.enlightenedjourney.cutscene
|
|||
import content.data.Quests
|
||||
import content.region.misc.entrana.quest.enlightenedjourney.quest.EnlightenedJourney.Companion.STAGE_FIRST_EXPERIMENT
|
||||
import core.api.face
|
||||
import core.api.playAudio
|
||||
import core.api.playJingle
|
||||
import core.api.setQuestStage
|
||||
import core.api.visualize
|
||||
|
|
@ -20,69 +21,95 @@ import org.rs09.consts.NPCs
|
|||
*/
|
||||
|
||||
class BalloonExperimentCutscene(player: Player) : Cutscene(player) {
|
||||
companion object {
|
||||
private const val REGION_ENTRANA_11060 = 11060
|
||||
private const val JINGLE_A_HOT_AIR_JOURNEY_116 = 116
|
||||
private const val SOUND_ORIGAMI_BALLOON_BURNS_3243 = 3243
|
||||
private const val SOUND_RELEASE_BALLOON_3245 = 3245
|
||||
private const val ANIMATION_RELEASE_ORIGAMI_BALLOON_5142 = 5142
|
||||
private const val GRAPHIC_RELEASE_ORIGAMI_BALLOON_880 = 880
|
||||
private const val GRAPHIC_FLYING_ORIGAMI_BALLOON_882 = 882
|
||||
}
|
||||
|
||||
override fun setup() {
|
||||
setExit(Location.create(player.location))
|
||||
loadRegion(11060)
|
||||
loadRegion(REGION_ENTRANA_11060)
|
||||
}
|
||||
|
||||
override fun runStage(stage: Int) {
|
||||
when (stage) {
|
||||
0 -> {
|
||||
fadeToBlack()
|
||||
timedUpdate(6)
|
||||
timedUpdate(5)
|
||||
}
|
||||
|
||||
1 -> {
|
||||
teleport(player, 56, 27, 0)
|
||||
face(player, Location.create(440, 25, 0))
|
||||
moveCamera(58, 30, 350)
|
||||
rotateCamera(54, 18, 400)
|
||||
face(player, base.transform(56, 25, 0))
|
||||
addNPC(NPCs.AUGUSTE_5049, 57, 27, Direction.SOUTH_WEST)
|
||||
fadeFromBlack()
|
||||
playJingle(player, 116)
|
||||
timedUpdate(6)
|
||||
moveCamera(58, 30, 400)
|
||||
rotateCamera(50, 6)
|
||||
timedUpdate(5)
|
||||
}
|
||||
|
||||
2 -> {
|
||||
visualize(player, 5142, 877)
|
||||
fadeFromBlack()
|
||||
timedUpdate(2)
|
||||
}
|
||||
|
||||
3 -> {
|
||||
Projectile
|
||||
.create(player, null, 879, 45, 45, 1, 70, 0)
|
||||
.transform(
|
||||
player,
|
||||
player.location.transform(Direction.SOUTH, player.direction.ordinal + 1),
|
||||
false,
|
||||
70,
|
||||
140
|
||||
)
|
||||
.send()
|
||||
visualize(player, ANIMATION_RELEASE_ORIGAMI_BALLOON_5142, GRAPHIC_RELEASE_ORIGAMI_BALLOON_880)
|
||||
playAudio(player, SOUND_RELEASE_BALLOON_3245)
|
||||
playJingle(player, JINGLE_A_HOT_AIR_JOURNEY_116)
|
||||
timedUpdate(3)
|
||||
}
|
||||
|
||||
4 -> {
|
||||
moveCamera(63, 29, 600)
|
||||
rotateCamera(55, 23, 600)
|
||||
timedUpdate(3)
|
||||
val origamiBalloonStart = base.transform(56, 26, 0)
|
||||
val origamiBalloonEnd = base.transform(56, 21, 0)
|
||||
|
||||
Projectile
|
||||
.create(
|
||||
origamiBalloonStart,
|
||||
origamiBalloonEnd,
|
||||
GRAPHIC_FLYING_ORIGAMI_BALLOON_882,
|
||||
0,
|
||||
50,
|
||||
0,
|
||||
250,
|
||||
0,
|
||||
0
|
||||
)
|
||||
.send()
|
||||
|
||||
moveCamera(63, 22, 500, 8)
|
||||
rotateCamera(47, 26, speed = 8)
|
||||
timedUpdate(7)
|
||||
}
|
||||
|
||||
5 -> {
|
||||
face(getNPC(NPCs.AUGUSTE_5049)!!, player, 2)
|
||||
face(player, getNPC(NPCs.AUGUSTE_5049)!!, 2)
|
||||
timedUpdate(2)
|
||||
face(player, getNPC(NPCs.AUGUSTE_5049)!!)
|
||||
dialogueUpdate(NPCs.AUGUSTE_5049, FacialExpression.HAPPY, "That was perfect. My hypothesis was right!")
|
||||
timedUpdate(1)
|
||||
}
|
||||
|
||||
6 -> {
|
||||
playAudio(player, SOUND_ORIGAMI_BALLOON_BURNS_3243)
|
||||
face(getNPC(NPCs.AUGUSTE_5049)!!, player)
|
||||
}
|
||||
|
||||
6 -> dialogueUpdate(NPCs.AUGUSTE_5049, FacialExpression.HAPPY, "That was perfect. My hypothesis was right!")
|
||||
7 -> playerDialogueUpdate(FacialExpression.HALF_WORRIED, "Did you not see the burning?")
|
||||
|
||||
8 -> dialogueUpdate(NPCs.AUGUSTE_5049, FacialExpression.HAPPY, "One more test. Then we shall proceed.")
|
||||
|
||||
9 -> playerDialogueUpdate(FacialExpression.HALF_WORRIED, "Burning? Fire? Hello?")
|
||||
|
||||
10 -> dialogueUpdate(
|
||||
NPCs.AUGUSTE_5049,
|
||||
FacialExpression.HAPPY,
|
||||
"We shall meekly go! No...no...it needs to sound grander. We shall cautiously go..."
|
||||
)
|
||||
|
||||
11 -> playerDialogueUpdate(FacialExpression.HALF_WORRIED, "We're doomed.")
|
||||
|
||||
12 -> {
|
||||
|
|
|
|||
|
|
@ -4,8 +4,10 @@ import content.data.Quests
|
|||
import content.region.misc.entrana.quest.enlightenedjourney.quest.EnlightenedJourney.Companion.STAGE_SECOND_EXPERIMENT
|
||||
import core.api.animate
|
||||
import core.api.face
|
||||
import core.api.playAudio
|
||||
import core.api.playJingle
|
||||
import core.api.sendChat
|
||||
import core.api.sendGraphics
|
||||
import core.api.setQuestStage
|
||||
import core.api.visualize
|
||||
import core.game.activity.Cutscene
|
||||
|
|
@ -14,6 +16,7 @@ import core.game.node.entity.impl.Projectile
|
|||
import core.game.node.entity.player.Player
|
||||
import core.game.world.map.Direction
|
||||
import core.game.world.map.Location
|
||||
import core.game.world.update.flag.context.Graphics
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
/**
|
||||
|
|
@ -22,85 +25,113 @@ import org.rs09.consts.NPCs
|
|||
*/
|
||||
|
||||
class SecondBalloonExperimentCutscene(player: Player) : Cutscene(player) {
|
||||
companion object {
|
||||
private const val REGION_ENTRANA_11060 = 11060
|
||||
private const val JINGLE_A_HOT_AIR_JOURNEY_116 = 116
|
||||
private const val SOUND_ORIGAMI_BALLOON_BURNS_3243 = 3243
|
||||
private const val SOUND_RELEASE_BALLOON_3245 = 3245
|
||||
private const val ANIMATION_RELEASE_ORIGAMI_BALLOON_5142 = 5142
|
||||
private const val GRAPHIC_RELEASE_BIGGER_ORIGAMI_BALLOON_877 = 877
|
||||
private const val GRAPHIC_FLYING_BIGGER_ORIGAMI_BALLOON_878 = 878
|
||||
private const val GRAPHIC_BURNING_BIGGER_ORIGAMI_BALLOON_879 = 879
|
||||
}
|
||||
|
||||
override fun setup() {
|
||||
setExit(Location.create(player.location))
|
||||
loadRegion(11060)
|
||||
loadRegion(REGION_ENTRANA_11060)
|
||||
}
|
||||
|
||||
override fun runStage(stage: Int) {
|
||||
when (stage) {
|
||||
0 -> {
|
||||
fadeToBlack()
|
||||
timedUpdate(6)
|
||||
timedUpdate(5)
|
||||
}
|
||||
|
||||
1 -> {
|
||||
teleport(player, 56, 27, 0)
|
||||
face(player, Location.create(440, 25, 0))
|
||||
moveCamera(58, 30, 350)
|
||||
rotateCamera(54, 18, 400)
|
||||
face(player, base.transform(56, 28, 0))
|
||||
addNPC(NPCs.AUGUSTE_5049, 57, 27, Direction.SOUTH_WEST)
|
||||
fadeFromBlack()
|
||||
playJingle(player, 116)
|
||||
timedUpdate(6)
|
||||
moveCamera(58, 30, 400)
|
||||
rotateCamera(50, 6)
|
||||
timedUpdate(5)
|
||||
}
|
||||
|
||||
2 -> {
|
||||
visualize(player, 5142, 877)
|
||||
fadeFromBlack()
|
||||
timedUpdate(2)
|
||||
}
|
||||
|
||||
3 -> {
|
||||
Projectile
|
||||
.create(player, null, 879, 45, 45, 1, 70, 0)
|
||||
.transform(
|
||||
player,
|
||||
player.location.transform(Direction.SOUTH, player.direction.ordinal + 1),
|
||||
false,
|
||||
70,
|
||||
140
|
||||
)
|
||||
.send()
|
||||
face(player, base.transform(56, 26, 0))
|
||||
visualize(player, ANIMATION_RELEASE_ORIGAMI_BALLOON_5142, GRAPHIC_RELEASE_BIGGER_ORIGAMI_BALLOON_877)
|
||||
playAudio(player, SOUND_RELEASE_BALLOON_3245)
|
||||
playJingle(player, JINGLE_A_HOT_AIR_JOURNEY_116)
|
||||
timedUpdate(3)
|
||||
}
|
||||
|
||||
4 -> {
|
||||
addNPC(NPCs.BOB_5058, 58, 23, Direction.WEST)
|
||||
addNPC(NPCs.CURLY_5059, 59, 24, Direction.WEST)
|
||||
addNPC(NPCs.MOE_5060, 60, 23, Direction.WEST)
|
||||
addNPC(NPCs.LARRY_5061, 59, 22, Direction.WEST)
|
||||
moveCamera(63, 23, 600)
|
||||
rotateCamera(57, 24, 400, 1000)
|
||||
timedUpdate(4)
|
||||
val origamiBalloonStart = base.transform(56, 27, 0)
|
||||
val origamiBalloonEnd = base.transform(56, 21, 0)
|
||||
|
||||
Projectile
|
||||
.create(
|
||||
origamiBalloonStart,
|
||||
origamiBalloonEnd,
|
||||
GRAPHIC_FLYING_BIGGER_ORIGAMI_BALLOON_878,
|
||||
50,
|
||||
50,
|
||||
0,
|
||||
250,
|
||||
0,
|
||||
0
|
||||
)
|
||||
.send()
|
||||
|
||||
moveCamera(63, 22, 550, 8)
|
||||
rotateCamera(47, 26, speed = 8)
|
||||
addNPC(NPCs.BOB_5058, 60, 22, Direction.WEST)
|
||||
addNPC(NPCs.CURLY_5059, 61, 23, Direction.WEST)
|
||||
addNPC(NPCs.MOE_5060, 62, 22, Direction.WEST)
|
||||
addNPC(NPCs.LARRY_5061, 61, 21, Direction.WEST)
|
||||
timedUpdate(3)
|
||||
}
|
||||
|
||||
5 -> {
|
||||
move(getNPC(NPCs.BOB_5058)!!, 53, 23)
|
||||
move(getNPC(NPCs.CURLY_5059)!!, 53, 24)
|
||||
move(getNPC(NPCs.MOE_5060)!!, 54, 23)
|
||||
move(getNPC(NPCs.LARRY_5061)!!, 53, 22)
|
||||
sendChat(getNPC(NPCs.BOB_5058)!!, "Destroy the floating thing!")
|
||||
move(getNPC(NPCs.BOB_5058)!!, 53, 22)
|
||||
move(getNPC(NPCs.CURLY_5059)!!, 54, 23)
|
||||
move(getNPC(NPCs.MOE_5060)!!, 55, 22)
|
||||
move(getNPC(NPCs.LARRY_5061)!!, 54, 21)
|
||||
timedUpdate(5)
|
||||
}
|
||||
|
||||
6 -> {
|
||||
moveCamera(56, 23, 400, 1000)
|
||||
rotateCamera(56, 27, 200, 1000)
|
||||
timedUpdate(1)
|
||||
sendChat(getNPC(NPCs.BOB_5058)!!, "Destroy the floating thing!")
|
||||
sendGraphics(
|
||||
Graphics(GRAPHIC_BURNING_BIGGER_ORIGAMI_BALLOON_879, 200, 0),
|
||||
base.transform(56, 21, 0)
|
||||
)
|
||||
playAudio(player, SOUND_ORIGAMI_BALLOON_BURNS_3243)
|
||||
timedUpdate(3)
|
||||
}
|
||||
|
||||
7 -> {
|
||||
moveCamera(56, 23, 450)
|
||||
rotateCamera(57, 32)
|
||||
timedUpdate(1)
|
||||
}
|
||||
|
||||
8 -> {
|
||||
animate(player, 2113)
|
||||
playerDialogueUpdate(FacialExpression.NEUTRAL, "Well, that went down like a lead balloon.")
|
||||
}
|
||||
|
||||
8 -> {
|
||||
9 -> {
|
||||
fadeToBlack()
|
||||
timedUpdate(3)
|
||||
}
|
||||
|
||||
9 -> {
|
||||
10 -> {
|
||||
endWithoutFade {
|
||||
fadeFromBlack()
|
||||
setQuestStage(player, Quests.ENLIGHTENED_JOURNEY, STAGE_SECOND_EXPERIMENT)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue