Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_shutta_photo_controller_Other_12

(view raw script w/o annotations or w/e)
1
var _center_x = (camerax() + (camerawidth() / 2)) - 20;
2
var _center_y = cameray() + 120;
3
switch (subact_state)
4
{
5
    case "init":
6
        with (enemy)
7
        {
8
            x = xstart;
9
            y = ystart;
10
            jumping = true;
11
            sprite_index = spr_shutta_idle;
12
            image_speed = 0.16666666666666666;
13
        }
14
        enemy_jump_side = 0;
15
        enemy_jump_height = 100;
16
        enemy_x = 0;
17
        enemy_y = 0;
18
        enemy_tx = 0;
19
        enemy_ty = 0;
20
        enemy_duration = 0;
21
        enemy_time = -1;
22
        subact_state = "intro";
23
        break;
24
    case "intro":
25
        enemy_duration = 15;
26
        timerb++;
27
        if (timerb <= enemy_duration)
28
        {
29
            enemy.x = ease_inout_sine(enemy_time, enemy.xstart, _center_x - 20 - enemy.xstart, enemy_duration);
30
            enemy.y = ease_inout_sine(enemy_time, enemy.ystart, _center_y - enemy.ystart, enemy_duration);
31
        }
32
        if (timerb >= (enemy_duration + 5))
33
        {
34
            posesiner++;
35
            if (posesiner == 1)
36
                savex = enemy.x;
37
            enemy.x = savex + (sin(posesiner / 6) * 80);
38
        }
39
        if (timerb == posemax)
40
        {
41
            enemy.sprite_index = spr_shutta_pose;
42
            enemy.image_index = 0;
43
            enemy.image_speed = 0.5;
44
            enemy_x = enemy.x;
45
            enemy_y = enemy.y;
46
            subact_state = "pose";
47
            enemy_time = -1;
48
            timerb = 0;
49
        }
50
        break;
51
    case "pose":
52
        timerb++;
53
        if (timerb == 14)
54
            instance_create(enemy.x + 12, enemy.y + 90, obj_shutta_shine);
55
        if (timerb == 30)
56
            enemy.image_speed = 0;
57
        if (timerb == 42)
58
        {
59
            enemy.sprite_index = spr_shutta_pose_return;
60
            enemy.image_index = 0;
61
            enemy.image_speed = 0.5;
62
        }
63
        if (timerb == 51)
64
        {
65
            subact_state = "posewait";
66
            enemy_time = -1;
67
            enemy.sprite_index = spr_shutta_idle;
68
            enemy.image_speed = 0.16666666666666666;
69
            timerb = 0;
70
        }
71
        break;
72
    case "posewait":
73
        break;
74
    case "capture":
75
        if (got_kris && closest_hero == "kris")
76
        {
77
            enemy.photosuccesscount++;
78
            endmessage = message_nicephoto;
79
            if (enemy.amiabossfight == true)
80
            {
81
                obj_shutta_photo_controller.endmessage = message_kris;
82
                if (global.flag[513 shuttah_kris_pic] > 0)
83
                    obj_shutta_photo_controller.endmessage = message_kris2;
84
            }
85
            global.flag[513 shuttah_kris_pic] = 1;
86
        }
87
        else if (got_susie && closest_hero == "susie")
88
        {
89
            enemy.photosuccesscount++;
90
            endmessage = message_nicephoto;
91
            if (enemy.amiabossfight == true)
92
            {
93
                obj_shutta_photo_controller.endmessage = message_susie;
94
                if (global.flag[514 shuttah_susie_pic] > 0)
95
                    obj_shutta_photo_controller.endmessage = message_susie2;
96
            }
97
            global.flag[514 shuttah_susie_pic] = 1;
98
        }
99
        else if (got_ralsei && closest_hero == "ralsei")
100
        {
101
            enemy.photosuccesscount++;
102
            endmessage = message_nicephoto;
103
            if (enemy.amiabossfight == true)
104
            {
105
                if (global.flag[515 shuttah_ralsei_pic] == 0)
106
                    obj_shutta_photo_controller.endmessage = message_ralsei;
107
                if (global.flag[515 shuttah_ralsei_pic] > 0)
108
                    obj_shutta_photo_controller.endmessage = message_ralsei2;
109
            }
110
            global.flag[515 shuttah_ralsei_pic] = 1;
111
        }
112
        else if (enemy.sprite_index == spr_shutta_pose && enemy.image_index >= 7 && place_meeting(x, y, enemy) && collision_circle(x, y, reticle_size, obj_shutta_shine, false, true))
113
        {
114
            if (enemy.amiabossfight == true)
115
            {
116
                if (fastphoto)
117
                    mercygained += 12;
118
                else
119
                    mercygained += 12;
120
            }
121
            else
122
            {
123
                mercygained += 100;
124
            }
125
            if (!i_ex(obj_shutta_text))
126
            {
127
                var _comment = instance_create(x, y, obj_shutta_text);
128
                _comment.text = comment_center;
129
                _comment.color = c_yellow;
130
            }
131
            obj_shutta_photo_controller.endmessage = message_nicephoto;
132
            if (enemy.amiabossfight == true)
133
                obj_shutta_photo_controller.endmessage = message_nicephoto2;
134
        }
135
        else
136
        {
137
            if (enemy.amiabossfight == true)
138
            {
139
                if (fastphoto)
140
                    mercygained += 6;
141
                else
142
                    mercygained += 6;
143
            }
144
            else if (fastphoto)
145
            {
146
                mercygained += 50;
147
            }
148
            else
149
            {
150
                mercygained += 50;
151
            }
152
            obj_shutta_photo_controller.endmessage = message_badphoto;
153
            if ((place_meeting(x, y, enemy) && !collision_circle(x, y, reticle_size, obj_shutta_shine, false, true)) || !place_meeting(x, y, enemy))
154
            {
155
                if (enemy.amiabossfight == true)
156
                    obj_shutta_photo_controller.endmessage = message_notcentered;
157
            }
158
            else if (enemy.amiabossfight == true)
159
            {
160
                obj_shutta_photo_controller.endmessage = message_unposed;
161
            }
162
        }
163
        break;
164
    case "post_capture":
165
        with (enemy)
166
        {
167
            x = xstart;
168
            y = ystart;
169
            jumping = false;
170
            sprite_index = spr_shutta_idle;
171
            image_yscale = 2;
172
        }
173
        break;
174
}
175
enemy_time++;