Add comments for all A Classic Fairytale missions to summarize the story in a flow chart-like fashion
authorWuzzy <Wuzzy2@mail.ru>
Sun, 29 Oct 2017 00:53:11 +0200
changeset 12794 bca911f8e804
parent 12793 575c0de98505
child 12795 36d28428e719
Add comments for all A Classic Fairytale missions to summarize the story in a flow chart-like fashion
share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/backstab.lua
share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/dragon.lua
share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/enemy.lua
share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/epil.lua
share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/family.lua
share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/first_blood.lua
share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/journey.lua
share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/queen.lua
share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/shadow.lua
share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/united.lua
--- a/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/backstab.lua	Sat Oct 28 17:48:54 2017 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/backstab.lua	Sun Oct 29 00:53:11 2017 +0200
@@ -1,3 +1,53 @@
+--[[
+A Classic Fairytale: Backstab
+
+= SUMMARY =
+It is revealed that there's a traitor among the natives.
+Player decides whether to kill him or not.
+After the natives must defeat 3 waves of cannibals.
+
+= FLOW CHART =
+
+== Linear events ==
+
+- Cut scene: startScene (traitor is revealed)
+- Player is instructed to decide what to do with the traitor
+| Player kills traitor
+    - Cut scene: afterChoiceAnim
+| Player spares traitor
+    - Cut scene: afterChoiceAnim (different)
+| Player kills any other hog or own hog
+    > Game over
+- First turn of cannibals
+- TBS
+- First wave of cannibals dead
+- Cut scene: wave2Anim
+- Spawn 2nd cannibal wave
+- TBS
+- 2nd wave dead
+- Cut scene: wave2DeadAnim
+- All natives but one are encaged
+- 7 turns till arrival of 3rd wave
+- Arrival points are marked with circles
+- One hero is deployed near the circles
+- Player now only controls the hero, switch hog is removed
+- TBS
+- 3rd wave appears
+- TBS
+- 3rd wave dead
+- Final cut scene
+> Victory
+
+=== The traitor ===
+The traitor is chosen based on the past player decisions in the campaign.
+
+== Non-linear events ==
+
+| Any native hog dies after traitor decision:
+    - Another hog (if alive) mourns the loss
+
+]]
+
 HedgewarsScriptLoad("/Scripts/Locale.lua")
 HedgewarsScriptLoad("/Scripts/Animate.lua")
 
--- a/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/dragon.lua	Sat Oct 28 17:48:54 2017 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/dragon.lua	Sun Oct 29 00:53:11 2017 +0200
@@ -1,3 +1,31 @@
+--[[
+A Classic Fairytale: Dragon's Lair
+
+= SUMMARY =
+Hero must collect an utility crate on the other side of the river.
+To accomplish that, hero must first collect a series of crates with
+the rope and wipe out the cyborgs.
+
+= GOALS =
+- Mission goal (leads to immediate victory): Collect utility crate at the right side of the river
+- First sub-goal: Collect (or destroy) a series of crates (all other utility crates)
+- Second sub-goal: Wipe out the cyborgs
+
+= FLOW CHART =
+- Cut scene: Intro
+- TBS
+| Player accomplishes first sub-goal first:
+    - Cut scene: Cyborg reveals second goal
+| Player accomplshed second sub-goal first:
+    - Hero reminds player to collect/destroy remaining crates
+- Player accomplished both goals
+- Cut scene: Cyborg teleports hero and congrats hero and reveals portal gun
+- A teleporter crate appears, allowing the player to complete the mission
+- Player takes final crate at the very right
+> Victory
+
+]]
+
 HedgewarsScriptLoad("/Scripts/Locale.lua")
 HedgewarsScriptLoad("/Scripts/Animate.lua")
 
--- a/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/enemy.lua	Sat Oct 28 17:48:54 2017 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/enemy.lua	Sun Oct 29 00:53:11 2017 +0200
@@ -1,3 +1,21 @@
+--[[
+A Classic Fairytale: The enemy of my enemy
+
+= SUMMARY =
+Simple deathmatch on the Islands map.
+
+= GOAL =
+Wipe out the Hedge-cogs and Leader teams
+
+= FLOW CHART =
+- Cut scene: startAnim
+- TBS
+- Goal completed
+- Cut scene: finalAnim
+> Victory
+
+]]
+
 HedgewarsScriptLoad("/Scripts/Locale.lua")
 HedgewarsScriptLoad("/Scripts/Animate.lua")
 
