diff options
| author | Alexander Pickering <alexandermpickering@gmail.com> | 2017-01-08 22:28:08 -0500 |
|---|---|---|
| committer | Alexander Pickering <alexandermpickering@gmail.com> | 2017-01-08 22:28:08 -0500 |
| commit | 98e0462e4f6b13ff26af5211409352d45dd9453e (patch) | |
| tree | fbff14dc9a0fffdda409d9989f2e34cd4bb265f6 /gamemode/npcsystem/sv_blockingdummy.lua | |
| parent | 4879eb1d78520ce0ac9b0bb0ef5244cf65ad7c99 (diff) | |
| download | artery-98e0462e4f6b13ff26af5211409352d45dd9453e.tar.gz artery-98e0462e4f6b13ff26af5211409352d45dd9453e.tar.bz2 artery-98e0462e4f6b13ff26af5211409352d45dd9453e.zip | |
Add a ton of icons, more work on refactoring
Diffstat (limited to 'gamemode/npcsystem/sv_blockingdummy.lua')
| -rw-r--r-- | gamemode/npcsystem/sv_blockingdummy.lua | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/gamemode/npcsystem/sv_blockingdummy.lua b/gamemode/npcsystem/sv_blockingdummy.lua new file mode 100644 index 0000000..2b98b97 --- /dev/null +++ b/gamemode/npcsystem/sv_blockingdummy.lua @@ -0,0 +1,107 @@ + +local n = nrequire("sv_npcsystem.lua") +local NPC = {} +NPC.Name = "Blocking Training Dummy" +NPC.Desc = "A man made of straw. His dream is to have a brain." +NPC.Class = "Ambient" --Ambient, Agressive, Boss +NPC.Model = "models/headcrab.mdl" + +NPC.Stats = { + ["Vitality"] = 100000, + ["Speed"] = 400, + ["AwareDist"] = 1000, + ["Accel"] = 100, + ["Decel"] = 200, + ["Step"] = 20, --Step height + ["Hull"] = HULL_TINY +} + +--Some npc's like birds have diffent names for their idle sequences +NPC.IdleSequences = { + [0] = "lookaround", + [1] = "Idle01", +} + +--Drops should be formated as [index]={["item name"], percent_drop} where percent_drop is a number from 0 to 100 + +NPC.Drops = { +} + +--Attacks should be formated as [i]={function attackpriority() = function doattack()} +local checknothing = function(self,ply) + return 1 +end + +local donothing = function(self,ply) +end +NPC.Attacks = { + [1] = {--run away from the player + [checknothing] = donothing + }, +} + +--A function that takes a position and returns true if this is an acceptable place to spawn +function NPC:SpawnLocations(pos) + return true +end + +--The entity that is this npc's current target, if it has one. Nil otherwise +NPC.Target = nil + +--All enemies that this NPC is aware of +NPC.AwareEnemies = {} +--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) + if not ply then return 0 end + return 1 +end + +--What to replace the ENT:RunBehaviour with +function NPC:Act(deltat) +end + +--What to replace ENT:OnStuck with +function NPC:Stuck() + +end + +local blockorder = { + "forward", + "right", + "backward", + "left" +} +local cursor = 0 +function NPC:OnDammage(ammount) + self.Blocking = blockorder[cursor + 1] + cursor = (cursor + 1) % 4 + print("A dummy was hit for",ammount:GetDamage(),"!") + print("Blocking is now",self.Blocking) +end + +--These are just here to tell the editors/develoeprs what functions are available.. dont un-comment them out, as this could affect all the items. +/* +function NPC:OnSpawn() +end + +--If we need to do more than just reduce health on dammage +function NPC:OnDammage(ammount) +end + +--If we need to do more than just drop items on death +function NPC:OnDeath() +end + +--A particular spell was cast on this npc by player +function NPC:OnSpell(spell, player) +end + +function NPC:OnFindEnemy(enemy) +end + +--Called when the npc is attacking anything with any attack +function NPC:OnAttack(target) +end +*/ +n.RegisterNPC(NPC) +--ART.RegisterNPC(NPC) |
