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