UnitGenerationData CreateBossGeneration( string _PrefabName ,
											  string _UnitDataTemplateName , 
											  string _MinimapName )
    {
        UnitGenerationData ret = null ;

        ret = new UnitGenerationData() ;

        ret.unitName = "Netrual_SpawnBoss" ;
        ret.prefabName = _PrefabName ;
        ret.unitDataTemplateName = _UnitDataTemplateName ;
        ret.raceName = _MinimapName ;
        ret.sideName = "Nutral" ;
        ret.supplementalVec[ "WaitForReloadSec" ] = "1.0" ;
        ret.supplementalVec[ "RoutePosition0" ] = "50,0,20" ;
        ret.supplementalVec[ "judgeDistance" ] = "10" ;

        return ret ;
    }
    UnitGenerationData CreateEnemyGeneration( string _PrefabName ,
											  string _UnitDataTemplateName , 
											  string _MinimapName )
    {
        UnitGenerationData ret = null ;

        ret = new UnitGenerationData() ;

        ret.unitName = "Enemy_SpawnUnit" ;
        ret.prefabName = _PrefabName ;
        ret.unitDataTemplateName = _UnitDataTemplateName ;
        ret.raceName = _MinimapName ;
        ret.sideName = "Enemy" ;
        ret.supplementalVec[ "TargetName" ] = "MainCharacter" ;
        ret.supplementalVec[ "WaitForReloadSec" ] = "2.0" ;

        return ret ;
    }
    private void GenerateUnit( UnitGenerationData _UnitGenData )
    {
        LevelGenerator levelGenerator = this.gameObject.GetComponent<LevelGenerator>() ;
        if( null != levelGenerator )
        {
            string unitName = "" ;
            if( 0 == _UnitGenData.unitName.Length )
                unitName = ConstName.CreateEnemyGenerateObjectName( _UnitGenData.raceName ,
                                                                    _UnitGenData.prefabName ) ;
            else
                unitName = _UnitGenData.unitName ;

            GameObject retObj = levelGenerator.GenerateUnit( unitName ,
                                         _UnitGenData.prefabName ,
                                         _UnitGenData.unitDataTemplateName ,
                                         _UnitGenData.raceName ,
                                         _UnitGenData.sideName ,
                                         _UnitGenData.initPosition.GetPosition() ,
                                         _UnitGenData.initOrientation ,
                                         _UnitGenData.supplementalVec ) ;

            TryActiveBattleEventCamera( retObj ) ;

            if( -1 != unitName.IndexOf( "Enemy_" ) )
                m_EnemyGeneratedTable.Add( unitName ) ;
        }
    }
 public void InsertEnemyGenerationTable( UnitGenerationData _AddGenData )
 {
     m_EnemyGenerationTable.Insert( m_EnemyGenerationIndex , _AddGenData ) ;
 }
 public void AddUnitGeneration( UnitGenerationData _AddData )
 {
     if( -1 != _AddData.unitName.IndexOf( "Enemy_" ) )
     {
         m_EnemyGenerationTable.Add( _AddData ) ;
     }
     else
     {
         m_UnitGenerationTable.Add( _AddData ) ;
     }
 }
    private void TryLanunchMissile( UnitData unitData )
    {
        if( false == m_MissileTimer.IsCountDownToZero() )
            return ;
        #if DEBUG
        Debug.Log( "TryLanunchMissile" ) ;
        #endif

        Dictionary<string,NamedObject>.Enumerator e = m_Missile.GetEnumerator() ;
        while( e.MoveNext() )
        {
            if( null == e.Current.Value.Obj )
            {
                // Debug.Log( "null == e.Current.Value.Obj" ) ;
                Transform trans = this.gameObject.transform.FindChild( e.Current.Key ) ;
                if( null == trans )
                    continue ;
                GameObject swapnObj = trans.gameObject ;

                EnemyGenerator enemyGenerator = GlobalSingleton.GetEnemyGeneratorComponent() ;
                UnitGenerationData addData = new UnitGenerationData() ;
                addData.initPosition.Setup( swapnObj.transform.position ) ;
                addData.initOrientation = swapnObj.transform.rotation ;
                addData.raceName = unitData.m_RaceName ;
                addData.sideName = unitData.m_SideName ;

                addData.unitName = "Enemy_CylonBaseShipMissile" + ConstName.GenerateIterateString() ;
                addData.prefabName = "Template_CylonMissile01" ;
                addData.unitDataTemplateName = "UnitDataTemplate_CylonMissile09" ;
                addData.time = Time.timeSinceLevelLoad ;

                addData.supplementalVec.Add( "TargetName" , m_TargetUnit.Name ) ;
                addData.supplementalVec.Add( "ShockwaveDamage" , "30.0" ) ;
                addData.supplementalVec.Add( "DetectRange" , "10.0" ) ;

                // Debug.Log( "enemyGenerator.InsertEnemyGenerationTable()" ) ;
                enemyGenerator.InsertEnemyGenerationTable( addData ) ;
                e.Current.Value.Setup( addData.unitName , null ) ;
                break ;
            }
        }

        m_MissileTimer.Rewind() ;
    }
 public UnitGenerationData( UnitGenerationData _src )
     : base(_src)
 {
     time = _src.time ;
 }