MCPcopy Create free account
hub / github.com/demoth/jake2 / think

Method think

game/src/main/java/jake2/game/PlayerWeapon.java:44–143  ·  view source on GitHub ↗
(SubgameEntity ent, GameExportsImpl gameExports)

Source from the content-addressed store, hash-verified

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

Callers 2

Think_WeaponMethod · 0.45
Weapon_GenericMethod · 0.45

Calls 15

ChangeWeaponMethod · 0.95
getPlayerStateMethod · 0.95
NoAmmoWeaponChangeMethod · 0.95
randMethod · 0.95
weapon_grenade_fireMethod · 0.95
VectorSetMethod · 0.95
AngleVectorsMethod · 0.95
P_ProjectSourceMethod · 0.95
VectorScaleMethod · 0.95
fire_grenadeMethod · 0.95
PlayerNoiseMethod · 0.95
Weapon_GenericMethod · 0.95

Tested by

no test coverage detected