aboutsummaryrefslogtreecommitdiff
path: root/gamemode/shared/prayersystem/prayers/lesserevasion.lua
blob: 15077d39a391b71dea88c9c79316d15c3f71a413 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
do return end
--[[
    An example item
]]
print("Hello from lesser evasion.lua")
local prayer = {}

--Required, a name, all prayer names must be unique
prayer.Name = "Lesser Evasion"

--Optional, a tooltip to display when hovered over
prayer.Tooltip = "A prayer to the rouge god to allow you to quickly dodge to the left or right"

--Optional, when the player clicks this item, a menu will show up, if the menu item is clicked, the function is ran. This is all run client side, so if you want it to do something server side, you'll need to use the net library. Remember that items are in the shared domain, so you can define what it does in the same file!
local prayedplayers = {}
local prayedplayerstime = {}
if SERVER then
    util.AddNetworkString("art_prayer_lesserevasion")
    net.Receive("art_prayer_lesserevasion",function(ln,ply)
        if ply:HasPrayer(prayer.Name) and (prayedplayers[ply] == nil or CurTime() > prayedplayerstime[ply] + 5) then
            prayedplayers[ply] = true
            prayedplayerstime[ply] = CurTime()
        end
    end)
end


local lastprayer = CurTime()
prayer.Pray = function(self)
    if SERVER then return end
    if CurTime() > lastprayer + 0 then
        net.Start("art_prayer_lesserevasion")
        net.SendToServer()
        lastprayer = CurTime()
    end
end


hook.Add( "SetupMove", "artery_prayer_lesserevasion", function( ply, mv, cmd )
    if prayedplayers[ply] and not ply:OnGround() then
        local mdir = ART.playermovedir(ply)
        if mdir == "left" or mdir == "right" then
            local noup = mv:GetVelocity()
            noup.z = 0
            local pow = 600 - noup:Length()
            mv:SetVelocity((noup * pow) + Vector(0, 0, 20))
            prayedplayers[ply] = false
        end
    end
end )

function prayer.DisplayHelp(panel)
    local helptxt = vgui.Create("DLabel",panel)
    helptxt:SetWrap(true)
    helptxt:SetText("Your reflexes quicken, allowing you to dodge eto the left or right every 5 seconds. Start moveing left or right, then jump")
    helptxt:SetSize(ScrW() / 4,ScrH() / 8)
    helptxt:SetDark(true)
end

--Optional. Something run once when this item is drawn in a backpack
function prayer.DoOnPanel(dimagebutton)
    dimagebutton:SetImage( "prayericons/lesserevasion.png")
end


ART.RegisterPrayer(prayer)