Esempio n. 1
0
    /// <summary>
    /// 切换地图
    /// </summary>
    /// <returns>The map.</returns>
    IEnumerator ChangeMap()
    {
        //隐藏大招按钮
        GameObject.Find("btnOD").SetActive(false);
//		GameObject.Find ("btnLE").SetActive (false);
//		GameObject.Find ("btnRR").SetActive (false);


        for (int i = 0; i < enemyList.Count; i++)
        {
            enemyList [i].IsReady = false;
            enemyList [i].BaseSoldier.OnIdle();
        }

        for (int i = 0; i < soldierList.Count; i++)
        {
            soldierList [i].IsReady = false;
            soldierList [i].BaseSoldier.OnIdle();
        }

//		soldierList [0].IsReady = false;
//		soldierList [1].IsReady = false;
//		soldierList [4].IsReady = false;

        //阿莫说话
        GameObject parent      = StageManager.SharedInstance.EffectLayer;
        GameObject popo2Prefab = ResourceManager.GetInstance.LoadPrefab(TestData.charDB [24].Prefab);
        GameObject popo2       = StageManager.SharedInstance.AddToStage(parent, popo2Prefab);
        Popo       txt2        = popo2.AddComponent <Popo> ();

        txt2.transform.position = MapUtil.GetInstance.MapToWorld(enemyList [2].MapPos.x, enemyList [2].MapPos.y);
        txt2.SetText("小的们顶住!我妈妈喊我回家吃饭!");

        yield return(new WaitForSeconds(2.0f));

        Destroy(popo2);

        //am上天
        BattleAgent amAgent = enemyList [2];

        amAgent.BaseSprite.AddBlackDownEffect();
        amAgent.BaseSprite.gameObject.SetActive(false);
        AudioManager.SharedInstance.PlayOneShot("fly", 1.0f);
        yield return(new WaitForSeconds(1.0f));

        //mx  hm一起上天
        BattleAgent hmAgent = soldierList [2];

        hmAgent.BaseSprite.AddDownEffect();
        hmAgent.BaseSprite.gameObject.SetActive(false);



        BattleAgent mxAgent = soldierList [1];

        mxAgent.BaseSprite.AddDownEffect();
        mxAgent.BaseSprite.gameObject.SetActive(false);

        AudioManager.SharedInstance.PlayOneShot("fly", 1.0f);

        //yield return new WaitForSeconds (0.5f);

        //AudioManager.SharedInstance.PlaySound ("Bgmusic_02", 1.0f);



        //变换背景
        GameObject slashLayer  = StageManager.SharedInstance.SlashLayer;
        GameObject whitePrefab = ResourceManager.GetInstance.LoadPrefab(TestData.charDB [26].Prefab);
        GameObject white       = StageManager.SharedInstance.AddToStage(slashLayer, whitePrefab);
        Image      img         = white.GetComponent <Image> ();
        Color      c           = new Color(img.color.r, img.color.g, img.color.b, 0);

        img.color = c;

        Hashtable args2 = new Hashtable();

        args2.Add("time", 0.5f);
        args2.Add("alpha", 1.0f);
        iTween.FadeTo(white, args2);

        yield return(new WaitForSeconds(0.5f));

        mxAgent.BaseSprite.gameObject.SetActive(true);
        hmAgent.BaseSprite.gameObject.SetActive(true);
        amAgent.BaseSprite.gameObject.SetActive(true);


        mxAgent.ClearTarget();
        mxAgent.AddTarget(amAgent);
        hmAgent.ClearTarget();
        hmAgent.AddTarget(amAgent);
        amAgent.ClearTarget();
        amAgent.AddTarget(hmAgent);


        //重新设定新位置
        mxAgent.BaseSprite.SetMapPosition(3, 2);
        hmAgent.BaseSprite.SetMapPosition(10, 8);
        amAgent.BaseSprite.SetMapPosition(6, 6);


        mxAgent.BaseSprite.gameObject.SetActive(false);
        hmAgent.BaseSprite.gameObject.SetActive(false);
        amAgent.BaseSprite.gameObject.SetActive(false);


        //移除不要的角色

        List <BattleAgent> list1 = new List <BattleAgent> ();

        for (int i = 0; i < enemyList.Count; i++)
        {
            if (enemyList [i] == amAgent)
            {
                continue;
            }
            list1.Add(enemyList [i]);
        }

        for (int i = 0; i < list1.Count; i++)
        {
            RemoveEnemy(list1 [i]);
        }


        List <BattleAgent> list2 = new List <BattleAgent> ();

        for (int i = 0; i < soldierList.Count; i++)
        {
            if (soldierList [i] == hmAgent)
            {
                continue;
            }

            if (soldierList [i] == mxAgent)
            {
                continue;
            }
            list2.Add(soldierList [i]);
        }

        for (int i = 0; i < list2.Count; i++)
        {
            RemoveSoldier(list2 [i]);
        }


        yield return(new WaitForSeconds(1f));

        GameObject bg2 = ResourceManager.GetInstance.LoadPrefab(TestData.charDB [28].Prefab);

        StageManager.SharedInstance.ChangeBg(bg2);

        Hashtable args3 = new Hashtable();

        args3.Add("time", 1f);
        args3.Add("alpha", 0);
        iTween.FadeTo(white, args3);

        yield return(new WaitForSeconds(0.5f));

        Destroy(white);



        //重新落位
        mxAgent.BaseSprite.AddDownEffect();
        mxAgent.BaseSprite.gameObject.SetActive(true);
        AudioManager.SharedInstance.PlayOneShot("fly", 1.0f);
        yield return(new WaitForSeconds(0.1f));

        hmAgent.BaseSprite.AddDownEffect();
        hmAgent.BaseSprite.gameObject.SetActive(true);
        AudioManager.SharedInstance.PlayOneShot("fly", 1.0f);
        yield return(new WaitForSeconds(0.1f));

        amAgent.BaseSprite.AddBlackDownEffect();
        amAgent.BaseSprite.gameObject.SetActive(true);
        AudioManager.SharedInstance.PlayOneShot("fly", 1.0f);


        mxAgent.IsReady = true;
        hmAgent.IsReady = true;
        amAgent.IsReady = true;
    }