diff options
Diffstat (limited to 'gamemode/npcsystem/npcs/base.lua')
| -rw-r--r-- | gamemode/npcsystem/npcs/base.lua | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/gamemode/npcsystem/npcs/base.lua b/gamemode/npcsystem/npcs/base.lua index 7afb4fe..880e4a5 100644 --- a/gamemode/npcsystem/npcs/base.lua +++ b/gamemode/npcsystem/npcs/base.lua @@ -6,16 +6,37 @@ NPC.Icon = Material("wintersurvival2/hud/ws1_icons/icon_rock") NPC.Social = "Pack" --Solo, Pack
-NPC.Vitality = 0
-NPC.Speed = 0
+NPC.Stats = {
+ ["Vitality"] = 1,
+ ["Speed"] = 1,
+ ["AwareDist"] = 1,
+ ["Accel"] = 1,
+ ["Decel"] = 1,
+ ["Step"] = 1, --Step height
+ ["Hull"] = HULL_HUMAN
+}
+
+--Some npc's like birds have diffent names for their idle sequence
+NPC.IdleSequences = {
+ [0] = "Idle",
+}
+
--Drops should be formated as [index]={["item name"], percent_drop} where percent_drop is a number from 0 to 100
NPC.Drops = nil
--Attacks should be formated as [i]={function attackpriority() = function doattack()}
NPC.Attacks = nil
+--Attack priority is a fucntion that takes a player, and returns an int describing it's prority to attack (higher = more important) NPC will always attack the player with the highest priority
+function NPC:AttackPriority(ply)
+ local dist = ply:GetPos():Distance(self:GetPos())
+ return self.Stats["AwareDist"] - dist
+end
+
--A function that takes a position and returns true if this is an acceptable place to spawn
-NPC.SpawnLocations = nil
+function NPC:SpawnLocations(pos)
+ return true
+end
--The entity that is this npc's current target, if it has one
NPC.Target = nil
|
