I'm considering making a text-based RPG-type program in PHP as both a holiday project and a chance to learn more about PHP and OOP. (Maybe not the best choice in language, I know, but I didn't want to have to learn another language from scratch at the same time as OOP.)
Anyway, I'm just beginning the design process and thinking about 'monsters'. Each monster type (ya know, orc, goblin, rat, etc) will have its own stats, skills and what not. At first I though I could just have a single monster class and set the properties when I instantiate the object. But then I figured that might be a little inefficient, so I'm considering having a class for each type of monster.
Is this the best way to approach the problem, considering that the methods in each class will likely be the same? Is there a better way of doing things that I don't yet know about?
Any help is appreciated.
You could create an abstract class, say Monster, and then extend that class for each of the different types of monsters. So
<?php
abstract class Monster {
private $health;
public function attack() {
//do stuff
}
}
class Orc extends Monster {
private $damage_bonus;
}
?>
edit Orc would extend Monster and then inherit the attribute $health and the function attack().
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With