Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-1-Sonic-2-2013-Script-Decompilation
Path: blob/master/Sonic 1/Scripts/Enemies/BuzzBomberShot.txt
1482 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
3
// Script Description: Buzz Bomber Shot Object
4
// Script Author: Christian Whitehead/Simon Thomley
5
// Unpacked by Rubberduckycooly's script unpacker
6
// ----------------------------------
7
8
// ========================
9
// Aliases
10
// ========================
11
12
private alias object.value0 : object.timer
13
14
private alias 0 : BBSHOT_CHARGE1 // frame 1
15
private alias 1 : BBSHOT_CHARGE2 // frame 2
16
private alias 2 : BBSHOT_SHOT // actually shot the projectile
17
18
19
// ========================
20
// Events
21
// ========================
22
23
event ObjectUpdate
24
switch object.state
25
case BBSHOT_CHARGE1
26
if object.timer < 8
27
object.timer++
28
else
29
object.timer = 0
30
object.state++
31
object.frame = 1
32
end if
33
break
34
35
case BBSHOT_CHARGE2
36
if object.timer < 8
37
object.timer++
38
else
39
object.timer = 0
40
object.state++
41
object.frame = 2
42
end if
43
break
44
45
case BBSHOT_SHOT
46
object.xpos += object.xvel
47
object.ypos += object.yvel
48
49
if object.timer >= 2
50
object.frame = 3
51
else
52
object.frame = 2
53
end if
54
55
object.timer++
56
object.timer &= 3
57
break
58
59
end switch
60
61
if object.outOfBounds == true
62
object.type = TypeName[Blank Object]
63
end if
64
65
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
66
if object.state > BBSHOT_CHARGE1
67
BoxCollisionTest(C_TOUCH, object.entityPos, -6, -6, 6, 6, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
68
if checkResult == true
69
CallFunction(Player_ProjectileHit)
70
end if
71
end if
72
next
73
end event
74
75
76
event ObjectDraw
77
DrawSpriteFX(object.frame, FX_FLIP, object.xpos, object.ypos)
78
end event
79
80
81
event ObjectStartup
82
CheckCurrentStageFolder("Zone01")
83
if checkResult == true
84
LoadSpriteSheet("GHZ/Objects.gif")
85
SpriteFrame(-8, -8, 16, 16, 160, 94)
86
SpriteFrame(-7, -7, 14, 14, 177, 94)
87
SpriteFrame(-6, -6, 12, 12, 160, 111)
88
SpriteFrame(-6, -6, 12, 12, 173, 111)
89
end if
90
91
CheckCurrentStageFolder("Zone02")
92
if checkResult == true
93
LoadSpriteSheet("MZ/Objects.gif")
94
SpriteFrame(-8, -8, 16, 16, 1, 177)
95
SpriteFrame(-7, -7, 14, 14, 19, 178)
96
SpriteFrame(-6, -6, 12, 12, 37, 179)
97
SpriteFrame(-6, -6, 12, 12, 54, 179)
98
end if
99
100
CheckCurrentStageFolder("Zone03")
101
if checkResult == true
102
LoadSpriteSheet("SYZ/Objects.gif")
103
SpriteFrame(-8, -8, 16, 16, 47, 81)
104
SpriteFrame(-7, -7, 14, 14, 65, 82)
105
SpriteFrame(-6, -6, 12, 12, 83, 83)
106
SpriteFrame(-6, -6, 12, 12, 100, 83)
107
end if
108
109
CheckCurrentStageFolder("Zone07")
110
if checkResult == true
111
LoadSpriteSheet("MBZ/Objects.gif")
112
SpriteFrame(-8, -8, 16, 16, 1, 51)
113
SpriteFrame(-8, -8, 14, 14, 18, 51)
114
SpriteFrame(-8, -8, 16, 16, 35, 51)
115
SpriteFrame(-8, -8, 16, 16, 52, 51)
116
end if
117
end event
118
119
120
// ========================
121
// Editor Events
122
// ========================
123
124
event RSDKDraw
125
DrawSprite(0)
126
end event
127
128
129
event RSDKLoad
130
// Make sure we have a fall-back, in case the current folder isn't actually a valid one
131
temp0 = false
132
133
CheckCurrentStageFolder("Zone02")
134
temp0 |= checkResult
135
if checkResult == true
136
LoadSpriteSheet("MZ/Objects.gif")
137
SpriteFrame(-6, -6, 12, 12, 37, 179)
138
end if
139
140
CheckCurrentStageFolder("Zone03")
141
temp0 |= checkResult
142
if checkResult == true
143
LoadSpriteSheet("SYZ/Objects.gif")
144
SpriteFrame(-6, -6, 12, 12, 83, 83)
145
end if
146
147
CheckCurrentStageFolder("Zone07")
148
temp0 |= checkResult
149
if checkResult == true
150
LoadSpriteSheet("MBZ/Objects.gif")
151
SpriteFrame(-8, -8, 16, 16, 35, 51)
152
end if
153
154
if temp0 == true
155
// We use GHZ's sprites as the fallback, "Zone01" (GHZ's folder) will come here too
156
LoadSpriteSheet("GHZ/Objects.gif")
157
SpriteFrame(-6, -6, 12, 12, 160, 111)
158
end if
159
160
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
161
end event
162
163