179 lines
6 KiB
C++
179 lines
6 KiB
C++
/*
|
|
* $Header: /H2 Mission Pack/HCode/ph_eido.hc 10 3/11/98 6:20p Mgummelt $
|
|
*/
|
|
|
|
/*
|
|
==============================================================================
|
|
|
|
Q:\art\models\Eidolon\ph_eido.hc
|
|
|
|
==============================================================================
|
|
*/
|
|
|
|
// For building the model
|
|
$cd Q:\art\models\Eidolon
|
|
$origin 0 0 0
|
|
$base BASE SKIN
|
|
$skin SKIN
|
|
$flags 0
|
|
|
|
//
|
|
$frame death1 death2 death3 death4 death5
|
|
$frame death6 death7 death8 death9 death10
|
|
$frame death11 death12 death13 death14 death15
|
|
$frame death16 death17 death18 death19 death20
|
|
$frame death21 death22 death23 death24 death25
|
|
$frame death26 death27 death28 death29 death30
|
|
$frame death31 death32 death33 death34 death35
|
|
$frame death36 death37 death38 death39 death40
|
|
$frame death41 death42 death43 death44 death45
|
|
$frame death46 death47 death48 death49 death50
|
|
$frame death51 death52 death53 death54 death55
|
|
$frame death56 death57 death58 death59 death60
|
|
$frame death61 death62 death63 death64 death65
|
|
$frame death66 death67 death68 death69 death70
|
|
$frame death71 death72 death73 death74 death75
|
|
$frame death76 death77 death78 death79 death80
|
|
$frame death81 death82 death83 death84 death85
|
|
$frame death86 death87 death88 death89 death90
|
|
$frame death91 death92 death93 death94 death95
|
|
$frame death96 death97 death98 death99 death100
|
|
$frame death101 death102 death103 death104 death105
|
|
|
|
//
|
|
$frame howl1 howl2 howl3 howl4 howl5
|
|
$frame howl6 howl7 howl8 howl9 howl10
|
|
$frame howl11 howl12 howl13 howl14 howl15
|
|
$frame howl16 howl17 howl18 howl19 howl20
|
|
$frame howl21 howl22 howl23 howl24 howl25
|
|
$frame howl26 howl27 howl28 howl29 howl30
|
|
$frame howl31 howl32 howl33 howl34 howl35
|
|
$frame howl36 howl37 howl38 howl39 howl40
|
|
$frame howl41 howl42 howl43 howl44 howl45
|
|
$frame howl46 howl47 howl48 howl49 howl50
|
|
$frame howl51 howl52 howl53 howl54 howl55
|
|
$frame howl56 howl57 howl58 howl59 howl60
|
|
|
|
//
|
|
$frame painA1 painA2 painA3 painA4 painA5
|
|
$frame painA6 painA7 painA8 painA9
|
|
|
|
//
|
|
$frame wait1 wait2 wait3 wait4 wait5
|
|
$frame wait6 wait7 wait8 wait9 wait10
|
|
$frame wait11 wait12 wait13 wait14 wait15
|
|
$frame wait16
|
|
|
|
//==================================================================
|
|
|
|
void()ph_eidolon_pain;
|
|
void ph_eidolon_wait () [++ $wait1 .. $wait16]
|
|
{
|
|
}
|
|
|
|
void ph_eidolon_roar () [++ $howl1 .. $howl60]
|
|
{
|
|
if(self.frame==$howl60)
|
|
{
|
|
self.th_pain = ph_eidolon_pain;
|
|
self.think=self.th_stand;
|
|
self.use=self.th_die;
|
|
}
|
|
thinktime self : 0.1;
|
|
}
|
|
|
|
void ph_eidolon_ready_roar()
|
|
{
|
|
self.th_pain=SUB_Null;
|
|
sound(self,CHAN_VOICE,"eidolon/roar.wav",1,ATTN_NONE);
|
|
self.frame=$howl1;
|
|
self.think=ph_eidolon_roar;
|
|
thinktime self : 0;
|
|
}
|
|
|
|
void ph_eidolon_pain () [++ $painA1 .. $painA9]
|
|
{
|
|
if(random()<0.95)
|
|
return;
|
|
|
|
self.health = self.max_health=100000000;
|
|
if(self.frame==$painA1)
|
|
sound(self,CHAN_VOICE,"eidolon/pain.wav",1,ATTN_NONE);
|
|
else if(self.frame==$painA9)
|
|
self.think=self.th_stand;
|
|
}
|
|
|
|
void ph_eidolon_die () [++ $death1 .. $death105]
|
|
{//FIXME: death frames, thud when hit ground
|
|
if(self.frame>=$death1)
|
|
self.th_pain=SUB_Null;
|
|
if(self.frame==$death85)
|
|
setsize(self,'-24 -24 0','24 24 64');
|
|
if(self.frame==$death8)
|
|
sound(self,CHAN_AUTO,"eidolon/death.wav",1,ATTN_NONE);
|
|
else if(self.frame==$death19
|
|
||self.frame==$death26
|
|
||self.frame==$death40
|
|
||self.frame==$death50
|
|
||self.frame==$death61
|
|
||self.frame==$death78
|
|
||self.frame==$death90
|
|
||self.frame==$death100
|
|
||self.frame==$death105)
|
|
sound(self,CHAN_BODY,"eidolon/stomp.wav",1,ATTN_NONE);
|
|
else if(self.frame==$death95)
|
|
MonsterQuake(500);
|
|
|
|
if(self.frame==$death105)
|
|
self.nextthink=-1;
|
|
else
|
|
thinktime self : 0.1;
|
|
}
|
|
|
|
/*QUAKED monster_eidolon_weakling (1 0 0) (-100 -100 0) (100 100 666)
|
|
Not quite the big bad ugly boss guy
|
|
|
|
1st use- howl
|
|
|
|
2nd use - long dramatic death!
|
|
-------------------------FIELDS-------------------------
|
|
--------------------------------------------------------
|
|
|
|
*/
|
|
void monster_eidolon_weakling(void)
|
|
{
|
|
precache_model4 ("models/ph_eido.mdl");
|
|
precache_sound4 ("eidolon/roar.wav");
|
|
precache_sound4 ("eidolon/death.wav"); //Dies- long and agonizing
|
|
precache_sound4 ("eidolon/stomp.wav"); //Hot-steppin'
|
|
precache_sound4 ("eidolon/pain.wav"); //Hurt
|
|
|
|
self.solid = SOLID_SLIDEBOX;
|
|
self.movetype = MOVETYPE_STEP;
|
|
self.takedamage=DAMAGE_YES;
|
|
self.monsterclass=CLASS_FINAL_BOSS;
|
|
self.flags(+)FL_MONSTER;
|
|
self.flags2(+)FL_ALIVE;
|
|
self.thingtype=THINGTYPE_FLESH;
|
|
|
|
setmodel (self, "models/ph_eido.mdl");
|
|
self.scale=2.5;
|
|
self.skin = 0;
|
|
setsize (self, '-16 -16 0'*1.3333333*self.scale, '16 16 384'*1.3333333*self.scale);
|
|
self.mass=2000*1.34*self.scale;
|
|
self.hull=HULL_POINT;
|
|
self.proj_ofs=self.view_ofs='0 0 200';
|
|
self.frame=$howl1;
|
|
self.use=ph_eidolon_ready_roar;
|
|
|
|
self.hull=HULL_GOLEM;
|
|
self.health = self.max_health=100000000;
|
|
self.yaw_speed = 10;
|
|
|
|
self.th_stand = ph_eidolon_wait;
|
|
self.th_die = ph_eidolon_die;
|
|
self.th_pain = ph_eidolon_pain;
|
|
|
|
self.drawflags (+) SCALE_ORIGIN_BOTTOM;
|
|
self.touch=SUB_Null;
|
|
}
|