📄 m_parasite.pas
字号:
{----------------------------------------------------------------------------}
{ }
{ File(s): m_parasite.c }
{ Content: actions and effects for parasite villain }
{ }
{ Initial conversion by : Massimo Soricetti (max-67@libero.it) }
{ Initial conversion on : 09-Jan-2002 }
{ }
{ This File contains part of convertion of Quake2 source to ObjectPascal. }
{ More information about this project can be found at: }
{ http://www.sulaco.co.za/quake2/ }
{ }
{ Copyright (C) 1997-2001 Id Software, Inc. }
{ }
{ This program is free software; you can redistribute it and/or }
{ modify it under the terms of the GNU General Public License }
{ as published by the Free Software Foundation; either version 2 }
{ of the License, or (at your option) any later version. }
{ }
{ This program is distributed in the hope that it will be useful, }
{ but WITHOUT ANY WARRANTY; without even the implied warranty of }
{ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. }
{ }
{ See the GNU General Public License for more details. }
{ }
{----------------------------------------------------------------------------}
{ Updated on : }
{ Updated by : }
{ }
{----------------------------------------------------------------------------}
{ * Still dependent (to compile correctly) on: }
{ g_local.pas }
{----------------------------------------------------------------------------}
{
=======================================
parasite
=======================================
}
unit m_parasite;
interface
uses system, g_local;
const
FRAME_break01 = 0;
FRAME_break02 = 1;
FRAME_break03 = 2;
FRAME_break04 = 3;
FRAME_break05 = 4;
FRAME_break06 = 5;
FRAME_break07 = 6;
FRAME_break08 = 7;
FRAME_break09 = 8;
FRAME_break10 = 9;
FRAME_break11 = 10;
FRAME_break12 = 11;
FRAME_break13 = 12;
FRAME_break14 = 13;
FRAME_break15 = 14;
FRAME_break16 = 15;
FRAME_break17 = 16;
FRAME_break18 = 17;
FRAME_break19 = 18;
FRAME_break20 = 19;
FRAME_break21 = 20;
FRAME_break22 = 21;
FRAME_break23 = 22;
FRAME_break24 = 23;
FRAME_break25 = 24;
FRAME_break26 = 25;
FRAME_break27 = 26;
FRAME_break28 = 27;
FRAME_break29 = 28;
FRAME_break30 = 29;
FRAME_break31 = 30;
FRAME_break32 = 31;
FRAME_death101 = 32;
FRAME_death102 = 33;
FRAME_death103 = 34;
FRAME_death104 = 35;
FRAME_death105 = 36;
FRAME_death106 = 37;
FRAME_death107 = 38;
FRAME_drain01 = 39;
FRAME_drain02 = 40;
FRAME_drain03 = 41;
FRAME_drain04 = 42;
FRAME_drain05 = 43;
FRAME_drain06 = 44;
FRAME_drain07 = 45;
FRAME_drain08 = 46;
FRAME_drain09 = 47;
FRAME_drain10 = 48;
FRAME_drain11 = 49;
FRAME_drain12 = 50;
FRAME_drain13 = 51;
FRAME_drain14 = 52;
FRAME_drain15 = 53;
FRAME_drain16 = 54;
FRAME_drain17 = 55;
FRAME_drain18 = 56;
FRAME_pain101 = 57;
FRAME_pain102 = 58;
FRAME_pain103 = 59;
FRAME_pain104 = 60;
FRAME_pain105 = 61;
FRAME_pain106 = 62;
FRAME_pain107 = 63;
FRAME_pain108 = 64;
FRAME_pain109 = 65;
FRAME_pain110 = 66;
FRAME_pain111 = 67;
FRAME_run01 = 68;
FRAME_run02 = 69;
FRAME_run03 = 70;
FRAME_run04 = 71;
FRAME_run05 = 72;
FRAME_run06 = 73;
FRAME_run07 = 74;
FRAME_run08 = 75;
FRAME_run09 = 76;
FRAME_run10 = 77;
FRAME_run11 = 78;
FRAME_run12 = 79;
FRAME_run13 = 80;
FRAME_run14 = 81;
FRAME_run15 = 82;
FRAME_stand01 = 83;
FRAME_stand02 = 84;
FRAME_stand03 = 85;
FRAME_stand04 = 86;
FRAME_stand05 = 87;
FRAME_stand06 = 88;
FRAME_stand07 = 89;
FRAME_stand08 = 90;
FRAME_stand09 = 91;
FRAME_stand10 = 92;
FRAME_stand11 = 93;
FRAME_stand12 = 94;
FRAME_stand13 = 95;
FRAME_stand14 = 96;
FRAME_stand15 = 97;
FRAME_stand16 = 98;
FRAME_stand17 = 99;
FRAME_stand18 = 100;
FRAME_stand19 = 101;
FRAME_stand20 = 102;
FRAME_stand21 = 103;
FRAME_stand22 = 104;
FRAME_stand23 = 105;
FRAME_stand24 = 106;
FRAME_stand25 = 107;
FRAME_stand26 = 108;
FRAME_stand27 = 109;
FRAME_stand28 = 110;
FRAME_stand29 = 111;
FRAME_stand30 = 112;
FRAME_stand31 = 113;
FRAME_stand32 = 114;
FRAME_stand33 = 115;
FRAME_stand34 = 116;
FRAME_stand35 = 117;
MODEL_SCALE = 1.000000;
implementation
parasite_move_start_fidget : mmove_t =
(
FRAME_stand18,
FRAME_stand21,
parasite_frames_start_fidget,
parasite_do_fidget
);
parasite_frames_start_fidget : array[0..3] of mframe_t =
(
(ai_stand, 0, NULL),
(ai_stand, 0, NULL),
(ai_stand, 0, NULL),
(ai_stand, 0, NULL)
);
parasite_frames_fidget : array[0..5] of mmove_t =
(
(ai_stand, 0, parasite_scratch),
(ai_stand, 0, NULL),
(ai_stand, 0, NULL),
(ai_stand, 0, parasite_scratch),
(ai_stand, 0, NULL),
(ai_stand, 0, NULL)
);
parasite_move_fidget : mmove_t =
(
FRAME_stand22,
FRAME_stand27,
parasite_frames_fidget,
parasite_refidget
);
parasite_frames_end_fidget: array[0..7] of mframe_t=
(
(ai_stand, 0, parasite_scratch),
(ai_stand, 0, NULL),
(ai_stand, 0, NULL),
(ai_stand, 0, NULL),
(ai_stand, 0, NULL),
(ai_stand, 0, NULL),
(ai_stand, 0, NULL),
(ai_stand, 0, NULL)
);
parasite_move_end_fidget : mmove_t =
(
FRAME_stand28,
FRAME_stand35,
parasite_frames_end_fidget,
parasite_stand
);
parasite_frames_stand : array[0..16] of mframe_t =
(
(ai_stand, 0, NULL),
(ai_stand, 0, NULL),
(ai_stand, 0, parasite_tap),
(ai_stand, 0, NULL),
(ai_stand, 0, parasite_tap),
(ai_stand, 0, NULL),
(ai_stand, 0, NULL),
(ai_stand, 0, NULL),
(ai_stand, 0, parasite_tap),
(ai_stand, 0, NULL),
(ai_stand, 0, parasite_tap),
(ai_stand, 0, NULL),
(ai_stand, 0, NULL),
(ai_stand, 0, NULL),
(ai_stand, 0, parasite_tap),
(ai_stand, 0, NULL),
(ai_stand, 0, parasite_tap)
);
mmove_t parasite_move_stand :=
(
FRAME_stand01,
FRAME_stand17,
parasite_frames_stand,
parasite_stand
);
parasite_frames_run : array[0..6] of mframe_t =
(
(ai_run, 30, NULL),
(ai_run, 30, NULL),
(ai_run, 22, NULL),
(ai_run, 19, NULL),
(ai_run, 24, NULL),
(ai_run, 28, NULL),
(ai_run, 25, NULL)
);
parasite_move_run: mmove_t =
(
FRAME_run03,
FRAME_run09,
parasite_frames_run,
NULL
);
parasite_frames_start_run : array[0,1] of mframe_t =
(
(ai_run, 0, NULL),
(ai_run, 30, NULL),
);
parasite_move_start_run : mmove_t =
(
FRAME_run01,
FRAME_run02,
parasite_frames_start_run,
parasite_run
);
parasite_frames_stop_run : array [0..5] of mframe_t =
(
(ai_run, 20, NULL),
(ai_run, 20, NULL),
(ai_run, 12, NULL),
(ai_run, 10, NULL),
(ai_run, 0, NULL),
(ai_run, 0, NULL)
);
parasite_move_stop_run : mmove_t =
(
FRAME_run10,
FRAME_run15,
parasite_frames_stop_run,
NULL
);
parasite_frames_walk : array [0..6] of mframe_t =
(
(ai_walk, 30, NULL),
(ai_walk, 30, NULL),
(ai_walk, 22, NULL),
(ai_walk, 19, NULL),
(ai_walk, 24, NULL),
(ai_walk, 28, NULL),
(ai_walk, 25, NULL)
);
parasite_move_walk : mmove_t =
(
FRAME_run03,
FRAME_run09,
parasite_frames_walk,
parasite_walk
);
parasite_frames_start_walk : array [0..1] of mframe_t =
(
(ai_walk, 0, NULL),
(ai_walk, 30, parasite_walk)
);
parasite_move_start_walk : mmove_t=
(
FRAME_run01,
FRAME_run02,
parasite_frames_start_walk,
NULL
);
parasite_frames_stop_walk : array [0..5] of mframe_t =
(
ai_walk, 20, NULL,
ai_walk, 20, NULL,
ai_walk, 12, NULL,
ai_walk, 10, NULL,
ai_walk, 0, NULL,
ai_walk, 0, NULL
);
parasite_move_stop_walk : mmove_t =
(
FRAME_run10,
FRAME_run15,
parasite_frames_stop_walk,
NULL
);
parasite_frames_pain1 : array[0..10] of mframe_t =
(
(ai_move, 0, NULL),
(ai_move, 0, NULL),
(ai_move, 0, NULL),
(ai_move, 0, NULL),
(ai_move, 0, NULL),
(ai_move, 0, NULL),
(ai_move, 6, NULL),
(ai_move, 16, NULL),
(ai_move, -6, NULL),
(ai_move, -7, NULL),
(ai_move, 0, NULL)
);
parasite_move_pain1 : mmove_t =
(
FRAME_pain101,
FRAME_pain111,
parasite_frames_pain1,
parasite_start_run
);
parasite_frames_drain : array[0..17] of mframe_t =
(
(ai_charge, 0, parasite_launch),
(ai_charge, 0, NULL),
(ai_charge, 15, parasite_drain_attack), // Target hits
(ai_charge, 0, parasite_drain_attack), // drain
(ai_charge, 0, parasite_drain_attack), // drain
(ai_charge, 0, parasite_drain_attack), // drain
(ai_charge, 0, parasite_drain_attack), // drain
(ai_charge, -2, parasite_drain_attack), // drain
(ai_charge, -2, parasite_drain_attack), // drain
(ai_charge, -3, parasite_drain_attack), // drain
(ai_charge, -2, parasite_drain_attack), // drain
(ai_charge, 0, parasite_drain_attack), // drain
(ai_charge, -1, parasite_drain_attack), // drain
(ai_charge, 0, parasite_reel_in), // let go
(ai_charge, -2, NULL),
(ai_charge, -2, NULL),
(ai_charge, -3, NULL),
(ai_charge, 0, NULL)
);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -