diff --git a/.classpath b/.classpath
deleted file mode 100644
index a0c6dd9..0000000
--- a/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..8e84736
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,14 @@
+name: build
+
+on: [push, pull_request]
+jobs:
+ wollok-ts:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ - run: |
+ wget -O wollok-ts-cli https://github.com/uqbar-project/wollok-ts-cli/releases/latest/download/wollok-ts-cli-linux-x64
+ chmod a+x ./wollok-ts-cli
+ ./wollok-ts-cli test --skipValidations -p ./
+ shell: bash
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index ae3c172..0000000
--- a/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/bin/
diff --git a/.project b/.project
deleted file mode 100644
index f465037..0000000
--- a/.project
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
- clasesColiseo
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.xtext.ui.shared.xtextBuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.PluginNature
- org.eclipse.xtext.ui.shared.xtextNature
- org.uqbar.project.wollok.wollokNature
-
-
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 295926d..0000000
--- a/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
diff --git a/.svn/entries b/.svn/entries
deleted file mode 100644
index 3cacc0b..0000000
--- a/.svn/entries
+++ /dev/null
@@ -1 +0,0 @@
-12
\ No newline at end of file
diff --git a/.svn/format b/.svn/format
deleted file mode 100644
index 3cacc0b..0000000
--- a/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-12
\ No newline at end of file
diff --git a/.svn/pristine/08/0851794aebfea0d56bfefdcae5c4168b9db1cc04.svn-base b/.svn/pristine/08/0851794aebfea0d56bfefdcae5c4168b9db1cc04.svn-base
deleted file mode 100644
index b80ab85..0000000
--- a/.svn/pristine/08/0851794aebfea0d56bfefdcae5c4168b9db1cc04.svn-base
+++ /dev/null
@@ -1,10 +0,0 @@
-log4j.rootLogger=WARN, stdout
-
-# WHOLE UQBAR
-log4j.logger.org.uqbar=WARN
-## DEBUGGER
-org.uqbar.project.wollok.ui.debugger
-
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
diff --git a/.svn/pristine/08/08f903ea3bfe5c52faa0f18ecac22ae033c56925.svn-base b/.svn/pristine/08/08f903ea3bfe5c52faa0f18ecac22ae033c56925.svn-base
deleted file mode 100644
index fc16c99..0000000
--- a/.svn/pristine/08/08f903ea3bfe5c52faa0f18ecac22ae033c56925.svn-base
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
- Clases-Coliseo
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.xtext.ui.shared.xtextBuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.PluginNature
- org.eclipse.xtext.ui.shared.xtextNature
- org.uqbar.project.wollok.wollokNature
-
-
diff --git a/.svn/pristine/23/23f43ae265da1d0586f55eb3902ece37c35d3d00.svn-base b/.svn/pristine/23/23f43ae265da1d0586f55eb3902ece37c35d3d00.svn-base
deleted file mode 100644
index 589c449..0000000
--- a/.svn/pristine/23/23f43ae265da1d0586f55eb3902ece37c35d3d00.svn-base
+++ /dev/null
@@ -1,6 +0,0 @@
-
-class Coliseo {
-
-
-
-}
\ No newline at end of file
diff --git a/.svn/pristine/24/2479aa96306d3c0efc1d5d88c5c373e5525d72f9.svn-base b/.svn/pristine/24/2479aa96306d3c0efc1d5d88c5c373e5525d72f9.svn-base
deleted file mode 100644
index 6dc9d5e..0000000
--- a/.svn/pristine/24/2479aa96306d3c0efc1d5d88c5c373e5525d72f9.svn-base
+++ /dev/null
@@ -1,15 +0,0 @@
-import gladiador.*
-import armas.*
-
-object fixture {
- method crearMirmiConHacha(){
- var hacha = new ArmaFilosa(1, 0.5)
- return new Mirmillon(20, hacha, unEscudo)
- }
- method crearDimaConMartillo(){
- var martillo = new ArmaContundente(10)
- var dima = new Dimachaerus(10)
- dima.darArma(martillo)
- return dima
- }
-}
\ No newline at end of file
diff --git a/.svn/pristine/33/334a7d4a6e12f06e0c7820fc99f8602f9f20e59f.svn-base b/.svn/pristine/33/334a7d4a6e12f06e0c7820fc99f8602f9f20e59f.svn-base
deleted file mode 100644
index f629bfb..0000000
--- a/.svn/pristine/33/334a7d4a6e12f06e0c7820fc99f8602f9f20e59f.svn-base
+++ /dev/null
@@ -1 +0,0 @@
-object __repl {}
diff --git a/.svn/pristine/51/512bd49c4ba767010f32a54ef22de71e83bd7e1e.svn-base b/.svn/pristine/51/512bd49c4ba767010f32a54ef22de71e83bd7e1e.svn-base
deleted file mode 100644
index 295926d..0000000
--- a/.svn/pristine/51/512bd49c4ba767010f32a54ef22de71e83bd7e1e.svn-base
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
diff --git a/.svn/pristine/58/5885889afa13d8d8485e3433444801f3c90a9d77.svn-base b/.svn/pristine/58/5885889afa13d8d8485e3433444801f3c90a9d77.svn-base
deleted file mode 100644
index f39c793..0000000
--- a/.svn/pristine/58/5885889afa13d8d8485e3433444801f3c90a9d77.svn-base
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Clases-Coliseo
-Bundle-Vendor: My Company
-Bundle-Version: 1.0.0.qualifier
-Bundle-SymbolicName: Clases-Coliseo; singleton:=true
-Bundle-ActivationPolicy: lazy
-Require-Bundle: com.ibm.icu,
- org.eclipse.xtext,
- org.eclipse.xtext.generator,
- org.eclipse.xtend,
- org.eclipse.xtend.typesystem.emf,
- org.eclipse.xpand,
- de.itemis.xtext.antlr;resolution:=optional,
- org.eclipse.emf.mwe2.launch;resolution:=optional,
- org.uqbar.project.wollok,
- org.uqbar.project.wollok.launch,
- org.uqbar.project.wollok.lib,
- org.eclipse.xtext.ui
-Import-Package: org.apache.log4j,
- org.apache.commons.logging
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/.svn/pristine/5e/5e5ae4c696f34a05228332b85d1f969a4714ab8a.svn-base b/.svn/pristine/5e/5e5ae4c696f34a05228332b85d1f969a4714ab8a.svn-base
deleted file mode 100644
index a71738e..0000000
--- a/.svn/pristine/5e/5e5ae4c696f34a05228332b85d1f969a4714ab8a.svn-base
+++ /dev/null
@@ -1,3 +0,0 @@
-source.. = src/
-bin.includes = META-INF/,\
- .
\ No newline at end of file
diff --git a/.svn/pristine/66/6696c9fd47f93db8b331fcb7ab5141c3c491ce63.svn-base b/.svn/pristine/66/6696c9fd47f93db8b331fcb7ab5141c3c491ce63.svn-base
deleted file mode 100644
index c07d4a5..0000000
--- a/.svn/pristine/66/6696c9fd47f93db8b331fcb7ab5141c3c491ce63.svn-base
+++ /dev/null
@@ -1,116 +0,0 @@
-import armas.*
-import coliseo.*
-
-class Mirmillon {
- const destreza = 15
- var vida = 100
- var fuerza
- var arma
- var armadura
-
- constructor(laFuerza, unArma, unaArmadura) {
- fuerza = laFuerza
- arma = unArma
- armadura = unaArmadura
- }
-
- method vida() { return vida }
-
- method puedeCombatir() {return vida > 0}
-
- method destreza() { return destreza }
-
- method poderAtaque() {
- return arma.poderAtaque() + fuerza
- }
-
- method defensa() {
- return armadura.defensa(self) + self.destreza()
- }
-
- method arma(armaNueva) {
- arma = armaNueva
- }
-
- method armadura(nueva) {
- armadura = nueva
- }
- method atacar(unGladiador) {
- unGladiador.recibirAtaque(self.poderAtaque())
- }
- method recibirAtaque(poderAtaque) {
- vida = vida - ( poderAtaque - self.defensa() )
- }
- method pelearContra(unGladiador) {
- self.atacar(unGladiador)
- unGladiador.atacar(self)
- }
- method masFuerte(){
- return self
- }
- method curar(){
- vida = 100
- }
- method armarGrupoCon(gladiador) {
- const grupo = new Grupo("Mirmillolandia")
- grupo.agregarGladiador(self)
- grupo.agregarGladiador(gladiador)
- return grupo
- }
-
-}
-
-class Dimachaerus {
- var destreza
- const fuerza = 10
- var armas = [ ]
- var vida = 100
-
- constructor(unaDestreza) {
- destreza = unaDestreza
- }
-
- method vida() { return vida }
-
- method puedeCombatir() {return vida > 0}
-
- method arma(nuevaArma) {
- armas.add(nuevaArma)
- }
-
- method quitarArma(arma) {
- armas.remove(arma)
- }
-
- method poderAtaque() {
- return fuerza + armas.sum({ unArma => unArma.poderAtaque() })
- }
-
- method atacar(unGladiador) {
- unGladiador.recibirAtaque(self.poderAtaque())
- destreza = destreza + 1
- }
-
- method recibirAtaque(poderAtaque) {
- vida = vida - ( poderAtaque - self.defensa() )
- }
- method defensa() {
- return destreza / 2
- }
- method pelearContra(unGladiador) {
- self.atacar(unGladiador)
- unGladiador.atacar(self)
- }
- method masFuerte(){
- return self
- }
- method curar(){
- vida = 100
- }
- method armarGrupoCon(gladiador) {
- const grupo = new Grupo("D-"+(self.poderAtaque()+gladiador.poderAtaque()))
- grupo.agregarGladiador(self)
- grupo.agregarGladiador(gladiador)
- return grupo
- }
-}
\ No newline at end of file
diff --git a/.svn/pristine/68/682931bbcc91365c76dc289418a446ff7883abb9.svn-base b/.svn/pristine/68/682931bbcc91365c76dc289418a446ff7883abb9.svn-base
deleted file mode 100644
index bc31611..0000000
--- a/.svn/pristine/68/682931bbcc91365c76dc289418a446ff7883abb9.svn-base
+++ /dev/null
@@ -1,24 +0,0 @@
-import gladiador.*
-import armas.*
-
-object fixture {
- method crearMirmiConHacha(){
- const hacha = new ArmaFilosa(2, 1)
- return new Mirmillon(20, hacha, escudo)
- }
- method crearDimaConMartillos(){
- const dima = new Dimachaerus(10)
- dima.darArma(new ArmaContundente(10))
- dima.darArma(new ArmaContundente(20))
- return dima
- }
-
- method crearMirmiConCasco(){
- return new Mirmillon(20, new ArmaContundente(20), casco)
- }
- method crearDimaMuyArmado(){
- const dima = new Dimachaerus(10)
- 10.times{dima.darArma(new ArmaFilosa(3,2))}
- return dima
- }
-}
\ No newline at end of file
diff --git a/.svn/pristine/6a/6a5070e4626e8cad379c1d43e5229e591d353260.svn-base b/.svn/pristine/6a/6a5070e4626e8cad379c1d43e5229e591d353260.svn-base
deleted file mode 100644
index 959a0d4..0000000
--- a/.svn/pristine/6a/6a5070e4626e8cad379c1d43e5229e591d353260.svn-base
+++ /dev/null
@@ -1,116 +0,0 @@
-import armas.*
-import coliseo.*
-
-class Mirmillon {
- const destreza = 15
- var vida = 100
- var fuerza
- var arma
- var armadura
-
- constructor(laFuerza, unArma, unaArmadura) {
- fuerza = laFuerza
- arma = unArma
- armadura = unaArmadura
- }
-
- method vida() { return vida }
-
- method puedeCombatir() {return vida > 0}
-
- method destreza() { return destreza }
-
- method poderAtaque() {
- return arma.poderAtaque() + fuerza
- }
-
- method defensa() {
- return armadura.defensa(self) + self.destreza()
- }
-
- method arma(armaNueva) {
- arma = armaNueva
- }
-
- method armadura(nueva) {
- armadura = nueva
- }
- method atacar(unGladiador) {
- unGladiador.recibirAtaque(self.poderAtaque())
- }
- method recibirAtaque(poderAtaque) {
- vida = vida - ( poderAtaque - self.defensa() )
- }
- method pelearContra(unGladiador) {
- self.atacar(unGladiador)
- unGladiador.atacar(self)
- }
- method masFuerte(){
- return self
- }
- method curar(){
- vida = 100
- }
- method armarGrupoCon(gladiador) {
- const grupo = new Grupo("Mirmillolandia")
- grupo.agregarGladiador(self)
- grupo.agregarGladiador(gladiador)
- return grupo
- }
-
-}
-
-class Dimachaerus {
- var destreza
- const fuerza = 10
- var armas = [ ]
- var vida = 100
-
- constructor(unaDestreza) {
- destreza = unaDestreza
- }
-
- method vida() { return vida }
-
- method puedeCombatir() {return vida > 0}
-
- method darArma(nuevaArma) {
- armas.add(nuevaArma)
- }
-
- method quitarArma(arma) {
- armas.remove(arma)
- }
-
- method poderAtaque() {
- return fuerza + armas.sum({ unArma => unArma.poderAtaque() })
- }
-
- method atacar(unGladiador) {
- unGladiador.recibirAtaque(self.poderAtaque())
- destreza = destreza + 1
- }
-
- method recibirAtaque(poderAtaque) {
- vida = vida - ( poderAtaque - self.defensa() )
- }
- method defensa() {
- return destreza / 2
- }
- method pelearContra(unGladiador) {
- self.atacar(unGladiador)
- unGladiador.atacar(self)
- }
- method masFuerte(){
- return self
- }
- method curar(){
- vida = 100
- }
- method armarGrupoCon(gladiador) {
- const grupo = new Grupo("D-"+(self.poderAtaque()+gladiador.poderAtaque()))
- grupo.agregarGladiador(self)
- grupo.agregarGladiador(gladiador)
- return grupo
- }
-}
\ No newline at end of file
diff --git a/.svn/pristine/74/74bce2cb1bda74e95d62d96c8bca56604e2f7415.svn-base b/.svn/pristine/74/74bce2cb1bda74e95d62d96c8bca56604e2f7415.svn-base
deleted file mode 100644
index d84297f..0000000
--- a/.svn/pristine/74/74bce2cb1bda74e95d62d96c8bca56604e2f7415.svn-base
+++ /dev/null
@@ -1,45 +0,0 @@
-
-class Grupo {
- const gladiadores = []
- var nombre
-
- constructor(nom){
- nombre = nom
- }
- method nombre() { return nombre }
-
- method agregarGladiador(gladiador) {
- gladiadores.add(gladiador)
- }
- method quitarGladiador(gladiador) {
- gladiadores.remove(gladiador)
- }
- method masFuerte(){
- var gladiadoresDisponibles = gladiadores.filter{gla=>gla.puedeCombatir()}
- if (gladiadoresDisponibles.isEmpty()) throw new Exception("No hay gladiadores que puedan combatir")
- return gladiadoresDisponibles.max{gla=>gla.poderAtaque()}
- }
- method combatir(adversario){
- 3.times{
- self.masFuerte().pelear(adversario.masFuerte())
- }
- }
- method curar(){
- gladiadores.forEach{gla=>gla.curar()}
- }
-
-}
-
-object coliseo {
- const combatientes = []
-
- method agregarCombatiente(combatiente){
- combatientes.add(combatiente)
- }
- method curarATodos(){
- combatientes.forEach{com=>com.curar()}
- }
- method combateSucesivo(unGrupo){
- combatientes.forEach{com=>unGrupo.combatir(com)}
- }
-}
\ No newline at end of file
diff --git a/.svn/pristine/88/885417e58585e97413158196d9eac2f291201c42.svn-base b/.svn/pristine/88/885417e58585e97413158196d9eac2f291201c42.svn-base
deleted file mode 100644
index ef28b5a..0000000
--- a/.svn/pristine/88/885417e58585e97413158196d9eac2f291201c42.svn-base
+++ /dev/null
@@ -1 +0,0 @@
-wollokRoot
diff --git a/.svn/pristine/94/942051a4bad4cde1f3c8e5996043a1cf43b7a2d9.svn-base b/.svn/pristine/94/942051a4bad4cde1f3c8e5996043a1cf43b7a2d9.svn-base
deleted file mode 100644
index 2a4b36c..0000000
--- a/.svn/pristine/94/942051a4bad4cde1f3c8e5996043a1cf43b7a2d9.svn-base
+++ /dev/null
@@ -1,16 +0,0 @@
-import fixture.*
-
-test "un Mirmillon con hacha y escudo tiene poderAtaque 20.5" {
- var mirmi = fixture.crearMirmiConHacha()
- assert.equals(20.5, mirmi.poderAtaque())
-}
-
-test
-"un Mirmillon con hacha y escudo ataca a un demicherius con destreza 10 y este queda con x vida"
-{
- var mirmi = fixture.crearMirmiConHacha()
- var dima = fixture.crearDimaConMartillo()
- mirmi.atacar(dima)
- assert.equals(84.5, dima.vida())
-
-}
\ No newline at end of file
diff --git a/.svn/pristine/af/af137c386a806153e7326eff89e473a2b9fecdec.svn-base b/.svn/pristine/af/af137c386a806153e7326eff89e473a2b9fecdec.svn-base
deleted file mode 100644
index c499bdb..0000000
--- a/.svn/pristine/af/af137c386a806153e7326eff89e473a2b9fecdec.svn-base
+++ /dev/null
@@ -1,37 +0,0 @@
-
-class ArmaFilosa {
- var longitud
- var filo
-
- constructor(long, fi) {
- filo = fi longitud = long
- }
- method poderAtaque() {
- return longitud * filo
- }
-}
-
-class ArmaContundente {
- var peso
-
- constructor(nuevoPeso) {
- peso = nuevoPeso
- }
-
- method poderAtaque() {
- return peso
- }
-}
-
-object unCasco {
- method defensa(unGladiador) {
- return 5
- }
-}
-
-object unEscudo {
- const defensa = 10
- method defensa(unGladiador) {
- return defensa + unGladiador.destreza() / 10
- }
-}
\ No newline at end of file
diff --git a/.svn/pristine/b5/b55b0a7af7a2f8e30024e25e11a31f8174bb4246.svn-base b/.svn/pristine/b5/b55b0a7af7a2f8e30024e25e11a31f8174bb4246.svn-base
deleted file mode 100644
index 13ec839..0000000
--- a/.svn/pristine/b5/b55b0a7af7a2f8e30024e25e11a31f8174bb4246.svn-base
+++ /dev/null
@@ -1 +0,0 @@
-# clases-coliseo
\ No newline at end of file
diff --git a/.svn/pristine/bc/bcf730b9b50790154308001e82c8dd50930bc1f9.svn-base b/.svn/pristine/bc/bcf730b9b50790154308001e82c8dd50930bc1f9.svn-base
deleted file mode 100644
index f0af470..0000000
--- a/.svn/pristine/bc/bcf730b9b50790154308001e82c8dd50930bc1f9.svn-base
+++ /dev/null
@@ -1,37 +0,0 @@
-class ArmaFilosa {
- var longitud
- var filo
-
- constructor(long, fi) {
- filo = fi
- longitud = long
- }
- method poderAtaque() {
- return longitud * filo
- }
-}
-
-class ArmaContundente {
- var peso
-
- constructor(nuevoPeso) {
- peso = nuevoPeso
- }
-
- method poderAtaque() {
- return peso
- }
-}
-
-object casco {
- method defensa(unGladiador) {
- return 5
- }
-}
-
-object escudo {
- const defensa = 10
- method defensa(unGladiador) {
- return defensa + unGladiador.destreza() / 10
- }
-}
\ No newline at end of file
diff --git a/.svn/pristine/c5/c54393301be69104cde695318ed7ea2bb35b22cc.svn-base b/.svn/pristine/c5/c54393301be69104cde695318ed7ea2bb35b22cc.svn-base
deleted file mode 100644
index fcaad0a..0000000
--- a/.svn/pristine/c5/c54393301be69104cde695318ed7ea2bb35b22cc.svn-base
+++ /dev/null
@@ -1,50 +0,0 @@
-import fixture.*
-
-test "un Mirmillon con hacha y escudo tiene poderAtaque 22" {
- const mirmi = fixture.crearMirmiConHacha()
- assert.equals(22, mirmi.poderAtaque())
-}
-
-test "un Mirmillon con hacha y escudo tiene defensa 26.5" {
- const mirmi = fixture.crearMirmiConHacha()
- assert.equals(26.5, mirmi.defensa())
-}
-
-test "un Dimachearus con 2 armas contundentes de peso 10 y 20 tiene poderAtaque 40" {
- const dima = fixture.crearDimaConMartillos()
- assert.equals(40, dima.poderAtaque())
-}
-test "un Dimachearus con destreza 10 tiene defensa 5" {
- const dima = fixture.crearDimaConMartillos()
- assert.equals(5, dima.defensa())
-}
-
-test "un Mirmillon con hacha y escudo ataca a un demicherius con destreza 10 y este queda con 83 vida"
-{
- const mirmi = fixture.crearMirmiConHacha()
- const dima = fixture.crearDimaConMartillos()
- mirmi.atacar(dima)
- assert.equals(83, dima.vida())
-}
-
-test "el grupo que arma un mirmillon y un dimachaerus se llama mirmillolandia" {
- const mirmi = fixture.crearMirmiConHacha()
- const dima = fixture.crearDimaConMartillos()
- const grupo = mirmi.armarGrupoCon(dima)
- assert.equals("Mirmillolandia", grupo.nombre())
-}
-
-test "el grupo que arma un dimachaerus y un mirmillon se llama D-62" {
- const mirmi = fixture.crearMirmiConHacha()
- const dima = fixture.crearDimaConMartillos()
- const grupo = dima.armarGrupoCon(mirmi)
- assert.equals("D-62", grupo.nombre())
-}
-
-test "el mas fuerte del grupo es el dimachaerus" {
- const mirmi = fixture.crearMirmiConHacha()
- const dima = fixture.crearDimaConMartillos()
- const grupo = dima.armarGrupoCon(mirmi)
- assert.equals(dima, grupo.masFuerte())
-}
-
diff --git a/.svn/pristine/d1/d1171e80973331b8663bad8b1c28e82490948512.svn-base b/.svn/pristine/d1/d1171e80973331b8663bad8b1c28e82490948512.svn-base
deleted file mode 100644
index 6385db8..0000000
--- a/.svn/pristine/d1/d1171e80973331b8663bad8b1c28e82490948512.svn-base
+++ /dev/null
@@ -1,42 +0,0 @@
-# El Coliseo
-
-## Clases constructores
-![Coliseo](https://thumbs.dreamstime.com/t/dibujo-del-coliseo-ejemplo-de-colosseum-en-roma-italia-65506949.jpg)
-
-**Construido en el siglo I y ubicado en el centro de la Ciudad de Roma, es actualmente una de las siete maravillas del mundo moderno pero en sus inicios era un anfiteatro ideal para presenciar peleas de gladiadores y otros espectáculos públicos.**
-
-En el coliseo podíamos presenciar a distintos gladiadores peleando con una gran variedad de armas y equipos pero empecemos de a poco.
-
-Arranquemos por las armas. Entre las armas más comunes que se usaban estaban las armas de filo como espadas, dagas o hachas. Las armas de filo aportan un valor de ataque equivalente al filo del arma multiplicado por su longitud. (La longitud de las armas de filo se mide en centímetros y su filo es un número entre 0 y 1.)
-Una alternativa para estas armas eran las llamadas contundentes, como por ejemplo mazas y martillos, que eran las preferidas de los gladiadores más brutos. Las armas contundente aportan un poder de ataque igual al peso del arma. Los gladiadores pueden cambiar sus armas
-
-Como de estas peleas no siempre salían todos los que entraban a la arena, muchos gladiadores no se valían solo de sus habilidades de pelea sino que llevaban algo de armadura. Por lo general usaban cascos y escudos para intentar parar los ataques del enemigo o no sufrir una herida letal (al menos no tan rápido). Los cascos les brindan 10 puntos de armadura a su portador, los escudos por su parte suman 5 más el 10% de la destreza del luchador.
-
-### Los Gladiadores.
-Finalmente llegamos a los protagonistas de esta historia…
-
-Para poder entrar a combatir un gladiador debe saber atacar y defenderse para no ser una presa fácil. A modo de simplificación diremos que todos los gladiadores tienen 100 unidades de vida inicialmente.
-En esta oportunidad contamos con dos tipos de gladiadores:
-- Los mirmillones. Su estilo es uno de los más clásicos dado que salían a combatir con un arma de mano, en general una espada o gladius, más un escudo rectangular o un casco con cresta. La fuerza promedio de este tipo de gladiadores es variable y su destreza es siempre 15. Un gladiador puede cambiar su armadura.
-- Los dimachaerus. Estos gladiadores peleaban con varias armas. No usaban armadura porque eran tipos duros. Los dimachaerus eran gladiadores que se valían mucho de sus habilidades, tienen una fuerza de 10 y una destreza en particular que puede ser diferente para cada gladiador.
-
-
-### Y los gladiadores atacan!!
-
-Cuando un mirmillon ataca a cualquier gladiador le inflige al atacado tanto daño como la diferencia entre su poder de ataque y la defensa del atacado. El poder de ataque equivale al poder de su arma más su propia fuerza.
-Cuando un dimachaerus ataca a otro gladiador, también le inflige al atacado tanto daño como la diferencia entre su poder de ataque y la defensa del atacado, pero su poder de ataque equivale a su fuerza más la sumatoria de los poderes de todas las armas que tenga. Además, cada vez que ataca, aumenta en 1 su destreza.
-Para un mirmillon, su defensa se calcula como los puntos de su armadura más su destreza.
-Para un dimachaerus, su defensa es la mitad de su destreza.
-
-Se pide implementar la solución que considere necesaria para hacer que un gladiador ataque a otro.
-
-### Pelea
-Cuando un gladiador se pelea con otro lo que hace es atacarlo. Luego de sufrir los efectos correspondientes, el gladiador atacado realiza un contraataque, mediante su propia forma de atacar.
-
-### Grupos
-Permitir que en el coliseo haya varios grupos de gladiadores que puedan combatir contra otros grupos. De los grupos se conoce también un nombre que los representa y se registra la cantidad de peleas en las que participó. Un grupo es capaz de manejar a sus miembros (agregar o quitar gladiadores).
-Los combates son a tres rounds, en cada round cada grupo elige a su campeón para que pelee con el campeón adversario. El campeón debe ser el más fuerte del grupo que pueda combatir (si aún cuenta con puntos de vida disponibles)
-Un gladiador puede crear un grupo juntándose con otro gladiador y definiendo el nombre del grupo.
-
-### El Coliseo
-El coliseo puede organizar combates entre grupos de gladiadores, aunque a veces tambien hace combatir a un grupo contra un gladiador suelto. Los dueños del coliseo no son unos tiranos así que también curan a los gladiadores, ya sea en grupos o solos.
diff --git a/.svn/pristine/de/ded12df8d4c8cce5324fc05fe10ab4921391bb33.svn-base b/.svn/pristine/de/ded12df8d4c8cce5324fc05fe10ab4921391bb33.svn-base
deleted file mode 100644
index a5ad073..0000000
--- a/.svn/pristine/de/ded12df8d4c8cce5324fc05fe10ab4921391bb33.svn-base
+++ /dev/null
@@ -1,25 +0,0 @@
-//import gladiadorHerencia.*
-import gladiador.*
-import armas.*
-
-object fixture {
- method crearMirmiConHacha(){
- const hacha = new ArmaFilosa(2, 1)
- return new Mirmillon(20, hacha, escudo)
- }
- method crearDimaConMartillos(){
- const dima = new Dimachaerus(10)
- dima.arma(new ArmaContundente(10))
- dima.arma(new ArmaContundente(20))
- return dima
- }
-
- method crearMirmiConCasco(){
- return new Mirmillon(20, new ArmaContundente(20), casco)
- }
- method crearDimaMuyArmado(){
- const dima = new Dimachaerus(10)
- 10.times{dima.arma(new ArmaFilosa(3,2))}
- return dima
- }
-}
\ No newline at end of file
diff --git a/.svn/pristine/df/df57ed4bac11ec2dbd710354be07ef606f7195fd.svn-base b/.svn/pristine/df/df57ed4bac11ec2dbd710354be07ef606f7195fd.svn-base
deleted file mode 100644
index a948dbd..0000000
--- a/.svn/pristine/df/df57ed4bac11ec2dbd710354be07ef606f7195fd.svn-base
+++ /dev/null
@@ -1,114 +0,0 @@
-import armas.*
-import coliseo.*
-
-class Gladiador {
- var destreza
- var fuerza
- var vida = 100
-
- method vida() { return vida }
-
- method puedeCombatir() {return vida > 0}
-
- method destreza() {return destreza}
-
- method curar(){
- vida = 100
- }
-
- method atacar(unGladiador) {
- unGladiador.recibirAtaque(self.poderAtaque())
- }
- method recibirAtaque(poderAtaque) {
- vida = vida - ( poderAtaque - self.defensa() )
- }
-
- method poderAtaque() {
- return fuerza + self.poderArmas()
- }
-
- method poderArmas()
-
- method defensa()
-
- method armarGrupoCon(gladiador) {
- const grupo = self.crearGrupo(gladiador)
- grupo.agregarGladiador(self)
- grupo.agregarGladiador(gladiador)
- return grupo
- }
-
- method crearGrupo(gladiador)
-
- method pelearContra(unGladiador) {
- self.atacar(unGladiador)
- unGladiador.atacar(self)
- }
-
- method masFuerte(){
- return self
- }
-}
-
-class Mirmillon inherits Gladiador {
- var arma
- var armadura
-
- constructor(laFuerza, unArma, unaArmadura) {
- fuerza = laFuerza
- arma = unArma
- armadura = unaArmadura
- destreza = 15
- }
-
- override method poderArmas() {
- return arma.poderAtaque()
- }
-
- override method defensa() {
- return armadura.defensa(self) + self.destreza()
- }
-
- method arma(armaNueva) {
- arma = armaNueva
- }
-
- method armadura(nueva) {
- armadura = nueva
- }
-
- override method crearGrupo(gladiador) {
- return new Grupo("Mirmillolandia")
- }
-
-}
-
-class Dimachaerus inherits Gladiador{
- var armas = [ ]
-
- constructor(unaDestreza) {
- destreza = unaDestreza
- fuerza = 10
- }
-
- method arma(nuevaArma) {
- armas.add(nuevaArma)
- }
-
- override method poderArmas() {
- return armas.sum({ unArma => unArma.poderAtaque() })
- }
-
- override method atacar(gladiador) {
- super(gladiador)
- destreza = destreza + 1
- }
-
- override method defensa() {
- return destreza / 2
- }
-
- override method crearGrupo(gladiador) {
- return new Grupo("D-"+(self.poderAtaque()+gladiador.poderAtaque()))
- }
-}
\ No newline at end of file
diff --git a/.svn/pristine/ee/ee37c63d071dd94cbdaa19b4192966ab48a79266.svn-base b/.svn/pristine/ee/ee37c63d071dd94cbdaa19b4192966ab48a79266.svn-base
deleted file mode 100644
index a0c6dd9..0000000
--- a/.svn/pristine/ee/ee37c63d071dd94cbdaa19b4192966ab48a79266.svn-base
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/.svn/pristine/f3/f39105cf6bf8a1dfe53af1d884bb96848f9e0eda.svn-base b/.svn/pristine/f3/f39105cf6bf8a1dfe53af1d884bb96848f9e0eda.svn-base
deleted file mode 100644
index 85f7e9a..0000000
--- a/.svn/pristine/f3/f39105cf6bf8a1dfe53af1d884bb96848f9e0eda.svn-base
+++ /dev/null
@@ -1,103 +0,0 @@
-import armas.*
-
-class Mirmillon {
- const destreza = 15
- var vida = 100
- var fuerza
- var arma
- var armadura
-
- constructor(laFuerza, unArma, unaArmadura) {
- fuerza = laFuerza arma = unArma armadura = unaArmadura
- }
-
- method vida() {
- return vida
- }
-
- method destreza() {
- return destreza
- }
-
- //?
- method fuerza(nuevaFuerza) {
- fuerza = nuevaFuerza
- }
-
- method fuerza() {
- return fuerza
- }
-
- method poderAtaque() {
- return arma.poderAtaque() + fuerza
- }
-
- method defensa() {
- return armadura.defensa(self) + self.destreza()
- }
-
- method arma(armaNueva) {
- arma = armaNueva
- }
-
- method arma() {
- return arma
- }
-
- method armadura(nueva) {
- armadura = nueva
- }
- method atacar(unGladiador) {
- unGladiador.recibirAtaque(self.poderAtaque())
- }
- method recibirAtaque(poderAtaque) {
- vida = vida - ( poderAtaque - self.defensa() )
- }
- method pelearContra(unGladiador) {
- self.atacar(unGladiador)
- unGladiador.atacar(self)
- }
-}
-
-class Dimachaerus {
- var destreza
- const fuerza = 10
- var armas = [ ]
- var vida = 100
-
- constructor(unaDestreza) {
- destreza = unaDestreza
- }
-
- method vida() {
- return vida
- }
-
- method darArma(nuevaArma) {
- armas.add(nuevaArma)
- }
-
- method quitarArma(arma) {
- armas.remove(arma)
- }
-
- method poderAtaque() {
- return fuerza + armas.sum({ unArma => unArma.poderAtaque() })
- }
-
- method atacar(unGladiador) {
- unGladiador.recibirAtaque(self.poderAtaque())
- destreza = destreza + 1
- }
-
- method recibirAtaque(poderAtaque) {
- vida = vida - ( poderAtaque - self.defensa() )
- }
- method defensa() {
- return destreza / 2
- }
- method pelearContra(unGladiador) {
- self.atacar(unGladiador)
- unGladiador.atacar(self)
- }
-}
\ No newline at end of file
diff --git a/.svn/wc.db b/.svn/wc.db
deleted file mode 100644
index c8a172a..0000000
Binary files a/.svn/wc.db and /dev/null differ
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index c301551..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-language: generic
-
-sudo: required
-
-script:
- - git clone https://github.com/uqbar-project/wollok-cli
- - export PATH="$PATH:./wollok-cli"
- - wollok test
diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF
deleted file mode 100644
index f39c793..0000000
--- a/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Clases-Coliseo
-Bundle-Vendor: My Company
-Bundle-Version: 1.0.0.qualifier
-Bundle-SymbolicName: Clases-Coliseo; singleton:=true
-Bundle-ActivationPolicy: lazy
-Require-Bundle: com.ibm.icu,
- org.eclipse.xtext,
- org.eclipse.xtext.generator,
- org.eclipse.xtend,
- org.eclipse.xtend.typesystem.emf,
- org.eclipse.xpand,
- de.itemis.xtext.antlr;resolution:=optional,
- org.eclipse.emf.mwe2.launch;resolution:=optional,
- org.uqbar.project.wollok,
- org.uqbar.project.wollok.launch,
- org.uqbar.project.wollok.lib,
- org.eclipse.xtext.ui
-Import-Package: org.apache.log4j,
- org.apache.commons.logging
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/README.md b/README.md
index d552ae7..c8df691 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# El Coliseo
-[![Build Status](https://travis-ci.org/wollok/clasesColiseo.svg?branch=master)](https://travis-ci.org/wollok/clasesColiseo)
+[![Build Status](https://github.com/wollok/clasesColiseo/actions/workflows/ci.yml/badge.svg)](https://github.com/wollok/clasesColiseo/actions/workflows/ci.yml)
## Clases constructores
diff --git a/src/armas.wlk b/armas.wlk
similarity index 92%
rename from src/armas.wlk
rename to armas.wlk
index 562be2b..a8340d3 100644
--- a/src/armas.wlk
+++ b/armas.wlk
@@ -1,29 +1,29 @@
-class ArmaFilosa {
- var longitud
- var filo
-
- method poderAtaque() {
- return longitud * filo
- }
-}
-
-class ArmaContundente {
- var peso
-
- method poderAtaque() {
- return peso
- }
-}
-
-object casco {
- method defensa(unGladiador) {
- return 5
- }
-}
-
-object escudo {
- const defensa = 10
- method defensa(unGladiador) {
- return defensa + unGladiador.destreza() / 10
- }
+class ArmaFilosa {
+ var longitud
+ var filo
+
+ method poderAtaque() {
+ return longitud * filo
+ }
+}
+
+class ArmaContundente {
+ var peso
+
+ method poderAtaque() {
+ return peso
+ }
+}
+
+object casco {
+ method defensa(unGladiador) {
+ return 5
+ }
+}
+
+object escudo {
+ const defensa = 10
+ method defensa(unGladiador) {
+ return defensa + unGladiador.destreza() / 10
+ }
}
\ No newline at end of file
diff --git a/build.properties b/build.properties
deleted file mode 100644
index a71738e..0000000
--- a/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-source.. = src/
-bin.includes = META-INF/,\
- .
\ No newline at end of file
diff --git a/src/coliseo.wlk b/coliseo.wlk
similarity index 95%
rename from src/coliseo.wlk
rename to coliseo.wlk
index e763088..69f2fab 100644
--- a/src/coliseo.wlk
+++ b/coliseo.wlk
@@ -1,40 +1,40 @@
-
-class Grupo {
- const gladiadores = []
- var property nombre
-
- method agregarGladiador(gladiador) {
- gladiadores.add(gladiador)
- }
- method quitarGladiador(gladiador) {
- gladiadores.remove(gladiador)
- }
- method masFuerte(){
- var gladiadoresDisponibles = gladiadores.filter{gla=>gla.puedeCombatir()}
- if (gladiadoresDisponibles.isEmpty()) throw new Exception("No hay gladiadores que puedan combatir")
- return gladiadoresDisponibles.max{gla=>gla.poderAtaque()}
- }
- method combatir(adversario){
- 3.times{
- self.masFuerte().pelear(adversario.masFuerte())
- }
- }
- method curar(){
- gladiadores.forEach{gla=>gla.curar()}
- }
-
-}
-
-object coliseo {
- const combatientes = []
-
- method agregarCombatiente(combatiente){
- combatientes.add(combatiente)
- }
- method curarATodos(){
- combatientes.forEach{com=>com.curar()}
- }
- method combateSucesivo(unGrupo){
- combatientes.forEach{com=>unGrupo.combatir(com)}
- }
+
+class Grupo {
+ const gladiadores = []
+ var property nombre
+
+ method agregarGladiador(gladiador) {
+ gladiadores.add(gladiador)
+ }
+ method quitarGladiador(gladiador) {
+ gladiadores.remove(gladiador)
+ }
+ method masFuerte(){
+ var gladiadoresDisponibles = gladiadores.filter{gla=>gla.puedeCombatir()}
+ if (gladiadoresDisponibles.isEmpty()) throw new Exception("No hay gladiadores que puedan combatir")
+ return gladiadoresDisponibles.max{gla=>gla.poderAtaque()}
+ }
+ method combatir(adversario){
+ 3.times{
+ self.masFuerte().pelear(adversario.masFuerte())
+ }
+ }
+ method curar(){
+ gladiadores.forEach{gla=>gla.curar()}
+ }
+
+}
+
+object coliseo {
+ const combatientes = []
+
+ method agregarCombatiente(combatiente){
+ combatientes.add(combatiente)
+ }
+ method curarATodos(){
+ combatientes.forEach{com=>com.curar()}
+ }
+ method combateSucesivo(unGrupo){
+ combatientes.forEach{com=>unGrupo.combatir(com)}
+ }
}
\ No newline at end of file
diff --git a/src/gladiador.wlk b/gladiador.wlk
similarity index 95%
rename from src/gladiador.wlk
rename to gladiador.wlk
index 5ec5407..aa5bdd3 100644
--- a/src/gladiador.wlk
+++ b/gladiador.wlk
@@ -1,94 +1,94 @@
-import armas.*
-import coliseo.*
-
-class Mirmillon {
- const property destreza = 15
- var property vida = 100
- var fuerza = 10
- var arma
- var armadura
-
- method puedeCombatir() {return vida > 0}
-
- method poderAtaque() {
- return arma.poderAtaque() + fuerza
- }
-
- method defensa() {
- return armadura.defensa(self) + self.destreza()
- }
-
- method atacar(unGladiador) {
- unGladiador.recibirAtaque(self.poderAtaque())
- }
- method recibirAtaque(poderAtaque) {
- vida = vida - ( poderAtaque - self.defensa() )
- }
- method pelearContra(unGladiador) {
- self.atacar(unGladiador)
- unGladiador.atacar(self)
- }
- method masFuerte(){
- return self
- }
- method curar(){
- vida = 100
- }
- method armarGrupoCon(gladiador) {
- const grupo = new Grupo(nombre = "Mirmillolandia")
- grupo.agregarGladiador(self)
- grupo.agregarGladiador(gladiador)
- return grupo
- }
-
-}
-
-class Dimachaerus {
- var destreza
- const fuerza = 10
- var armas = [ ]
- var property vida = 100
-
-
- method puedeCombatir() {return vida > 0}
-
- method arma(nuevaArma) {
- armas.add(nuevaArma)
- }
-
- method quitarArma(arma) {
- armas.remove(arma)
- }
-
- method poderAtaque() {
- return fuerza + armas.sum({ unArma => unArma.poderAtaque() })
- }
-
- method atacar(unGladiador) {
- unGladiador.recibirAtaque(self.poderAtaque())
- destreza = destreza + 1
- }
-
- method recibirAtaque(poderAtaque) {
- vida = vida - ( poderAtaque - self.defensa() )
- }
- method defensa() {
- return destreza / 2
- }
- method pelearContra(unGladiador) {
- self.atacar(unGladiador)
- unGladiador.atacar(self)
- }
- method masFuerte(){
- return self
- }
- method curar(){
- vida = 100
- }
- method armarGrupoCon(gladiador) {
- const grupo = new Grupo(nombre = "D-"+(self.poderAtaque()+gladiador.poderAtaque()))
- grupo.agregarGladiador(self)
- grupo.agregarGladiador(gladiador)
- return grupo
- }
+import armas.*
+import coliseo.*
+
+class Mirmillon {
+ const property destreza = 15
+ var property vida = 100
+ var fuerza = 10
+ var arma
+ var armadura
+
+ method puedeCombatir() {return vida > 0}
+
+ method poderAtaque() {
+ return arma.poderAtaque() + fuerza
+ }
+
+ method defensa() {
+ return armadura.defensa(self) + self.destreza()
+ }
+
+ method atacar(unGladiador) {
+ unGladiador.recibirAtaque(self.poderAtaque())
+ }
+ method recibirAtaque(poderAtaque) {
+ vida = vida - ( poderAtaque - self.defensa() )
+ }
+ method pelearContra(unGladiador) {
+ self.atacar(unGladiador)
+ unGladiador.atacar(self)
+ }
+ method masFuerte(){
+ return self
+ }
+ method curar(){
+ vida = 100
+ }
+ method armarGrupoCon(gladiador) {
+ const grupo = new Grupo(nombre = "Mirmillolandia")
+ grupo.agregarGladiador(self)
+ grupo.agregarGladiador(gladiador)
+ return grupo
+ }
+
+}
+
+class Dimachaerus {
+ var destreza
+ const fuerza = 10
+ var armas = [ ]
+ var property vida = 100
+
+
+ method puedeCombatir() {return vida > 0}
+
+ method arma(nuevaArma) {
+ armas.add(nuevaArma)
+ }
+
+ method quitarArma(arma) {
+ armas.remove(arma)
+ }
+
+ method poderAtaque() {
+ return fuerza + armas.sum({ unArma => unArma.poderAtaque() })
+ }
+
+ method atacar(unGladiador) {
+ unGladiador.recibirAtaque(self.poderAtaque())
+ destreza = destreza + 1
+ }
+
+ method recibirAtaque(poderAtaque) {
+ vida = vida - ( poderAtaque - self.defensa() )
+ }
+ method defensa() {
+ return destreza / 2
+ }
+ method pelearContra(unGladiador) {
+ self.atacar(unGladiador)
+ unGladiador.atacar(self)
+ }
+ method masFuerte(){
+ return self
+ }
+ method curar(){
+ vida = 100
+ }
+ method armarGrupoCon(gladiador) {
+ const grupo = new Grupo(nombre = "D-"+(self.poderAtaque()+gladiador.poderAtaque()))
+ grupo.agregarGladiador(self)
+ grupo.agregarGladiador(gladiador)
+ return grupo
+ }
}
\ No newline at end of file
diff --git a/src/gladiadorHerencia.wlk b/gladiadorHerencia.wlk
similarity index 94%
rename from src/gladiadorHerencia.wlk
rename to gladiadorHerencia.wlk
index db9f006..e038d01 100644
--- a/src/gladiadorHerencia.wlk
+++ b/gladiadorHerencia.wlk
@@ -1,113 +1,113 @@
-import armas.*
-import coliseo.*
-
-class Gladiador {
- var property destreza = 15
- var fuerza = 10
- var vida = 100
-
- method vida() { return vida }
-
- method puedeCombatir() {return vida > 0}
-
- method curar(){
- vida = 100
- }
-
- method atacar(unGladiador) {
- unGladiador.recibirAtaque(self.poderAtaque())
- }
- method recibirAtaque(poderAtaque) {
- vida = vida - ( poderAtaque - self.defensa() )
- }
-
- method poderAtaque() {
- return fuerza + self.poderArmas()
- }
-
- method poderArmas()
-
- method defensa()
-
- method armarGrupoCon(gladiador) {
- const grupo = self.crearGrupo(gladiador)
- grupo.agregarGladiador(self)
- grupo.agregarGladiador(gladiador)
- return grupo
- }
-
- method crearGrupo(gladiador)
-
- method pelearContra(unGladiador) {
- self.atacar(unGladiador)
- unGladiador.atacar(self)
- }
-
- method masFuerte(){
- return self
- }
-}
-
-class Mirmillon inherits Gladiador {
- var arma
- var armadura
-
- //initalize {
- // destreza = 15
- //}
-
- override method poderArmas() {
- return arma.poderAtaque()
- }
-
- override method defensa() {
- return armadura.defensa(self) + self.destreza()
- }
-
- method arma(armaNueva) {
- arma = armaNueva
- }
-
- method armadura(nueva) {
- armadura = nueva
- }
-
- override method crearGrupo(gladiador) {
- return new Grupo( nombre = "Mirmillolandia")
- }
-
-}
-
-class Dimachaerus inherits Gladiador{
- var armas = [ ]
-
- //initialize {
- // fuerza = 10
- //}
-
- method arma(nuevaArma) {
- armas.add(nuevaArma)
- }
-
- override method poderArmas() {
- return armas.sum({ unArma => unArma.poderAtaque() })
- }
-
- override method atacar(gladiador) {
- super(gladiador)
- destreza = destreza + 1
- }
-
- override method defensa() {
- return destreza / 2
- }
-
- override method crearGrupo(gladiador) {
- return new Grupo(nombre = "D-"+(self.poderAtaque()+gladiador.poderAtaque()))
- }
-}
-
-class GladiadorDesarmadoException inherits Exception { }
-
-class GladiadorMuertoException inherits Exception { }
-
+import armas.*
+import coliseo.*
+
+class Gladiador {
+ var property destreza = 15
+ var fuerza = 10
+ var vida = 100
+
+ method vida() { return vida }
+
+ method puedeCombatir() {return vida > 0}
+
+ method curar(){
+ vida = 100
+ }
+
+ method atacar(unGladiador) {
+ unGladiador.recibirAtaque(self.poderAtaque())
+ }
+ method recibirAtaque(poderAtaque) {
+ vida = vida - ( poderAtaque - self.defensa() )
+ }
+
+ method poderAtaque() {
+ return fuerza + self.poderArmas()
+ }
+
+ method poderArmas()
+
+ method defensa()
+
+ method armarGrupoCon(gladiador) {
+ const grupo = self.crearGrupo(gladiador)
+ grupo.agregarGladiador(self)
+ grupo.agregarGladiador(gladiador)
+ return grupo
+ }
+
+ method crearGrupo(gladiador)
+
+ method pelearContra(unGladiador) {
+ self.atacar(unGladiador)
+ unGladiador.atacar(self)
+ }
+
+ method masFuerte(){
+ return self
+ }
+}
+
+class Mirmillon inherits Gladiador {
+ var arma
+ var armadura
+
+ //initalize {
+ // destreza = 15
+ //}
+
+ override method poderArmas() {
+ return arma.poderAtaque()
+ }
+
+ override method defensa() {
+ return armadura.defensa(self) + self.destreza()
+ }
+
+ method arma(armaNueva) {
+ arma = armaNueva
+ }
+
+ method armadura(nueva) {
+ armadura = nueva
+ }
+
+ override method crearGrupo(gladiador) {
+ return new Grupo( nombre = "Mirmillolandia")
+ }
+
+}
+
+class Dimachaerus inherits Gladiador{
+ var armas = [ ]
+
+ //initialize {
+ // fuerza = 10
+ //}
+
+ method arma(nuevaArma) {
+ armas.add(nuevaArma)
+ }
+
+ override method poderArmas() {
+ return armas.sum({ unArma => unArma.poderAtaque() })
+ }
+
+ override method atacar(gladiador) {
+ super(gladiador)
+ destreza = destreza + 1
+ }
+
+ override method defensa() {
+ return destreza / 2
+ }
+
+ override method crearGrupo(gladiador) {
+ return new Grupo(nombre = "D-"+(self.poderAtaque()+gladiador.poderAtaque()))
+ }
+}
+
+class GladiadorDesarmadoException inherits Exception { }
+
+class GladiadorMuertoException inherits Exception { }
+
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..d2fa831
--- /dev/null
+++ b/package.json
@@ -0,0 +1,7 @@
+{
+ "name": "clasesColiseo",
+ "version": "1.0.0",
+ "wollokVersion": "4.0.0",
+ "author": "dodain",
+ "license": "ISC"
+}
diff --git a/src/WOLLOK.ROOT b/src/WOLLOK.ROOT
deleted file mode 100644
index ef28b5a..0000000
--- a/src/WOLLOK.ROOT
+++ /dev/null
@@ -1 +0,0 @@
-wollokRoot
diff --git a/src/log4j.properties b/src/log4j.properties
deleted file mode 100644
index b80ab85..0000000
--- a/src/log4j.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-log4j.rootLogger=WARN, stdout
-
-# WHOLE UQBAR
-log4j.logger.org.uqbar=WARN
-## DEBUGGER
-org.uqbar.project.wollok.ui.debugger
-
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
diff --git a/src/gladiador.wtest b/testGladiador.wtest
similarity index 96%
rename from src/gladiador.wtest
rename to testGladiador.wtest
index 19e9255..4639915 100644
--- a/src/gladiador.wtest
+++ b/testGladiador.wtest
@@ -1,81 +1,81 @@
-//import gladiador.*
-import gladiadorHerencia.*
-import armas.*
-
-describe "test" {
- var dima
- var mirmi
- var grupo
-
- method crearMirmiConHacha(){
- const hacha = new ArmaFilosa(longitud = 2, filo = 1)
- return new Mirmillon(fuerza = 20, arma = hacha, armadura = escudo)
- }
- method crearDimaConMartillos(){
- dima = new Dimachaerus(destreza = 10)
- dima.arma(new ArmaContundente(peso = 10))
- dima.arma(new ArmaContundente(peso = 20))
- return dima
- }
-
- method crearMirmiConCasco(){
- return new Mirmillon(fuerza = 20, arma = new ArmaContundente(peso =20), armadura = casco)
- }
-
- method crearDimaMuyArmado(){
- dima = new Dimachaerus(destreza = 10)
- 10.times{dima.arma(new ArmaFilosa(longitud = 3, filo = 2))}
- return dima
- }
-
-
-test "un Mirmillon con hacha y escudo tiene poderAtaque 22" {
- mirmi = self.crearMirmiConHacha()
- assert.equals(22, mirmi.poderAtaque())
-}
-
-test "un Mirmillon con hacha y escudo tiene defensa 26.5" {
- mirmi = self.crearMirmiConHacha()
- assert.equals(26.5, mirmi.defensa())
-}
-
-test "un Dimachearus con 2 armas contundentes de peso 10 y 20 tiene poderAtaque 40" {
- dima = self.crearDimaConMartillos()
- assert.equals(40, dima.poderAtaque())
-}
-test "un Dimachearus con destreza 10 tiene defensa 5" {
- dima = self.crearDimaConMartillos()
- assert.equals(5, dima.defensa())
-}
-
-test "un Mirmillon con hacha y escudo ataca a un demicherius con destreza 10 y este queda con 83 vida"
-{
- mirmi = self.crearMirmiConHacha()
- dima = self.crearDimaConMartillos()
- mirmi.atacar(dima)
- assert.equals(83, dima.vida())
-}
-
-test "el grupo que arma un mirmillon y un dimachaerus se llama mirmillolandia" {
- mirmi = self.crearMirmiConHacha()
- dima = self.crearDimaConMartillos()
- grupo = mirmi.armarGrupoCon(dima)
- assert.equals("Mirmillolandia", grupo.nombre())
-}
-
-test "el grupo que arma un dimachaerus y un mirmillon se llama D-62" {
- mirmi = self.crearMirmiConHacha()
- dima = self.crearDimaConMartillos()
- grupo = dima.armarGrupoCon(mirmi)
- assert.equals("D-62", grupo.nombre())
-}
-
-test "el mas fuerte del grupo es el dimachaerus" {
- mirmi = self.crearMirmiConHacha()
- dima = self.crearDimaConMartillos()
- grupo = dima.armarGrupoCon(mirmi)
- assert.equals(dima, grupo.masFuerte())
-}
-
-
-}
+//import gladiador.*
+import gladiadorHerencia.*
+import armas.*
+
+describe "test" {
+ var dima
+ var mirmi
+ var grupo
+
+ method crearMirmiConHacha(){
+ const hacha = new ArmaFilosa(longitud = 2, filo = 1)
+ return new Mirmillon(fuerza = 20, arma = hacha, armadura = escudo)
+ }
+ method crearDimaConMartillos(){
+ dima = new Dimachaerus(destreza = 10)
+ dima.arma(new ArmaContundente(peso = 10))
+ dima.arma(new ArmaContundente(peso = 20))
+ return dima
+ }
+
+ method crearMirmiConCasco(){
+ return new Mirmillon(fuerza = 20, arma = new ArmaContundente(peso =20), armadura = casco)
+ }
+
+ method crearDimaMuyArmado(){
+ dima = new Dimachaerus(destreza = 10)
+ 10.times{dima.arma(new ArmaFilosa(longitud = 3, filo = 2))}
+ return dima
+ }
+
+
+test "un Mirmillon con hacha y escudo tiene poderAtaque 22" {
+ mirmi = self.crearMirmiConHacha()
+ assert.equals(22, mirmi.poderAtaque())
+}
+
+test "un Mirmillon con hacha y escudo tiene defensa 26.5" {
+ mirmi = self.crearMirmiConHacha()
+ assert.equals(26.5, mirmi.defensa())
+}
+
+test "un Dimachearus con 2 armas contundentes de peso 10 y 20 tiene poderAtaque 40" {
+ dima = self.crearDimaConMartillos()
+ assert.equals(40, dima.poderAtaque())
+}
+test "un Dimachearus con destreza 10 tiene defensa 5" {
+ dima = self.crearDimaConMartillos()
+ assert.equals(5, dima.defensa())
+}
+
+test "un Mirmillon con hacha y escudo ataca a un demicherius con destreza 10 y este queda con 83 vida"
+{
+ mirmi = self.crearMirmiConHacha()
+ dima = self.crearDimaConMartillos()
+ mirmi.atacar(dima)
+ assert.equals(83, dima.vida())
+}
+
+test "el grupo que arma un mirmillon y un dimachaerus se llama mirmillolandia" {
+ mirmi = self.crearMirmiConHacha()
+ dima = self.crearDimaConMartillos()
+ grupo = mirmi.armarGrupoCon(dima)
+ assert.equals("Mirmillolandia", grupo.nombre())
+}
+
+test "el grupo que arma un dimachaerus y un mirmillon se llama D-62" {
+ mirmi = self.crearMirmiConHacha()
+ dima = self.crearDimaConMartillos()
+ grupo = dima.armarGrupoCon(mirmi)
+ assert.equals("D-62", grupo.nombre())
+}
+
+test "el mas fuerte del grupo es el dimachaerus" {
+ mirmi = self.crearMirmiConHacha()
+ dima = self.crearDimaConMartillos()
+ grupo = dima.armarGrupoCon(mirmi)
+ assert.equals(dima, grupo.masFuerte())
+}
+
+
+}
diff --git a/wollokREPL.wlk b/wollokREPL.wlk
deleted file mode 100644
index f629bfb..0000000
--- a/wollokREPL.wlk
+++ /dev/null
@@ -1 +0,0 @@
-object __repl {}