File: CastleCreatures.TCreatureResource.html

package info (click to toggle)
castle-game-engine 5.2.0-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 185,428 kB
  • sloc: pascal: 260,781; cpp: 1,363; objc: 713; makefile: 537; xml: 496; sh: 480; php: 4
file content (569 lines) | stat: -rw-r--r-- 41,296 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<title>Castle Game Engine: CastleCreatures: Class TCreatureResource</title>
<meta name="generator" content="PasDoc 0.13.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="StyleSheet" type="text/css" href="pasdoc.css">
</head>
<body>
<table class="container"><tr><td class="navigation">
<h2>Castle Game Engine</h2><p><a href="introduction.html" class="navigation">Introduction</a></p><p><a href="AllUnits.html" class="navigation">Units</a></p><p><a href="ClassHierarchy.html" class="navigation">Class Hierarchy</a></p><p><a href="AllClasses.html" class="navigation">Classes, Interfaces, Objects and Records</a></p><p><a href="AllTypes.html" class="navigation">Types</a></p><p><a href="AllVariables.html" class="navigation">Variables</a></p><p><a href="AllConstants.html" class="navigation">Constants</a></p><p><a href="AllFunctions.html" class="navigation">Functions and Procedures</a></p><p><a href="AllIdentifiers.html" class="navigation">Identifiers</a></p></td><td class="content">
<a name="TCreatureResource"></a><h1 class="cio">Class TCreatureResource</h1>
<table class="sections wide_list">
<tr>
<td><a class="section" href="#PasDoc-Description">Description</a></td><td><a class="section" href="#PasDoc-Hierarchy">Hierarchy</a></td><td><a class="section" href="#PasDoc-Fields">Fields</a></td><td><a class="section" href="#PasDoc-Methods">Methods</a></td><td><a class="section" href="#PasDoc-Properties">Properties</a></td></tr></table>
<a name="PasDoc-Description"></a><h2 class="unit">Unit</h2>
<p class="unitlink">
<a  href="CastleCreatures.html">CastleCreatures</a></p>
<h2 class="declaration">Declaration</h2>
<p class="declaration">
<code>type TCreatureResource = class(<a class="normal" href="CastleResources.T3DResource.html">T3DResource</a>)</code></p>
<h2 class="description">Description</h2>
<p>
Basic abstract resource used by all creatures. Basic creature can walk or fly, has life and can be hurt, can fall down because of gravity and such.

<p>A &quot;resource&quot; is an information shared by all creatures of given type, for example you can have two instances of <code>TCreatureResource</code>: Werewolf and Knight. Actually, they would have to be instances of one of the <code>TCreatureResource</code> descendants, like <a class="normal" href="CastleCreatures.TWalkAttackCreatureResource.html">TWalkAttackCreatureResource</a>, as <code>TCreatureResource</code> is abstract. Using them you can create and place on your your level milions of actual werewolves and knights (for example instances of <a class="normal" href="CastleCreatures.TWalkAttackCreature.html">TWalkAttackCreature</a>). Every werewolf on the level will have potentially different life and state (attacking, walking), but all werewolves will share the same resource, so e.g. all werewolves will use the same dying animation (<a class="normal" href="CastleCreatures.TWalkAttackCreatureResource.html#DieAnimation">TWalkAttackCreatureResource.DieAnimation</a>) and dying sound (<a class="normal" href="CastleCreatures.TCreatureResource.html#SoundDie">TCreatureResource.SoundDie</a>).

