A Moose at the Door
Well I must say MooseX has helped me out again today, You might remember way back to the very first post of this AD&D series I mentioned that I would need all sorts of flavors for the values of my Character Abilities, ie tombstone, present values, magically enhanced values etc.
Well as I was programming along and setting up some playing parts of the game I was continually having to make calls back to the persistence layer (if you can call a YAML file that) for the starting value of an attribute for the current gaming session.
Then while playing with MAP of CPAN(you can tell I really like that site) I found what I think is a solution to this little problem MooseX::BuildArgs
This nifty little gem keeps your build arguments around for you in case you need them.
All I need to do is this
package RPG::ADD::Character;
use Moose;
use MooseX::BuildArgs;
and then I can get all my build arguments as a simple hash ref
my $chacter = RPG::ADD::Character->new({race=>'Dwarf',strength=>9,
dexterity=>17,
constitution=>12,
charisma=>9,
intelligence=>8,
wisdom=>9,
});
print $chacter->build_args->{dexterity};
Well I just started playing about with effect of spells which sometimes effect a character's ability rolls. As good one is the 2nd level MU spell 'Strength', which when cast on a character they get a boost in strength for a short period of time.
Now rather then having to go back to my persistence layer to display the original strength value or adding in yet another attribute I just refer back to the build_arg hash to get the original.
A nice little tool in my bag of Moose tricks
Leave a comment