Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Puntos de Entrada:
- * Punto 1a)personaje.estaFueraDeCombate()
- * Punto 1b)personaje.sufrirDanio(20)
- * Punto 2) personaje.atacarA(otroPersonaje)
- */
- class Personaje{
- var property danio = 0
- var property danioMaximo = 500
- var property ataque
- var property poderBase = 0
- var property poderEspecial
- method sufrirDanio(cantDanio){
- const danioAcumulado = cantDanio + danio
- if(danioAcumulado >= danioMaximo)
- {
- danio = danioMaximo
- }
- else
- {
- danio = danioAcumulado
- }
- }
- method estaFueraDeCombate() = danio == danioMaximo
- method poderOfensivo() = self.poderBase()*3 + self.poderEspecial()
- method atacarA(otroPersonaje){
- if(self.estaFueraDeCombate())
- {
- self.error("No puedes atacar!")
- }
- else
- {
- const danioAtacante = self.poderOfensivo()
- otroPersonaje.sufrirDanio(danioAtacante)
- }
- }
- }
- object capitanFalcon inherits Personaje{
- override method poderEspecial() = 9999
- }
- object jigglypuff inherits Personaje{
- override method poderEspecial() = if (self.danio() > 200) 250 else 10
- }
- object link inherits Personaje{
- var property arma = 0
- override method poderEspecial(){
- return arma.poderEspecial(self)
- }
- }
- //Interfaz
- class Arma{
- var property poderEspecial
- method poderEspecial(personaje)
- }
- object espadaMaestra inherits Arma{
- var property poderNormal = 100
- const property intensidadRayoDeLuz = 50
- override method poderEspecial(personaje){
- if(personaje.danio() == 0)
- {
- self.lanzarRayoDeLuz()
- return self.poderNormal()
- }
- else{
- return self.poderNormal()
- }
- }
- method lanzarRayoDeLuz(){
- self.aumentarPoder(intensidadRayoDeLuz)
- }
- method aumentarPoder(cantidad){
- poderNormal += cantidad
- }
- }
- class Boomerang inherits Arma{
- var property calidad = 0
- override method poderEspecial(personaje) = calidad*2
- }
- object arcoYFlecha inherits Arma{
- override method poderEspecial(personaje) = personaje.poderBase()*5
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement