Skip to content

Commit c57db13

Browse files
author
lofcz
committed
Update komponenty SimpleAI
1 parent 208c34d commit c57db13

File tree

6 files changed

+120
-246
lines changed

6 files changed

+120
-246
lines changed

SimplexRPGEngine/Engine source/DragonRise3.project.gmx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1092,8 +1092,10 @@
10921092
<object>objects\parNPC</object>
10931093
</objects>
10941094
<objects name="Animals">
1095-
<object>objects\oBunny</object>
1096-
<object>objects\oRat</object>
1095+
<objects name="Idle">
1096+
<object>objects\oBunny</object>
1097+
<object>objects\oRat</object>
1098+
</objects>
10971099
</objects>
10981100
</objects>
10991101
<objects name="Controllers">

SimplexRPGEngine/Engine source/objects/oBunny.object.gmx

Lines changed: 7 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -44,18 +44,16 @@ fovRange = 128;
4444

4545
//event_user(0);
4646

47-
life = 2;
48-
mySpeed = 2;
49-
docile = true;
5047

51-
myLife = life;
52-
paces = 0;
53-
canMove = true;
48+
docile = true;
49+
paces = 0;
50+
canMove = true;
5451
horiSpeed = 0;
5552
vertSpeed = 0;
56-
state = "idle";
57-
idleTimer = 1*room_speed;
58-
face = 0;
53+
state = "idle";
54+
idleTimer = 1 * room_speed;
55+
face = 0;
56+
5957

6058
</string>
6159
</argument>
@@ -167,102 +165,8 @@ y = floor(y);
167165
event_inherited();
168166
if (sprite_index != noone) {draw_self();}
169167
if (hp &lt;= 0) {image_alpha = 0;}
170-
/*
171-
// Draw FOV
172-
if (dir == "d") {x2 = x + fovRange; y2 = y + fovRange; x3 = x + fovRange; y3 = y - fovRange;}
173-
if (dir == "s") {x2 = x - fovRange; y2 = y + fovRange; x3 = x + fovRange; y3 = y + fovRange;}
174-
175-
draw_triangle(x, y, x2, y2, x3, y3, true);
176-
draw_circle(x, y, 64, true);
177-
178-
draw_circle(tarX, tarY, 8, false);
179-
//mp_grid_draw(grid);
180168

181-
if (x == xprevious &amp;&amp; y == yprevious)
182-
{
183-
mp_grid_destroy(grid);
184-
path_delete(path);
185-
event_user(0);
186-
}
187-
*/
188169
if (canMove) {scrSimpleAiStep(horiSpeed, vertSpeed, parSolid);}
189-
190-
if (canMove)
191-
{
192-
switch (state)
193-
{
194-
case ("idle"):
195-
idleTimer--;
196-
if (idleTimer &lt;= 0)
197-
state = "turn";
198-
break;
199-
200-
case ("turn"):
201-
if (irandom(1))
202-
horiSpeed = choose(-3, 3);
203-
else
204-
vertSpeed = choose(-3, 3);
205-
paces = irandom_range(25, 50);
206-
state = "move";
207-
break;
208-
209-
case ("move"):
210-
paces--;
211-
if (x == xprevious)
212-
&amp;&amp; (y == yprevious)
213-
|| (paces &lt;= 0)
214-
state = "stop";
215-
break;
216-
217-
case ("stop"):
218-
horiSpeed = 0;
219-
vertSpeed = 0;
220-
state = "idle";
221-
idleTimer = 1*room_speed;
222-
break;
223-
224-
case ("stagger"):
225-
staggerTimer--;
226-
image_blend = merge_color(c_white, c_red, lengthdir_x(1, staggerTimer*15));
227-
if (staggerTimer &lt;= 0)
228-
{
229-
image_blend = c_white;
230-
state = "idle";
231-
beenHit = false;
232-
if (myLife &lt;= 0)
233-
hide = true;
234-
}
235-
236-
// Do stagger
237-
switch (face)
238-
{
239-
case (0): vertSpeed = staggerTimer/5; break;
240-
case (1): vertSpeed = staggerTimer/5; break;
241-
case (2): horiSpeed = staggerTimer/5; break;
242-
case (3): horiSpeed = staggerTimer/5; break;
243-
}
244-
break;
245-
}
246-
247-
// Sprite and animation management
248-
if (vertSpeed &lt; 0) face = 0;
249-
if (vertSpeed &gt; 0) face = 1;
250-
if (horiSpeed &gt; 0) face = 2;
251-
if (horiSpeed &lt; 0) face = 3;
252-
//SetSpriteFromFace(sprChickenWalkNorth, sprChickenWalkSouth, sprChickenWalkEast, sprChickenWalkWest);
253-
254-
// Adjust animation phase cycle
255-
if (face == 0) {if (image_index &lt; 12 || image_index &gt; 15) {image_index = 12;}}
256-
if (face == 1) {if (image_index &lt; 0 || image_index &gt; 3.9) {image_index = 0;}}
257-
if (face == 2) {if (image_index &lt; 9 || image_index &gt; 11.9) {image_index = 9;}}
258-
if (face == 3) {if (image_index &lt; 4 || image_index &gt; 7.9) {image_index = 4;}}
259-
260-
if (x != xprevious)
261-
|| (y != yprevious)
262-
image_speed = 0.15;
263-
else
264-
image_index = 0;
265-
}
266170
</string>
267171
</argument>
268172
</arguments>

