etqw-sdk/base/script/vehicles/anansi.script

100 lines
2.6 KiB
Plaintext
Raw Normal View History

2008-05-29 00:00:00 +00:00
/*
===================================================================================================
HELI
===================================================================================================
*/
object vehicle_heli : vehicle_base {
void init();
void syncFields();
void OnUpdateHud( entity p, float guiHandle );
float collectiveMin;
float collectiveMax;
float spiralHealth;
void OnSpiralHealthSynced();
}
void vehicle_heli::syncFields() {
syncBroadcast( "spiralHealth" );
syncCallback( "spiralHealth", "OnSpiralHealthSynced" );
}
void vehicle_heli::init() {
collectiveMin = getFloatKey( "collective_min" );
collectiveMax = getFloatKey( "collective_max" );
if ( sys.random( 1.0f ) < 0.9f ) {
spiralHealth = getFloatKey( "spiral_health" );
OnSpiralHealthSynced();
} else {
spiralHealth = 0;
}
}
void vehicle_heli::OnSpiralHealthSynced() {
setDeathThroeHealth( spiralHealth );
float maxHealth = getMaxHealth();
spiralHealthFrac = spiralHealth / maxHealth;
float remainingRange = maxHealth - spiralHealth;
float klaxonHealth = remainingRange * klaxonThreshold + spiralHealth;
klaxonThreshold = klaxonHealth / maxHealth;
}
void vehicle_heli::OnUpdateHud( entity p, float guiHandle ) {
entity driver = getDriver();
if ( driver != p ) {
return;
}
inputSetPlayer( driver );
float collective = inputGetCollective();
sys.setGUIFloat( GUI_GLOBALS_HANDLE, "vehicles.collectiveValue", ( collective - collectiveMin ) / ( collectiveMax - collectiveMin ));
}
/*
===================================================================================================
EARTH HELI
===================================================================================================
*/
object vehicle_heli_earth : vehicle_heli {
void preinit();
void destroy();
};
void vehicle_heli_earth::preinit() {
}
void vehicle_heli_earth::destroy() {
stopEffect( "fx_downdraft" );
}
/*
===================================================================================================
ANANSI
===================================================================================================
*/
object vehicle_anansi : vehicle_heli_earth {
void OnWeaponSelected( entity p, float index );
};
void vehicle_anansi::OnWeaponSelected( entity p, float index ) {
if ( !sys.isClient() ) {
if ( index == 0 ) {
FireDecoy( p );
} else if ( index == 1 ) {
selectVehicleWeapon( p, "fafff" );
} else if ( index == 2 ) {
selectVehicleWeapon( p, "law" );
}
}
}