Esempio n. 1
0
    /// <summary>
    /// 查找最近的目标
    /// </summary>
    private void FindTargetForEnemy(BattleAgent hero)
    {
        List <BattleAgent> list = BattleManager.SharedInstance.GetEnemyList();

        List <float> disList = new List <float> ();

        for (int i = 0; i < list.Count; i++)
        {
            float dis = Vector2.Distance(hero.MapPos, list [i].MapPos);

            disList.Add(dis);
        }

        float min = Mathf.Min(disList.ToArray());

        for (int j = 0; j < disList.Count; j++)
        {
            if (min == disList [j])
            {
                hero.AddTarget(list [j]);
            }
        }
    }
Esempio n. 2
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;
    }
Esempio n. 3
0
    /// <summary>
    /// 查找最近的目标
    /// </summary>
    private void FindTargetForHero(BattleAgent hero)
    {
        List<BattleAgent> list = BattleManager.SharedInstance.GetEnemyList ();

        List<float> disList = new List<float> ();

        for (int i = 0; i < list.Count; i++) {

            float dis = Vector2.Distance (hero.MapPos, list [i].MapPos);

            disList.Add (dis);
        }

        float min = Mathf.Min (disList.ToArray ());

        for (int j = 0; j < disList.Count; j++) {

            if (min == disList [j]) {
                hero.AddTarget (list [j]);
            }

        }
    }
Esempio n. 4
0
    IEnumerator AddOD()
    {
        yield return(new WaitForSeconds(0.2f));

        //奥丁
        GameObject parent   = StageManager.SharedInstance.HeroLayer;
        GameObject odPrefab = ResourceManager.GetInstance.LoadPrefab(TestData.charDB [12].Prefab);
        GameObject od       = StageManager.SharedInstance.AddToStage(parent, odPrefab);

        od.name = "od";
        BaseSoldier odSoldier = od.AddComponent <ODSoldier> ();
        BattleAgent odAgent   = new BattleAgent(odSoldier, TestData.charDB [12]);

        odAgent.BaseSprite.SetMapPosition(soldierPos [0].x, soldierPos [0].y);
        odAgent.BaseSprite.AddDownEffect();

        soldierList.Add(odAgent);
        agentDict.Add(od.name, odAgent);

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



        yield return(new WaitForSeconds(0.2f));

        //绿萼

//		GameObject lePrefab = ResourceManager.GetInstance.LoadPrefab (TestData.charDB [13].Prefab);
//		GameObject le = StageManager.SharedInstance.AddToStage (parent, lePrefab);
//		le.name = "le";
//		BaseSoldier leSoldier = le.AddComponent<LESoldier> ();
//		BattleAgent leAgent = new BattleAgent (leSoldier, TestData.charDB [13]);
//		leAgent.BaseSprite.SetMapPosition (soldierPos [1].x, soldierPos [1].y);
//
//		leAgent.BaseSprite.AddDownEffect ();
//		soldierList.Add (leAgent);
//		agentDict.Add (le.name, leAgent);
//		AudioManager.SharedInstance.PlayOneShot ("fly", 1.0f);
//		yield return new WaitForSeconds (0.2f);

        //慕雪

        GameObject mxPrefab = ResourceManager.GetInstance.LoadPrefab(TestData.charDB [14].Prefab);
        GameObject mx       = StageManager.SharedInstance.AddToStage(parent, mxPrefab);

        mx.name = "mx";
        BaseSoldier mxSoldier = mx.AddComponent <MXSoldier> ();
        BattleAgent mxAgent   = new BattleAgent(mxSoldier, TestData.charDB [14]);


        mxAgent.BaseSprite.SetMapPosition(soldierPos [1].x, soldierPos [1].y);
        mxAgent.BaseSprite.AddDownEffect();
        soldierList.Add(mxAgent);
        agentDict.Add(mx.name, mxAgent);
        AudioManager.SharedInstance.PlayOneShot("fly", 1.0f);
        yield return(new WaitForSeconds(0.2f));

        //寒梦

        GameObject hmPrefab = ResourceManager.GetInstance.LoadPrefab(TestData.charDB [15].Prefab);
        GameObject hm       = StageManager.SharedInstance.AddToStage(parent, hmPrefab);

        hm.name = "hm";
        BaseSoldier hmSoldier = hm.AddComponent <HMSoldier> ();
        BattleAgent hmAgent   = new BattleAgent(hmSoldier, TestData.charDB [15]);

        hmAgent.BaseSprite.SetMapPosition(soldierPos [2].x, soldierPos [2].y);
        hmAgent.BaseSprite.AddDownEffect();
        soldierList.Add(hmAgent);
        agentDict.Add(hm.name, hmAgent);
        AudioManager.SharedInstance.PlayOneShot("fly", 1.0f);
        yield return(new WaitForSeconds(0.3f));

        //蓉蓉

//		GameObject rrPrefab = ResourceManager.GetInstance.LoadPrefab (TestData.charDB [16].Prefab);
//		GameObject rr = StageManager.SharedInstance.AddToStage (parent, rrPrefab);
//		rr.name = "rr";
//		BaseSoldier rrSoldier = rr.AddComponent<RRSoldier> ();
//		BattleAgent rrAgent = new BattleAgent (rrSoldier, TestData.charDB [16]);
//
//		rrAgent.BaseSprite.SetMapPosition (soldierPos [4].x, soldierPos [4].y);
//		rrAgent.BaseSprite.AddDownEffect ();
//		soldierList.Add (rrAgent);
//		agentDict.Add (rr.name, rrAgent);
//		AudioManager.SharedInstance.PlayOneShot ("fly", 1.0f);



//		FindTargetForHero (odAgent);

//		soldierList [0].AddTarget (enemyList [0]);
//		soldierList [1].AddTarget (enemyList [0]);
//		soldierList [2].AddTarget (enemyList [0]);
//		soldierList [3].AddTarget (enemyList [0]);
//		soldierList [4].AddTarget (enemyList [0]);


        //enemyList [0].AddTarget (rrAgent);
        //enemyList [0].AddTarget (odAgent);
        enemyList [0].AddTarget(odAgent);
        enemyList [1].AddTarget(mxAgent);
        enemyList [2].AddTarget(hmAgent);

        odAgent.AddTarget(enemyList [0]);
        mxAgent.AddTarget(enemyList [1]);
        hmAgent.AddTarget(enemyList [2]);


        //leAgent.AddTarget (enemyList [1]);

        //rrAgent.AddTarget (enemyList [0]);

//		hmAgent.IsReady = true;
//		enemyList [4].IsReady = true;

//      enemyList[4].IsReady = true;
//      mxAgent.IsReady = true;


//      leAgent.IsReady = true;
//      enemyList[1].IsReady = true;


//		        rrAgent.IsReady = true;
//		        enemyList[0].IsReady = true;


//		for (int i = 0; i < soldierList.Count; i++) {
//			soldierList [i].IsReady = true;
//		}
//
//		for (int i = 0; i < enemyList.Count; i++) {
//			enemyList [i].IsReady = true;
//		}
    }
