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. TheAttackRangeSphere...