<p>Note that some of the information stored in resource is only used to initialize new creatures and can be changed later during creature life, for example <a class="normal" href="CastleCreatures.TCreatureResource.html#DefaultMaxLife">TCreatureResource.DefaultMaxLife</a> and <a class="normal" href="CastleCreatures.TCreatureResource.html#Flying">TCreatureResource.Flying</a>.</p>
<a name="PasDoc-Hierarchy"></a><h2 class="hierarchy">Hierarchy</h2>
<ul class="hierarchy"><li class="ancestor">TObject</li>
<li class="ancestor"><a class="normal" href="CastleResources.T3DResource.html">T3DResource</a></li>
<li class="thisitem">TCreatureResource</li></ul><h2 class="overview">Overview</h2>
<a name="PasDoc-Fields"></a><h3 class="summary">Fields</h3>
<table class="summary wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCreatures.TCreatureResource.html#DefaultDefaultMaxLife">DefaultDefaultMaxLife</a></b> = 100.0;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCreatures.TCreatureResource.html#DefaultFlying">DefaultFlying</a></b> = false;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCreatures.TCreatureResource.html#DefaultKnockBackDistance">DefaultKnockBackDistance</a></b> = 4.0;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCreatures.TCreatureResource.html#DefaultSoundDieTiedToCreature">DefaultSoundDieTiedToCreature</a></b> = true;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCreatures.TCreatureResource.html#DefaultAttackDamageConst">DefaultAttackDamageConst</a></b> = 0.0;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCreatures.TCreatureResource.html#DefaultAttackDamageRandom">DefaultAttackDamageRandom</a></b> = 0.0;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCreatures.TCreatureResource.html#DefaultAttackKnockbackDistance">DefaultAttackKnockbackDistance</a></b> = 0.0;</code></td>
</tr>
</table>
<a name="PasDoc-Methods"></a><h3 class="summary">Methods</h3>
<table class="summary wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCreatures.TCreatureResource.html#RadiusCalculate">RadiusCalculate</a></b>(const GravityUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>): Single; virtual;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCreatures.TCreatureResource.html#PrepareCore">PrepareCore</a></b>(const BaseLights: <a  href="Castle3D.html#TAbstractLightInstancesList">TAbstractLightInstancesList</a>; const GravityUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const DoProgress: boolean); override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCreatures.TCreatureResource.html#FlexibleUp">FlexibleUp</a></b>: boolean; virtual;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>constructor <b><a  href="CastleCreatures.TCreatureResource.html#Create">Create</a></b>(const AName: string); override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCreatures.TCreatureResource.html#Radius">Radius</a></b>: Single;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCreatures.TCreatureResource.html#CreateCreature">CreateCreature</a></b>(World: <a  href="Castle3D.T3DWorld.html">T3DWorld</a>; const APosition, ADirection: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const MaxLife: Single): <a  href="CastleCreatures.TCreature.html">TCreature</a>; virtual; overload;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCreatures.TCreatureResource.html#CreateCreature">CreateCreature</a></b>(World: <a  href="Castle3D.T3DWorld.html">T3DWorld</a>; const APosition, ADirection: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>): <a  href="CastleCreatures.TCreature.html">TCreature</a>; overload;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCreatures.TCreatureResource.html#InstantiatePlaceholder">InstantiatePlaceholder</a></b>(World: <a  href="Castle3D.T3DWorld.html">T3DWorld</a>; const APosition, ADirection: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const NumberPresent: boolean; const Number: Int64); override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCreatures.TCreatureResource.html#CreatureClass">CreatureClass</a></b>: <a  href="CastleCreatures.html#TCreatureClass">TCreatureClass</a>; virtual; abstract;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCreatures.TCreatureResource.html#LoadFromFile">LoadFromFile</a></b>(ResourceConfig: <a  href="CastleXMLConfig.TCastleConfig.html">TCastleConfig</a>); override;</code></td>
</tr>
</table>
<a name="PasDoc-Properties"></a><h3 class="summary">Properties</h3>
<table class="summary wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#Flying">Flying</a></b>: boolean read FFlying write FFlying default <a  href="CastleCreatures.TCreatureResource.html#DefaultFlying">DefaultFlying</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#SoundSuddenPain">SoundSuddenPain</a></b>: <a  href="CastleSoundEngine.html#TSoundType">TSoundType</a>
      read FSoundSuddenPain write FSoundSuddenPain default <a  href="CastleSoundEngine.html#stNone">stNone</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#SoundDie">SoundDie</a></b>: <a  href="CastleSoundEngine.html#TSoundType">TSoundType</a>
      read FSoundDie write FSoundDie default <a  href="CastleSoundEngine.html#stNone">stNone</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#SoundDieTiedToCreature">SoundDieTiedToCreature</a></b>: boolean
      read FSoundDieTiedToCreature write FSoundDieTiedToCreature
      default <a  href="CastleCreatures.TCreatureResource.html#DefaultSoundDieTiedToCreature">DefaultSoundDieTiedToCreature</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#DefaultMaxLife">DefaultMaxLife</a></b>: Single
      read FDefaultMaxLife write FDefaultMaxLife default <a  href="CastleCreatures.TCreatureResource.html#DefaultDefaultMaxLife">DefaultDefaultMaxLife</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#KnockBackDistance">KnockBackDistance</a></b>: Single
      read FKnockBackDistance write FKnockBackDistance
      default <a  href="CastleCreatures.TCreatureResource.html#DefaultKnockBackDistance">DefaultKnockBackDistance</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#KnockBackSpeed">KnockBackSpeed</a></b>: Single
      read FKnockBackSpeed write FKnockBackSpeed
      default <a  href="Castle3D.T3DAlive.html#DefaultKnockBackSpeed">T3DAlive.DefaultKnockBackSpeed</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#AttackDamageConst">AttackDamageConst</a></b>: Single
      read FAttackDamageConst write FAttackDamageConst default <a  href="CastleCreatures.TCreatureResource.html#DefaultAttackDamageConst">DefaultAttackDamageConst</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#AttackDamageRandom">AttackDamageRandom</a></b>: Single
      read FAttackDamageRandom write FAttackDamageRandom default <a  href="CastleCreatures.TCreatureResource.html#DefaultAttackDamageRandom">DefaultAttackDamageRandom</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#AttackKnockbackDistance">AttackKnockbackDistance</a></b>: Single
      read FAttackKnockbackDistance write FAttackKnockbackDistance default <a  href="CastleCreatures.TCreatureResource.html#DefaultAttackKnockbackDistance">DefaultAttackKnockbackDistance</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#MiddleHeight">MiddleHeight</a></b>: Single
      read FMiddleHeight write FMiddleHeight
      default <a  href="Castle3D.T3DCustomTransform.html#DefaultMiddleHeight">T3DCustomTransform.DefaultMiddleHeight</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#FallMinHeightToSound">FallMinHeightToSound</a></b>: Single
      read FFallMinHeightToSound write FFallMinHeightToSound default <a  href="Castle3D.html#DefaultCreatureFallMinHeightToSound">DefaultCreatureFallMinHeightToSound</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#FallMinHeightToDamage">FallMinHeightToDamage</a></b>: Single
      read FFallMinHeightToDamage write FFallMinHeightToDamage default <a  href="Castle3D.html#DefaultFallMinHeightToDamage">DefaultFallMinHeightToDamage</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#FallDamageScaleMin">FallDamageScaleMin</a></b>: Single
      read FFallDamageScaleMin write FFallDamageScaleMin default <a  href="Castle3D.html#DefaultFallDamageScaleMin">DefaultFallDamageScaleMin</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#FallDamageScaleMax">FallDamageScaleMax</a></b>: Single
      read FFallDamageScaleMax write FFallDamageScaleMax default <a  href="Castle3D.html#DefaultFallDamageScaleMax">DefaultFallDamageScaleMax</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCreatures.TCreatureResource.html#FallSound">FallSound</a></b>: <a  href="CastleSoundEngine.html#TSoundType">TSoundType</a>
      read FFallSound write FFallSound;</code></td>
