1 |
function sw_laser(argument0, argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10) //gml_Script_sw_laser |
2 |
{ |
3 |
var _x1 = argument0 |
4 |
var _y1 = argument1 |
5 |
var _x2 = argument2 |
6 |
var _y2 = argument3 |
7 |
var _w1 = argument4 |
8 |
var _w2 = argument5 |
9 |
var _c1 = argument6 |
10 |
var _c3 = argument7 |
11 |
var _c2 = merge_color(_c1, _c3, 0.1) |
12 |
var _a1 = argument8 |
13 |
var _a2 = argument9 |
14 |
var _a3 = argument10 |
15 |
_dir = point_direction(_x1, _y1, _x2, _y2) |
16 |
var _s = max(1, ceil((_w1 + _w2 * 2) / 16)) |
17 |
var _amt = 90 / _s |
18 |
draw_primitive_begin(5) |
19 |
for (var i = 0; i <= _s; i++) |
20 |
{ |
21 |
draw_vertex_color((_x1 + (lengthdir_x((_w1 / 2), (_dir + 180 + i * _amt)))), (_y1 + (lengthdir_y((_w1 / 2), (_dir + 180 + i * _amt)))), _c2, _a2) |
22 |
draw_vertex_color(_x1, _y1, _c1, _a1) |
23 |
} |
24 |
for (i = 0; i <= _s; i++) |
25 |
{ |
26 |
draw_vertex_color((_x2 + (lengthdir_x((_w1 / 2), (_dir - 90 + i * _amt)))), (_y2 + (lengthdir_y((_w1 / 2), (_dir - 90 + i * _amt)))), _c2, _a2) |
27 |
draw_vertex_color(_x2, _y2, _c1, _a1) |
28 |
} |
29 |
for (i = 0; i <= _s; i++) |
30 |
{ |
31 |
draw_vertex_color((_x2 + (lengthdir_x((_w1 / 2), (_dir + i * _amt)))), (_y2 + (lengthdir_y((_w1 / 2), (_dir + i * _amt)))), _c2, _a2) |
32 |
draw_vertex_color(_x2, _y2, _c1, _a1) |
33 |
} |
34 |
for (i = 0; i <= _s; i++) |
35 |
{ |
36 |
draw_vertex_color((_x1 + (lengthdir_x((_w1 / 2), (_dir + 180 - 90 + i * _amt)))), (_y1 + (lengthdir_y((_w1 / 2), (_dir + 180 - 90 + i * _amt)))), _c2, _a2) |
37 |
draw_vertex_color(_x1, _y1, _c1, _a1) |
38 |
} |
39 |
draw_primitive_end() |
40 |
draw_primitive_begin(5) |
41 |
for (i = 0; i <= _s; i++) |
42 |
{ |
43 |
draw_vertex_color((_x1 + (lengthdir_x((_w1 / 2 + _w2), (_dir + 180 + i * _amt)))), (_y1 + (lengthdir_y((_w1 / 2 + _w2), (_dir + 180 + i * _amt)))), _c3, _a3) |
44 |
draw_vertex_color((_x1 + (lengthdir_x((_w1 / 2), (_dir + 180 + i * _amt)))), (_y1 + (lengthdir_y((_w1 / 2), (_dir + 180 + i * _amt)))), _c2, _a2) |
45 |
} |
46 |
for (i = 0; i <= _s; i++) |
47 |
{ |
48 |
draw_vertex_color((_x2 + (lengthdir_x((_w1 / 2 + _w2), (_dir - 90 + i * _amt)))), (_y2 + (lengthdir_y((_w1 / 2 + _w2), (_dir - 90 + i * _amt)))), _c3, _a3) |
49 |
draw_vertex_color((_x2 + (lengthdir_x((_w1 / 2), (_dir - 90 + i * _amt)))), (_y2 + (lengthdir_y((_w1 / 2), (_dir - 90 + i * _amt)))), _c2, _a2) |
50 |
} |
51 |
for (i = 0; i <= _s; i++) |
52 |
{ |
53 |
draw_vertex_color((_x2 + (lengthdir_x((_w1 / 2 + _w2), (_dir + i * _amt)))), (_y2 + (lengthdir_y((_w1 / 2 + _w2), (_dir + i * _amt)))), _c3, _a3) |
54 |
draw_vertex_color((_x2 + (lengthdir_x((_w1 / 2), (_dir + i * _amt)))), (_y2 + (lengthdir_y((_w1 / 2), (_dir + i * _amt)))), _c2, _a2) |
55 |
} |
56 |
for (i = 0; i <= _s; i++) |
57 |
{ |
58 |
draw_vertex_color((_x1 + (lengthdir_x((_w1 / 2 + _w2), (_dir + 180 - 90 + i * _amt)))), (_y1 + (lengthdir_y((_w1 / 2 + _w2), (_dir + 180 - 90 + i * _amt)))), _c3, _a3) |
59 |
draw_vertex_color((_x1 + (lengthdir_x((_w1 / 2), (_dir + 180 - 90 + i * _amt)))), (_y1 + (lengthdir_y((_w1 / 2), (_dir + 180 - 90 + i * _amt)))), _c2, _a2) |
60 |
} |
61 |
draw_primitive_end() |
62 |
} |