Esempio n. 5
0
    IEnumerator AddOD()
    {
        yield return new WaitForSeconds (0.2f);
        //奥丁
        GameObject parent = StageManager.SharedInstance.HeroLayer;
        GameObject odPrefab = ResourceManager.GetInstance.LoadPrefab (TestData.charDB [12].Prefab);
        GameObject od = StageManager.SharedInstance.AddToStage (parent, odPrefab);
        od.name = "od";
        BaseSoldier odSoldier = od.AddComponent<ODSoldier> ();
        BattleAgent odAgent = new BattleAgent (odSoldier, TestData.charDB [12]);

        odAgent.BaseSprite.SetMapPosition (soldierPos [0].x, soldierPos [0].y);
        odAgent.BaseSprite.AddDownEffect ();

        soldierList.Add (odAgent);
        agentDict.Add (od.name, odAgent);

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

        yield return new WaitForSeconds (0.2f);

        //绿萼

        //		GameObject lePrefab = ResourceManager.GetInstance.LoadPrefab (TestData.charDB [13].Prefab);
        //		GameObject le = StageManager.SharedInstance.AddToStage (parent, lePrefab);
        //		le.name = "le";
        //		BaseSoldier leSoldier = le.AddComponent<LESoldier> ();
        //		BattleAgent leAgent = new BattleAgent (leSoldier, TestData.charDB [13]);
        //		leAgent.BaseSprite.SetMapPosition (soldierPos [1].x, soldierPos [1].y);
        //
        //		leAgent.BaseSprite.AddDownEffect ();
        //		soldierList.Add (leAgent);
        //		agentDict.Add (le.name, leAgent);
        //		AudioManager.SharedInstance.PlayOneShot ("fly", 1.0f);
        //		yield return new WaitForSeconds (0.2f);

        //慕雪

        GameObject mxPrefab = ResourceManager.GetInstance.LoadPrefab (TestData.charDB [14].Prefab);
        GameObject mx = StageManager.SharedInstance.AddToStage (parent, mxPrefab);
        mx.name = "mx";
        BaseSoldier mxSoldier = mx.AddComponent<MXSoldier> ();
        BattleAgent mxAgent = new BattleAgent (mxSoldier, TestData.charDB [14]);

        mxAgent.BaseSprite.SetMapPosition (soldierPos [1].x, soldierPos [1].y);
        mxAgent.BaseSprite.AddDownEffect ();
        soldierList.Add (mxAgent);
        agentDict.Add (mx.name, mxAgent);
        AudioManager.SharedInstance.PlayOneShot ("fly", 1.0f);
        yield return new WaitForSeconds (0.2f);
        //寒梦

        GameObject hmPrefab = ResourceManager.GetInstance.LoadPrefab (TestData.charDB [15].Prefab);
        GameObject hm = StageManager.SharedInstance.AddToStage (parent, hmPrefab);
        hm.name = "hm";
        BaseSoldier hmSoldier = hm.AddComponent<HMSoldier> ();
        BattleAgent hmAgent = new BattleAgent (hmSoldier, TestData.charDB [15]);

        hmAgent.BaseSprite.SetMapPosition (soldierPos [2].x, soldierPos [2].y);
        hmAgent.BaseSprite.AddDownEffect ();
        soldierList.Add (hmAgent);
        agentDict.Add (hm.name, hmAgent);
        AudioManager.SharedInstance.PlayOneShot ("fly", 1.0f);
        yield return new WaitForSeconds (0.3f);
        //蓉蓉

        //		GameObject rrPrefab = ResourceManager.GetInstance.LoadPrefab (TestData.charDB [16].Prefab);
        //		GameObject rr = StageManager.SharedInstance.AddToStage (parent, rrPrefab);
        //		rr.name = "rr";
        //		BaseSoldier rrSoldier = rr.AddComponent<RRSoldier> ();
        //		BattleAgent rrAgent = new BattleAgent (rrSoldier, TestData.charDB [16]);
        //
        //		rrAgent.BaseSprite.SetMapPosition (soldierPos [4].x, soldierPos [4].y);
        //		rrAgent.BaseSprite.AddDownEffect ();
        //		soldierList.Add (rrAgent);
        //		agentDict.Add (rr.name, rrAgent);
        //		AudioManager.SharedInstance.PlayOneShot ("fly", 1.0f);

        //		FindTargetForHero (odAgent);

        //		soldierList [0].AddTarget (enemyList [0]);
        //		soldierList [1].AddTarget (enemyList [0]);
        //		soldierList [2].AddTarget (enemyList [0]);
        //		soldierList [3].AddTarget (enemyList [0]);
        //		soldierList [4].AddTarget (enemyList [0]);

        //enemyList [0].AddTarget (rrAgent);
        //enemyList [0].AddTarget (odAgent);
        enemyList [0].AddTarget (odAgent);
        enemyList [1].AddTarget (mxAgent);
        enemyList [2].AddTarget (hmAgent);

        odAgent.AddTarget (enemyList [0]);
        mxAgent.AddTarget (enemyList [1]);
        hmAgent.AddTarget (enemyList [2]);

        //leAgent.AddTarget (enemyList [1]);

        //rrAgent.AddTarget (enemyList [0]);

        //		hmAgent.IsReady = true;
        //		enemyList [4].IsReady = true;

        // 		enemyList[4].IsReady = true;
        // 		mxAgent.IsReady = true;

        // 		leAgent.IsReady = true;
        // 		enemyList[1].IsReady = true;

        //		 		rrAgent.IsReady = true;
        //		 		enemyList[0].IsReady = true;

        //		for (int i = 0; i < soldierList.Count; i++) {
        //			soldierList [i].IsReady = true;
        //		}
        //
        //		for (int i = 0; i < enemyList.Count; i++) {
        //			enemyList [i].IsReady = true;
        //		}
    }