diff options
Diffstat (limited to 'entities')
| -rw-r--r-- | entities/entities/ws_arrow/init.lua | 8 | ||||
| -rw-r--r-- | entities/entities/ws_npc_ambient/init.lua | 57 | ||||
| -rw-r--r-- | entities/entities/ws_npc_ambient/shared.lua | 1 |
3 files changed, 44 insertions, 22 deletions
diff --git a/entities/entities/ws_arrow/init.lua b/entities/entities/ws_arrow/init.lua index db5adb6..d87924a 100644 --- a/entities/entities/ws_arrow/init.lua +++ b/entities/entities/ws_arrow/init.lua @@ -24,8 +24,16 @@ function ENT:Think() return true
end
+function ENT:PhysicsCollide(data, phys)
+ if phys:GetEntity():IsPlayer() or phys:GetEntity():IsNPC() then
+ print("We hit a player!")
+ else
+ end
+end
+
function ENT:Use(activator, caller, usetype, value)
if caller:IsPigeon() then return end
+ print("Trying to pick up an arrow!")
caller:AddItem("Arrow",1)
self:Remove()
end
diff --git a/entities/entities/ws_npc_ambient/init.lua b/entities/entities/ws_npc_ambient/init.lua index a0497dd..6df03a0 100644 --- a/entities/entities/ws_npc_ambient/init.lua +++ b/entities/entities/ws_npc_ambient/init.lua @@ -6,9 +6,15 @@ include('shared.lua') function ENT:Initialize()
--print("NPC spawned!")
+ self:SetMoveType(MOVETYPE_STEP)
+ self:SetSolid(SOLID_OBB)
+ self:SetCollisionGroup(COLLISION_GROUP_INTERACTIVE)
+
if(self.Model) then self:SetModel(self.Model)
else print("NPC created without model, this might be a bug!") end
- if(self.Stats["Vitality"]) then self.Vitality = self.Stats["Vitality"]
+ if(self.Stats["Vitality"]) then
+ self:SetHealth(self.Stats["Vitality"])
+ print("Helath set to " .. self.Stats["Vitality"])
else print("NPC created with no stat for vitality, this might be a bug!")end
if(self.Stats["Accel"]) then self.loco:SetAcceleration(self.Stats["Accel"])end
if(self.Stats["Decel"]) then self.loco:SetDeceleration(self.Stats["Decel"]) end
@@ -30,27 +36,36 @@ end function ENT:OnInjured(dmg)
--print("Taking some dammage")
local itempos = self:GetPos()
- self:SetHealth(self:Health() - dmg:GetDamage())
+ print("Takeing " .. dmg:GetDamage() .. " health from our " .. self:Health())
+ --self:SetHealth(self:Health() - dmg:GetDamage())
+ print("Health is now" .. self:Health())
if self.OnDammage != nil then self:OnDammage(dmg) end
- if self:Health() <= 0 then //run on death
- if(CLIENT) then return end
- if not self.Drops then return end
- --print("Looks like we have some drops")
+end
+
+function ENT:OnContact(ent)
+ if(ent:GetClass() == "ws_arrow") then
+ self:TakeDamage(30)
+ ent:SetParent(self)
+ end
+end
+
+function ENT:OnKilled(dmg)
+ if(CLIENT) then return end
+ if not self.Drops then return end
+ --print("Looks like we have some drops")
+ for k,v in pairs(self.Drops) do
local rng = math.random(0,100)
- for k,v in pairs(self.Drops) do
- local itemname = self.Drops[k][1]
- local itemchance = self.Drops[k][2]
- local heightoffset = 10
- if rng < itemchance then
- --print("Createing a " .. itemname)
- local drop = ents.Create("ws_item")
- drop.Item = GetItemByName(itemname)
- drop:SetModel(drop.Item.Model)
- drop:SetPos(itempos + (self:GetUp()*heightoffset))
- drop:Spawn()
- heightoffset = heightoffset + 10
- end
+ local itemname = self.Drops[k][1]
+ local itemchance = self.Drops[k][2]
+ local heightoffset = 10
+ if rng < itemchance then
+ local drop = ents.Create("ws_item")
+ drop.Item = GetItemByName(itemname)
+ drop:SetModel(drop.Item.Model)
+ drop:SetPos(self:GetPos() + (self:GetUp()*heightoffset))
+ drop:Spawn()
+ heightoffset = heightoffset + 10
end
- --self:SetSchedule( SCHED_FALL_TO_GROUND )
- end
+ end
+ self:BecomeRagdoll( dmg )
end
diff --git a/entities/entities/ws_npc_ambient/shared.lua b/entities/entities/ws_npc_ambient/shared.lua index 7fa3661..c84245c 100644 --- a/entities/entities/ws_npc_ambient/shared.lua +++ b/entities/entities/ws_npc_ambient/shared.lua @@ -3,7 +3,6 @@ ENT.Base = "base_nextbot" //WS stuff
ENT.Drops = nil
ENT.OnDammage = nil
-ENT.Vitality = 1
ENT.Speed = 0
ENT.Model = nil
|
