var zlAction = new Class({
	 effects: []
	,name: ''
	,targetType: ''
	,world: null

	,initialize: function(world, name, targetType, effects){
		this.world = world;
		this.name = name;
		this.targetType = targetType;
		if(isArray(effects))	this.effects = effects;
	}
	
	,addEffect: function(effect, effectType) {
		this.effects.push(new zlEffect(this, effect, effectType));
		return this;
	}
	
	,apply: function(actor, target) {
		this.effects.each(function(effect){
			effect.apply(actor, target);
		});
	}

	,toString: function(){
		return 'zlAction_' + this.name + "(" + this.effects.join(', ') + ")";
	}
	
});