Acme-ConspiracyTheory-Random
view release on metacpan or search on metacpan
lib/Acme/ConspiracyTheory/Random.pm view on Meta::CPAN
if ($mcp) {
$is = 'are';
$has = 'have';
$was = 'were';
}
push @x, (
"everybody knows $mc $is real",
sub { "$mc $has been researched by ${ \ shady_group($redstring) } $time" },
sub { "$mc $was used to conceal ${ \ shady_group($redstring) } $time" },
sub { "$mc $was used to infiltrate ${ \ shady_group($redstring) }" },
);
}
if ( my $ft = $redstring->{future_time} ) {
push @x, (
"some of the few people still alive $ft time-travelled back to tell us",
"the people still alive $ft sent us hidden messages in ${ \ fiction() }",
"it will all become clear $ft",
);
}
if ( my $d = $redstring->{disease} ) {
push @x, (
"patients with $d keep disappearing from hospitals",
"patients with $d are being silenced by the government",
"doctors working on $d are being killed",
"$d probably isn't even a real disease",
"nobody has ever died of $d",
);
}
if ( my $f = $redstring->{food} ) {
push @x, (
"$f don't taste like they used to",
"$f smell funny",
"$f make me feel sick",
"I don't like $f",
);
}
if ( my $chem = $redstring->{chemicals} ) {
push @x, (
"$chem isn't on the periodic table",
"$chem isn't real",
"$chem isn't natural",
"you'd have to be stupid to think $chem is real",
);
}
if ( my $r = $redstring->{precious_resource} ) {
my ( $bad, $are, $r_are );
$redstring->{shady_group}{name} or shady_group( $redstring );
foreach ( qw/ antagonist protagonist shady_group / ) {
if ( $redstring->{$_}{name} ) {
$bad = $redstring->{$_}{name};
$are = $redstring->{$_}{plural} ? 'are' : 'is';
$r_are = ($r =~ /s$/) ? 'are' : 'is';
}
}
push @x, (
"the Wikipedia entry for $r keeps getting edited by $bad",
"$bad keeps buying $r secretly on the stock market",
"the global supply of $r is at an all time low",
"have you ever seen $r for real with your own eyes",
"$r $r_are so damn expensive",
"$r $r_are really rare",
"Alex Jones says $bad $are linked to $r",
);
}
if ( my $topic = $redstring->{topic} ) {
my $topicname = $topic->{name};
my $have = $topic->{plural} ? 'have' : 'has';
push @x, (
"there's hidden clues in the Wikipedia page about $topicname",
"THEY let it slip during an edit war in a Wikipedia page about $topicname",
"Bible numerology has clues about $topicname",
"the Voynich manuscript has clues about $topicname",
"$topicname $have always been suspicious",
"$topicname $have connections to THEM",
"nobody really understands $topicname",
"all my posts about $topicname keep getting taken down by Tumblr",
);
}
if ( my $p = $redstring->{random_place} // $redstring->{bad_place} ) {
my $bad = $redstring->{antagonist}{name}
// $redstring->{protagonist}{name}
// $redstring->{shady_group}{name}
// shady_group( $redstring );
push @x, (
"the Wikipedia entry for $p keeps getting edited by $bad",
# This has singular/plural problems - how to solve?
"$bad has ties to $p",
"$p probably isn't a real place anyway",
"$p isn't shown on any maps",
);
}
for my $actor ( qw/ protagonists antagonists / ) {
next unless $redstring->{$actor}{name};
my $name = $redstring->{$actor}{shortname} // $redstring->{$actor}{name};
my $have = splural( $redstring->{$actor} ) ? 'have' : 'has';
my $are = splural( $redstring->{$actor} ) ? 'are' : 'is';
my $s = splural( $redstring->{$actor} ) ? '' : 's';
my $ies = splural( $redstring->{$actor} ) ? 'y' : 'ies';
( my $fbname = $name ) =~ s/^the //i;
$fbname = _UCFIRST_ $fbname;
my $lies = lies();
push @x, (
"$name $have included it in their manifesto",
"$name $have been strangely quiet about it",
"$name $are always untrustworthy",
"$name $are controlling everything",
"if you Google for $name there's loads of info",
"the '$fbname Truth' Facebook page says so",
"the '$fbname Exposed' website says so",
"$name even admit$s it",
"$name den$ies it but that is $lies",
);
if ( my $animal = $redstring->{real_animal} // $redstring->{fake_animal} ) {
push @x, "$name $have a picture of the $animal on their Wikipedia entry";
}
if ( my $place = $redstring->{random_place} ) {
push @x, "$name $have a secret base in $place";
}
if ( my $topic = $redstring->{topic} ) {
my $topicname = $topic->{name};
push @x, (
"$name ${( $redstring->{$actor}{plural} ? \'keep' : \'keeps' )} editing the Wikipedia page about $topicname",
"$name $are known to have ties to $topicname",
"'$name' is almost an anagram of '$topicname'",
"'$name' is the Hebrew word for '$topicname'",
"'$name' is an anagram of '$topicname' (if you spell it wrong)",
);
}
}
my @evidences = List::Util::uniq( map { _RANDOM_(@x) } 1..2 );
if ( @evidences == 2 ) {
my ( $e1, $e2 ) = @evidences;
return _RANDOM_(
"You can tell this is the truth because $e1, and $e2.",
( ( "I know because $e1, and $e2." ) x 6 ),
"You just need to connect the dots. " . _UCFIRST_( "$e1 and $e2." ),
"I used to be asleep like you, but then I saw the clues. " . _UCFIRST_( "$e1, and $e2. WAKE UP!" ),
"THEY HIDE THE TRUTH IN PLAIN SIGHT. " . _UCFIRST_( "$e1, and $e2." ),
"You won't believe how deep the rabbit hole goes. " . _UCFIRST_( "$e1, and $e2." ),
sub { _UCFIRST_("$e1, and $e2. " . fatuous()) },
sub {
my $e3 = uc _RANDOM_(@x);
my $fatuous = fatuous();
_UCFIRST_( "$e1, and $e2. $fatuous $e3!" );
},
sub {
my $e3 = uc _RANDOM_(@x);
_UCFIRST_( "$e1, and $e2. They leave clues to mock us! $e3! MOCK! MOCK!" );
},
sub {
my $t = {};
theory($t);
_UCFIRST_( "$e1, and $e2. Isn't it obvious? Also: " . $t->{base_theory} );
},
);
}
elsif ( @evidences == 1 ) {
my ( $e1 ) = @evidences;
return _RANDOM_(
"You can tell the truth because $e1.",
_UCFIRST_("$e1 and that reveals the truth."),
"The truth is obvious if you're not a sheep, $e1.",
);
}
return _RANDOM_(
'The truth is plain to see.',
"You're blind if you can't see the truth.",
"The truth is obvious if you're not a sheep.",
);
}
sub hidden_truth {
my $redstring = shift // {};
my $truth = _RANDOM_(
sub { # wrap classics in a sub so they don't come up too often
_RANDOM_(
sub {
$redstring->{topic} = { name => 'geology', plural => 0 };
( run in 1.340 second using v1.01-cache-2.11-cpan-d7f47b0818f )