aboutsummaryrefslogtreecommitdiff
path: root/gamemode/itemsystem
diff options
context:
space:
mode:
Diffstat (limited to 'gamemode/itemsystem')
-rw-r--r--gamemode/itemsystem/items/runefire.lua5
-rw-r--r--gamemode/itemsystem/items/spell_fireball.lua8
-rw-r--r--gamemode/itemsystem/items/spell_teleport.lua73
3 files changed, 77 insertions, 9 deletions
diff --git a/gamemode/itemsystem/items/runefire.lua b/gamemode/itemsystem/items/runefire.lua
index 419712e..e629558 100644
--- a/gamemode/itemsystem/items/runefire.lua
+++ b/gamemode/itemsystem/items/runefire.lua
@@ -4,6 +4,7 @@ ITEM.Class = "resource"
ITEM.Desc = "A perpetually warm stone"
ITEM.Model = "models/props_combine/breenlight.mdl"
ITEM.Icon = Material("wintersurvival2/hud/ws2_icons/icon_runefire.png")
+game.AddParticles("particles/particletest.pcf")
ITEM.Structure = {
{
@@ -37,11 +38,13 @@ function ITEM:OnUse(user)
end
function ITEM:OnPrimary(ply,tr)
+ ParticleEffect("firetest",ply:GetPos()+Vector(0,0,72),ply:GetAngles(),ply)
if(CLIENT) then
- game.AddParticles("particles/particletest.pcf")
+
else
if(tr.Hit && tr.Entity && tr.Entity:IsPlayer()) then
tr.Entity:Ignite(5)
+ user.RemoveItem(self.Name,1)
end
end
diff --git a/gamemode/itemsystem/items/spell_fireball.lua b/gamemode/itemsystem/items/spell_fireball.lua
index d8e6149..ef955bf 100644
--- a/gamemode/itemsystem/items/spell_fireball.lua
+++ b/gamemode/itemsystem/items/spell_fireball.lua
@@ -77,14 +77,6 @@ function ITEM:OnSecondary(pl,tr)
end
local fireballfunc = function(num,pl,self)
- if not pl then
- print("No pl to find the weapon of")
- return
- end
- local weapon = pl:GetSelectedWeapon()
- if(not weapon) then
- print("Could not find the weapon")
- end
if(self.NumFireballs < self.MaxFireballs) then
self.NumFireballs = self.NumFireballs+1
print("New num fireballs:" .. self.NumFireballs)
diff --git a/gamemode/itemsystem/items/spell_teleport.lua b/gamemode/itemsystem/items/spell_teleport.lua
new file mode 100644
index 0000000..6294955
--- /dev/null
+++ b/gamemode/itemsystem/items/spell_teleport.lua
@@ -0,0 +1,73 @@
+
+ITEM.Name = "Teleport"
+ITEM.Class = "weapon"
+ITEM.Desc = "Right click to set target location, left click to open a portal there."
+ITEM.Model = "models/props_debris/wood_board02a.mdl"
+ITEM.Icon = Material("wintersurvival2/hud/ws2_icons/icon_spellteleport.png")
+ITEM.HoldType = "magic"
+
+//Load some nessessary stuff
+game.AddParticles("particles/particletest.pcf")
+PrecacheParticleSystem("firetest")
+
+
+ITEM.Recipe = {
+ Resources = {
+ ["Plank"] = 2,
+ ["Rope"] = 1,
+ ["Sap"] = 1,
+ },
+ Tools = {},
+}
+
+ITEM.CD = 0.25
+
+ITEM.savedpoint = nil
+
+function ITEM:DoTeleport(score,pl,self)
+ print("DoTeleport called!")
+ if(self.savedpoint == nil) then return end
+ print("Fully successfull teleport callback:")
+ print(pl)
+ local aim = pl:GetAimVector()
+
+ local D = ents.Create("ws_teleporter")
+
+
+ D:SetPos(pl:GetShootPos()+aim*200)
+ D:SetOwner(pl)
+ D:SetAngles(aim:Angle())
+ D:Spawn()
+ D.endpoint = self.savedpoint
+ pl:EmitSound(Sound("physics/flesh/flesh_impact_hard.wav"),100,math.random(90,110))
+end
+
+local teleportfunc = function(score, pl, self)
+ print("teleportfunc called!")
+ if(self.savedpoint == nil) then return end
+ print("Fully successfull teleport callback:")
+ print(pl)
+ local aim = pl:GetAimVector()
+
+ local D = ents.Create("ws_teleporter")
+
+
+ D:SetPos(pl:GetShootPos()+aim*200)
+ D:SetOwner(pl)
+ D:SetAngles(aim:Angle())
+ D:Spawn()
+ D.endpoint = self.savedpoint
+ pl:EmitSound(Sound("physics/flesh/flesh_impact_hard.wav"),100,math.random(90,110))
+end
+
+function ITEM:OnSecondary(pl,tr)
+ print("Endpoint set?")
+ ParticleEffect("firetest",pl:GetPos(),pl:GetAngles(),pl)
+ self.savedpoint = pl:GetPos()
+end
+
+function ITEM:OnPrimary(pl,tr)
+ if(CLIENT) then return end
+ print("Attempting to cast...")
+ pl:Cast("Gateway",teleportfunc,self)
+end