e9da54c2f9
Too many changes to list.
97 lines
2 KiB
Lua
97 lines
2 KiB
Lua
CLASS.Name = "Wil O' Wisp"
|
|
CLASS.TranslationName = "class_wilowisp"
|
|
CLASS.Description = "description_wilowisp"
|
|
CLASS.Help = "controls_wilowisp"
|
|
|
|
CLASS.Boss = true
|
|
|
|
CLASS.KnockbackScale = 0
|
|
|
|
CLASS.FearPerInstance = 0.05
|
|
|
|
CLASS.Points = 20
|
|
|
|
CLASS.Model = Model("models/dav0r/hoverball.mdl")
|
|
|
|
CLASS.SWEP = "weapon_zs_special_wow"
|
|
|
|
CLASS.Health = 1000
|
|
CLASS.Speed = 240
|
|
CLASS.JumpPower = 0
|
|
|
|
CLASS.PainSounds = {Sound("npc/scanner/scanner_photo1.wav")}
|
|
CLASS.DeathSounds = {Sound("npc/scanner/scanner_electric2.wav")}
|
|
|
|
CLASS.Hull = {Vector(-6, -6, 0), Vector(6, 6, 12)}
|
|
CLASS.HullDuck = {Vector(-6, -6, 0), Vector(6, 6, 12)}
|
|
CLASS.ViewOffset = Vector(0, 0, 3)
|
|
CLASS.ViewOffsetDucked = Vector(0, 0, 3)
|
|
CLASS.CrouchedWalkSpeed = 1
|
|
CLASS.Mass = 40
|
|
--CLASS.Gravity = -0.0001
|
|
|
|
CLASS.NoGibs = true
|
|
CLASS.NoCollideAll = true
|
|
CLASS.NoFallDamage = true
|
|
CLASS.NoFallSlowdown = true
|
|
|
|
CLASS.BloodColor = BLOOD_COLOR_MECH
|
|
|
|
CLASS.CameraDistance = 64
|
|
|
|
--[[function CLASS:ShouldDrawLocalPlayer(pl)
|
|
return true
|
|
end]]
|
|
|
|
function CLASS:PlayerFootstep(pl, vFootPos, iFoot, strSoundName, fVolume, pFilter)
|
|
return true
|
|
end
|
|
|
|
function CLASS:CalcMainActivity(pl, velocity)
|
|
return 1, -1
|
|
end
|
|
|
|
function CLASS:UpdateAnimation(pl, velocity, maxseqgroundspeed)
|
|
return true
|
|
end
|
|
|
|
function CLASS:DoAnimationEvent(pl, event, data)
|
|
return ACT_INVALID
|
|
end
|
|
|
|
function CLASS:Move(pl, mv)
|
|
pl:SetGroundEntity(NULL)
|
|
|
|
mv:SetMaxSpeed(0)
|
|
mv:SetMaxClientSpeed(0)
|
|
|
|
local dir = Vector(mv:GetForwardSpeed(), mv:GetSideSpeed(), 0)
|
|
dir:Normalize()
|
|
if pl:KeyDown(IN_JUMP) then
|
|
dir.z = 1
|
|
end
|
|
if pl:KeyDown(IN_DUCK) then
|
|
dir.z = dir.z - 1
|
|
end
|
|
dir:Normalize()
|
|
|
|
local vel = mv:GetVelocity()
|
|
|
|
if dir == vector_origin then
|
|
vel = vel * math.max(1 - FrameTime() * 0.75, 0)
|
|
else
|
|
local eyeang = mv:GetAngles()
|
|
vel = vel + 260 * FrameTime() * (eyeang:Forward() * dir.x + eyeang:Right() * dir.y + eyeang:Up() * dir.z)
|
|
end
|
|
|
|
if vel:Length() >= self.Speed then
|
|
vel:Normalize()
|
|
vel = vel * self.Speed
|
|
end
|
|
|
|
vel.z = vel.z + FrameTime() * 590
|
|
|
|
mv:SetVelocity(vel)
|
|
|
|
return true
|
|
end
|