--- a/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/epil.lua	Sat Oct 28 17:48:54 2017 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/epil.lua	Sun Oct 29 00:53:11 2017 +0200
@@ -1,3 +1,44 @@
+--[[
+A Classic Fairytale: Epilogue
+
+= SUMMARY =
+The epilogue, a final animated sequence (with 4 possible endings),
+plus a sandbox mode.
+
+= GOALS =
+You only need to finish the cut scene and quit.
+The cut scene can be skipped, this is OK, too.
+
+= FLOW CHART =
+== Linear events ==
+- Long cut scene. This is one of four possible endings.
+- The chosen ending depends on the enemy leader chosen in ACF8:
+| ACF8 leader: Dense Cloud
+    - Dense Cloud is the traitor and in prison
+    - See SetupAnimDense
+| ACF8 leader: Fell from Heaven
+    - Fell from Heaven is the traitor
+    - See SetupAnimPrincess
+| ACF8 leader: Fiery Water
+    - Fiery Water is the traitor and in prison
+    - See SetupAnimWater
+| ACF8 leader: Nancy Screw (cyborg)
+    - No traitors
+    - See SetupAnimCyborg
+- Mission is marked as completed after cut scene, but does not exit
+- Mission panel with congratulation message appears
+- Sandbox mode activated
+- All hogs except the traitor are now playable
+
+Note: This mission does not exit on its own.
+The player has either to kill everyone or use the Esc key.
+
+== Non-linear events ==
+| All hogs except the traitor are dead
+    - It's the traitor's turn now
+
+]]
+
 HedgewarsScriptLoad("/Scripts/Locale.lua")
 HedgewarsScriptLoad("/Scripts/Animate.lua")
 
--- a/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/family.lua	Sat Oct 28 17:48:54 2017 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/family.lua	Sun Oct 29 00:53:11 2017 +0200
@@ -1,3 +1,30 @@
+--[[
+A Classic Fairytale: Family Reunion
+
+= GOALS =
+Kill all visible cyborgs (not the princess).
+Then move hero to princess and Ramon and Spike Cheese to the surface.
+
+= FLOW CHART =
+== Linear events ==
+
+- Cut scene: Intro
+- First goal: Kill all visible cyborgs (princess is not a cyborg)
+- First goal completed
+- Cut scene: Cyborg reveals second goal
+- A ton of 5s mines spawn on the surface
+- Second goal: Hero must reach princess; Ramon and Spiky Cheese must reach the surface
+- Second goal completed
+> Victory
+
+== Non-linear events ==
+| Princess dead:
+    > Game over
+| Ramon, Spiky Cheese or hero dead:
+    > Game over
+
+]]
+
 HedgewarsScriptLoad("/Scripts/Locale.lua")
 HedgewarsScriptLoad("/Scripts/Animate.lua")
 
--- a/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/first_blood.lua	Sat Oct 28 17:48:54 2017 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/first_blood.lua	Sun Oct 29 00:53:11 2017 +0200
@@ -1,3 +1,90 @@
+--[[
+A Classic Fairytale: First Blood
+
+= SUMMARY =
+Simple introduction to the most basic aspects of gameplay.
+Basically a story-driven mini-tutorial. Does not replace
+a real tutorial, however.
+
+= GOAL =
+To complete the various tasks the chief gives to the player.
+
+= FLOW CHART =
+This section explains how this mission is (roughly)
+*supposed* to work, with a step-to-step list.
+Use this to hunt down bugs or for testing.
+
+All other missions in ACF will have the same section.
+
+These symbols are used:
+- Event
+| Choice (only one of these can happen)
+> End of mission
+: Go to another event in the flow chart
+
+“TBS” stands for “Turn-Based Stragegy”. It is used when the game switches from
+heavily scripted events to the default turn-based stragegy gameplay. This
+is not used in the first mission, however.
+
+== Linear events ==
+This is the expected course of events in chronological order.
+
+- Introduction; movement (left/right/jump) instructions
+- Player moves to mushroom
+- Double jump instructions, move to flower
+- Collect first crate (rope)
+- Rope instructions
+- Parachute crate appears in the right pit
+- Player collects parachute
+- Instruct player to move to mole head
+| If player stopped on mole head:
+    - Cut scene
+    - Place girder to block off right pit
+    - Spawn rope crate in left pit
+    - Player must collect crate safely
+    - If hurt: Reset player to mole head
+| If player skipped the mole (e.g. by roping) and instead went down the pit left from the mole:
+    - Different cut scene
+    - Place girder to block off right pit
+    - Spawn rope crate in left pit
+    - Player must collect this crate
+- Shoryuken crate spawns
+- Player destroys all targets
+- Rope challenge
+    - Player chooses rope challenge difficulty
+    - Crates spawn, one-by-one, while player collects them
+    | If player collects all crates in time:
+        - Proceed
+    | If player fails to collect all crates in time:
+        : Rope challenge restarts
+- Deagle crate spawns
+- Player collects deagle crate
+- Deagle targets spawn
+- Deagle targets destroyd
+- Cannibal and lots of ammo crates appear
+| Player kills cannibal
+    > Victory
+| Player moves close to cannibal
+    - Many weapon crates with melee weapons spawn
+    - Cut scene
+    - Player kills cannibal
+    > Victory
+
+== Non-linear events ==
+These events can be triggered at (theoretically) any time and interrupt
+the normal flow. Obvious events like “all player hogs dead” are omitted here.
+
+- Player hog damages princess:
+    - Princess complains
+- Player hog damages chief
+    - Chief complains
+- Player hog, Princess or Chief dead:
+    > Game over
+- Player hurt itself without dying:
+    - Chief mocks player
+
+]]
+
 HedgewarsScriptLoad("/Scripts/Locale.lua")
 HedgewarsScriptLoad("/Scripts/Animate.lua")
 
