#import "DynamicEntity.h" @interface Monster: DynamicEntity @property (class, readonly, nonatomic) OFMutableArray<Monster *> *monsters; // one of M_* @property (nonatomic) int monsterState; // see Monster.m @property (nonatomic) int monsterType; // monster wants to kill this entity @property (nonatomic) DynamicEntity *enemy; // monster wants to look in this direction @property (nonatomic) float targetYaw; // millis at which transition to another monsterstate takes place @property (nonatomic) int trigger; // delayed attacks @property (nonatomic) OFVector3D attackTarget; // how many times already hit by fellow monster @property (nonatomic) int anger; // called after map start of when toggling edit mode to reset/spawn all // monsters to initial state + (void)restoreAll; + (void)resetAll; + (void)thinkAll; + (void)renderAll; // TODO: Move this somewhere else + (void)endSinglePlayerWithAllKilled:(bool)allKilled; + (instancetype)monsterWithType:(int)type yaw:(int)yaw state:(int)state trigger:(int)trigger move:(int)move; - (instancetype)initWithType:(int)type yaw:(int)yaw state:(int)state trigger:(int)trigger move:(int)move; - (void)incurDamage:(int)damage fromEntity:(__kindof DynamicEntity *)d; @end