189 lines
7.8 KiB
Plaintext
189 lines
7.8 KiB
Plaintext
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 |