BalanceOfPower
view release on metacpan or search on metacpan
lib/BalanceOfPower/Relations/Friendship.pm view on Meta::CPAN
{
my $self = shift;
if($self->factor == ALLIANCE_FRIENDSHIP_FACTOR)
{
return 'ALLIANCE';
}
elsif($self->factor == DOMINION_DIPLOMACY)
{
return 'INFLUENCE PRESENT';
}
if($self->factor <= HATE_LIMIT)
{
return 'HATE';
}
elsif($self->factor >= LOVE_LIMIT)
{
return 'FRIENDSHIP';
}
else
{
return 'NEUTRAL';
}
}
sub status_html_class
{
my $self = shift;
if($self->factor == ALLIANCE_FRIENDSHIP_FACTOR)
{
return 'rel-alliance';
}
elsif($self->factor == DOMINION_DIPLOMACY)
{
return 'rel-influence';
}
if($self->factor <= HATE_LIMIT)
{
return 'rel-hate';
}
elsif($self->factor >= LOVE_LIMIT)
{
return 'rel-friendship';
}
else
{
return 'rel-neutral';
}
}
sub colored_status
{
my $self = shift;
return $self->status_color . $self->status . color("reset");
}
sub status_color
{
my $self = shift;
if($self->status eq 'ALLIANCE' || $self->status eq 'INFLUENCE PRESENT')
{
return color("cyan bold");
}
if($self->status eq 'HATE')
{
return color("red bold");
}
elsif($self->status eq 'FRIENDSHIP')
{
return color("green bold");
}
else
{
return "";
}
}
sub html
{
my $self = shift;
my $from = shift;
my $link = encode_entities($self->print($from, 0));
if($self->status eq 'HATE')
{
$link = as_html_dangerous($link);
}
return $link;
}
sub print
{
my $self = shift;
my $from = shift;
my $color = shift;
$color = 1 if(! defined $color);
my $second_node;
my $out;
if($from)
{
if($from eq $self->node1)
{
$second_node = $self->node2;
}
elsif($from eq $self->node2)
{
$second_node = $self->node1;
}
}
else
{
$from = $self->node1;
$second_node = $self->node2;
}
$out = $self->status_color if $color;
$out .= $from . " <--> " . $second_node . " [" . $self->factor . " " . $self->status . "]";
if($self->get_crisis_level > 0)
{
if($color)
{
$out .= " " . $self->print_crisis_bar();
}
else
{
$out .= " " . $self->print_grey_crisis_bar();
}
}
$out .= color("reset") if $color;
return $out;
}
( run in 0.658 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )