Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
2.6 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose: CTF CurrencyPack.
  4. //
  5. //=============================================================================//
  6. #ifndef ENTITY_CURRENCYPACK_H
  7. #define ENTITY_CURRENCYPACK_H
  8. #ifdef _WIN32
  9. #pragma once
  10. #endif
  11. #include "tf_powerup.h"
  12. #include "player.h"
  13. #include "tf_shareddefs.h"
  14. //=============================================================================
  15. //
  16. // CTF CurrencyPack class.
  17. //
  18. DECLARE_AUTO_LIST( ICurrencyPackAutoList );
  19. class CCurrencyPack : public CTFPowerup, public ICurrencyPackAutoList
  20. {
  21. public:
  22. DECLARE_CLASS( CCurrencyPack, CTFPowerup );
  23. DECLARE_SERVERCLASS();
  24. CCurrencyPack();
  25. ~CCurrencyPack();
  26. void Spawn( void );
  27. void Precache( void );
  28. void UpdateOnRemove( void );
  29. virtual int UpdateTransmitState() OVERRIDE;
  30. virtual int ShouldTransmit( const CCheckTransmitInfo *pInfo ) OVERRIDE;
  31. bool MyTouch( CBasePlayer *pPlayer );
  32. virtual bool AffectedByRadiusCollection() const { return true; }
  33. void SetAmount( float flAmount );
  34. void SetClaimed( void ) { m_bClaimed = true; } // Radius collection code "steers" packs toward the player
  35. bool IsClaimed( void ) { return m_bClaimed; } // So don't allow other players to interfere
  36. void DistributedBy( CBasePlayer* pMoneyMaker );
  37. virtual CurrencyRewards_t GetPackSize( void ) { return TF_CURRENCY_PACK_LARGE; }
  38. virtual const char *GetDefaultPowerupModel( void ) { return "models/items/currencypack_large.mdl"; }
  39. protected:
  40. virtual void ComeToRest( void );
  41. void BlinkThink( void );
  42. int m_nAmount;
  43. uint32 m_nWaveNumber;
  44. int m_blinkCount;
  45. CountdownTimer m_blinkTimer;
  46. bool m_bTouched;
  47. bool m_bClaimed;
  48. CNetworkVar( bool, m_bDistributed );
  49. };
  50. class CCurrencyPackMedium : public CCurrencyPack
  51. {
  52. public:
  53. DECLARE_CLASS( CCurrencyPackMedium, CCurrencyPack );
  54. virtual CurrencyRewards_t GetPackSize( void ) { return TF_CURRENCY_PACK_MEDIUM; }
  55. virtual const char *GetDefaultPowerupModel( void ) { return "models/items/currencypack_medium.mdl"; }
  56. };
  57. class CCurrencyPackSmall : public CCurrencyPack
  58. {
  59. public:
  60. DECLARE_CLASS( CCurrencyPackSmall, CCurrencyPack );
  61. virtual CurrencyRewards_t GetPackSize( void ) { return TF_CURRENCY_PACK_SMALL; }
  62. virtual const char *GetDefaultPowerupModel( void ) { return "models/items/currencypack_small.mdl"; }
  63. };
  64. class CCurrencyPackCustom : public CCurrencyPack
  65. {
  66. public:
  67. DECLARE_CLASS( CCurrencyPackCustom, CCurrencyPack );
  68. virtual CurrencyRewards_t GetPackSize( void ) { return TF_CURRENCY_PACK_CUSTOM; }
  69. virtual const char *GetDefaultPowerupModel( void );
  70. };
  71. #endif // ENTITY_CURRENCYPACK_H