<commit_before>/// <reference path = "../../dependencias/pilasweb.d.ts" />
/// <reference path = "ActorAnimado.ts" />

class ActorCompuesto extends ActorAnimado {
	subactores;

	constructor(x,y,opciones){
		opciones.grilla = 'invisible.png';
		super(x, y, opciones);
		this.inicializarSubactores();
	}

	sanitizarOpciones(opciones){
		super.sanitizarOpciones(opciones);
		if(!opciones.subactores) throw "Se debe especificar una lista de subactores"
		this.subactores = opciones.subactores;
	}

	inicializarSubactores() {
		this.subactores.forEach(actor => this.apegarActor(actor));
	}

	agregarSubactor(actor){
		this.subactores.push(actor);
		this.apegarActor(actor)
	}

	private apegarActor(actor){
		actor.agregar_habilidad(ImitarAtributosNumericos2,
			{
				objeto_a_imitar: this,
				conVariacionEntera: ['x', 'y'],
				conVariacionPorcentual: ['escala_x', 'escala_y'],
				setters: { 'x': 'setX', 'y': 'setY' },
			})
	}

	eliminarUltimoSubactor(){
		this.subactores.pop().eliminar();
	}

	eliminarSubactor(etiqueta) {
		var elQueMuere = this.subactores.find(actor => actor.tiene_etiqueta(etiqueta));
		elQueMuere.eliminar();
		this.subactores.splice(this.subactores.indexOf(elQueMuere),1);
	}

	cantSubactores(){
		return this.subactores.length;
	}

	tieneAlgoEnLaMano() {
		return this.cantSubactores() >= 2;
	}

	tieneEnLaMano(etiqueta){<commit_msg>Evitando usar la funcion find que no implementa phantom refs Program-AR/pilas-engine-bloques#125<commit_after>/// <reference path = "../../dependencias/pilasweb.d.ts" />
/// <reference path = "ActorAnimado.ts" />

class ActorCompuesto extends ActorAnimado {
	subactores;

	constructor(x,y,opciones){
		opciones.grilla = 'invisible.png';
		super(x, y, opciones);
		this.inicializarSubactores();
	}

	sanitizarOpciones(opciones){
		super.sanitizarOpciones(opciones);
		if(!opciones.subactores) throw "Se debe especificar una lista de subactores"
		this.subactores = opciones.subactores;
	}

	inicializarSubactores() {
		this.subactores.forEach(actor => this.apegarActor(actor));
	}

	agregarSubactor(actor){
		this.subactores.push(actor);
		this.apegarActor(actor)
	}

	private apegarActor(actor){
		actor.agregar_habilidad(ImitarAtributosNumericos2,
			{
				objeto_a_imitar: this,
				conVariacionEntera: ['x', 'y'],
				conVariacionPorcentual: ['escala_x', 'escala_y'],
				setters: { 'x': 'setX', 'y': 'setY' },
			})
	}

	eliminarUltimoSubactor(){
		this.subactores.pop().eliminar();
	}

	eliminarSubactor(etiqueta) {
		var elQueMuere = this.subactores.filter(actor => actor.tiene_etiqueta(etiqueta))[0];
		elQueMuere.eliminar();
		this.subactores.splice(this.subactores.indexOf(elQueMuere),1);
	}

	cantSubactores(){
		return this.subactores.length;
	}

	tieneAlgoEnLaMano() {
		return this.cantSubactores() >= 2;
	}

	tieneEnLaMano(etiqueta){
{'fraction_non_alphanumeric': 0.14789736279401283, 'fraction_numerical': 0.003563791874554526, 'mean_word_length': 4.93446088794926, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6637560', 'n_tokens_mistral': 1213, 'n_tokens_neox': 1121, 'n_words': 151}