mirror of
https://github.com/AquariaOSE/Aquaria.git
synced 2024-11-15 22:19:07 +00:00
197 lines
4.2 KiB
Lua
197 lines
4.2 KiB
Lua
|
-- Copyright (C) 2007, 2010 - Bit-Blot
|
||
|
--
|
||
|
-- This file is part of Aquaria.
|
||
|
--
|
||
|
-- Aquaria is free software; you can redistribute it and/or
|
||
|
-- modify it under the terms of the GNU General Public License
|
||
|
-- as published by the Free Software Foundation; either version 2
|
||
|
-- of the License, or (at your option) any later version.
|
||
|
--
|
||
|
-- This program is distributed in the hope that it will be useful,
|
||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||
|
--
|
||
|
-- See the GNU General Public License for more details.
|
||
|
--
|
||
|
-- You should have received a copy of the GNU General Public License
|
||
|
-- along with this program; if not, write to the Free Software
|
||
|
-- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||
|
|
||
|
if not v then v = {} end
|
||
|
if not AQUARIA_VERSION then dofile("scripts/entities/entityinclude.lua") end
|
||
|
|
||
|
function init(me)
|
||
|
--[[
|
||
|
if isFlag(FLAG_SONGCAVECRYSTAL, 1) then
|
||
|
node_setCursorActivation(me, false)
|
||
|
else
|
||
|
node_setCursorActivation(me, true)
|
||
|
end
|
||
|
]]--
|
||
|
end
|
||
|
|
||
|
local function runScene(me)
|
||
|
setCutscene(1, 1)
|
||
|
setFlag(FLAG_SONGCAVECRYSTAL, 1)
|
||
|
|
||
|
local ghost = node_getNearestEntity(me, "ErulianGhost")
|
||
|
|
||
|
local oldx, oldy = entity_getPosition(ghost)
|
||
|
|
||
|
setCameraLerpDelay(1.0)
|
||
|
|
||
|
cam_toNode(getNode("CRYSTALCAM1"))
|
||
|
|
||
|
esetv(getNaija(), EV_LOOKAT, 0)
|
||
|
|
||
|
entity_idle(getNaija())
|
||
|
entity_swimToNode(getNaija(), getNode("NAIJACRYSTAL"))
|
||
|
entity_watchForPath(getNaija())
|
||
|
entity_idle(getNaija())
|
||
|
entity_flipToEntity(getNaija(), ghost)
|
||
|
|
||
|
overrideZoom(0.9, 10)
|
||
|
|
||
|
watch(2)
|
||
|
|
||
|
voice("Naija_SongCrystal1")
|
||
|
watchForVoice()
|
||
|
fadeOutMusic(3)
|
||
|
|
||
|
|
||
|
|
||
|
local n = getNode("NAIJATOUCHCRYSTAL")
|
||
|
|
||
|
entity_animate(getNaija(), "pushForward")
|
||
|
watch(0.4)
|
||
|
entity_setPosition(getNaija(), node_x(n), node_y(n), 1, 0, 0, 1)
|
||
|
watch(1.0)
|
||
|
entity_idle(getNaija())
|
||
|
watch(0.5)
|
||
|
entity_animate(getNaija(), "touchCrystal")
|
||
|
while entity_isAnimating(getNaija()) do
|
||
|
watch(FRAME_TIME)
|
||
|
end
|
||
|
entity_heal(getNaija(), 999)
|
||
|
watch(0.2)
|
||
|
local crystalNode = me
|
||
|
spawnParticleEffect("SongCrystalActivate", node_x(crystalNode), node_y(crystalNode))
|
||
|
playMusic("Mystery")
|
||
|
|
||
|
setSceneColor(0.5, 0.5, 1, 10)
|
||
|
|
||
|
watch(3)
|
||
|
entity_alpha(ghost, 0.5, 3)
|
||
|
|
||
|
setNaijaHeadTexture("")
|
||
|
|
||
|
cam_toEntity(ghost)
|
||
|
entity_setPosition(ghost, entity_x(ghost), entity_y(ghost)-256, 4, 0, 0, 1)
|
||
|
entity_alpha(ghost, 1, 4)
|
||
|
watch(1)
|
||
|
voice("Naija_SongCrystal2")
|
||
|
watch(2)
|
||
|
entity_idle(getNaija())
|
||
|
entity_animate(getNaija(), "look45", LOOP_INF, LAYER_HEAD)
|
||
|
watch(1)
|
||
|
cam_toNode(getNode("CRYSTALCAM2"))
|
||
|
|
||
|
local n = getNode("NAIJACRYSTAL")
|
||
|
entity_animate(getNaija(), "pushBack")
|
||
|
watch(0.2)
|
||
|
entity_setPosition(getNaija(), node_x(n), node_y(n), 1.0, 0, 0, 1)
|
||
|
|
||
|
entity_animate(getNaija(), "look45", LOOP_INF, LAYER_HEAD)
|
||
|
watch(0.5)
|
||
|
|
||
|
|
||
|
|
||
|
spawnParticleEffect("Erulian", entity_x(ghost), entity_y(ghost))
|
||
|
watch(0.5)
|
||
|
entity_idle(getNaija())
|
||
|
entity_animate(getNaija(), "look45", LOOP_INF, LAYER_HEAD)
|
||
|
|
||
|
|
||
|
watchForVoice()
|
||
|
|
||
|
watch(0.5)
|
||
|
|
||
|
voice("Naija_SongCrystal3")
|
||
|
watch(2.5)
|
||
|
vision("Erulian", 4, true)
|
||
|
watchForVoice()
|
||
|
|
||
|
spawnParticleEffect("SongCrystalActivate", node_x(crystalNode), node_y(crystalNode))
|
||
|
|
||
|
overrideZoom(1.5, 2)
|
||
|
|
||
|
entity_alpha(ghost, 0, 5)
|
||
|
fadeOutMusic(6)
|
||
|
|
||
|
setNaijaHeadTexture("Pain")
|
||
|
esetv(ghost, EV_LOOKAT, 0)
|
||
|
cam_toEntity(getNaija())
|
||
|
|
||
|
entity_animate(getNaija(), "look-45", LOOP_INF, LAYER_HEAD)
|
||
|
voice("Naija_SongCrystal3b")
|
||
|
|
||
|
watchForVoice()
|
||
|
watch(1.5)
|
||
|
|
||
|
voice("Naija_SongCrystal4")
|
||
|
|
||
|
watch(1.4)
|
||
|
|
||
|
overrideZoom(1, 1)
|
||
|
cam_toNode(getNode("CRYSTALCAM2"))
|
||
|
|
||
|
|
||
|
setNaijaHeadTexture("")
|
||
|
entity_idle(getNaija())
|
||
|
|
||
|
watchForVoice()
|
||
|
|
||
|
entity_idle(getNaija())
|
||
|
|
||
|
cam_toEntity(getNaija())
|
||
|
|
||
|
setSceneColor(1, 1, 1, 4)
|
||
|
|
||
|
watch(2)
|
||
|
|
||
|
setCameraLerpDelay(0)
|
||
|
|
||
|
wait(1)
|
||
|
|
||
|
|
||
|
node_setCursorActivation(me, false)
|
||
|
|
||
|
overrideZoom(0)
|
||
|
learnSong(SONG_PULL)
|
||
|
|
||
|
setCutscene(0)
|
||
|
|
||
|
setControlHint(getStringBank(36), 0, 0, 0, 10, "", SONG_BIND)
|
||
|
|
||
|
playMusic("Cave")
|
||
|
|
||
|
|
||
|
voice("naija_song_bind")
|
||
|
entity_setPosition(ghost, oldx, oldy)
|
||
|
|
||
|
esetv(getNaija(), EV_LOOKAT, 1)
|
||
|
|
||
|
setBeacon(BEACON_ENERGYTEMPLE, true, -100, -50, 1, 0.25, 0.25)
|
||
|
beaconEffect(BEACON_ENERGYTEMPLE)
|
||
|
end
|
||
|
|
||
|
function activate(me)
|
||
|
runScene(me)
|
||
|
end
|
||
|
|
||
|
function update(me, dt)
|
||
|
if isFlag(FLAG_SONGCAVECRYSTAL, 0) and node_isEntityIn(me, getNaija()) then
|
||
|
runScene(me)
|
||
|
end
|
||
|
end
|