public ActionChoice chooseAction(Champion enemy) {
		ActionChoice res = null;
		res = searchActives(enemy);
		if (res != null) return res;
		
		int tag = -1;
		if (canCast()) {
			if (actions[ActionChoice.SPELL4].isAvailable(this))
				tag = ActionChoice.SPELL4;
			else if (actions[ActionChoice.SPELL2].isAvailable(this))
				tag = ActionChoice.SPELL2;
			else if (actions[ActionChoice.SPELL3].isAvailable(this))
				tag = ActionChoice.SPELL3;
			else if (actions[ActionChoice.SPELL1].isAvailable(this))
				tag = ActionChoice.SPELL1;
		}
		if (tag == -1 && actions[ActionChoice.PHYSICAL_ATTACK].isAvailable(this))
			tag = ActionChoice.PHYSICAL_ATTACK;
		else if (tag == -1) {
			return nextAvailable(enemy);
		}
		
		return new ActionChoice(tag,enemy,actions[tag].casttime);
	}