# HG changeset patch # User Wuzzy # Date 1509231191 -7200 # Node ID bca911f8e8042bc19b8853d5e3467c8bb66d4355 # Parent 575c0de9850507f914773da438130be52b5a69f3 Add comments for all A Classic Fairytale missions to summarize the story in a flow chart-like fashion diff -r 575c0de98505 -r bca911f8e804 share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/backstab.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") diff -r 575c0de98505 -r bca911f8e804 share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/dragon.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") diff -r 575c0de98505 -r bca911f8e804 share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/enemy.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") diff -r 575c0de98505 -r bca911f8e804 share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/epil.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") diff -r 575c0de98505 -r bca911f8e804 share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/family.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") diff -r 575c0de98505 -r bca911f8e804 share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/first_blood.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") diff -r 575c0de98505 -r bca911f8e804 share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/journey.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") diff -r 575c0de98505 -r bca911f8e804 share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/queen.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") diff -r 575c0de98505 -r bca911f8e804 share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/shadow.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") diff -r 575c0de98505 -r bca911f8e804 share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/united.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")