

function createCharFiren(){
	logDebug("createCharFiren");
	var firen = new Character("Firen");
	
	var imgFiren_0 = new Image();
	imgFiren_0.onload = function(){
		logDebug("load imgFiren_0");
		var spFiren = createEquallySizedSprite(imgFiren_0, 10, 7);
		
		var saFirenWalk = new SpriteAnimation(spFiren);
		saFirenWalk.addKeyFrame(0, 4);
		saFirenWalk.addKeyFrame(0.12, 5);
		saFirenWalk.addKeyFrame(0.24, 6);
		saFirenWalk.addKeyFrame(0.36, 7);
		saFirenWalk.addKeyFrame(0.48, 6);
		saFirenWalk.addKeyFrame(0.60, 5);
		firen.animations["walk"] = saFirenWalk;
		logDebug("add walk animation");
		
		var saFirenRun = new SpriteAnimation(spFiren);
		saFirenRun.addKeyFrame(0, 20);
		saFirenRun.addKeyFrame(0.20, 21);
		saFirenRun.addKeyFrame(0.40, 22);
		saFirenRun.addKeyFrame(0.60, 21);
		firen.animations["run"] = saFirenRun;
		logDebug("add run animation");
		
		var saFirenIdle = new SpriteAnimation(spFiren);
		saFirenIdle.addKeyFrame(0, 0);
		saFirenIdle.addKeyFrame(0.12, 1);
		saFirenIdle.addKeyFrame(0.24, 2);
		saFirenIdle.addKeyFrame(0.36, 3);
		saFirenIdle.addKeyFrame(0.48, 2);
		saFirenIdle.addKeyFrame(0.60, 1);
		firen.animations["idle"] = saFirenIdle;
		logDebug("add idle animation");		
		
		var saFirenDead = new SpriteAnimation(spFiren);
		saFirenDead.addKeyFrame(0, 34);
		saFirenDead.addKeyFrame(1, 34);
		firen.animations["dead"] = saFirenDead;
		logDebug("add dead animation");		
		
		var saFirenAttack = new SpriteAnimation(spFiren);
		saFirenAttack.addKeyFrame(0, 10);
		saFirenAttack.addKeyFrame(0.12, 11);
		saFirenAttack.addKeyFrame(0.24, 12);
		saFirenAttack.addKeyFrame(0.36, 11);
		firen.animations["attack"] = saFirenAttack;
		logDebug("add attack animation");
		
		var saFirenDefend = new SpriteAnimation(spFiren);
		saFirenDefend.addKeyFrame(0, 56);
		saFirenDefend.addKeyFrame(1, 56);
		firen.animations["defend"] = saFirenDefend;
		logDebug("add defend animation");
		
		var saFirenJump = new SpriteAnimation(spFiren);
		saFirenJump.addKeyFrame(0, 62);
		saFirenJump.addKeyFrame(1, 62);
		firen.animations["jump"] = saFirenJump;
		logDebug("add jump animation");
		
		var saFirenFastJump = new SpriteAnimation(spFiren);
		saFirenFastJump.addKeyFrame(0, 63);
		saFirenFastJump.addKeyFrame(1, 63);
		firen.animations["fastJump"] = saFirenFastJump;
		logDebug("add jump animation");
		
		
		var idleAction = new IdleAction(firen);
		var walkAction = new WalkAction(firen);
		var runAction = new RunAction(firen);
		var attackAction = new AttackAction(firen);
		var defendAction = new DefendAction(firen);
		var jumpAction = new JumpAction(firen);
		var fastJumpAction = new FastJumpAction(firen);
		var deadAction = new DeadAction(firen);
		
		firen.actions["idle"] = idleAction;
		firen.actions["run"] = runAction;
		firen.actions["walk"] = walkAction;
		firen.actions["attack"] = attackAction;
		firen.actions["defend"] = defendAction;
		firen.actions["jump"] = jumpAction;
		firen.actions["fastJump"] = fastJumpAction;
		firen.actions["dead"] = deadAction;
		
		logDebug("set Current Action: " + idleAction);
		firen.currentAction = idleAction;
		
		var imgFiren_1 = new Image();
		imgFiren_1.onload = function(){
			logDebug("load imgFiren_0");
			var spFiren1 = createEquallySizedSprite(imgFiren_1, 10, 7);
			
			var saFirenRunAttack = new SpriteAnimation(spFiren1);
			saFirenRunAttack.addKeyFrame(0, 33);
			saFirenRunAttack.addKeyFrame(0.2, 34);
			saFirenRunAttack.addKeyFrame(0.4, 35);
			firen.animations["runAttack"] = saFirenRunAttack;
			logDebug("add runAttack animation");
			
			var runAttackAction = new RunAttackAction(firen);
			
			firen.actions["runAttack"] = runAttackAction;
			
			var idleAction = firen.actions["idle"];
			var walkAction = firen.actions["walk"];
			var runAction = firen.actions["run"];
			var attackAction = firen.actions["attack"];
			var defendAction = firen.actions["defend"];
			var jumpAction = firen.actions["jump"];
			var fastJumpAction = firen.actions["fastJump"];
			
			logDebug("idleAction: " + idleAction);
			
			var idleRunRelation = new IdleRunRelation(idleAction, runAction);
			idleAction.relations.push(idleRunRelation);
			
			var idleWalkRelation = new IdleWalkRelation(idleAction, walkAction);
			idleAction.relations.push(idleWalkRelation);
			
			var walkIdleRelation = new WalkIdleRelation(walkAction, idleAction);
			walkAction.relations.push(walkIdleRelation);
			
			var runIdleRelation = new RunIdleRelation(runAction, idleAction);
			runAction.relations.push(runIdleRelation);
			
			var idleAttackRelation = new IdleAttackRelation(idleAction, attackAction);
			idleAction.relations.push(idleAttackRelation);		
			
			var attackIdleRelation = new AttackIdleRelation(attackAction, idleAction);
			attackAction.relations.push(attackIdleRelation);
			
			var idleDefendRelation = new IdleDefendRelation(idleAction, defendAction);
			idleAction.relations.push(idleDefendRelation);		
			
			var defendIdleRelation = new DefendIdleRelation(defendAction, idleAction);
			defendAction.relations.push(defendIdleRelation);
			
			var idleJumpRelation = new IdleJumpRelation(idleAction, jumpAction);
			idleAction.relations.push(idleJumpRelation);		
			
			var jumpIdleRelation = new JumpIdleRelation(jumpAction, idleAction);
			jumpAction.relations.push(jumpIdleRelation);
			
			var walkJumpRelation = new WalkJumpRelation(walkAction, jumpAction);
			walkAction.relations.push(walkJumpRelation);
			
			var runRunAttackRelation = new RunRunAttackRelation(runAction, runAttackAction);
			runAction.relations.push(runRunAttackRelation);
			
			var runAttackIdleRelation = new RunAttackIdleRelation(runAttackAction, idleAction);
			runAttackAction.relations.push(runAttackIdleRelation);
			
			var runFastJumpRelation = new RunFastJumpRelation(runAction, fastJumpAction);
			runAction.relations.push(runFastJumpRelation);
			
			var fastJumpIdleRelation = new FastJumpIdleRelation(fastJumpAction, idleAction);
			fastJumpAction.relations.push(fastJumpIdleRelation);
			
			var idleDeadRelation = new IdleDeadRelation(idleAction, deadAction);
			idleAction.relations.push(idleDeadRelation);
		}
		imgFiren_1.src = "/blog_resources/littleFighterJavascript/resources/images/firen_1.png";
		
		
	}
	imgFiren_0.src = "/blog_resources/littleFighterJavascript/resources/images/firen_0.png";
	
	var imgShadow = new Image();
	imgShadow.src = "/blog_resources/littleFighterJavascript/resources/images/bg/lf/s.png";
	firen.imgShadow = imgShadow;
	
	
	firen.keyLeft= 70;
	firen.keyDown = 71;
	firen.keyRight = 72;
	firen.keyUp = 84;
	firen.keyAttack=68;
	firen.keyJump=83;
	firen.keyDefend=65;
	
	firen.runSpeed = 400;
	
	return firen;
}