--- a/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/journey.lua	Sat Oct 28 17:48:54 2017 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/journey.lua	Sun Oct 29 00:53:11 2017 +0200
@@ -1,3 +1,106 @@
+--[[
+A Classic Fairytale: The Journey Back
+
+= SUMMARY =
+This is a very complex and heavily scripted mission with
+2 major gameplay variants and 2 sub-variants each.
+
+This mission is mostly about movement and overcoming obstacles,
+and not much about fighting.
+
+The player has either 1 or 2 hogs (depending on previous mission)
+and must reach the left coast. The cyborg will show up from time
+to time and constantly annoys the heroes with obstacles and additional
+challenges.
+
+The mission's gameplay is affected by whether Dense Cloud survived
+in the previous mission. The mission's dialogues are affected by
+the decision of the player in the previous mission.
+
+= GOALS =
+- Collect the crate at the left coast
+- (Need to accomplish various sub-goals before this is possible)
+- Then kill the cyborg
+
+= FLOW CHART =
+== Linear events ==
+
+Note: This mission's gameplay is significantly affected by the choices of the previous mission (The Shadow Falls).
+There are two major paths, and each of them has two variants.
+
+=== PATH ONE (AL) ===
+Condition: Cyborg's offer in ACF2 accepted and Dense Cloud survived.
+
+- Mission starts with Dense Cloud and Leaks a Lot
+- Mines time: 5s
+- Cut scene: startAnimAL (initial instructions)
+- Hog moves past flower (via teamwork)
+- Animation: pastFlowerAnimAL
+- Player jumps up the tree
+- Cut scene: outPutAnimAL
+- Cyborg teleports one hog to the pit, while the other hog remains
+- TBS
+- Trapped hog walks out of pit
+- Cut scene: midAnimAL
+- Trapped hog is teleported below bridge (and trapped again)
+- A huge barricade at the bridge is erected, and mines spawn on bridge
+- Now any hog needs to collect the final crate
+- TBS
+- Final crate collected
+- Cut scene: endAnimAL
+- Cyborg and princess apear, player must kill cyborg
+| Cyborg killed
+    - Cut scene: winAnim
+    > Victory
+| Princess killed
+    - Cut scene: endFailAnim
+    > Game over
+
+=== PATH TWO (AD) ===
+Condition: Cyborg's offer in ACF2 accepted, but Dense Cloud died afterwards.
+
+- Mission starts with Leaks a Lot only
+- Cut scene: startAnimAD (initial instructions)
+- Hog moves past flower (via blowtorch)
+- Animation: pastFlowerAnimAD
+- TBS
+- Hog proceeds all the way to the bridge
+- Cut scene: outPutAnimAD (the “Princess Game”)
+- Hog is teleported to the pit
+- TBS
+- Hog must reach goal crate within a given number of turns
+| Hog reaches goal crate within the turn limit
+    - Cut scene: endAnimAD
+    - Cyborg and princess spawn
+    | Cyborg killed
+        - Cut scene: winAnim
+        > Victory
+    | Princess killed
+        - Cut scene: endFailAnim
+        > Game over
+| Turn limit exceeded
+    - Cut scene: failAnimAD (princess is caged and killed by cyborg)
+    > Game over
+
+=== PATH THREE (RL) ===
+Condition: Cyborg's offer in ACF2 rejected.
+
+This is almost identical to Path One, only the dialogues differ.
+All AL animations are replaced with RL animations.
+
+=== PATH FOUR (attacked) ===
+Condition: Cyborg from ACF2 was attacked.
+
+This is almost identical to Path Two, only the dialogues differ.
+Uses startAnim and midAnim from SetupAnimAttacked.
+
+
+== Non-linear events ==
+- Any of the Natives dies
+   > Game over
+
+]]
+
 HedgewarsScriptLoad("/Scripts/Locale.lua")
 HedgewarsScriptLoad("/Scripts/Animate.lua")
 
