Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: fighting script

by Juerd (Abbot)
on Jun 06, 2002 at 13:13 UTC ( #172180=note: print w/replies, xml ) Need Help??


in reply to Battle script

Errrh.....

package Tie::Scalar::Battle; my %pool; our $attacker; sub TIESCALAR { my ($class, $name, $health) = @_; return $pool{$self + 0} = bless { name => $name, health => $health }, $class; } sub DESTROY { delete $pool{shift() + 0} } sub FETCH { shift->{health} } sub STORE { my ($self, $value) = @_; die "$self->{name} died" if $value <= 0; my $old_value = $self->{health}; $self->{health} = $value; if ($value < $old_value) { my $target = $attacker || (values %pool)[rand keys %pool]; local $attacker = $self; # print "$target->{name}, $target->{health}\n"; $target->STORE( $target->FETCH() - (1 + int rand 3) ); } return $value; } package main; tie $foo, 'Tie::Scalar::Battle', foo => 300; tie $bar, 'Tie::Scalar::Battle', bar => 300; # First punch $foo--;
/me laughs

- Yes, I reinvent wheels.
- Spam: Visit eurotraQ.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://172180]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (2)
As of 2021-08-04 07:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My primary motivation for participating at PerlMonks is: (Choices in context)








    Results (41 votes). Check out past polls.

    Notices?