Decorating with Deadly Sins and Heavenly Virtues | 157
Deadly sins
Example 4-29. Rage.as
package
{
public class Rage extends Decorator
{
private var components:Component;
public function Rage(components:Component)
{
this.components=components;
}
override public function getSoul( ):String
{
return components.getSoul( ) + "|Rage";
}
override public function good( ):Number
{
return -9 + components.good( );
}
override public function evil( ):Number
{
return 8 + components.evil( );
}
}
}
Example 4-30. Malice.as
package
{
public class Malice extends Decorator
{
private var components:Component;
public function Malice(components:Component)
{
this.components=components;
}
override public function getSoul( ):String
{
return components.getSoul( ) + "|Malice";
}
override public function good( ):Number
{
return -14 + components.good( );
}
override public function evil( ):Number
{
return 12 + components.evil( );
}
}
}