NAME

Game::Object::WormVisible - Worm

SYNOPSIS

Nah...

EXCEPTIONS

ExceptionCouldNotMoveForward

Thrown when the Worm could not moveForward().

oObject - $self

PROPERTIES

isRealPlayer

Whether this is a real life player or not.

Default: 1

oDirection

Game::Direction object.

oEventMove

Timed event for movement.

Default: interval 0.2

score

The accumulated score, accumulated by e.g. getting Prizes.

Default: 0

lengthIdeal

The ideal length for the Worm. It will prolong itself to this size when moving. It will not shrink.

lengthActual

The actual length of the Worm.

Readonly.

METHODS

new([$left = 11], [$top = 12], [$direction = "left"], [$length = 3)

Create new Worm, facing in $direction ("left", "right", "up", "down" (only left supported right now)), with a body a total size of $length.

moveForward()

Move forward one step in the oDirection.

Return 1 on success, else 0.

oValidLocationAfterMove()

Check that a movement in the $oDirection from $oLocation is a valid one.

Return new Game::Location (with the new location) object on success, else undef if the move wasn't valid.

turn($direction)

Turn in $direction. left right

Return new direction on success, else undef.

grow([$sizeIncrease = 1])

Grow with $sizeIncrease body parts over time, i.e. increase the lengthIdeal.

Return the new lengthIdeal() on success, or undef on errors.

crash()

Crash the Worm. This doesn't mean anything in particular.

Notify the Lawn.

Return 1 on success, else 0.

checkTick($timeWorld)

Check if a tick is due. If it is, move forward.

Return 1 if a tick was due, else 0. Die if the worm can't move.

awardScorePoints($points)

Add $points to the score().

Return 1 on success, else 0.

CLASS METHODS

loadFile($file)

Bogus test method to have something to test with.