1 #using scripts\codescripts\struct;
3 #using scripts\shared\callbacks_shared;
4 #using scripts\shared\challenges_shared;
5 #using scripts\shared\damagefeedback_shared;
6 #using scripts\shared\scoreevents_shared;
7 #using scripts\shared\system_shared;
8 #using scripts\shared\util_shared;
9 #using scripts\shared\weapons\_weaponobjects;
11 #insert scripts\shared\shared.gsh;
13 #precache( "fx", "_t6/misc/fx_equip_light_red" );
14 #precache( "fx", "_t6/misc/fx_equip_light_green" );
16 #namespace acousticsensor;
20 level._effect[
"acousticsensor_enemy_light"] =
"_t6/misc/fx_equip_light_red";
21 level._effect[
"acousticsensor_friendly_light"] =
"_t6/misc/fx_equip_light_green";
33 watcher.hackable =
true;
39 self endon(
"death" );
43 player.acousticSensor =
self;
44 self SetOwner( player );
45 self SetTeam( player.team );
48 self PlayLoopSound (
"fly_acoustic_sensor_lp" );
52 player AddWeaponStat(
self.weapon,
"used", 1 );
60 if ( !isdefined( weapon ) || !weapon.isEmp )
62 PlayFX( level._equipment_explode_fx,
self.origin );
65 if ( isdefined( attacker ) )
74 PlaySoundAtPosition (
"dst_equipment_destroy",
self.origin );
87 if ( isdefined( player ) )
88 player.acousticSensor = undefined;
93 self endon(
"death" );
94 self endon(
"hacked" );
96 self SetCanDamage(
true );
101 self.damageTaken = 0;
106 self.maxhealth = 100000;
107 self.health =
self.maxhealth;
109 self waittill(
"damage",
damage, attacker, direction, point, type, tagName, modelName, partname, weapon, iDFlags );
111 if ( !isdefined( attacker ) || !isplayer( attacker ) )
114 if ( level.teamBased && attacker.team ==
self.owner.team && attacker !=
self.owner )
121 if ( watcher.stunTime > 0 && weapon.doStun )
126 if ( weapon.doDamageFeedback )
129 if ( level.teambased &&
self.owner.team != attacker.team )
135 else if ( !level.teambased &&
self.owner != attacker )
142 if ( isPlayer( attacker ) && level.teambased && isdefined( attacker.team ) &&
self.owner.team == attacker.team && attacker !=
self.owner )
145 if ( type ==
"MOD_MELEE" || weapon.isEmp )
147 self.damageTaken = damageMax;
154 if (
self.damageTaken >= damageMax )