Залив
This commit is contained in:
89
lua/weapons/mg_base/modules/shared/sh_think.lua
Normal file
89
lua/weapons/mg_base/modules/shared/sh_think.lua
Normal file
@@ -0,0 +1,89 @@
|
||||
AddCSLuaFile()
|
||||
|
||||
function SWEP:Think()
|
||||
self:LoadSpawnPreset()
|
||||
|
||||
--fallback initialize
|
||||
if (!self.m_bInitialized && IsFirstTimePredicted()) then
|
||||
self:Initialize()
|
||||
end
|
||||
|
||||
--holster
|
||||
if (self:HasFlag("Holstering") && CurTime() >= self:GetNextHolsterTime() && IsValid(self:GetNextWeapon()) && self:GetNextWeapon() != self && self:GetNextWeapon() != self:GetOwner()) then
|
||||
if (CLIENT && (IsFirstTimePredicted() || game.SinglePlayer())) then
|
||||
input.SelectWeapon(self:GetNextWeapon())
|
||||
end
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
--equip
|
||||
if (self:HasFlag("Drawing") && CurTime() >= self:GetNextActionTime()) then
|
||||
self:RemoveFlag("Drawing")
|
||||
self:RemoveFlag("PlayFirstDraw")
|
||||
end
|
||||
|
||||
--spray
|
||||
if (CurTime() > self:GetNextPrimaryFire() + 0.15) then
|
||||
self:SetSprayRounds(0)
|
||||
end
|
||||
|
||||
--cone
|
||||
self:SetCone(math.Approach(self:GetCone(), self:GetConeMin(), 4 * FrameTime()))
|
||||
|
||||
if (CurTime() <= self:GetNextMeleeTime()) then
|
||||
self:SetCone(self:GetConeMax())
|
||||
end
|
||||
|
||||
--burst logic
|
||||
if (!game.SinglePlayer() || SERVER) then
|
||||
if (self.Primary.BurstRounds > 1 && self:GetBurstRounds() < self.Primary.BurstRounds && self:GetBurstRounds() > 0) then
|
||||
self:PrimaryAttack()
|
||||
end
|
||||
end
|
||||
|
||||
--auto reload
|
||||
if (self:GetOwner():GetInfoNum("mgbase_autoreload", 1)) >= 1 then
|
||||
if (self:Clip1() <= 0 && self:GetOwner():GetAmmoCount(self:GetPrimaryAmmoType()) > 0) then
|
||||
self:Reload()
|
||||
end
|
||||
end
|
||||
|
||||
self:TriggerLogic()
|
||||
|
||||
--pumping, it has to go under trigger logic
|
||||
if (CurTime() >= self:GetNextPrimaryFire() && self:CanPump()) then
|
||||
if (!self:HasFlag("Rechambered")) then
|
||||
self:PlayViewModelAnimation("Rechamber")
|
||||
self:SetNextPrimaryFire(CurTime() + self:GetAnimLength("Rechamber"))
|
||||
self:AddFlag("Rechambered")
|
||||
end
|
||||
end
|
||||
|
||||
self:ReloadLogic()
|
||||
self:AimLogic()
|
||||
self:SprintLogic()
|
||||
self:BipodLogic()
|
||||
self:InspectLogic()
|
||||
|
||||
--ladder
|
||||
if (self:GetOwner():GetMoveType() == MOVETYPE_LADDER || self:GetOwner():WaterLevel() == 3) then
|
||||
self:Holster(self:GetOwner())
|
||||
else
|
||||
if (self:HasFlag("Holstering") && self:GetNextWeapon() == self:GetOwner()) then
|
||||
self:Deploy()
|
||||
end
|
||||
end
|
||||
|
||||
--holdtypes
|
||||
--new meme marine way
|
||||
self:SetShouldHoldType()
|
||||
|
||||
if (CLIENT && game.SinglePlayer()) then
|
||||
return
|
||||
end
|
||||
|
||||
if (self:Clip1() > 0 && !self:HasFlag("Reloading") && !self:HasFlag("Sprinting")) then
|
||||
self:CreateAndResumeReverbJob()
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user