</tr>
</table>
<h2 class="description">Description</h2>
<h3 class="detail">Fields</h3>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultDefaultMaxLife"></a><code>internal const <b>DefaultDefaultMaxLife</b> = 100.0;</code></td>
</tr>
<tr><td colspan="2">
<p>
Default value for <a class="normal" href="CastleCreatures.TCreatureResource.html#DefaultMaxLife">TCreatureResource.DefaultMaxLife</a>. Yes, it's not a typo, this identifier starts with &quot;DefaultDefault&quot;.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultFlying"></a><code>internal const <b>DefaultFlying</b> = false;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultKnockBackDistance"></a><code>internal const <b>DefaultKnockBackDistance</b> = 4.0;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultSoundDieTiedToCreature"></a><code>internal const <b>DefaultSoundDieTiedToCreature</b> = true;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultAttackDamageConst"></a><code>internal const <b>DefaultAttackDamageConst</b> = 0.0;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultAttackDamageRandom"></a><code>internal const <b>DefaultAttackDamageRandom</b> = 0.0;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultAttackKnockbackDistance"></a><code>internal const <b>DefaultAttackKnockbackDistance</b> = 0.0;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<h3 class="detail">Methods</h3>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="RadiusCalculate"></a><code>function <b>RadiusCalculate</b>(const GravityUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>): Single; virtual;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="PrepareCore"></a><code>procedure <b>PrepareCore</b>(const BaseLights: <a  href="Castle3D.html#TAbstractLightInstancesList">TAbstractLightInstancesList</a>; const GravityUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const DoProgress: boolean); override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="FlexibleUp"></a><code>function <b>FlexibleUp</b>: boolean; virtual;</code></td>
</tr>
<tr><td colspan="2">
<p>
Can the &quot;up&quot; vector be skewed, that is: not equal to gravity up vector. This is used when creating creature in <a class="normal" href="CastleCreatures.TCreatureResource.html#CreateCreature">CreateCreature</a>. The default implementation here returns <code>True</code>, which allows creature model to point slightly upward/downward.

