Witam, nie do końca ogarnąłem jak użyć parametru, gdzie... Dobra może zademonstruje o co chodzi:
Tu cały kod ale można ominąć raczej:
<?php
// jestem głupi, teraz statystki na pewno zrobie w tablicy z key values, ale jak tak zacząłem to tak skończe :D
class Unit {
public $name;
public $hp;
public $armor1;
public $armor2;
public $dmg1;
public $dmg2;
public $stat1;
public $stat2;
public $stat3;
public function __construct($name, $hp, $armor1, $armor2, $dmg1, $dmg2, $stat1, $stat2, $stat3){
$this->name = $name;
$this->hp = $hp;
$this->armor1 = $armor1;
$this->armor2 = $armor2;
$this->dmg1 = $dmg1;
$this->stat1 = $stat1;
$this->stat2 = $stat2;
$this->stat3 = $stat3;
}
}
class myHero extends Unit {
public $avaiblePoints = 1; //przykładowo
public function __construct($name, $hp, $armor1, $armor2, $dmg1, $dmg2, $stat1, $stat2, $stat3, $avaiblePoints){
parent::__construct($name, $hp, $armor1, $armor2, $dmg1, $dmg2, $stat1, $stat2, $stat3);
$this->avaiblePoints = $avaiblePoints;
function addStat($stat_name){ //dobrze to?
if($this->avaiblePoints >= 1){
$stat_name++;
$this->avaiblePoints--;
}
}
}
}
$Hero = new myHero("xd", 100, 90, 40, 50, 60, 50, 20, 25, 1);
//przywołam teraz bohatera, moge później, ale wole mieć pewność że attackIt() niżej zadziała
class Monster extends Unit {
public $rewardPoints = 0; //nie wiem czy to musze już przydzielać
public function __construct($name, $hp, $armor1, $armor2, $dmg1, $dmg2, $stat1, $stat2, $stat3){ //później sobie te statystki odpuszcze u monsters
parent::__construct($name, $hp, $armor1, $armor2, $dmg1, $dmg2, $stat1, $stat2, $stat3);
}
function attackIt(){
$i = 1;
$revertHP = $Hero->hp;
while($i > 0) { //nie wiem czy tak sie robi :D
$dmgDone = rand($Hero->dmg1, $Hero-dmg2);
$dmgReceived = rand($this->dmg1, $this->dmg2);
$this->hp =- $dmgDone;
echo "Zadałeś" . $dmgDone . "obrażeń";
$Hero->hp =- $dmgReceived;
echo "Otrzymałeś" . $dmgReceived . "obrażeń";
if ($this->hp < 0){
echo "Wygrałeś!";
$Hero->avaiblePoints = $this->rewardPoints;
$Hero->hp = $revertHP;
break;
}
elseif ($Hero->hp < 0) {
echo "Przegrałeś!";
$Hero->hp = $revertHP;
break;
}
}
}
}
//Hero->addStat()
echo $Hero->name;
$Hero->addStat($Hero->stat1);
echo $Hero->stat1;
?>
Chodzi konkretnie o te fragmenty:
class myHero extends Unit {
public $avaiblePoints = 1; for example
public function __construct($name, $hp, $armor1, $armor2, $dmg1, $dmg2, $stat1, $stat2, $stat3, $avaiblePoints){
parent::__construct($name, $hp, $armor1, $armor2, $dmg1, $dmg2, $stat1, $stat2, $stat3);
$this->avaiblePoints = $avaiblePoints;
[....]
function addStat($stat_name){ // O TUTAJ - jak tutaj sie odwołać,
if($this->avaiblePoints >= 1){
$stat_name++;
$this->avaiblePoints--;
[...]
$Hero->addStat($Hero->stat1); //???
Proszę bez linczu :D