コード例 #1
0
    // 取得最大的武器清單,並依照排序
    private List<string> RetrievePossibleWeaponListInOrder( UnitData _unitData , 
															UnitWeaponSystem _weaponSys )
    {
        List<string> ret = new List<string>() ;
        List<string> allWeapens = _unitData.GetAllWeaponComponentNameVec() ;
        List<string> realWeapons = new List<string>() ;

        // 剔除trackor beam
        foreach( string weapon in allWeapens )
        {
            if( -1 == weapon.IndexOf( ConstName.UnitDataComponentWeaponTrackorBeamPrefix ) )
            {
                // no trackor beam
                realWeapons.Add( weapon ) ;
            }
        }

        while( realWeapons.Count > 0 )
        {
            // 找最遠的
            float maxRange = -1 ;
            string maxRangeString = "" ;
            foreach( string weapon in realWeapons )
            {

                float rangeThis = _unitData.componentMap[ weapon ].m_WeaponParam.m_Range ;
                if( rangeThis > maxRange )
                {
                    maxRange = rangeThis ;
                    maxRangeString = weapon ;
                }
            }
            realWeapons.Remove( maxRangeString ) ;
            ret.Add( maxRangeString ) ;
        }

        return ret ;
    }