Monsters
We'll start programming monsters in the same way we programmed NPCs and PickupItem
. First, we'll write a base class (by deriving from character) to represent the Monster
class. Then, we'll derive a bunch of blueprints for each monster type. Every monster will have a couple of properties in common that determine its behavior. These are the common properties:
- A
float
variable for speed. - A
float
variable for theHitPoints
value (I usually use floats for HP, so we can easily model HP leeching effects such as walking through a pool of lava). - An
int32
variable for the experience gained in defeating the monster. - A
UClass
function for the loot dropped by the monster. - A
float
variable forBaseAttackDamage
done on each attack. - A
float
variable forAttackTimeout
, which is the amount of time for which the monster rests between attacking. - Two
USphereComponents
object: One of them isSightSphere
—how far he can see. The other isAttackRangeSphere
, which is how far his attack reaches...