share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/shadow.lua
changeset 12555 0fa07df29499
parent 12552 9337c55f34ef
child 12556 f57af5c34ff4
equal deleted inserted replaced
12554:d8af6f9b51c6 12555:0fa07df29499
    63 brainiacDead = false
    63 brainiacDead = false
    64 cyborgHidden = false
    64 cyborgHidden = false
    65 leaksHidden = false
    65 leaksHidden = false
    66 denseHidden = false
    66 denseHidden = false
    67 cyborgAttacked = false
    67 cyborgAttacked = false
    68 retryReturn = false
       
    69 shotgunTaken = false
    68 shotgunTaken = false
    70 grenadeTaken = false
    69 grenadeTaken = false
    71 spikyDead = false
    70 spikyDead = false
    72 ramonDead = false
    71 ramonDead = false
    73 denseDead = false
    72 denseDead = false
   198   AnimSetGearPosition(cyborg, 1250, 1315)
   197   AnimSetGearPosition(cyborg, 1250, 1315)
   199   SwitchHog(dense)
   198   SwitchHog(dense)
   200   SetInputMask(0xFFFFFFFF)
   199   SetInputMask(0xFFFFFFFF)
   201 end
   200 end
   202 
   201 
   203 function RestartReturnAccepted()
       
   204   retryReturn = false
       
   205   AnimSetGearPosition(dense, 1350, 1310)
       
   206   AddAmmo(dense, amGirder, 2)
       
   207   AddAmmo(dense, amParachute, 2)
       
   208   ShowMission(loc("The Shadow Falls"), loc("The walk of Fame"), loc("Return to Leaks A Lot! If you get stuck, press [Precise] to try again!"), 1, 6000)
       
   209   RemoveEventFunc(CheckNeedGirder)
       
   210   RemoveEventFunc(CheckNeedWeapons)
       
   211   AddEvent(CheckNeedGirder, {}, DoNeedGirder, {}, 0)
       
   212   AddEvent(CheckNeedWeapons, {}, DoNeedWeapons, {}, 0)
       
   213 end
       
   214 
       
   215 
       
   216 function AfterAcceptedAnim()
   202 function AfterAcceptedAnim()
   217   stage = acceptedReturnStage
   203   stage = acceptedReturnStage
   218   SpawnUtilityCrate(1370, 810, amGirder)
   204   SpawnUtilityCrate(1370, 810, amGirder)
   219   SpawnUtilityCrate(1300, 810, amParachute)
   205   SpawnUtilityCrate(1300, 810, amParachute)
   220   ShowMission(loc("The Shadow Falls"), loc("The walk of Fame"), loc("Return to Leaks A Lot! If you get stuck, press [Precise] to try again!"), 1, 6000)
   206   ShowMission(loc("The Shadow Falls"), loc("The walk of Fame"), loc("Return to Leaks A Lot!"), 1, 6000)
   221   AddEvent(CheckTookWeapons, {}, DoTookWeapons, {}, 0)
   207   AddEvent(CheckTookWeapons, {}, DoTookWeapons, {}, 0)
   222   AddEvent(CheckNeedGirder, {}, DoNeedGirder, {}, 0)
   208   AddEvent(CheckNeedGirder, {}, DoNeedGirder, {}, 0)
   223   AddEvent(CheckNeedWeapons, {}, DoNeedWeapons, {}, 0)
   209   AddEvent(CheckNeedWeapons, {}, DoNeedWeapons, {}, 0)
   224   AddEvent(CheckRestartReturnAccepted, {}, RestartReturnAccepted, {}, 1)
       
   225   RemoveEventFunc(CheckDenseDead)
   210   RemoveEventFunc(CheckDenseDead)
   226   SwitchHog(dense)
   211   SwitchHog(dense)
   227   AnimWait(dense, 1)
   212   AnimWait(dense, 1)
   228   AddFunction({func = HideHog, args = {cyborg}})
   213   AddFunction({func = HideHog, args = {cyborg}})
   229 end
   214 end
   705 function CheckNeedGirder()
   690 function CheckNeedGirder()
   706   return GetX(dense) > 1640 and StoppedGear(dense)
   691   return GetX(dense) > 1640 and StoppedGear(dense)
   707 end
   692 end
   708 
   693 
   709 function DoNeedGirder()
   694 function DoNeedGirder()
   710   ShowMission(loc("The Shadow Falls"), loc("Under Construction"), loc("To place a girder, select it, use [Left] and [Right] to select angle and length, place with [Left Click]"), 1, 6000)
   695   ShowMission(loc("The Shadow Falls"), loc("Under Construction"), loc("Return to Leaks A Lot!") .. "|" .. loc("To place a girder, select it, use [Left] and [Right] to select angle and length, place with [Left Click]"), 1, 6000)
   711 end
   696 end
   712 
   697 
   713 function CheckNeedWeapons()
   698 function CheckNeedWeapons()
   714   return GetX(dense) > 2522 and StoppedGear(dense)
   699   return GetX(dense) > 2522 and StoppedGear(dense)
   715 end
   700 end
   731   AddAmmo(leaks, amSkip, 100)
   716   AddAmmo(leaks, amSkip, 100)
   732   AddAmmo(leaks, amSwitch, 100)
   717   AddAmmo(leaks, amSwitch, 100)
   733   stage = duoStage
   718   stage = duoStage
   734   RemoveEventFunc(CheckNeedGirder)
   719   RemoveEventFunc(CheckNeedGirder)
   735   RemoveEventFunc(CheckNeedWeapons)
   720   RemoveEventFunc(CheckNeedWeapons)
   736   RemoveEventFunc(CheckRestartReturnAccepted)
       
   737   AddEvent(CheckStronglingsDead, {}, DoStronglingsDead, {}, 0)
   721   AddEvent(CheckStronglingsDead, {}, DoStronglingsDead, {}, 0)
   738   AddAmmo(cannibals[6], amGrenade, 2)
   722   AddAmmo(cannibals[6], amGrenade, 2)
   739   AddAmmo(cannibals[6], amShotgun, 2)
   723   AddAmmo(cannibals[6], amShotgun, 2)
   740   AddAmmo(cannibals[7], amGrenade, 2)
   724   AddAmmo(cannibals[7], amGrenade, 2)
   741   AddAmmo(cannibals[7], amShotgun, 2)
   725   AddAmmo(cannibals[7], amShotgun, 2)
   826   DismissTeam(loc("Natives"))
   810   DismissTeam(loc("Natives"))
   827 end
   811 end
   828 
   812 
   829 function CheckDenseDead()
   813 function CheckDenseDead()
   830   return denseDead and choice ~= choiceAttack 
   814   return denseDead and choice ~= choiceAttack 
   831 end
       
   832 
       
   833 function CheckRestartReturnAccepted()
       
   834   return retryReturn
       
   835 end
   815 end
   836 
   816 
   837 -----------------------------Main Functions----------------------------
   817 -----------------------------Main Functions----------------------------
   838 
   818 
   839 function onGameInit()
   819 function onGameInit()
   959 function onPrecise()
   939 function onPrecise()
   960   if GameTime > 2500 and AnimInProgress() then
   940   if GameTime > 2500 and AnimInProgress() then
   961     SetAnimSkip(true)
   941     SetAnimSkip(true)
   962     return
   942     return
   963   end
   943   end
   964   if stage == acceptedReturnStage then
   944 end
   965     retryReturn = true
   945 
   966 --  else
       
   967 --    for i = 1, 9 do
       
   968 --      DeleteGear(cannibals[i])
       
   969 --    end
       
   970   end
       
   971 end
       
   972