⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m_parasite.pas

📁 雷神之锤2(Quake2)Delphi源码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{----------------------------------------------------------------------------}
{                                                                            }
{ 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 + -