//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CNPC_Bug_Builder::Spawn( void ) { Precache(); SetModel( BUG_BUILDER_MODEL ); SetHullType(HULL_TINY); SetHullSizeNormal(); SetDefaultEyeOffset(); SetViewOffset( (WorldAlignMins() + WorldAlignMaxs()) * 0.5 ); // See from my center SetDistLook( 1024.0 ); m_flNextDawdle = 0; SetNavType(NAV_GROUND); m_NPCState = NPC_STATE_NONE; SetBloodColor( BLOOD_COLOR_YELLOW ); m_iHealth = npc_bug_builder_health.GetFloat(); SetSolid( SOLID_BBOX ); AddSolidFlags( FSOLID_NOT_STANDABLE ); SetMoveType( MOVETYPE_STEP ); CapabilitiesAdd( bits_CAP_MOVE_GROUND ); NPCInit(); BaseClass::Spawn(); }
//--------------------------------------------------------- //--------------------------------------------------------- void CRebelZombie::SetZombieModel( void ) { //if ( m_iZombieSex == 1 ) // Male //{ SetModel( "models/zombie/classic.mdl" ); /*} else // Female { SetModel( "models/zombie/classic_female.mdl" ); }*/ SetHullType( HULL_HUMAN ); m_nSkin = m_iRebelZombieSkin; SetBodygroup( ZOMBIE_BODYGROUP_HEADCRAB, !m_fIsHeadless ); SetHullSizeNormal( true ); SetDefaultEyeOffset(); SetActivity( ACT_IDLE ); // hull changed size, notify vphysics // UNDONE: Solve this generally, systematically so other // NPCs can change size if ( VPhysicsGetObject() ) { SetupVPhysicsHull(); } }
//--------------------------------------------------------- //--------------------------------------------------------- void CZombie::SetZombieModel( void ) { Hull_t lastHull = GetHullType(); if ( m_fIsTorso ) { SetModel( "models/zombie/classic_torso.mdl" ); SetHullType( HULL_TINY ); } else { SetModel( "models/zombie/classic.mdl" ); SetHullType( HULL_HUMAN ); } SetBodygroup( ZOMBIE_BODYGROUP_HEADCRAB, !m_fIsHeadless ); SetHullSizeNormal( true ); SetDefaultEyeOffset(); SetActivity( ACT_IDLE ); // hull changed size, notify vphysics // UNDONE: Solve this generally, systematically so other // NPCs can change size if ( lastHull != GetHullType() ) { if ( VPhysicsGetObject() ) { SetupVPhysicsHull(); } } }
//----------------------------------------------------------------------------- // Purpose: // // NOTE: This function is still heavy with common code (found at the bottom). // we should consider moving some into the base class! (sjb) //----------------------------------------------------------------------------- void CNPC_Monster::SetZombieModel( void ) { Hull_t lastHull = GetHullType(); SetModel( cModel.ToCStr() ); if (m_fIsTorso) SetHullType(HULL_TINY); else SetHullType(HULL_HUMAN); SetHullSizeNormal( true ); SetDefaultEyeOffset(); SetActivity( ACT_IDLE ); m_nSkin = m_iSkin; if ( lastHull != GetHullType() ) { if ( VPhysicsGetObject() ) { SetupVPhysicsHull(); } } CollisionProp()->SetSurroundingBoundsType( USE_OBB_COLLISION_BOUNDS ); }
void CNPC_Infected::Spawn() { Precache(); SetZombieModel(); BaseClass::Spawn(); SetHullType( HULL_HUMAN ); SetHullSizeNormal(); SetDefaultEyeOffset(); SetNavType( NAV_GROUND ); m_NPCState = NPC_STATE_NONE; m_iHealth = m_iMaxHealth = sk_infected_health.GetInt(); m_flFieldOfView = 0.2; SetSolid( SOLID_BBOX ); AddSolidFlags( FSOLID_NOT_STANDABLE ); SetMoveType( MOVETYPE_STEP ); SetupGlobalModelData(); CapabilitiesAdd( bits_CAP_MOVE_GROUND ); CapabilitiesAdd( bits_CAP_INNATE_MELEE_ATTACK1 ); NPCInit(); }
void CNPC_Controller::Spawn() { Precache( ); SetModel( "models/controller.mdl" ); UTIL_SetSize( this, Vector( -32, -32, 0 ), Vector( 32, 32, 64 )); SetSolid( SOLID_BBOX ); AddSolidFlags( FSOLID_NOT_STANDABLE ); SetMoveType( MOVETYPE_STEP ); SetGravity(0.001); m_bloodColor = BLOOD_COLOR_GREEN; m_iHealth = sk_controller_health.GetFloat(); m_flFieldOfView = VIEW_FIELD_FULL;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_NPCState = NPC_STATE_NONE; SetRenderColor( 255, 255, 255, 255 ); CapabilitiesClear(); AddFlag( FL_FLY ); SetNavType( NAV_FLY ); CapabilitiesAdd( bits_CAP_MOVE_FLY | bits_CAP_INNATE_RANGE_ATTACK1 | bits_CAP_INNATE_RANGE_ATTACK2 | bits_CAP_MOVE_SHOOT); NPCInit(); SetDefaultEyeOffset(); }
void CZombie::SetZombieModel( void ) { Hull_t lastHull = GetHullType(); if(m_iZombieType == ZOMBIE_BISOU) SetModel( "models/zombie/Bisounours.mdl" ); else SetModel( "models/zombie/classic.mdl" ); SetHullType( HULL_HUMAN ); //Commenté en attendant de trouver à quoi ça sert //SetBodygroup( ZOMBIE_BODYGROUP_HEADCRAB, !m_fIsHeadless ); SetHullSizeNormal( true ); SetDefaultEyeOffset(); SetActivity( ACT_IDLE ); // hull changed size, notify vphysics // UNDONE: Solve this generally, systematically so other // NPCs can change size if ( lastHull != GetHullType() ) if ( VPhysicsGetObject() ) SetupVPhysicsHull(); }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CNPC_Bug_Warrior::Spawn( void ) { Precache(); SetModel( BUG_WARRIOR_MODEL ); SetHullType(HULL_WIDE_HUMAN);//HULL_WIDE_SHORT; SetHullSizeNormal(); SetDefaultEyeOffset(); SetViewOffset( (WorldAlignMins() + WorldAlignMaxs()) * 0.5 ); // See from my center SetDistLook( 1024.0 ); SetNavType(NAV_GROUND); m_NPCState = NPC_STATE_NONE; SetBloodColor( BLOOD_COLOR_YELLOW ); m_iHealth = npc_bug_warrior_health.GetFloat(); SetSolid( SOLID_BBOX ); AddSolidFlags( FSOLID_NOT_STANDABLE ); SetMoveType( MOVETYPE_STEP ); m_iszPatrolPathName = NULL_STRING; // Only do this if a squadname appears in the entity if ( m_SquadName != NULL_STRING ) { CapabilitiesAdd( bits_CAP_SQUAD ); } CapabilitiesAdd( bits_CAP_MOVE_GROUND | bits_CAP_INNATE_MELEE_ATTACK1 ); NPCInit(); BaseClass::Spawn(); }
void CNPC_Zombine::SetZombieModel( void ) { SetModel( "models/zombie/zombie_soldier.mdl" ); SetHullType( HULL_HUMAN ); SetBodygroup( ZOMBIE_BODYGROUP_HEADCRAB, !m_fIsHeadless ); SetHullSizeNormal( true ); SetDefaultEyeOffset(); SetActivity( ACT_IDLE ); }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CNPC_Ichthyosaur::Spawn( void ) { Precache(); SetModel( ICHTHYOSAUR_MODEL ); SetHullType(HULL_LARGE_CENTERED); SetHullSizeNormal(); SetDefaultEyeOffset(); SetNavType( NAV_FLY ); m_NPCState = NPC_STATE_NONE; SetBloodColor( BLOOD_COLOR_RED ); m_iHealth = sk_ichthyosaur_health.GetFloat(); m_iMaxHealth = m_iHealth; m_flFieldOfView = -0.707; // 270 degrees SetDistLook( 1024 ); SetSolid( SOLID_BBOX ); AddSolidFlags( FSOLID_NOT_STANDABLE ); SetMoveType( MOVETYPE_STEP ); AddFlag( FL_FLY | FL_STEPMOVEMENT ); m_flGroundSpeed = ICH_SWIM_SPEED_RUN; m_bIgnoreSurface = false; m_flSwimSpeed = 0.0f; m_flTailYaw = 0.0f; m_flTailPitch = 0.0f; m_flNextBiteTime = gpGlobals->curtime; m_flHoldTime = gpGlobals->curtime; m_flNextPingTime = gpGlobals->curtime; m_flNextGrowlTime = gpGlobals->curtime; #if FEELER_COLLISION Vector forward; GetVectors( &forward, NULL, NULL ); m_vecCurrentVelocity = forward * m_flGroundSpeed; #endif //SetTouch( IchTouch ); CapabilitiesClear(); CapabilitiesAdd( bits_CAP_MOVE_FLY | bits_CAP_INNATE_MELEE_ATTACK1 ); NPCInit(); //m_pSwimSound = ENVELOPE_CONTROLLER.SoundCreate( edict(), CHAN_BODY, "xxxCONVERTTOGAMESOUNDS!!!npc/ichthyosaur/ich_amb1wav", ATTN_NORM ); //m_pVoiceSound = ENVELOPE_CONTROLLER.SoundCreate( edict(), CHAN_VOICE, "xxxCONVERTTOGAMESOUNDS!!!npc/ichthyosaur/water_breathwav", ATTN_IDLE ); //ENVELOPE_CONTROLLER.Play( m_pSwimSound, 1.0f, 100 ); //ENVELOPE_CONTROLLER.Play( m_pVoiceSound,1.0f, 100 ); BaseClass::Spawn(); }