From 231280b83f4dd90d25016657161f61f4cacb15d6 Mon Sep 17 00:00:00 2001 From: zach morgan Date: Wed, 3 Jun 2009 17:03:20 -0400 Subject: [PATCH] upgrade to all rules_descriptions --- lib/basilisk/Schema/Ruleset.pm | 3 +++ lib/basilisk/Util.pm | 4 ++- script/update_all_rules_descriptions.pl | 29 ++++++++++++++++++++ script/whoops_rules.pl | 36 ------------------------- 4 files changed, 35 insertions(+), 37 deletions(-) create mode 100755 script/update_all_rules_descriptions.pl delete mode 100755 script/whoops_rules.pl diff --git a/lib/basilisk/Schema/Ruleset.pm b/lib/basilisk/Schema/Ruleset.pm index 8947122..cfafd6f 100644 --- a/lib/basilisk/Schema/Ruleset.pm +++ b/lib/basilisk/Schema/Ruleset.pm @@ -147,6 +147,9 @@ sub generate_rules_description{ my $desc = $h . 'x' . $w; $desc .= ", $topo" if $topo ne 'plane'; + if ($cycle ne '2-FFA'){ + $desc .= ", $cycle"; + } if ($heisenChance){ $desc .= ', HeisenGo'; $desc .= '(' . to_percent($heisenChance) . ')' if $heisenChance != 1; diff --git a/lib/basilisk/Util.pm b/lib/basilisk/Util.pm index 585ca6a..526beb2 100644 --- a/lib/basilisk/Util.pm +++ b/lib/basilisk/Util.pm @@ -135,11 +135,13 @@ my %cycle_descs = ( '0b 1b 2w 0w 1r 2r' => '3-player perverse', '0b 1w 2r 1b 2w 0r' => '3-player skewed perverse', '0b 1w 2r 2r 1w 0b' => '3-player skewed FFA', + '0b 1w 0r 1b 0w 1r' => 'inverted zen', ); sub cycle_desc{ my $pd = shift; - return $cycle_descs{$pd}; + return $cycle_descs{$pd} if $cycle_descs{$pd}; + return "cycle: ($pd)"; #TODO: try harder with basis & aberrations } sub to_percent{ diff --git a/script/update_all_rules_descriptions.pl b/script/update_all_rules_descriptions.pl new file mode 100755 index 0000000..a81818e --- /dev/null +++ b/script/update_all_rules_descriptions.pl @@ -0,0 +1,29 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use 5.10.0; +use FindBin '$Bin'; +use lib "$Bin/../lib"; +use basilisk::Schema; +use basilisk::Util; +use JSON; +my $dbfile = "$Bin/../basilisk.db"; +my ($dsn, $user, $pass) = ("dbi:SQLite:$dbfile"); + +my $schema = basilisk::Schema->connect($dsn, $user, $pass) or + die "Failed to connect to database"; + + +my $rulesets = $schema->resultset('Ruleset'); + +#dangerous--will erase other_rules unless extra_rules still exist for them +for my $ruleset ($rulesets->all){ + #say $ruleset->id; + #say $ruleset->rules_description; + #say $ruleset->generate_rules_description. "\n"; + $ruleset->set_column (rules_description => $ruleset->generate_rules_description); + $ruleset->update; +} + + diff --git a/script/whoops_rules.pl b/script/whoops_rules.pl deleted file mode 100755 index 0ea4507..0000000 --- a/script/whoops_rules.pl +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; -use FindBin '$Bin'; -use lib "$Bin/../lib"; -use basilisk::Schema; -use basilisk::Util; -use JSON; -my $dbfile = 'basilisk.db'; -my ($dsn, $user, $pass) = ("dbi:SQLite:$dbfile"); - -my $schema = basilisk::Schema->connect($dsn, $user, $pass) or - die "Failed to connect to database"; - -#before running this, in SQL: -#alter table Ruleset add column other_rules TEXT; - -my $rulesets = $schema->resultset('Ruleset'); - -#dangerous--will erase other_rules unless extra_rules still exist for them -for my $ruleset ($rulesets->search({id => {'<=' => 101}})->all){ - #print $ruleset->id, "\n"; - my $rules = from_json($ruleset->other_rules); - next unless $rules->{heisengo} or $rules->{planckgo}; - #print $ruleset->id . ' ' . $rules->{heisengo} . ' ' . $rules->{planckgo} . "\n"; - - my $planckChance = $rules->{heisengo}; - my $heisenChance = $rules->{planckgo}; - $rules->{heisengo} = $heisenChance; - $rules->{planckgo} = $planckChance; - $ruleset->set_column (other_rules => to_json($rules)); - $ruleset->update; -} - -