SimplexRPGEngine/Engine source/objects/oRat.object.gmx

Lines changed: 7 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,15 @@ x3 = 0;
4242
y3 = 0;
4343
fovRange = 128;
4444

45-
//event_user(0);
4645

47-
life = 2;
48-
mySpeed = 2;
49-
docile = true;
50-
51-
myLife = life;
52-
paces = 0;
53-
canMove = true;
46+
docile = true;
47+
paces = 0;
48+
canMove = true;
5449
horiSpeed = 0;
5550
vertSpeed = 0;
56-
state = "idle";
57-
idleTimer = 1*room_speed;
58-
face = 0;
51+
state = "idle";
52+
idleTimer = 1 * room_speed;
53+
face = 0;
5954

6055
</string>
6156
</argument>
@@ -138,108 +133,11 @@ event_user(0);
138133
<arguments>
139134
<argument>
140135
<kind>1</kind>
141-
<string>x = floor(x);
142-
y = floor(y);
143-
144-
event_inherited();
136+
<string>event_inherited();
145137
if (sprite_index != noone) {draw_self();}
146138
if (hp &lt;= 0) {image_alpha = 0;}
147-
/*
148-
// Draw FOV
149-
if (dir == "d") {x2 = x + fovRange; y2 = y + fovRange; x3 = x + fovRange; y3 = y - fovRange;}
150-
if (dir == "s") {x2 = x - fovRange; y2 = y + fovRange; x3 = x + fovRange; y3 = y + fovRange;}
151139

152-
draw_triangle(x, y, x2, y2, x3, y3, true);
153-
draw_circle(x, y, 64, true);
154-
155-
draw_circle(tarX, tarY, 8, false);
156-
//mp_grid_draw(grid);
157-
158-
if (x == xprevious &amp;&amp; y == yprevious)
159-
{
160-
mp_grid_destroy(grid);
161-
path_delete(path);
162-
event_user(0);
163-
}
164-
*/
165140
if (canMove) {scrSimpleAiStep(horiSpeed, vertSpeed, parSolid);}
166-
167-
if (canMove)
168-
{
169-
switch (state)
170-
{
171-
case ("idle"):
172-
idleTimer--;
173-
if (idleTimer &lt;= 0)
174-
state = "turn";
175-
break;
176-
177-
case ("turn"):
178-
if (irandom(1))
179-
horiSpeed = choose(-3, 3);
180-
else
181-
vertSpeed = choose(-3, 3);
182-
paces = irandom_range(25, 50);
183-
state = "move";
184-
break;
185-
186-
case ("move"):
187-
paces--;
188-
if (x == xprevious)
189-
&amp;&amp; (y == yprevious)
190-
|| (paces &lt;= 0)
191-
state = "stop";
192-
break;
193-
194-
case ("stop"):
195-
horiSpeed = 0;
196-
vertSpeed = 0;
197-
state = "idle";
198-
idleTimer = 1*room_speed;
199-
break;
200-
201-
case ("stagger"):
202-
staggerTimer--;
203-
image_blend = merge_color(c_white, c_red, lengthdir_x(1, staggerTimer*15));
204-
if (staggerTimer &lt;= 0)
205-
{
206-
image_blend = c_white;
207-
state = "idle";
208-
beenHit = false;
209-
if (myLife &lt;= 0)
210-
hide = true;
211-
}
212-
213-
// Do stagger
214-
switch (face)
215-
{
216-
case (0): vertSpeed = staggerTimer/5; break;
217-
case (1): vertSpeed = staggerTimer/5; break;
218-
case (2): horiSpeed = staggerTimer/5; break;
219-
case (3): horiSpeed = staggerTimer/5; break;
220-
}
221-
break;
222-
}
223-
224-
// Sprite and animation management
225-
if (vertSpeed &lt; 0) face = 0;
226-
if (vertSpeed &gt; 0) face = 1;
227-
if (horiSpeed &gt; 0) face = 2;
228-
if (horiSpeed &lt; 0) face = 3;
229-
//SetSpriteFromFace(sprChickenWalkNorth, sprChickenWalkSouth, sprChickenWalkEast, sprChickenWalkWest);
230-
231-
// Adjust animation phase cycle
232-
if (face == 0) {if (image_index &lt; 12 || image_index &gt; 15) {image_index = 12;}}
233-
if (face == 1) {if (image_index &lt; 0 || image_index &gt; 3.9) {image_index = 0;}}
234-
if (face == 2) {if (image_index &lt; 9 || image_index &gt; 11.9) {image_index = 9;}}
235-
if (face == 3) {if (image_index &lt; 4 || image_index &gt; 7.9) {image_index = 4;}}
236-
237-
if (x != xprevious)
238-
|| (y != yprevious)
239-
image_speed = 0.15;
240-
else
241-
image_index = 0;
242-
}
243141
</string>
244142
</argument>
245143
</arguments>

