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 )