//----------------------------------------------------------------------------- // New technologies: //----------------------------------------------------------------------------- void CWeaponCombat_ChargeablePlasma::GainedNewTechnology( CBaseTechnology *pTechnology ) { BaseClass::GainedNewTechnology( pTechnology ); CBaseTFPlayer *pPlayer = ToBaseTFPlayer( (CBaseEntity*)GetOwner() ); if ( pPlayer ) { // Charge-up mode? if ( pPlayer->HasNamedTechnology( "com_comboshield_charge" ) ) { m_bHasCharge = true; } else { m_bHasCharge = false; } // Burst shot mode? if ( pPlayer->HasNamedTechnology( "com_comboshield_tripleshot" ) ) { m_bHasBurstShot = true; } else { m_bHasBurstShot = false; } } }
//----------------------------------------------------------------------------- // Purpose: The player holding this weapon has just gained new technology. // Check to see if it affects the mortar //----------------------------------------------------------------------------- void CWeaponMortar::GainedNewTechnology( CBaseTechnology *pTechnology ) { CBaseTFPlayer *pPlayer = ToBaseTFPlayer( GetOwner() ); if ( pPlayer ) { // Range upgraded? if ( pPlayer->HasNamedTechnology("mortar_range") ) m_bRangeUpgraded = true; else m_bRangeUpgraded = false; // Accuracy upgraded? if ( pPlayer->HasNamedTechnology("mortar_accuracy") ) m_bAccuracyUpgraded = true; else m_bAccuracyUpgraded = false; } }
//----------------------------------------------------------------------------- // Purpose: Set the deployed mortar's firing round //----------------------------------------------------------------------------- void CWeaponMortar::SetRoundType( int iRoundType ) { if ( m_hDeployedMortar == NULL ) return; // Make sure we've got the technology for this round type if ( MortarAmmoTechs[ iRoundType ] && MortarAmmoTechs[ iRoundType ][0] ) { CBaseTFPlayer *pPlayer = ToBaseTFPlayer( GetOwner() ); if ( !pPlayer ) return; // Does the player have the technology? if ( pPlayer->HasNamedTechnology( MortarAmmoTechs[ iRoundType ] ) == false ) return; } m_hDeployedMortar->m_iRoundType = iRoundType; }
//----------------------------------------------------------------------------- // Purpose: The player holding this weapon has just gained new technology. //----------------------------------------------------------------------------- void CWeaponCombatShield::GainedNewTechnology( CBaseTechnology *pTechnology ) { BaseClass::GainedNewTechnology( pTechnology ); CBaseTFPlayer *pPlayer = ToBaseTFPlayer( GetOwner() ); if ( pPlayer ) { // Has a parry? if ( pPlayer->HasNamedTechnology( "com_comboshield_parry" ) ) { m_bHasShieldParry = true; } else { m_bHasShieldParry = false; } } }