--- a/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/queen.lua	Sat Oct 28 17:48:54 2017 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/queen.lua	Sun Oct 29 00:53:11 2017 +0200
@@ -1,3 +1,34 @@
+--[[
+A Classic Fairytale: Long live the Queen
+
+= SUMMARY =
+Deathmatch against a leader of a pack of cyborgs with 4 different storylines (but mostly identical gameplay).
+
+= GOALS =
+Defeat Biomechanic Team.
+
+= FLOW CHART =
+- Show one of 4 possible storylines which affect the choice of the enemy leader (only minor effect on gameplay):
+    | 1) If offer accepted in ACF2 and traitor not executed in ACF5: Dense Cloud
+    | 2) Otherwise: If offer accepted in ACF2: Nancy Screw (cyborg)
+    | 3) Otherwise: If traitor was executed in ACF5: Fell from Heaven
+    | 4) Otherwise: Fiery Water
+- Cut scene: startAnim
+- TBS
+- Biomechanic Team defeated.
+- Cut scene: finalAnim
+> Victory
+
+== Non-linear events ==
+| Leader dead
+    - Cut scene: leaderDeadAnim
+| Played more than 6 rounds and leader is still in game
+    - Cut scene: fleeAnim
+    - Leader flees
+    - Instructions: Kill remaining enemies
+
+]]
+
 HedgewarsScriptLoad("/Scripts/Locale.lua")
 HedgewarsScriptLoad("/Scripts/Animate.lua")
 
--- a/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/shadow.lua	Sat Oct 28 17:48:54 2017 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/shadow.lua	Sun Oct 29 00:53:11 2017 +0200
@@ -1,3 +1,64 @@
+--[[
+A Classic Fairytale: The Shadow Falls
+
+= SUMMARY =
+Dense Cloud and Leaks a Lot fight against waves of cannibals. Then a
+cyborg shows up and offers one of the natives goodies in exchange for
+betraying his tribe.
+
+The decision affects the rest of the story. The survival of Dense
+Cloud is important for the gameplay of the next mission.
+
+= GOALS =
+Kill Weaklings and Stronglings.
+
+= FLOW CHART =
+== Linear events ==
+
+- Initial hog spawns: Dense Cloud, Leaks a Lot and Brainiac (Weaklings)
+- Cut scene: startDialogue
+- TBS
+- Brainiac dead
+- Cut scene: weaklingsAnim
+- The remaining Weaklings spawn
+- TBS
+- All Weaklings dead
+- Cut scene: stronglingsAnim: Stronglings spawn, hero walks to forest, meets cyborg, cyborg makes offer
+- The cyborg offer is an IMPORTANT decision, it completely changes the next mission, and the rest of the story
+| Accept: Player walks to cyborg
+    - Cut scene: acceptAnim
+    - Hero returns to start
+    - TBS
+    - Stronglings defeated
+    | Stronglings defeated with both hogs survived
+        - Cut scene: acceptedSurvivedFinalAnim
+    | Stronglings deafeated with Dense Cloud dead
+        - Cut scene: acceptedDiedFinalAnim
+    > Victory
+| Reject: Player walks away
+    - Cut scene: refusedAnim
+    - Hero needs to walk all the way back (infinite turn time)
+    - Hero reached tree
+    - Turn time starts
+    - TBS
+    - Stronglings defeated
+    - Cut scene: refusedFinalAnim
+    > Victory
+| Attack: Player attacks cyborg
+    - Cut scene: attackAnim
+    - Cyborg kills hero
+    - Other native's turn to defeat Stronglings
+    - TBS
+    - Stronglings defeated
+    - Cut scene: attackedFinalAnim
+    > Victory
+
+== Non-linear events ==
+| Dense Cloud or Leaks A Lot dead (exceptions: killed by cyborg; or Dense Cloud died in same turn as the Stronglings):
+    > Game over
+
+]]
+
 HedgewarsScriptLoad("/Scripts/Locale.lua")
 HedgewarsScriptLoad("/Scripts/Animate.lua")
 
--- a/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/united.lua	Sat Oct 28 17:48:54 2017 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/united.lua	Sun Oct 29 00:53:11 2017 +0200
@@ -1,3 +1,27 @@
+--[[
+A Classic Fairytale: United we stand
+
+= SUMMARY =
+Simple Deathmatch against cannibals in two waves.
+
+= GOAL =
+Kill both Cannfantery (cannibal) teams.
+
+= FLOW CHART =
+
+- Light Cannfantery and player hogs spawn
+- Cut scene: startAnim
+- TBS
+- Light Cannfantery defeated
+- Cut scene: wave2Anim
+- Heavy Cannfantery spawns
+- TBS
+- Heavy Cannfantery defeated
+- Cut scene: finalAnim
+> Victory
+
+]]
+
 HedgewarsScriptLoad("/Scripts/Locale.lua")
 HedgewarsScriptLoad("/Scripts/Animate.lua")