public void Lower(Player player, PlayerSpriteDef psp) { psp.Sy += LowerSpeed; // Is already down. if (psp.Sy < WeaponBottom) { return; } // Player is dead. if (player.PlayerState == PlayerState.Dead) { psp.Sy = WeaponBottom; // don't bring weapon back up return; } var pb = world.PlayerBehavior; // The old weapon has been lowered off the screen, // so change the weapon and start raising it. if (player.Health == 0) { // Player is dead, so keep the weapon off screen. pb.SetPlayerSprite(player, PlayerSprite.Weapon, MobjState.Null); return; } player.ReadyWeapon = player.PendingWeapon; //* pb.BringUpWeapon(player); }
public void WeaponReady(Player player, PlayerSpriteDef psp) { var pb = world.PlayerBehavior; // Get out of attack state. if (player.Mobj.State == DoomInfo.States[(int)MobjState.PlayAtk1] || player.Mobj.State == DoomInfo.States[(int)MobjState.PlayAtk2]) { player.Mobj.SetState(MobjState.Play); } //* if (player.ReadyWeapon == WeaponType.Chainsaw && // psp.State == DoomInfo.States[(int)MobjState.Saw]) // { // world.StartSound(player.Mobj, Sfx.SAWIDL, SfxType.Weapon); // } // Check for weapon change. // If player is dead, put the weapon away. if (player.PendingWeapon != WeaponType.NoChange || player.Health == 0) { // Change weapon. // Pending weapon should allready be validated. var newState = DoomInfo.WeaponInfos[(int)player.ReadyWeapon].DownState; pb.SetPlayerSprite(player, PlayerSprite.Weapon, newState); return; } // Check for fire. // The missile launcher and bfg do not auto fire. if ((player.Cmd.Buttons & TicCmdButtons.Attack) != 0) { if (!player.AttackDown || (player.ReadyWeapon != WeaponType.Missile && player.ReadyWeapon != WeaponType.Bfg)) { player.AttackDown = true; FireWeapon(player); return; } } else { player.AttackDown = false; } // Bob the weapon based on movement speed. var angle = (128 * player.Mobj.World.LevelTime) & Trig.FineMask; psp.Sx = Fixed.One + player.Bob * Trig.Cos(angle); angle &= Trig.FineAngleCount / 2 - 1; psp.Sy = WeaponTop + player.Bob * Trig.Sin(angle); }
public void Raise(Player player, PlayerSpriteDef psp) { psp.Sy -= RaiseSpeed; if (psp.Sy > WeaponTop) { return; } psp.Sy = WeaponTop; // The weapon has been raised all the way, so change to the ready state. var newState = DoomInfo.WeaponInfos[(int)player.ReadyWeapon].ReadyState; world.PlayerBehavior.SetPlayerSprite(player, PlayerSprite.Weapon, newState); }
public Player(int number) { Number = number; Cmd = new TicCmd(); Powers = new int[(int)PowerType.Count]; Cards = new bool[(int)CardType.Count]; Frags = new int[MaxPlayerCount]; WeaponOwned = new bool[(int)WeaponType.Count]; Ammo = new int[(int)WeaponType.Count]; MaxAmmo = new int[(int)WeaponType.Count]; PlayerSprites = new PlayerSpriteDef[(int)PlayerSprite.Count]; for (var i = 0; i < PlayerSprites.Length; i++) { PlayerSprites[i] = new PlayerSpriteDef(); } }
public Player(int number) { this.number = number; name = defaultPlayerNames[number]; cmd = new TicCmd(); powers = new int[(int)PowerType.Count]; cards = new bool[(int)CardType.Count]; frags = new int[MaxPlayerCount]; weaponOwned = new bool[(int)WeaponType.Count]; ammo = new int[(int)AmmoType.Count]; maxAmmo = new int[(int)AmmoType.Count]; playerSprites = new PlayerSpriteDef[(int)PlayerSprite.Count]; for (var i = 0; i < playerSprites.Length; i++) { playerSprites[i] = new PlayerSpriteDef(); } }
public void FireCGun(Player player, PlayerSpriteDef psp) { world.StartSound(player.Mobj, Sfx.PISTOL, SfxType.Weapon); if (player.Ammo[(int)DoomInfo.WeaponInfos[(int)player.ReadyWeapon].Ammo] == 0) { return; } player.Mobj.SetState(MobjState.PlayAtk2); player.Ammo[(int)DoomInfo.WeaponInfos[(int)player.ReadyWeapon].Ammo]--; //* world.PlayerBehavior.SetPlayerSprite( // player, // PlayerSprite.Flash, // DoomInfo.WeaponInfos[(int)player.ReadyWeapon].FlashState + // psp.State.Number - DoomInfo.States[(int)MobjState.Chain1].Number); BulletSlope(player.Mobj); WandShot(player.Mobj, player.Refire == 0); }
public void CheckReload(World world, Player player, PlayerSpriteDef psp) { world.WeaponBehavior.CheckReload(player); }
public void FirePistol(World world, Player player, PlayerSpriteDef psp) { world.WeaponBehavior.FirePistol(player); }
public void ReFire(World world, Player player, PlayerSpriteDef psp) { world.WeaponBehavior.ReFire(player); }
public void Punch(World world, Player player, PlayerSpriteDef psp) { world.WeaponBehavior.Punch(player); }
public void FireGoldwand(World world, Player player, PlayerSpriteDef psp) { world.WeaponBehavior.FireGoldwand(player); }
public void FireMissile(World world, Player player, PlayerSpriteDef psp) { world.WeaponBehavior.FireMissile(player); }
public void FireCGun(World world, Player player, PlayerSpriteDef psp) { world.WeaponBehavior.FireCGun(player, psp); }
public void BFGsound(World world, Player player, PlayerSpriteDef psp) { world.WeaponBehavior.A_BFGsound(player); }
public void CloseShotgun2(World world, Player player, PlayerSpriteDef psp) { world.WeaponBehavior.CloseShotgun2(player); }
public void Light0(World world, Player player, PlayerSpriteDef psp) { world.WeaponBehavior.Light0(player); }
public void WeaponReady(World world, Player player, PlayerSpriteDef psp) { world.WeaponBehavior.WeaponReady(player, psp); }
public void GunFlash(World world, Player player, PlayerSpriteDef psp) { world.WeaponBehavior.GunFlash(player); }
public void Lower(World world, Player player, PlayerSpriteDef psp) { world.WeaponBehavior.Lower(player, psp); }
public void Saw(World world, Player player, PlayerSpriteDef psp) { world.WeaponBehavior.Saw(player); }
public void Raise(World world, Player player, PlayerSpriteDef psp) { world.WeaponBehavior.Raise(player, psp); }