mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
64 lines
1.4 KiB
Lua
64 lines
1.4 KiB
Lua
|
|
--[[
|
||
|
|
| This file was obtained through the combined efforts
|
||
|
|
| of Madbluntz & Plymouth Antiquarian Society.
|
||
|
|
|
|
||
|
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||
|
|
| Maloy, DrPepper10 @ RIP, Atle!
|
||
|
|
|
|
||
|
|
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||
|
|
--]]
|
||
|
|
|
||
|
|
|
||
|
|
local PLUGIN = PLUGIN
|
||
|
|
|
||
|
|
ix.char.RegisterVar("energy", {
|
||
|
|
field = "energy",
|
||
|
|
fieldType = ix.type.number,
|
||
|
|
default = 100,
|
||
|
|
isLocal = true,
|
||
|
|
bNoDisplay = true,
|
||
|
|
OnSet = function(self, newEnergy, bNoNetwork)
|
||
|
|
newEnergy = newEnergy and math.max(newEnergy, 0) or 0
|
||
|
|
|
||
|
|
if (self.vars.energy == newEnergy) then
|
||
|
|
return false
|
||
|
|
end
|
||
|
|
|
||
|
|
self.vars.energy = newEnergy
|
||
|
|
|
||
|
|
if (!bNoNetwork) then
|
||
|
|
net.Start("ixCharacterVarChanged")
|
||
|
|
net.WriteUInt(self:GetID(), 32)
|
||
|
|
net.WriteString("energy")
|
||
|
|
net.WriteType(self.vars.energy)
|
||
|
|
net.Send(self:GetPlayer())
|
||
|
|
end
|
||
|
|
|
||
|
|
--hook.Run("CharacterVarChanged", self, key, oldVar, value)
|
||
|
|
|
||
|
|
return true
|
||
|
|
end
|
||
|
|
})
|
||
|
|
|
||
|
|
do
|
||
|
|
local charMeta = ix.meta.character
|
||
|
|
|
||
|
|
function charMeta:ShiftEnergy(energyShift, maxBonusEnergy, bNoNetwork)
|
||
|
|
maxBonusEnergy = maxBonusEnergy or 0
|
||
|
|
local newEnergy = self:GetEnergy()
|
||
|
|
local maxEnergy = 100 + maxBonusEnergy
|
||
|
|
|
||
|
|
if (energyShift > 0) then
|
||
|
|
if (newEnergy >= maxEnergy) then
|
||
|
|
return false
|
||
|
|
end
|
||
|
|
|
||
|
|
newEnergy = math.min(newEnergy + energyShift, maxEnergy)
|
||
|
|
else
|
||
|
|
newEnergy = newEnergy + energyShift
|
||
|
|
end
|
||
|
|
|
||
|
|
return self:SetEnergy(newEnergy, energyBonusMax, bNoNetwork)
|
||
|
|
end
|
||
|
|
end
|