-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsun.lua
More file actions
78 lines (63 loc) · 1.73 KB
/
sun.lua
File metadata and controls
78 lines (63 loc) · 1.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
module(..., package.seeall)
require 'utils'
require 'vector'
require 'orbiter'
function Sun()
self = orbiter.Orbiter()
self.offset = 0
self.orbitColor:set(unpack(color.grey.rgba))
self.color:set(nil,nil,0)
self.flareBullets = nil
self.flareSound = love.audio.newSource('sounds/sunshot.ogg', 'static')
self.parentInit = self.init
self.init = function(self)
self:parentInit()
self.flare = false
self.flareLength = 0
self.flareFade = 0
self.flareBulletType = 1
end
self:init()
self.speed = 0.2
self.size = 40
self:updateOrbit()
self.startFlare = function(self, bullets)
self.flare = true
self.flareLength = 1
self.flareFade = self.flareFade + 1
self.flareBullets = bullets
end
self.launchFlare = function(self)
for i=1,359,2 do
self.flareBullets:add(self.pos.x + math.cos(math.rad(i)) * self.size, self.pos.y + math.sin(math.rad(i)) * self.size, i, 2)
end
love.audio.stop(self.flareSound)
love.audio.play(self.flareSound)
end
self.updateCallback = function(self, dt)
if self.flare then
self.flareLength = self.flareLength - dt
if self.flareLength <= 0 then
self.flareLength = 0
self.flare = false
self.flareFade = self.flareFade - 1
end
if self.flareFade == 97 then
self:launchFlare()
end
end
if self.flareFade % 2 == 1 then
self.flareFade = self.flareFade + 2
else
self.flareFade = self.flareFade - 2
end
if self.flareFade < 0 then self.flareFade = 0 end
if self.flareFade > 100 then self.flareFade = 99 end
self.color:set(
255 * (self.flareFade/100 * 0.8 + 0.2),
255 * (self.flareFade/100 * 0.8 + 0.2),
0
)
end
return self
end