label first_test: scene black with dissolve scene bg training_yard mercenary "It's time to see what you are made of. We are gonna start with a simple test, so we can get a feel for what you can do." mercenary "One-on-one fights, but since we are an uneven number, one person will have to fight twice." mercenary "It will be a friendly spar, so using wooden weapons, make your opponent give up, but no killing allowed. Try to avoid injuring them too much, but if they refuse to give up, it is what it is." mercenary "And also, no blessings." eron "Seems easy, can I go first?" thinking "I'm not sure if this test is that simple. Since none of us know each other, aside from maybe these two, it is hard to judge how much to hold back without loosing instantly." thinking "If you go all out and seriously injure the opponent, you probably get disqualified. But if you hold back too much, you might loose in the first strike." mercenary "Since you seem to be so eager, you can go first, and your opponent will be Sara." thinking "Why does it have to be me? That guy seems to be really strong." sara "Are we allowed to use the surroundings?" mercenary "This is a sparring match without blessings, you are supposed to show your weapon techinques, so no." thinking "That makes things even harder. One on one without being able to use the environment doesn't give me a lot of room to work with." thinking "I don't think I can win against him in direct combat. At first glance he might seem arrogant, but from his stance I can tell he is not an amateur." thinking "My only advantage is that he cannot use his blessing, while I can, since noone will remember." thinking "But rewinding after every strike will consume way too much energy, I will have to use as much of my own skill as possible." with dissolve # scene bg eron_ready mercenary "Begin the match!" scene black with dissolve "The feeling of a cold thread. The feeling of the air thickening." scene bg training_yard with dissolve # Checkpoint: a rewind from anywhere in the spar lands back at the first # exchange. No reset label needed — the spar's state is re-derived from # the choices, so there are no flags to reset (rewind_reset_label stays None). $ checkpoint = "first_test.first_attack_choice" eron "Hyaaa!" jump .first_attack_choice label .first_attack_choice: scene bg training_yard with dissolve "Eron dashes with his sword raised over his right shoulder." menu: thinking "Fast!" "Dodge left": jump .dodge_left "Dodge right": jump .dodge_right "Parry": jump .parry # Initial left label .dodge_left: "Whizz! The sword almost grazes her right shoulder." thinking "Hairs breadth!" menu: thinking "I need to regain my balance and counter." "Counterattack": jump .dodge_left_counterattack "Anticipate next attack": jump .dodge_left_anticipate ## Left -> counter label .dodge_left_counterattack: "Whack! The sword turns quickly and strikes her leg." sara "Ugh!" thinking "He hit my leg! Should i try another attack or go back?" menu: "[[Rewind]": # Shared mechanic: reads `checkpoint` (".first_attack_choice") and # rewinds there via the teal-wash effect, then returns here. jump rewind_to "Press the attack": jump .dodge_left_counterattack_press label .dodge_left_counterattack_press: "Whack! Eron takes the momentum of the recoil from the leg strike and makes a lightning fast spinning attack for Saras temple." scene black with dissolve jump .after_spar ## Left -> anticipate label .dodge_left_anticipate: thinking "I dodged to the left, so the next attack will come from the right." menu: "Dodge further left": jump .dodge_left_anticipate_left "Jump": jump .dodge_left_anticipate_jump "Parry": jump .dodge_left_anticipate_parry ## Left -> anticipate -> left label .dodge_left_anticipate_left: "Erons sword that narrowly missed her right side quickly turns and aims for her legs." "The tradjectory of the sword is faster than she can dodge away, but the increased distance allows eron to adjust the trajectory." "Eron upswings under her raised arms squarely into Saras stomach" sara "Ugh!" thinking "That knocked the air out of me! I need to catch my breath. Or should I rewind?" menu: "[[Rewind]": jump rewind_to "Create distance": jump .dodge_left_anticipate_left_distance label .dodge_left_anticipate_left_distance: "Whack! Eron takes the momentum of the recoil from the stomach strike and makes a lightning fast spinning attack for Saras temple." scene black with dissolve jump .after_spar label .dodge_left_anticipate_jump: "Sara leaps into the air, narrowly avoiding the strike." "Eron uses the momentum of the missed strike to do a spinning attack" menu: thinking "There is a brief window where he shows his back" "Attack": jump .dodge_left_anticipate_jump_attack "Parry": jump .parry label .dodge_left_anticipate_jump_attack: "Sara tries to go for the opening" "But she is simply too slow, she lacks combat experience." "Eron hits her temple with the spinning attack before she can hit is back" scene black with dissolve jump .after_spar # Initial right label .dodge_right: "Sara dodges straight into Eron's attack, and gets hit on the shoulder." thinking "Ugh! That was a heavy hit, should I rewind? No, I should gather more information first" menu: "[[Rewind]": jump rewind_to "Create distance": jump .dodge_right_distance label .dodge_right_distance: "Sara tries too create some distance between herself and Eron, but he quickly closes the gap." thinking "How is he so fast? Just focus on defending myself" menu: "Parry": jump .parry "Create distance": jump .dodge_right_distance_distance label .dodge_right_distance_distance: "Sara manages to create some distance, but Eron is relentless and quickly closes the gap again." "Before she can further react, he strikes her temple." scene black with dissolve jump .after_spar # Initial parry label .parry: "Sara raises her weapon to block Eron's incoming strike." "Sara's weapon gets knocked way to the side, leaving her wide open." thinking "Ugh! How heavy was that strike? I am already loosing my grip. Should I rewind right way?" menu: "[[Rewind]": jump rewind_to "Recover": jump .parry_recover "Create distance": jump .parry_create_distance label .parry_recover: "Sara tries to regain her balance, but Eron is relentless." menu: "Parry": jump .parry_recover_parry "Dodge": jump .parry_recover_dodge label .parry_recover_parry: "Sara attempts to parry again, but Eron strikes through her defense, hitting her temple." scene black with dissolve jump .after_spar label .parry_recover_dodge: "Sara attempts to dodge, but Eron anticipates her movement and strikes her temple." scene black with dissolve jump .after_spar label .parry_create_distance: "Sara tries to create distance between herself and Eron, but he lunges after her." "Before she can react, he strikes her temple" scene black with dissolve jump .after_spar label .after_spar: "Sara lies on the ground, trying to recover from the intense sparring session with Eron." thinking "I need to analyze his movements more carefully next time." jump quit