<p>Override this to return <code>False</code> if given creature kind for some reason cannot have up vector different. For example, <a class="normal" href="CastleCreatures.TWalkAttackCreature.html">TWalkAttackCreature</a> AI assumes that the non-flying creature is always standing up. For now, non-flying <a class="normal" href="CastleCreatures.TWalkAttackCreature.html">TWalkAttackCreature</a> cannot &quot;stand up&quot; before walking, in case it's up vector gets skewed.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Create"></a><code>constructor <b>Create</b>(const AName: string); override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Radius"></a><code>function <b>Radius</b>: Single;</code></td>
</tr>
<tr><td colspan="2">
<p>
Sphere radius for collision detection for alive creatures. Must be something &lt;&gt; 0 for collision detection.

<p>You can define it in the creature resource.xml file, by setting radius=&quot;xxx&quot; attribute on the root &lt;resource&gt; element.

<p>If it's not defined (or zero) in resource.xml file, then we use automatically calculated radius using <a class="normal" href="CastleCreatures.TCreatureResource.html#RadiusCalculate">RadiusCalculate</a>, that is adjusted to the bounding box of the animation.

<p>Note that this radius is not used at all when creature is dead, as dead creatures usually have wildly different boxes (tall humanoid creature probably has a flat bounding box when it's dead lying on the ground), so trying to use (the same) radius would only cause problems. Using sphere collision is also not necessary for dead creatures. See <a class="normal" href="Castle3D.T3D.html#Sphere">T3D.Sphere</a> for more discussion about when the sphere is a useful bounding volume.

<p>The sphere center is the Middle point (&quot;eye position&quot;) of the given creature. If the creature may be affected by gravity then make sure radius is &lt; than PreferredHeight of the creature, see T3D.PreferredHeight, otherwise creature may get stuck into ground. In short, if you use the default implementations, PreferredHeight is by default <i><a class="normal" href="CastleCreatures.TCreatureResource.html#MiddleHeight">MiddleHeight</a> (default 0.5) * bounding box height</i>. Your radius must be smaller for all possible bounding box heights when the creature is not dead.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="CreateCreature"></a><code>function <b>CreateCreature</b>(World: <a  href="Castle3D.T3DWorld.html">T3DWorld</a>; const APosition, ADirection: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const MaxLife: Single): <a  href="CastleCreatures.TCreature.html">TCreature</a>; virtual; overload;</code></td>
</tr>
<tr><td colspan="2">
<p>
Create the <a class="normal" href="CastleCreatures.TCreature.html">TCreature</a> instance using this resource. Uses <a class="normal" href="CastleCreatures.TCreature.html">TCreature</a> descendant that can best cooperate with this resource, e.g. if this resource has settings for short-range fight, then the <a class="normal" href="CastleCreatures.TCreature.html">TCreature</a> instance will be able to short-range fight.

<p>The creature is added to the World, and it's owned by World.

<p>This is the only way to create <a class="normal" href="CastleCreatures.TCreature.html">TCreature</a> instances.

<p>ADirection passed here is normalized, and then used as initial TCreature.Direction value.

<p></p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="CreateCreature"></a><code>function <b>CreateCreature</b>(World: <a  href="Castle3D.T3DWorld.html">T3DWorld</a>; const APosition, ADirection: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>): <a  href="CastleCreatures.TCreature.html">TCreature</a>; overload;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="InstantiatePlaceholder"></a><code>procedure <b>InstantiatePlaceholder</b>(World: <a  href="Castle3D.T3DWorld.html">T3DWorld</a>; const APosition, ADirection: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const NumberPresent: boolean; const Number: Int64); override;</code></td>
</tr>
<tr><td colspan="2">
<p>
Instantiate creature placeholder, by calling <a class="normal" href="CastleCreatures.TCreatureResource.html#CreateCreature">CreateCreature</a>.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="CreatureClass"></a><code>function <b>CreatureClass</b>: <a  href="CastleCreatures.html#TCreatureClass">TCreatureClass</a>; virtual; abstract;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="LoadFromFile"></a><code>procedure <b>LoadFromFile</b>(ResourceConfig: <a  href="CastleXMLConfig.TCastleConfig.html">TCastleConfig</a>); override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<h3 class="detail">Properties</h3>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Flying"></a><code>property <b>Flying</b>: boolean read FFlying write FFlying default <a  href="CastleCreatures.TCreatureResource.html#DefaultFlying">DefaultFlying</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Flying creatures are not affected by gravity and (in case of <a class="normal" href="CastleCreatures.TWalkAttackCreatureResource.html">TWalkAttackCreatureResource</a>) their move direction is free.

<p>For all creatures, TCreature.Gravity (inherited from T3D.Gravity) is set to <code>&quot;not Flying&quot;</code> at creation. (Except <a class="normal" href="CastleCreatures.TMissileCreatureResource.html">TMissileCreatureResource</a>, that has special approach to gravity, see <a class="normal" href="CastleCreatures.TMissileCreatureResource.html#DirectionFallSpeed">TMissileCreatureResource.DirectionFallSpeed</a>.)

<p>For <a class="normal" href="CastleCreatures.TWalkAttackCreatureResource.html">TWalkAttackCreatureResource</a>, additionally Flying allows to move freely, while non-flying creatures are constrained to move (and think about moving) only horizontally.

<p>You can always change the Gravity property of a particular creature during it's lifetime, so a creature may start/stop flying during game. For example, this is how you can let your creatures to use jetpack and such. Be careful about creature <a class="normal" href="CastleCreatures.TCreatureResource.html#Radius">Radius</a> and <a class="normal" href="CastleCreatures.TCreatureResource.html#MiddleHeight">MiddleHeight</a> properties in this case, make sure that the values (explicitly set or automatically calculated) are suitable for both flying and non-flying states.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="SoundSuddenPain"></a><code>property <b>SoundSuddenPain</b>: <a  href="CastleSoundEngine.html#TSoundType">TSoundType</a>
      read FSoundSuddenPain write FSoundSuddenPain default <a  href="CastleSoundEngine.html#stNone">stNone</a>;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="SoundDie"></a><code>property <b>SoundDie</b>: <a  href="CastleSoundEngine.html#TSoundType">TSoundType</a>
      read FSoundDie write FSoundDie default <a  href="CastleSoundEngine.html#stNone">stNone</a>;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="SoundDieTiedToCreature"></a><code>property <b>SoundDieTiedToCreature</b>: boolean
      read FSoundDieTiedToCreature write FSoundDieTiedToCreature
      default <a  href="CastleCreatures.TCreatureResource.html#DefaultSoundDieTiedToCreature">DefaultSoundDieTiedToCreature</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
See <a class="normal" href="CastleCreatures.TCreature.html#Sound3d">TCreature.Sound3d</a> TiedToCreature parameter docs. You can set this to false if you want <a class="normal" href="CastleCreatures.TCreatureResource.html#SoundDie">SoundDie</a> to last even after the creature object was destroyed.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultMaxLife"></a><code>property <b>DefaultMaxLife</b>: Single
      read FDefaultMaxLife write FDefaultMaxLife default <a  href="CastleCreatures.TCreatureResource.html#DefaultDefaultMaxLife">DefaultDefaultMaxLife</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
The default MaxLife for creatures of this resource.

<p>Note that you can always override it for a particular creature instance. You can use a special creature placeholder with a specific starting life value (see <a class="normal" href="CastleLevels.TGameSceneManager.html#LoadLevel">TGameSceneManager.LoadLevel</a> for placeholders docs, and see <a  href="http://castle-engine.sourceforge.net/castle-development.php">http://castle-engine.sourceforge.net/castle-development.php</a> about the creature placeholders). Or you can use <a class="normal" href="CastleCreatures.TCreatureResource.html#CreateCreature">CreateCreature</a> overloaded version that takes extra MaxLife parameter.

<p>So this is only a &quot;suggested&quot; default for MaxLife of this creature.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="KnockBackDistance"></a><code>property <b>KnockBackDistance</b>: Single
      read FKnockBackDistance write FKnockBackDistance
      default <a  href="CastleCreatures.TCreatureResource.html#DefaultKnockBackDistance">DefaultKnockBackDistance</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Distance this creature is knocked back when hurt (should reflect the creature weight, how easy it is to push this creature).

<p>Will always be multiplied by the knocking distance of the weapon that caused the push (which should reflect the force of the weapon blow), see <a class="normal" href="CastleItems.TItemWeaponResource.html#AttackKnockbackDistance">TItemWeaponResource.AttackKnockbackDistance</a>.

<p>Only for <a class="normal" href="CastleCreatures.TWalkAttackCreature.html">TWalkAttackCreature</a>, the final distance the creature is knocked back is capped by the time of the HurtAnimation (HurtAnimation.Duration). When the hurt animation ends, the knockback effect always ends, even if the distance (creature * weapon) indicates it should be knocked further. Otherwise knockback would work on standing creature, which could look bad. This may be changed some day.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="KnockBackSpeed"></a><code>property <b>KnockBackSpeed</b>: Single
      read FKnockBackSpeed write FKnockBackSpeed
      default <a  href="Castle3D.T3DAlive.html#DefaultKnockBackSpeed">T3DAlive.DefaultKnockBackSpeed</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
See <a class="normal" href="Castle3D.T3DAlive.html#KnockBackSpeed">T3DAlive.KnockBackSpeed</a>.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="AttackDamageConst"></a><code>property <b>AttackDamageConst</b>: Single
      read FAttackDamageConst write FAttackDamageConst default <a  href="CastleCreatures.TCreatureResource.html#DefaultAttackDamageConst">DefaultAttackDamageConst</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Default attack damage and knockback. Used only by the creatures that actually do some kind of direct attack. For example it is used for short-range attack by <a class="normal" href="CastleCreatures.TWalkAttackCreatureResource.html">TWalkAttackCreatureResource</a> (if <a class="normal" href="CastleCreatures.TWalkAttackCreatureResource.html#AttackAnimation">TWalkAttackCreatureResource.AttackAnimation</a> defined) and for hit of <a class="normal" href="CastleCreatures.TMissileCreatureResource.html">TMissileCreatureResource</a>.

<p>All these values must be &gt;= 0.

<p><a class="normal" href="CastleCreatures.TCreatureResource.html#AttackKnockbackDistance">AttackKnockbackDistance</a> = 0 means no knockback.

<p></p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="AttackDamageRandom"></a><code>property <b>AttackDamageRandom</b>: Single
      read FAttackDamageRandom write FAttackDamageRandom default <a  href="CastleCreatures.TCreatureResource.html#DefaultAttackDamageRandom">DefaultAttackDamageRandom</a>;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="AttackKnockbackDistance"></a><code>property <b>AttackKnockbackDistance</b>: Single
      read FAttackKnockbackDistance write FAttackKnockbackDistance default <a  href="CastleCreatures.TCreatureResource.html#DefaultAttackKnockbackDistance">DefaultAttackKnockbackDistance</a>;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="MiddleHeight"></a><code>property <b>MiddleHeight</b>: Single
      read FMiddleHeight write FMiddleHeight
      default <a  href="Castle3D.T3DCustomTransform.html#DefaultMiddleHeight">T3DCustomTransform.DefaultMiddleHeight</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Height of the eyes of the creature, used for various collision detection routines. See <a class="normal" href="Castle3D.T3DCustomTransform.html#MiddleHeight">T3DCustomTransform.MiddleHeight</a> for a precise documentation.

<p>Game developers can use the <a class="normal" href="Castle3D.html#RenderDebug3D">RenderDebug3D</a> variable to easily visualize the bounding sphere (and other things) around resources. The bounding sphere is centered around the point derived from <code>MiddleHeight</code> setting and with given (or automatically calculated) <a class="normal" href="CastleCreatures.TCreatureResource.html#Radius">Radius</a>.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="FallMinHeightToSound"></a><code>property <b>FallMinHeightToSound</b>: Single
      read FFallMinHeightToSound write FFallMinHeightToSound default <a  href="Castle3D.html#DefaultCreatureFallMinHeightToSound">DefaultCreatureFallMinHeightToSound</a>;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="FallMinHeightToDamage"></a><code>property <b>FallMinHeightToDamage</b>: Single
      read FFallMinHeightToDamage write FFallMinHeightToDamage default <a  href="Castle3D.html#DefaultFallMinHeightToDamage">DefaultFallMinHeightToDamage</a>;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="FallDamageScaleMin"></a><code>property <b>FallDamageScaleMin</b>: Single
      read FFallDamageScaleMin write FFallDamageScaleMin default <a  href="Castle3D.html#DefaultFallDamageScaleMin">DefaultFallDamageScaleMin</a>;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="FallDamageScaleMax"></a><code>property <b>FallDamageScaleMax</b>: Single
      read FFallDamageScaleMax write FFallDamageScaleMax default <a  href="Castle3D.html#DefaultFallDamageScaleMax">DefaultFallDamageScaleMax</a>;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="FallSound"></a><code>property <b>FallSound</b>: <a  href="CastleSoundEngine.html#TSoundType">TSoundType</a>
      read FFallSound write FFallSound;</code></td>
</tr>
<tr><td colspan="2">
<p>
Sound when falling. The default is the sound named 'creature_fall'.</p>
</td></tr>
</table>
<!-- Piwik -->
<script type="text/javascript">
  var _paq = _paq || [];
  _paq.push(["trackPageView"]);
  _paq.push(["enableLinkTracking"]);

  (function() {
    var u=(("https:" == document.location.protocol) ? "https" : "http") + "://michalis.ii.uni.wroc.pl/piwik-castle-engine/";
    _paq.push(["setTrackerUrl", u+"piwik.php"]);
    _paq.push(["setSiteId", "1"]);
    var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
    g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Piwik Code -->

<noscript>
<!-- Piwik Image Tracker -->
<img src="http://michalis.ii.uni.wroc.pl/piwik-castle-engine/piwik.php?idsite=1&amp;rec=1" style="border:0" alt="" />
<!-- End Piwik -->
</noscript>
<hr noshade size="1"><span class="appinfo"><em>Generated by <a  href="http://pasdoc.sourceforge.net/">PasDoc 0.13.0</a> on 2015-06-15 04:43:09</em>
</span>
</td></tr></table></body></html>