aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gamemode/npcsystem/npcs/base.lua15
1 files changed, 11 insertions, 4 deletions
diff --git a/gamemode/npcsystem/npcs/base.lua b/gamemode/npcsystem/npcs/base.lua
index 0e8ea53..880e4a5 100644
--- a/gamemode/npcsystem/npcs/base.lua
+++ b/gamemode/npcsystem/npcs/base.lua
@@ -17,7 +17,9 @@ NPC.Stats = {
}
--Some npc's like birds have diffent names for their idle sequence
-NPC.IdleSequence = "Idle"
+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
@@ -25,11 +27,16 @@ NPC.Drops = nil
--Attacks should be formated as [i]={function attackpriority() = function doattack()}
NPC.Attacks = nil
---Attack priority should be formated as [i] = func tion(return int priority) attackpriority
-NPC.AttackPriority = 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