Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-1-Sonic-2-2013-Script-Decompilation
Path: blob/master/Sonic 2/Scripts/Global/InstaShield.txt
1480 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
3
// Script Description: Insta Shield 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 -1 : DRAWORDER_PLAYER
13
14
// Player aliases
15
private alias object.state : player.state
16
private alias object.xpos : player.xpos
17
private alias object.ypos : player.ypos
18
private alias object.value7 : player.invincibleTimer
19
private alias object.value38 : player.hitboxTop
20
private alias object.value39 : player.hitboxBottom
21
private alias object.value40 : player.hitboxLeft
22
private alias object.value41 : player.hitboxRight
23
24
// Super States
25
private alias 1 : SUPERSTATE_SUPER
26
27
28
// ========================
29
// Events
30
// ========================
31
32
event ObjectUpdate
33
// Dead player shouldn't have an insta-shield
34
if player[-playerCount].state == Player_State_Death
35
object.type = TypeName[Blank Object]
36
end if
37
38
if player[-playerCount].state == Player_State_Drown
39
object.type = TypeName[Blank Object]
40
end if
41
42
// Draw right below the player
43
object.drawOrder = DRAWORDER_PLAYER
44
45
object.frame++
46
if object.frame >= 7
47
object.frame = 0
48
object.type = TypeName[Blank Object]
49
else
50
player[-playerCount].invincibleTimer = 1
51
end if
52
53
if object.type == TypeName[Insta Shield]
54
player[-playerCount].hitboxTop = -24
55
player[-playerCount].hitboxBottom = 24
56
player[-playerCount].hitboxLeft = -24
57
player[-playerCount].hitboxRight = 24
58
else
59
player[-playerCount].hitboxTop = C_BOX
60
player[-playerCount].hitboxBottom = C_BOX
61
player[-playerCount].hitboxLeft = C_BOX
62
player[-playerCount].hitboxRight = C_BOX
63
end if
64
65
end event
66
67
68
event ObjectDraw
69
if Player_superState != SUPERSTATE_SUPER
70
DrawSpriteXY(object.frame, object[-playerCount].xpos, object[-playerCount].ypos)
71
end if
72
end event
73
74
75
event ObjectStartup
76
LoadSpriteSheet("Global/Items3.gif")
77
78
SpriteFrame(0, 0, 1, 1, 1, 1)
79
SpriteFrame(-12, -19, 19, 19, 148, 155)
80
SpriteFrame(0, -16, 18, 21, 94, 231)
81
SpriteFrame(-3, 2, 27, 24, 113, 228)
82
SpriteFrame(-24, -16, 31, 38, 141, 214)
83
SpriteFrame(-16, -24, 40, 40, 173, 214)
84
SpriteFrame(-24, -16, 41, 40, 214, 214)
85
end event
86
87
88
// ========================
89
// Editor Events
90
// ========================
91
92
event RSDKDraw
93
DrawSprite(0)
94
end event
95
96
97
event RSDKLoad
98
LoadSpriteSheet("Global/Display.gif")
99
SpriteFrame(-16, -16, 32, 32, 1, 143)
100
101
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
102
end event
103
104