1 //pillbug brain
2
main(void)3 void main( void )
4 {
5 int &fsave_x;
6 int &kcrap;
7 int &fsave_y;
8 int &resist;
9 int &mcounter;
10 int &mtarget;
11 screenlock(1);
12 sp_brain(¤t_sprite, 10);
13 sp_timing(¤t_sprite, 66);
14 sp_speed(¤t_sprite, 1);
15 sp_nohit(¤t_sprite, 0);
16 sp_exp(¤t_sprite, 400);
17 sp_base_walk(¤t_sprite, 200);
18 sp_base_death(¤t_sprite, 210);
19 sp_touch_damage(¤t_sprite, 10);
20 sp_hitpoints(¤t_sprite, 80);
21 sp_defense(¤t_sprite, 8);
22 preload_seq(202);
23 preload_seq(204);
24 preload_seq(206);
25 preload_seq(208);
26 preload_Seq(70);
27 preload_Seq(166);
28
29 set_callback_random("target",500,2000);
30
31 }
32
target(void)33 void target( void )
34 {
35 //get new target
36 &kcrap = random(9, 1);
37 if (&life < 1)
38 &kcrap = 2;
39
40 if (&kcrap == 1)
41 {
42 sp_target(¤t_sprite, 1);
43 return;
44 }
45
46 &mtarget = get_sprite_with_this_brain(16, ¤t_sprite);
47 if (&mtarget > 0)
48 {
49
50 &mtarget = get_rand_sprite_with_this_brain(16, ¤t_sprite);
51 sp_target(¤t_sprite, &mtarget);
52 }
53
54 }
55
56
57
58
attack(void)59 void attack( void )
60 {
61
62 playsound(47, 22050,0,0,0);
63
64 &kcrap = sp_target(¤t_sprite, -1);
65 &fsave_x = sp_x(&kcrap, -1);
66 &fsave_y = sp_y(&kcrap, -1);
67 &mcounter = random(5000,3000);
68 sp_attack_wait(¤t_sprite, &mcounter);
69
70 &resist = random(40, 1);
71
72 //if NPC, turn off resist option
73 if (&kcrap != 1)
74 &resist = 100000;
75
76 if (&resist > &magic)
77 {
78 say("`4<Casts harm>", ¤t_sprite);
79
80 playsound(31, 12050,0,0, 0);
81 hurt(&kcrap, 20);
82
83 &fsave_y -= 29;
84 int &spark = create_sprite(&fsave_x, &fsave_y, 7, 70, 1);
85 sp_seq(&spark, 70);
86 sp_que(&spark, -70);
87 sp_speed(&spark, 5);
88 return;
89 }
90
91 playsound(31, 44050,0,0, 0);
92 &fsave_y -= 29;
93 int &spark = create_sprite(&fsave_x, &fsave_y, 7, 166, 1);
94 sp_seq(&spark, 166);
95 sp_que(&spark, -70);
96 say("Magic resisted.", &kcrap);
97 }
98
hit(void)99 void hit( void )
100 {
101 sp_target(¤t_sprite, &enemy_sprite);
102 playsound(46, 17050, 4000, ¤t_sprite, 0);
103 //lock on to the guy who just hit us
104 //playsound
105 }
106
die(void)107 void die( void )
108 {
109
110 if (get_sprite_with_this_brain(10, ¤t_sprite) == 0)
111 {
112 //no more brain 10 monsters here, lets unlock the screen
113 if (&life > 0)
114 {
115 spawn("s5-end");
116 }
117 }
118
119 int &hold = sp_editor_num(¤t_sprite);
120 if (&hold != 0)
121 editor_type(&hold, 6);
122
123 &save_x = sp_x(¤t_sprite, -1);
124 &save_y = sp_y(¤t_sprite, -1);
125
126 external("emake","xlarge");
127
128 }
129