Last active
August 31, 2023 23:59
-
-
Save amirrajan/b6d93ebfee6f8762490751cbcc2ed595 to your computer and use it in GitHub Desktop.
Ruby DSL for one of my platformers which generates output like this: https://www.youtube.com/shorts/NKJrsMqVugU
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# coding: utf-8 | |
# NOTE: read from bottom to top | |
module Women | |
def women | |
{ | |
display_name: '≈≈≈ Women ≈≈≈', | |
checkpoint: :women, | |
stage: [ | |
'Unfortunately for Circle, he was cursed with many, many, sides.', | |
page_66, | |
{ loc: ' x ', type: Triangle }, | |
{ loc: ' x ', type: CryingSquare }, | |
{ loc: ' x ', type: Line }, | |
empty_row(3), | |
'Sometimes, the newborn is cursed (yes, cursed) with an extra side.', | |
page_66, | |
'After a very short gestation period of 9π months (about 848.23001 days), a new polygon is born.', | |
image_spacer, | |
{ loc: ' x ', type: TriangleLine }, | |
image('img_love.jpg'), | |
empty_row(3), | |
'A visual. For the sake of brevity.', | |
page_66, | |
"the woman ends up 'wrapped around' as opposed to 'on top' her mate.", | |
page_66, | |
"ahem... let's just say...", | |
page_66, | |
'If (through a very, very, careful courting process) the woman likes the man... they...', | |
page_full, | |
"Why of course you'd be curious about how Flatlanders copulate wouldn't you?", | |
page_66, | |
"", | |
checkpoint, | |
'≈≈≈ With Regards to Mating ≈≈≈', | |
image_spacer, | |
image('img_burn.jpg'), | |
empty_row(1), | |
'In Flatland, there are no burials, for (again) there is no "down".', | |
page_66, | |
'The severed bodies of the attackers will be burned of course.', | |
page_66, | |
empty_row(10), | |
zoom, | |
{ loc: ' x ', type: MurderScene }, | |
empty_row(28), | |
"Didn't end well for the foolish triangles.", | |
checkpoint, | |
page_33, | |
empty_row(10), | |
'Looks like a group of men attempted to assault a woman.', | |
page_66, | |
'Oh dear, is that a crime scene up ahead?', | |
page_66, | |
empty_row(25), | |
image('img_no_height.jpg'), | |
"But try to understand, my dear human, the concept of \"above\" doesn't exist in Flatland.", | |
page_66, | |
'You can see the women of Flatland of course, because you are looking at them from "above".', | |
image_spacer, | |
image('img_spin_line.jpg'), | |
'If the male continues the approach, and the woman feels threatened... she begins to spin. Which makes her very, very dangerous.', | |
page_33, | |
image_spacer, | |
image('img_sohcahtoa.jpg'), | |
empty_row(2), | |
"They (given their mathematical prowess) make their one-dimensional bodies invisible to the gawking male.", | |
page_full, | |
"You see.... women of Flatland must study trigonometry starting from a very young age.", | |
page_full, | |
"Once a man gets closer. As a very stern warning, the women \"sings out\", then begin to move with the man's perspective.", | |
page_33, | |
checkpoint, | |
{ loc: ' x ', type: Line, kia: true }, | |
{ loc: 'x x', type: Line }, | |
{ loc: ' x ', type: Line, kia: true }, | |
{ loc: 'x x', type: Line }, | |
{ loc: ' x ', type: Line }, | |
{ loc: ' x', type: Line, kia: true }, | |
empty_row(3), | |
'Out of courtesy, women move slowly if a man is far away.', | |
page_33, | |
checkpoint, | |
'When I say they are one dimensional, I mean that they only have length. No width. And certainly no height (we are in Flatland of course).', | |
page_33, | |
empty_row(15), | |
{ loc: ' ', type: Dancers, kia: true }, | |
{ loc: 'x ', type: Dancers }, | |
{ loc: ' ', type: Dancers }, | |
{ loc: ' x x ', type: Dancers }, | |
{ loc: ' ', type: Dancers }, | |
{ loc: ' ', type: Dancers }, | |
{ loc: ' ', type: Dancers }, | |
{ loc: ' x', type: Dancers, kia: true }, | |
{ loc: ' x ', type: Dancers }, | |
{ loc: ' x ', type: Dancers, kia: true }, | |
{ loc: ' ', type: Dancers }, | |
{ loc: ' x', type: Dancers }, | |
{ loc: ' x ', type: Dancers }, | |
{ loc: ' ' }, | |
{ loc: ' x x ', type: Dancers, kia: true }, | |
{ loc: ' ', type: Dancers, kia: true }, | |
{ loc: ' ', type: Dancers }, | |
{ loc: ' ', type: Dancers }, | |
{ loc: ' x ', type: Dancers }, | |
{ loc: ' x ', type: Dancers }, | |
{ loc: ' ', type: Dancers }, | |
{ loc: ' ', type: Dancers }, | |
{ loc: ' x x', type: Dancers, kia: true }, | |
{ loc: ' x ', type: Dancers }, | |
{ loc: ' x ', type: Dancers, kia: true }, | |
{ loc: ' ', type: Dancers }, | |
{ loc: ' x', type: Dancers }, | |
{ loc: ' x ', type: Dancers }, | |
{ loc: ' ' }, | |
{ loc: ' x x ', type: Dancers, kia: true }, | |
empty_row(3), | |
image('img_disco.jpg'), | |
'They are quite fabulous at parties actually.', | |
checkpoint, | |
page_33, | |
"Now now, I don't mean they have one dimensional personalities.", | |
empty_row(15), | |
block_locations([:ww, :nw, :w, :n, :e, :ne, :ee], with: Line), | |
empty_row(3), | |
'You see... the women of Flatland are one dimensional.', | |
page_66, | |
checkpoint, | |
actions([:e, :w, :n, :ne, :nw]), | |
'Let me explain what just happened.', | |
page_full, | |
{ loc: ' x x x x x x x x x ', type: Line }, | |
{ loc: ' ', type: Line }, | |
{ loc: ' ', type: Line }, | |
{ loc: ' ', type: Line }, | |
{ loc: ' x x ', type: Line }, | |
{ loc: ' x x ', type: Line }, | |
{ loc: ' x x x x x', type: Line }, | |
{ loc: ' x ', type: Line }, | |
{ loc: ' ', type: Line }, | |
{ loc: ' ', type: Line }, | |
{ loc: ' x x x x x x ', type: Line }, | |
{ loc: ' ', type: Line }, | |
{ loc: ' ', type: Line }, | |
{ loc: ' ', type: Line }, | |
{ loc: ' ', type: Line }, | |
page_10, | |
page_10, | |
page_10, | |
"It's best not to take their slender presence lightly, for they are natural born assassins.", | |
checkpoint, | |
'Here are the women of this world.', | |
page_66, | |
"I'm glad your thirst for knowledge hasn't been quenched, yet.", | |
page_66, | |
'Still interested in learning about Flatland I see.', | |
empty_row(2), | |
actions([:e, :w, :n]), | |
empty_row(2), | |
'≈≈≈ Women ≈≈≈' | |
] | |
} | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment