Corrigido bug no player->spawn; WeaponItem com gravidade
[Projeto-PCG.git] / weaponmanager.lua
blob4687484b806f6e5c6cb88b4bb112057e99b4f31f
1 function Weapon(t)
2 local w = regweapon(t.righthand[1],t.righthand[2],
3 t.lefthand[1],t.lefthand[2],
4 t.name,t.firerate,
5 t.tip[1],t.tip[2])
6 regfirefunction(w,t.whenfire)
7 for i = 1, #t.sprite do
8 regspriteline(w,t.sprite[i][1],t.sprite[i][2],t.sprite[i][3],t.sprite[i][4])
9 end
10 local minX, minY, maxX, maxY = math.huge, math.huge, -math.huge, -math.huge
11 for i = 1, #t.sprite do
12 minX = math.min(minX, t.sprite[i][1], t.sprite[i][3])
13 minY = math.min(minY, t.sprite[i][2], t.sprite[i][4])
14 maxX = math.max(maxX, t.sprite[i][1], t.sprite[i][3])
15 maxY = math.max(maxY, t.sprite[i][2], t.sprite[i][4])
16 end
17 regcollision(t.name, minX, minY, minX, maxY)
18 regcollision(t.name, minX, minY, maxX, minY)
19 regcollision(t.name, maxX, maxY, minX, maxY)
20 regcollision(t.name, maxX, maxY, maxX, minY)
21 return t
22 end
24 function Line(t)
25 return t
26 end
28 function default(t,k,v)
29 if t[k] == nil then
30 t[k] = v
31 end
32 end
34 function Shot(t)
35 default(t,"gravity",0)
36 default(t,"duration",3000)
37 default(t,"speed",10)
38 local s = createshot(t.x,t.y,t.angle,t.duration,t.weapon,t.gravity,t.speed)
39 for i = 1, #t.sprite do
40 regspritelineshot(s,t.sprite[i][1],t.sprite[i][2],t.sprite[i][3],t.sprite[i][4])
41 end
42 end