Files
wnsrc/lua/autorun/ppp_include/pill_fun.lua
lifestorm 9c918c46e5 Upload
2024-08-04 23:12:27 +03:00

450 lines
12 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/
--]]
AddCSLuaFile()
pk_pills.register("birdbrainswagtrain", {
printName = "Bird Brain Swag Train",
side = "wild",
type = "phys",
model = "models/props_trainstation/train001.mdl",
default_rp_cost = 100000,
spawnOffset = Vector(0, 0, 200),
camera = {
offset = Vector(80, 0, 0),
dist = 2000
},
driveType = "fly",
driveOptions = {
speed = 100,
rotation = 90
},
attack = {
mode = "trigger",
func = function(ply, ent)
ent:PillSound("horn")
end
},
attack2 = {
mode = "trigger",
func = function(ply, ent)
if not ent.lastcar then
ent.lastcar = ent
end
if not IsValid(ent.lastcar) then return end
local t = math.random(2, 4)
if t == 4 then
t = 5
end
local pos = ent.lastcar:LocalToWorld(Vector(0, -650, 0))
if not util.IsInWorld(pos) then return end
local car = ents.Create("prop_physics")
car:SetModel("models/props_trainstation/train00" .. t .. ".mdl")
car:SetPos(pos)
car:SetAngles(ent.lastcar:GetAngles())
car:Spawn()
car:GetPhysicsObject():EnableGravity(false)
ent:DeleteOnRemove(car)
ent:PillFilterCam(car)
constraint.Ballsocket(ent.lastcar, car, 0, 0, Vector(0, 300, 0), 0, 0, 1)
ent.lastcar = car
ent:PillSound("newCar")
end
},
health = 99999,
sounds = {
horn = "ambient/alarms/razortrain_horn1.wav",
newCar = "ambient/machines/wall_crash1.wav"
}
})
pk_pills.register("landshark", {
parent = "ichthyosaur",
printName = "Landshark",
default_rp_cost = 50000,
driveType = "hover",
driveOptions = {
speed = 50,
height = 75
}
})
pk_pills.register("turbobird", {
parent = "bird_seagull",
printName = "Turbobird",
default_rp_cost = 50000,
side = "wild",
camera = {
offset = Vector(0, 0, 40),
dist = 200
},
hull = Vector(50, 50, 50),
modelScale = 5,
health = 1337,
moveSpeed = {
walk = 100,
run = 300
},
aim = {},
anims = {
default = {
fly_rate = .5,
kaboom = "reference"
}
},
sounds = {
vocalize = "npc/metropolice/vo/dontmove.wav",
loop_windup = "vehicles/Crane/crane_extend_loop1.wav",
fire = pk_pills.helpers.makeList("npc/metropolice/pain#.wav", 4)
},
attack = {
mode = "auto",
func = function(ply, ent)
ent:PillSound("fire")
local rocket = ents.Create("pill_proj_rocket")
rocket:SetModel("models/crow.mdl")
rocket:SetPos(ply:EyePos() + ply:EyeAngles():Forward() * 100)
rocket:SetAngles(ply:EyeAngles())
rocket.sound = "ambient/levels/canals/windmill_wind_loop1.wav"
rocket.trail = "trails/lol.vmt"
rocket.tcolor = HSVToColor(math.Rand(0, 360), 1, 1)
rocket:Spawn()
rocket:SetOwner(ply)
end,
delay = .3
},
attack2 = {
mode = "trigger",
func = function(ply, ent)
if ent.splodin then return end
ent:PillAnim("kaboom", true)
ent:PillSound("vocalize")
ent:PillLoopSound("windup")
ent.splodin = true
timer.Simple(3, function()
if not IsValid(ent) then return end
local explode = ents.Create("env_explosion")
explode:SetPos(ply:GetPos())
explode:Spawn()
explode:SetOwner(ply)
explode:SetKeyValue("iMagnitude", "300")
explode:Fire("Explode", 0, 0)
ply:Kill()
end)
end
}
})
pk_pills.register("melon", {
printName = "Melon",
type = "phys",
side = "harmless",
model = "models/props_junk/watermelon01.mdl",
default_rp_cost = 800,
health = 69,
driveType = "roll",
driveOptions = {
power = 300,
jump = 5000,
burrow = 6
},
sounds = {
jump = "npc/headcrab_poison/ph_jump1.wav",
burrow = "npc/antlion/digdown1.wav",
loop_move = "npc/fast_zombie/gurgle_loop1.wav"
},
moveSoundControl = function(ply, ent)
local MineSpeed = ent:GetVelocity():Length()
if MineSpeed > 50 then return math.Clamp(MineSpeed / 2, 100, 150) end
end
})
pk_pills.register("haxman", {
printName = "Dr. Hax",
type = "ply",
side = "wild",
model = "models/breen.mdl",
default_rp_cost = 20000,
aim = {},
anims = {
default = {
idle = "idle_angry_melee",
walk = "walk_all",
run = "sprint_all", --pace_all
crouch = "Crouch_idleD",
crouch_walk = "Crouch_walk_aLL",
glide = "jump_holding_glide",
jump = "jump_holding_jump",
throw = "swing"
}
},
boneMorphs = {
["ValveBiped.Bip01_Head1"] = {
scale = Vector(3, 3, 3)
}
},
sounds = {
throw = "vo/npc/male01/hacks01.wav"
},
moveSpeed = {
walk = 100,
run = 1000,
ducked = 40
},
jumpPower = 1000,
movePoseMode = "yaw",
health = 10000,
noFallDamage = true,
attack = {
mode = "trigger",
func = function(ply, ent)
if not ply:OnGround() then return end
local computer = ents.Create("pill_proj_prop")
computer:SetModel("models/props_lab/monitor02.mdl")
computer:SetPos(ply:EyePos() + ply:EyeAngles():Forward() * 100)
computer:SetAngles(ply:EyeAngles())
computer:Spawn()
computer:SetPhysicsAttacker(ply)
ent:PillAnim("throw", true)
ent:PillSound("throw")
end
}
})
pk_pills.register("crate", {
printName = "Crate",
side = "harmless",
type = "phys",
model = "models/props_junk/wood_crate001a.mdl",
default_rp_cost = 200,
spawnOffset = Vector(0, 0, 30),
health = 30
})
pk_pills.register("lamp", {
printName = "Lamp",
side = "harmless",
type = "phys",
model = "models/props_interiors/Furniture_Lamp01a.mdl",
default_rp_cost = 200,
spawnOffset = Vector(0, 0, 38),
health = 30
})
pk_pills.register("cactus", {
printName = "Cactus",
side = "harmless",
type = "phys",
model = "models/props_lab/cactus.mdl",
default_rp_cost = 200,
spawnOffset = Vector(0, 0, 10),
health = 30
})
pk_pills.register("cone", {
printName = "Traffic Cone",
side = "harmless",
type = "phys",
model = "models/props_junk/TrafficCone001a.mdl",
default_rp_cost = 200,
spawnOffset = Vector(0, 0, 25),
health = 30
})
pk_pills.register("phantom", {
printName = "Phantom",
side = "harmless",
type = "phys",
model = "models/Gibs/HGIBS.mdl",
default_rp_cost = 30000,
spawnOffset = Vector(0, 0, 50),
camera = {
distFromSize = true
},
sounds = {
swap = "weapons/bugbait/bugbait_squeeze1.wav",
nope = "vo/Citadel/br_no.wav",
spook = "ambient/creatures/town_child_scream1.wav"
},
aim = {},
attack = {
mode = "trigger",
func = function(ply, ent)
local tr = util.QuickTrace(ent:GetPos(), ply:EyeAngles():Forward() * 1000, ent)
local prop = tr.Entity
if IsValid(prop) and prop:GetClass() == "prop_physics" and hook.Call("PhysgunPickup", GAMEMODE, ply, prop) then
local mymdl = ent:GetModel()
local mypos = ent:GetPos()
local myangs = ent:GetAngles()
ent:SetModel(prop:GetModel())
ent:PhysicsInit(SOLID_VPHYSICS)
ent:SetMoveType(MOVETYPE_VPHYSICS)
ent:SetSolid(SOLID_VPHYSICS)
ent:SetPos(prop:GetPos())
ent:SetAngles(prop:GetAngles())
ent:PhysWake()
prop:SetModel(mymdl)
prop:PhysicsInit(SOLID_VPHYSICS)
prop:SetMoveType(MOVETYPE_VPHYSICS)
prop:SetSolid(SOLID_VPHYSICS)
prop:SetPos(mypos)
prop:SetAngles(myangs)
prop:PhysWake()
ent:PillSound("swap")
else
ent:PillSound("nope")
end
end
},
attack2 = {
mode = "trigger",
func = function(ply, ent)
ent:PillSound("spook")
end
},
driveType = "fly",
driveOptions = {
speed = 10
},
health = 666
})
pk_pills.register("steelball", {
printName = "Ball of Steel",
side = "harmless",
type = "phys",
model = "models/hunter/misc/sphere375x375.mdl",
default_rp_cost = 15000,
camera = {
offset = Vector(0, 0, 0),
dist = 1000
},
spawnOffset = Vector(0, 0, 60),
driveType = "roll",
driveOptions = {
power = 300000,
jump = 200000
},
visMat = "phoenix_storms/stripes",
physMat = "metal",
health = 30000
})
pk_pills.register("doggie", {
printName = "Doggie",
side = "harmless",
type = "ply",
model = "models/balloons/balloon_dog.mdl",
noragdoll = true,
default_rp_cost = 800,
camera = {
offset = Vector(0, 0, 5),
dist = 80
},
hull = Vector(10, 10, 15),
anims = {},
moveSpeed = {
walk = 120,
run = 240
},
visColorRandom = true,
health = 75
})
pk_pills.register("skeeter", {
printName = "Skeeter",
side = "harmless",
type = "ply",
model = "models/odessa.mdl",
default_rp_cost = 800,
camera = {
offset = Vector(0, 0, 5),
dist = 40
},
hull = Vector(5, 5, 10),
duckBy = 5,
modelScale = .2,
anims = {
default = {
idle = "cower_idle",
walk = "walk_panicked_all",
run = "run_all_panicked",
crouch = "arrestidle",
--crouch_walk="crouchrunall1", pos rot scale
glide = "spreadwallidle",
jump = "jump_holding_jump"
}
},
boneMorphs = {
["ValveBiped.Bip01_Head1"] = {
pos = Vector(5, 0, 0)
},
["ValveBiped.Bip01_L_Thigh"] = {
pos = Vector(10, 0, 0)
},
["ValveBiped.Bip01_R_Thigh"] = {
pos = Vector(-10, 0, 0)
}
},
moveSpeed = {
walk = 30,
run = 90
},
movePoseMode = "yaw",
jumpPower = 400,
health = 2,
noFallDamage = true
})
pk_pills.register("doge", {
printName = "Doge",
side = "harmless",
type = "phys",
sphericalPhysics = 20,
default_rp_cost = 30000,
sprite = {
mat = "pillsprites/shibe.png",
--color=Color(255,255,0),
size = 60,
offset = Vector(0, 0, 10)
},
--model="models/Gibs/HGIBS.mdl",
spawnOffset = Vector(0, 0, 50),
camera = {},
--distFromSize=true
sounds = {
swap = "weapons/bugbait/bugbait_squeeze1.wav",
nope = "vo/Citadel/br_no.wav",
spook = "ambient/creatures/town_child_scream1.wav"
},
attack = {
mode = "trigger",
func = function(ply, ent)
local effectdata = EffectData()
effectdata:SetOrigin(ent:GetPos())
util.Effect("wow_doge", effectdata, true, true)
ent:PillSound("wow")
end
},
driveType = "fly",
driveOptions = {
speed = 10
},
sounds = {
wow = "birdbrainswagtrain/wow.wav"
},
health = 420
})