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

Method Blaster_Fire

game/src/main/java/jake2/game/PlayerWeapon.java:1403–1432  ·  view source on GitHub ↗
(SubgameEntity ent, float[] g_offset, int damage,
                                    boolean hyper, int effect, GameExportsImpl gameExports)

Source from the content-addressed store, hash-verified

1401 */
1402
1403 public static void Blaster_Fire(SubgameEntity ent, float[] g_offset, int damage,
1404 boolean hyper, int effect, GameExportsImpl gameExports) {
1405 float[] forward = { 0, 0, 0 }, right = { 0, 0, 0 };
1406 float[] start = { 0, 0, 0 };
1407 float[] offset = { 0, 0, 0 };
1408
1409 if (gameExports.is_quad)
1410 damage *= 4;
1411 gclient_t client = ent.getClient();
1412 Math3D.AngleVectors(client.v_angle, forward, right, null);
1413 Math3D.VectorSet(offset, 24, 8, ent.viewheight - 8);
1414 Math3D.VectorAdd(offset, g_offset, offset);
1415 P_ProjectSource(client, ent.s.origin, offset, forward, right, start);
1416
1417 Math3D.VectorScale(forward, -2, client.kick_origin);
1418 client.kick_angles[0] = -1;
1419
1420 GameWeapon.fire_blaster(ent, start, forward, damage, 1000, effect, hyper, gameExports);
1421
1422 // send muzzle flash
1423 final int flashType;
1424 if (hyper)
1425 flashType = Defines.MZ_HYPERBLASTER | gameExports.is_silenced;
1426 else
1427 flashType = Defines.MZ_BLASTER | gameExports.is_silenced;
1428
1429 gameExports.gameImports.multicastMessage(ent.s.origin, new WeaponSoundMessage(ent.index, flashType), MulticastTypes.MULTICAST_PVS);
1430
1431 PlayerWeapon.PlayerNoise(ent, start, GameDefines.PNOISE_WEAPON, gameExports);
1432 }
1433
1434 /*
1435 * ===============

Callers 1

thinkMethod · 0.95

Calls 9

AngleVectorsMethod · 0.95
VectorSetMethod · 0.95
VectorAddMethod · 0.95
P_ProjectSourceMethod · 0.95
VectorScaleMethod · 0.95
fire_blasterMethod · 0.95
PlayerNoiseMethod · 0.95
multicastMessageMethod · 0.65
getClientMethod · 0.45

Tested by

no test coverage detected