Adding genders.
This commit is contained in:
parent
6371fd1195
commit
77cc606473
@ -45,6 +45,27 @@ my %all_species_data;
|
||||
my $growth_rate = $1;
|
||||
$species_data{growth_rate} = $1;
|
||||
}
|
||||
if ($line =~ /\.genderRatio\s*=\s*(\w+)/) {
|
||||
my $gender_ratio = $1;
|
||||
if ($gender_ratio eq 'min' && $line =~ /(\w+) \* 255/) {
|
||||
$gender_ratio = $1;
|
||||
$gender_ratio *= 255 / 100;
|
||||
$gender_ratio = int($gender_ratio);
|
||||
if ($gender_ratio > 254) {
|
||||
$gender_ratio = 254;
|
||||
}
|
||||
}
|
||||
if ($gender_ratio eq 'MON_FEMALE') {
|
||||
$gender_ratio = 254;
|
||||
}
|
||||
if ($gender_ratio eq 'MON_MALE') {
|
||||
$gender_ratio = 0;
|
||||
}
|
||||
if ($gender_ratio eq 'MON_GENDERLESS') {
|
||||
$gender_ratio = 255;
|
||||
}
|
||||
$species_data{gender_ratio} = $gender_ratio
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -28,7 +28,13 @@ sub level {
|
||||
}
|
||||
my $pokemon = $self->_pokemon;
|
||||
my $experience = $pokemon->{substructures}[0]{experience};
|
||||
my $growth_func = $self->growth_function;
|
||||
my $growth_func = sub {
|
||||
my $n = shift;
|
||||
if ($n == 1) {
|
||||
return 1;
|
||||
}
|
||||
return $self->growth_function->($n);
|
||||
};
|
||||
my $level = 1;
|
||||
while ($level <= 100 && int($growth_func->($level)) <= $experience) {
|
||||
$level++;
|
||||
@ -61,6 +67,38 @@ sub growth_function {
|
||||
}
|
||||
}
|
||||
|
||||
sub gender_ratio {
|
||||
my $self = shift;
|
||||
my $pokemon_name = $self->pokemon_name;
|
||||
my %pokemon_data = %Rsaves::Constants::Emerald::SpeciesData::SPECIES_DATA;
|
||||
my $data = $pokemon_data{$pokemon_name};
|
||||
my $gender_ratio = $data->{gender_ratio};
|
||||
return $gender_ratio;
|
||||
}
|
||||
|
||||
sub gender {
|
||||
# 0 male
|
||||
# 1 female
|
||||
# 2 genderless
|
||||
my $self = shift;
|
||||
my $gender_ratio = $self->gender_ratio;
|
||||
my $pokemon = $self->_pokemon;
|
||||
my $personality = $pokemon->{personality};
|
||||
if ($gender_ratio == 0) {
|
||||
return 0;
|
||||
}
|
||||
if ($gender_ratio == 254) {
|
||||
return 1;
|
||||
}
|
||||
if ($gender_ratio == 255) {
|
||||
return 2;
|
||||
}
|
||||
if ($gender_ratio <= ($personality & 0xff)) {
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
sub growth {
|
||||
my $self = shift;
|
||||
my $pokemon_name = $self->pokemon_name;
|
||||
|
@ -4,6 +4,7 @@ use v5.16.3;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use utf8;
|
||||
|
||||
use Cairo::GObject;
|
||||
use Glib;
|
||||
@ -188,11 +189,26 @@ sub draw_pokemon_details {
|
||||
$cairo->move_to( 5, 128 );
|
||||
$cairo->text_path('/'.$pokemon_species);
|
||||
$cairo->set_source_rgb( 1, 1, 1 );
|
||||
$cairo->fill_preserve;
|
||||
$cairo->fill;
|
||||
# $cairo->set_source_rgb( 0, 0, 0 );
|
||||
# $cairo->set_line_width(0.8);
|
||||
# $cairo->stroke;
|
||||
$cairo->move_to( 5, 136 );
|
||||
$cairo->move_to( 6, 140 );
|
||||
my $gender = $selected_pokemon->gender;
|
||||
$cairo->set_font_size(15);
|
||||
if ($gender == 0) {
|
||||
$cairo->text_path("♂");
|
||||
$cairo->set_source_rgb( 0, 0, 1 );
|
||||
$cairo->fill;
|
||||
}
|
||||
if ($gender == 1) {
|
||||
$cairo->text_path("♀");
|
||||
$cairo->set_source_rgb( 1, 0, 0 );
|
||||
$cairo->fill;
|
||||
}
|
||||
$cairo->set_source_rgb( 1, 1, 1 );
|
||||
$cairo->set_font_size(8);
|
||||
$cairo->move_to( 18, 138 );
|
||||
$cairo->text_path("Lv@{[$selected_pokemon->level]}");
|
||||
$cairo->set_source_rgb( 1, 1, 1 );
|
||||
$cairo->fill_preserve;
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user