Skip to content

Instantly share code, notes, and snippets.

@amirrajan
Last active August 31, 2023 23:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save amirrajan/b6d93ebfee6f8762490751cbcc2ed595 to your computer and use it in GitHub Desktop.
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
# 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