diff -r 1acc5c3dc066 -r feb3d880852d share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/fruit03.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/fruit03.lua Thu Aug 29 19:51:44 2013 +0300 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/fruit03.lua Thu Aug 29 22:38:10 2013 +0300 @@ -13,6 +13,20 @@ local missionName = loc("Precise shooting") local timeLeft = 10000 local lastWeaponUsed = amSniperRifle +local challengeObjectives = loc("Use your available weapons in order to eliminate the enemies").."|".. + loc("You can only use the Sniper Rifle or the Watermelon bomb").."|".. + loc("You'll have only 2 watermelon bombs during the game").."|".. + loc("You'll get an extra Sniper Rifle every time you kill an enemy hog with a limit of max 3 rifles").."|".. + loc("You'll get an extra Teleport every time you kill an enemy hog with a limit of max 2 teleports").."|".. + loc("The first turn will last 25 sec and every other turn 15 sec").."|".. + loc("If you skip the game your time left will be added to your next turn").."|".. + loc("Some parts of the land are indestructible") +-- dialogs +local dialog01 = {} +-- mission objectives +local goals = { + [dialog01] = {missionName, loc("Challenge Objectives"), challengeObjectives, 1, 4500}, +} -- hogs local hero = { name = loc("Hog Solo"), @@ -85,12 +99,13 @@ initCheckpoint("fruit03") AnimInit() - --AnimationSetup() + AnimationSetup() end function onGameStart() AnimWait(hero.gear, 3000) FollowGear(hero.gear) + ShowMission(missionName, loc("Challenge Objectives"), challengeObjectives, -amSkip, 0) AddEvent(onHeroDeath, {hero.gear}, heroDeath, {hero.gear}, 0) @@ -109,6 +124,7 @@ AddAmmo(enemiesEven[1].gear, amGrenade, 5) SendHealthStatsOff() + AddAnim(dialog01) end function onNewTurn() @@ -122,6 +138,15 @@ turnHogs() end +function onGameTick() + AnimUnWait() + if ShowAnimation() == false then + return + end + ExecuteAfterAnimations() + CheckEvents() +end + function onGameTick20() if CurrentHedgehog == hero.gear and TurnTimeLeft ~= 0 then timeLeft = TurnTimeLeft @@ -142,6 +167,12 @@ end end +function onPrecise() + if GameTime > 3000 then + SetAnimSkip(true) + end +end + -------------- EVENTS ------------------ function onHeroDeath(gear) @@ -158,6 +189,33 @@ EndGame() end +-------------- ANIMATIONS ------------------ + +function Skipanim(anim) + if goals[anim] ~= nil then + ShowMission(unpack(goals[anim])) + end + startBattle() +end + +function AnimationSetup() + -- DIALOG 01 - Start, game instructions + AddSkipFunction(dialog01, Skipanim, {dialog01}) + table.insert(dialog01, {func = AnimWait, args = {hero.gear, 3000}}) + table.insert(dialog01, {func = AnimCaption, args = {hero.gear, loc("Somewhere in the Fruit Planet Hog Solo got lost..."), 5000}}) + table.insert(dialog01, {func = AnimCaption, args = {hero.gear, loc("...and got ambushed by the Red Strawberies"), 5000}}) + table.insert(dialog01, {func = AnimCaption, args = {hero.gear, loc("Use your available weapons in order to eliminate the enemies"), 5000}}) + table.insert(dialog01, {func = AnimCaption, args = {hero.gear, loc("You can only use the Sniper Rifle or the Watermelon bomb"), 5000}}) + table.insert(dialog01, {func = AnimCaption, args = {hero.gear, loc("You'll have only 2 watermelon bombs during the game"), 5000}}) + table.insert(dialog01, {func = AnimCaption, args = {hero.gear, loc("You'll get an extra Sniper Rifle every time you kill an enemy hog with a limit of max 3 rifles"), 5000}}) + table.insert(dialog01, {func = AnimCaption, args = {hero.gear, loc("You'll get an extra Teleport every time you kill an enemy hog with a limit of max 2 teleports"), 5000}}) + table.insert(dialog01, {func = AnimCaption, args = {hero.gear, loc("The first turn will last 25 sec and every other turn 15 sec"), 5000}}) + table.insert(dialog01, {func = AnimCaption, args = {hero.gear, loc("If you skip the game your time left will be added to your next turn"), 5000}}) + table.insert(dialog01, {func = AnimCaption, args = {hero.gear, loc("Some parts of the land are indestructible"), 5000}}) + table.insert(dialog01, {func = AnimWait, args = {hero.gear, 500}}) + table.insert(dialog01, {func = startBattle, args = {hero.gear}}) +end + ------------------ Other Functions ------------------- function turnHogs() @@ -182,3 +240,11 @@ end end end + +function startBattle() + AnimSwitchHog(enemiesOdd[table.getn(enemiesOdd)].gear) + TurnTimeLeft = 0 + -- these 2 are needed in order hero has 10 sec more in the first turn + timeLeft = 10000 + AddAmmo(hero.gear, amSkip, 0) +end