SimplexRPGEngine/Engine source/objects/parEnemy.object.gmx

Lines changed: 9 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -124,32 +124,6 @@ scrEnemyGetPosition();
124124

125125
scrEnemyGetDamage();
126126

127-
</string>
128-
</argument>
129-
</arguments>
130-
</action>
131-
</event>
132-
<event eventtype="7" enumb="0">
133-
<action>
134-
<libid>1</libid>
135-
<id>603</id>
136-
<kind>7</kind>
137-
<userelative>0</userelative>
138-
<isquestion>0</isquestion>
139-
<useapplyto>-1</useapplyto>
140-
<exetype>2</exetype>
141-
<functionname></functionname>
142-
<codestring></codestring>
143-
<whoName>self</whoName>
144-
<relative>0</relative>
145-
<isnot>0</isnot>
146-
<arguments>
147-
<argument>
148-
<kind>1</kind>
149-
<string>/// Return to last position
150-
151-
scrEnemyCollision(self);
152-
153127
</string>
154128
</argument>
155129
</arguments>
@@ -174,6 +148,15 @@ scrEnemyCollision(self);
174148
<kind>1</kind>
175149
<string>/// Draw self
176150

151+
if (x &gt; room_width - 32 || y &gt; room_height - 32 || x &lt; 32 || y &lt; 32)
152+
{
153+
instance_set_position(xprevious, yprevious);
154+
state = "turn";
155+
scrEnemyGetPosition();
156+
mood = "idle";
157+
}
158+
159+
177160
// Cutscenes
178161
if (timeline_running &amp;&amp; (timeline_position &gt; (timeline_max_moment(timeline_index) + global.cutsceneTime)))
179162
{

SimplexRPGEngine/Engine source/rooms/mapTest.room.gmx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,9 @@
462462
<instance objName="oBunny" x="1312" y="192" name="inst_CE4E33AE" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
463463
<instance objName="oBunny" x="1552" y="368" name="inst_204718FC" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
464464
<instance objName="oBarrelExplosive" x="336" y="1584" name="inst_30BCA0D5" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
465+
<instance objName="oRat" x="1648" y="896" name="inst_15C5E85A" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
466+
<instance objName="oRat" x="1792" y="816" name="inst_13E97342" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
467+
<instance objName="oRat" x="1760" y="1024" name="inst_BCD3C213" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
465468
</instances>
466469
<tiles>
467470
<tile bgName="bcgShd1" x="1600" y="1712" w="32" h="32" xo="32" yo="0" id="10006696" name="inst_AC26E277" depth="1000001" locked="0" colour="4294967295" scaleX="1" scaleY="1"/>

0 commit comments

Comments
 (0)