(SubgameEntity ent, GameExportsImpl gameExports)
| 42 | public String getID() { return "Weapon_Grenade"; } |
| 43 | |
| 44 | public boolean think(SubgameEntity ent, GameExportsImpl gameExports) { |
| 45 | gclient_t client = ent.getClient(); |
| 46 | if ((client.newweapon != null) |
| 47 | && (client.weaponstate == WeaponStates.WEAPON_READY)) { |
| 48 | ChangeWeapon(ent, gameExports); |
| 49 | return true; |
| 50 | } |
| 51 | |
| 52 | if (client.weaponstate == WeaponStates.WEAPON_ACTIVATING) { |
| 53 | client.weaponstate = WeaponStates.WEAPON_READY; |
| 54 | client.getPlayerState().gunframe = 16; |
| 55 | return true; |
| 56 | } |
| 57 | |
| 58 | if (client.weaponstate == WeaponStates.WEAPON_READY) { |
| 59 | if (((client.latched_buttons | client.buttons) & Defines.BUTTON_ATTACK) != 0) { |
| 60 | client.latched_buttons &= ~Defines.BUTTON_ATTACK; |
| 61 | if (0 != client.pers.inventory[client.ammo_index]) { |
| 62 | client.getPlayerState().gunframe = 1; |
| 63 | client.weaponstate = WeaponStates.WEAPON_FIRING; |
| 64 | client.grenade_time = 0; |
| 65 | } else { |
| 66 | if (gameExports.level.time >= ent.pain_debounce_time) { |
| 67 | gameExports.gameImports.sound(ent, Defines.CHAN_VOICE, |
| 68 | gameExports.gameImports |
| 69 | .soundindex("weapons/noammo.wav"), |
| 70 | 1, Defines.ATTN_NORM, 0); |
| 71 | ent.pain_debounce_time = gameExports.level.time + 1; |
| 72 | } |
| 73 | NoAmmoWeaponChange(ent, gameExports); |
| 74 | } |
| 75 | return true; |
| 76 | } |
| 77 | |
| 78 | if ((client.getPlayerState().gunframe == 29) |
| 79 | || (client.getPlayerState().gunframe == 34) |
| 80 | || (client.getPlayerState().gunframe == 39) |
| 81 | || (client.getPlayerState().gunframe == 48)) { |
| 82 | if ((Lib.rand() & 15) != 0) |
| 83 | return true; |
| 84 | } |
| 85 | |
| 86 | if (++client.getPlayerState().gunframe > 48) |
| 87 | client.getPlayerState().gunframe = 16; |
| 88 | return true; |
| 89 | } |
| 90 | |
| 91 | if (client.weaponstate == WeaponStates.WEAPON_FIRING) { |
| 92 | if (client.getPlayerState().gunframe == 5) |
| 93 | gameExports.gameImports.sound(ent, Defines.CHAN_WEAPON, gameExports.gameImports |
| 94 | .soundindex("weapons/hgrena1b.wav"), 1, |
| 95 | Defines.ATTN_NORM, 0); |
| 96 | |
| 97 | if (client.getPlayerState().gunframe == 11) { |
| 98 | if (0 == client.grenade_time) { |
| 99 | client.grenade_time = gameExports.level.time |
| 100 | + GameDefines.GRENADE_TIMER + 0.2f; |
| 101 | client.weapon_sound = gameExports.gameImports |
no test coverage detected