Last active
July 11, 2018 21:23
-
-
Save guibranco/09387918dcf83efb5aa9001e8a4db56d to your computer and use it in GitHub Desktop.
Simulação de batalha - Facebook - PHP Brasil - https://www.facebook.com/groups/142151625841770/permalink/1852337224823193/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class Batalha { | |
private $defesa = 15; | |
private $vida = 100; | |
public function Atacar($dano){ | |
if($this->defesa > 0) //se possuir defesa, consome o dano primeiro da defesa, depois da vida | |
{ | |
$remover = min($this->defesa, $dano);//pega o menor valor. | |
$this->defesa -= $remover; //consome da defesa o dano. Você pode mudar isso para ao invés de ter uma defesa como segunda vida, ser um percentual que diminui o dano apenas | |
$dano -= $remover; //atribui a dano apenas o que resta para ser removido da vida | |
} | |
if($dano == 0) | |
return; | |
$this->vida -= $dano; //remove da vida a quantidade de dano informado | |
if($this->vida <= 0) //se a vida for menor ou igual a 0 | |
die("Game over"); //game over | |
} | |
public function AtacarCritico($dano){ | |
$this->Atacar($dano * 2); //duplica o dano, já que é critico, e ataca. | |
} | |
public function Esquivar($esquiva){ | |
$this->defesa += $esquiva; | |
} | |
public function Informacoes(){ | |
echo "Sua esquiva/defesa é de: " . $this->defesa . " | "; | |
echo "Sua vida é de: " . $this->vida; | |
} | |
} | |
$batalha = new Batalha(); | |
$batalha->Informacoes(); //Sua esquiva/defesa é de: 15 | Sua vida é de: 100 | |
$batalha->Esquivar(100); | |
$batalha->Informacoes(); //Sua esquiva/defesa é de: 115 | Sua vida é de: 100 | |
$batalha->AtacarCritico(60); | |
$batalha->InformacoeS(); //Sua esquiva/defesa é de: 0 | Sua vida é de: 95 | |
$batalha->Atacar(95);//Game over | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment