Exemplo n.º 1
0
    void Init()
    {
        transform.parent           = MagicController.Instance.magicRoot;
        transform.localPosition    = Vector3.zero;
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;

        warCtrl = MagicController.Instance.warCtrl;
        side    = MagicController.Instance.GetMagicSide();
        if (side == WarSceneController.WhichSide.Left)
        {
            speed        = speedLeft;
            general      = MagicController.Instance.warCtrl.leftGeneral;
            enemyGeneral = MagicController.Instance.warCtrl.rightGeneral;
        }
        else
        {
            speed        = speedRight;
            general      = MagicController.Instance.warCtrl.rightGeneral;
            enemyGeneral = MagicController.Instance.warCtrl.leftGeneral;
        }

        cameraPos   = general.transform.localPosition;
        cameraPos.y = -30 * level;
    }
Exemplo n.º 2
0
    void Init()
    {
        transform.parent           = MagicController.Instance.magicRoot;
        transform.localPosition    = Vector3.zero;
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;

        warCtrl = MagicController.Instance.warCtrl;
        side    = MagicController.Instance.GetMagicSide();
        if (side == WarSceneController.WhichSide.Left)
        {
            general      = warCtrl.leftGeneral;
            enemyGeneral = warCtrl.rightGeneral;
            scale        = WarSceneController.manScaleLeft;
            speed        = speedLeft;
            posOffset    = posOffsetLeft;
        }
        else
        {
            general      = warCtrl.rightGeneral;
            enemyGeneral = warCtrl.leftGeneral;
            scale        = WarSceneController.manScaleRight;
            speed        = speedRight;
            posOffset    = posOffsetRight;
        }
    }
Exemplo n.º 3
0
    public void SetRangedWeapon(WarSceneController.WhichSide s, WarSceneController.Direction d, int t, Vector3 pos)
    {
        int          idx = t - 3;
        GameObject   go  = (GameObject)Instantiate(rangedWeaponPrefab[idx]);
        RangedWeapon rw  = go.AddComponent <RangedWeapon>();

        rw.Init(s, d, t, pos, transform, warCtrl);
    }
Exemplo n.º 4
0
    public void SetInfo(bool isWithFire, WarSceneController.WhichSide side, Vector3 positionStart, SolidersController soliderCtrl, GeneralController generalCtrl)
    {
        this.isWithFire  = isWithFire;
        this.side        = side;
        this.soliderCtrl = soliderCtrl;
        this.generalCtrl = generalCtrl;

        this.transform.localPosition = positionStart;
    }
Exemplo n.º 5
0
    void Init()
    {
        transform.parent           = MagicController.Instance.magicRoot;
        transform.localPosition    = Vector3.zero;
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;

        warCtrl          = MagicController.Instance.warCtrl;
        side             = MagicController.Instance.GetMagicSide();
        enemySide        = MagicController.Instance.GetMagicEnemySide();
        enemyCenterPoint = warCtrl.GetArmyCentrePoint(enemySide);

        Vector3 upOffset;
        Vector3 downOffset;
        Vector3 scale;

        if (side == WarSceneController.WhichSide.Left)
        {
            upOffset   = upOffsetLeft;
            downOffset = downOffsetLeft;
            scale      = WarSceneController.manScaleLeft;
        }
        else
        {
            upOffset   = upOffsetRight;
            downOffset = downOffsetRight;
            scale      = WarSceneController.manScaleRight;
        }

        Vector3[] carPositionFrom = new Vector3[] {
            enemyCenterPoint + upOffset,
            enemyCenterPoint + downOffset,
            enemyCenterPoint + upOffset + upSpace,
            enemyCenterPoint + downOffset + downSpace
        };

        upOffset.x   = -upOffset.x;
        downOffset.x = -downOffset.x;

        Vector3[] carPositionTo = new Vector3[] {
            enemyCenterPoint + upOffset,
            enemyCenterPoint + downOffset,
            enemyCenterPoint + upOffset + upSpace,
            enemyCenterPoint + downOffset + downSpace
        };

        for (int i = 0; i < level * 2; i++)
        {
            GameObject go = InstantiateOneGO(carName, carPositionFrom[i], scale, WarSceneController.manEulerAngles);
            go.SetActive(false);
            go.GetComponent <MagicChongCheAct>().SetInfo(carPositionFrom[i], carPositionTo[i]);
            listCar.Add(go);
        }
    }
Exemplo n.º 6
0
    void Init()
    {
        warCtrl         = MagicController.Instance.warCtrl;
        enemySide       = MagicController.Instance.GetMagicEnemySide();
        armyCenterPoint = warCtrl.GetArmyCentrePoint(enemySide);

        transform.parent           = MagicController.Instance.magicRoot;
        transform.localPosition    = Vector3.zero;
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;
    }
Exemplo n.º 7
0
    void Init()
    {
        transform.parent           = MagicController.Instance.magicRoot;
        transform.localPosition    = Vector3.zero;
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;

        warCtrl        = MagicController.Instance.warCtrl;
        side           = MagicController.Instance.GetMagicSide();
        enemySide      = MagicController.Instance.GetMagicEnemySide();
        enemyCenterPos = warCtrl.GetArmyCentrePoint(enemySide);

        List <SolidersController> listSoldier = new List <SolidersController>();

        for (int i = 0; i < level; i++)
        {
            SolidersController sCtrl = MagicController.Instance.warCtrl.GetRandomSolider(enemySide);
            Vector3            pos;
            if (sCtrl != null && !listSoldier.Contains(sCtrl))
            {
                pos = sCtrl.transform.localPosition;
                listSoldier.Add(sCtrl);
            }
            else
            {
                if (!isHitGeneral && Random.Range(0, 100) < 40)
                {
                    isHitGeneral = true;
                    GeneralController gCtrl;
                    if (enemySide == WarSceneController.WhichSide.Left)
                    {
                        gCtrl = MagicController.Instance.warCtrl.leftGeneral;
                    }
                    else
                    {
                        gCtrl = MagicController.Instance.warCtrl.rightGeneral;
                    }
                    pos = gCtrl.transform.localPosition;
                }
                else
                {
                    pos    = enemyCenterPos;
                    pos.x += Random.Range(-180, 180);
                    pos.y += Random.Range(-100, 100);
                }
            }

            GameObject go = InstantiateOneGO(tornadoName, pos, Vector3.one, Vector3.zero);
            go.SetActive(false);
            listTornado.Add(go);
        }
    }
Exemplo n.º 8
0
    void WaitForCameraMoveToGeneral()
    {
        WarSceneController.WhichSide side = MagicController.Instance.GetMagicSide();
        if (side == WarSceneController.WhichSide.Left)
        {
            MagicController.Instance.warCtrl.SetCameraMoveTo(cameraPosLeft);
        }
        else
        {
            MagicController.Instance.warCtrl.SetCameraMoveTo(cameraPosRight);
        }

        Invoke("WaitForMoveCameraToDownArrow", 1.5f);
    }
Exemplo n.º 9
0
 public void ResetSwordValue(WarSceneController.WhichSide side)
 {
     if (side == WarSceneController.WhichSide.Left)
     {
         leftSwordValue          = 0;
         leftSwordClipping.width = leftSwordValue;
         leftSwordSP.color       = new Color(1, 1, 1, 1);
     }
     else
     {
         rightSwordValue          = 0;
         rightSwordClipping.width = leftSwordValue;
         rightSwordSP.color       = new Color(1, 1, 1, 1);
     }
 }
Exemplo n.º 10
0
    void Init()
    {
        transform.parent           = MagicController.Instance.magicRoot;
        transform.localPosition    = Vector3.zero;
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;

        warCtrl          = MagicController.Instance.warCtrl;
        enemySide        = MagicController.Instance.GetMagicEnemySide();
        enemyCenterPoint = warCtrl.GetArmyCentrePoint(enemySide);

        go = (GameObject)Instantiate(Resources.Load(wordName));
        go.transform.parent        = transform;
        go.transform.localPosition = enemyCenterPoint;
        go.SetActive(false);
    }
Exemplo n.º 11
0
    public void SetMagic(int no, WarSceneController.WhichSide side)
    {
        info = MagicManager.Instance.GetMagicDataInfo(no);

        warCtrl.OnResumeGame();
        WarSceneController.state = WarSceneController.State.Magic;

        this.side = side;
        if (side == WarSceneController.WhichSide.Right)
        {
            enemySide = WarSceneController.WhichSide.Left;
            magicShow.magicInfo.SetInfo(info);

            warCtrl.rightGeneral.SetGeneralWaitForMagic(info.TIME);
            warCtrl.SetCameraMoveTo(new Vector3(
                                        warCtrl.rightGeneral.transform.localPosition.x,
                                        -30,
                                        0));
        }
        else
        {
            enemySide = WarSceneController.WhichSide.Right;
            warCtrl.leftGeneral.SetGeneralWaitForMagic(info.TIME);
            warCtrl.SetCameraMoveTo(new Vector3(
                                        warCtrl.leftGeneral.transform.localPosition.x,
                                        -30,
                                        0));
        }

        if (no == 18 || no == 49)
        {
            magicCount = 3;
        }
        else
        {
            magicCount = 1;
        }

        grayCtrl.SetGray(true);
        warCtrl.WaitforMagicMoveToGeneral();
    }
Exemplo n.º 12
0
    void Init()
    {
        transform.parent           = MagicController.Instance.magicRoot;
        transform.localPosition    = Vector3.zero;
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;

        warCtrl   = MagicController.Instance.warCtrl;
        side      = MagicController.Instance.GetMagicSide();
        enemySide = MagicController.Instance.GetMagicEnemySide();

        Vector3 posGeneral;

        if (enemySide == WarSceneController.WhichSide.Left)
        {
            gCtrl      = warCtrl.leftGeneral;
            posGeneral = warCtrl.leftGeneral.transform.localPosition;
        }
        else
        {
            gCtrl      = warCtrl.rightGeneral;
            posGeneral = warCtrl.rightGeneral.transform.localPosition;
        }

        Vector3    pos = posGeneral;
        GameObject go  = InstantiateOneGO(stoneName, pos, WarSceneController.manScaleRight, WarSceneController.manEulerAngles);

        go.SetActive(false);
        listStones.Add(go);

        for (int i = 1; i < levelNum[level - 1]; i++)
        {
            pos    = posGeneral;
            pos.x += Random.Range(-100, 100);
            pos.y += Random.Range(-100, 100);
            go     = InstantiateOneGO(stoneName, pos, WarSceneController.manScaleRight, WarSceneController.manEulerAngles);
            go.SetActive(false);
            listStones.Add(go);
        }
    }
Exemplo n.º 13
0
    void Init()
    {
        transform.parent           = MagicController.Instance.magicRoot;
        transform.localPosition    = Vector3.zero;
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;

        warCtrl = MagicController.Instance.warCtrl;
        side    = MagicController.Instance.GetMagicSide();
        if (side == WarSceneController.WhichSide.Left)
        {
            speed        = speedLeft;
            general      = MagicController.Instance.warCtrl.leftGeneral;
            enemyGeneral = MagicController.Instance.warCtrl.rightGeneral;
        }
        else
        {
            speed        = speedRight;
            general      = MagicController.Instance.warCtrl.rightGeneral;
            enemyGeneral = MagicController.Instance.warCtrl.leftGeneral;
        }

        if (type == 0)
        {
            arrowName   = arrowName1;
            explodeName = explodeName1;
        }
        else if (type == 1)
        {
            arrowName   = arrowName2;
            explodeName = explodeName2;
        }
        else if (type == 2)
        {
            arrowName   = arrowName3;
            explodeName = explodeName3;
        }
    }
Exemplo n.º 14
0
    public void SetDialogue(string t, WarSceneController.WhichSide side)
    {
        gameObject.SetActive(true);
        isShowingText = true;
        text          = t;
        textIdx       = 0;
        timeTick      = Time.realtimeSinceStartup;

        if (font == null)
        {
            font = transform.FindChild("Font").GetComponent <exSpriteFont>();
        }
        font.text = "";

        if (side == WarSceneController.WhichSide.Left)
        {
            transform.localPosition = new Vector3(offset, transform.localPosition.y, transform.localPosition.z);
        }
        else
        {
            transform.localPosition = new Vector3(-offset, transform.localPosition.y, transform.localPosition.z);
        }
    }
Exemplo n.º 15
0
    void Init()
    {
        warCtrl     = MagicController.Instance.warCtrl;
        centerPoint = warCtrl.GetArmyCentrePoint(MagicController.Instance.GetMagicEnemySide());

        transform.parent        = MagicController.Instance.magicRoot;
        transform.localPosition = centerPoint;
        side = MagicController.Instance.GetMagicSide();
        if (side == WarSceneController.WhichSide.Left)
        {
            transform.localPosition = new Vector3(transform.localPosition.x - 100,
                                                  transform.localPosition.y,
                                                  transform.localPosition.z);
        }
        else
        {
            transform.localPosition = new Vector3(transform.localPosition.x + 100,
                                                  transform.localPosition.y,
                                                  transform.localPosition.z);
        }
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;
    }
Exemplo n.º 16
0
    void Init()
    {
        transform.parent           = MagicController.Instance.magicRoot;
        transform.localPosition    = Vector3.zero;
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;

        warCtrl = MagicController.Instance.warCtrl;
        side    = MagicController.Instance.GetMagicSide();

        if (side == WarSceneController.WhichSide.Left)
        {
            posGeneral = warCtrl.leftGeneral.transform.localPosition;
        }
        else
        {
            posGeneral = warCtrl.rightGeneral.transform.localPosition;
        }

        float angle = 2 * Mathf.PI / 8;

        for (int i = 0; i < level; i++)
        {
            for (int j = 0; j < 8; j++)
            {
                Vector3 pos = posGeneral;
                pos.x += radius * level * Mathf.Cos(angle * (j + 0.5f));
                pos.y += radius * level * Mathf.Sin(angle * (j + 0.5f));

                GameObject go = InstantiateOneGO(fireName, posGeneral, WarSceneController.manScaleRight, WarSceneController.manEulerAngles);
                go.GetComponent <MagicBaMianHuoAct>().SetInfo(posGeneral, pos);
                go.SetActive(false);
                listFire.Add(go);
            }
        }
    }
Exemplo n.º 17
0
    public void Init(WarSceneController.WhichSide s, WarSceneController.Direction d, int t, Vector3 pos, Transform parent, WarSceneController ws)
    {
        side    = s;
        dir     = d;
        type    = t;
        warCtrl = ws;

        transform.parent                    = parent;
        transform.localPosition             = pos;
        transform.GetChild(0).localPosition = offset;

        if (dir == WarSceneController.Direction.Left)
        {
            speed = -speed;
            transform.localScale = WarSceneController.manScaleRight;
        }
        else
        {
            transform.localScale = WarSceneController.manScaleLeft;
        }
        orgPosX = transform.localPosition.x;

        transform.localEulerAngles = WarSceneController.manEulerAngles;
    }
Exemplo n.º 18
0
    void Init()
    {
        transform.parent           = MagicController.Instance.magicRoot;
        transform.localPosition    = Vector3.zero;
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;

        warCtrl          = MagicController.Instance.warCtrl;
        side             = MagicController.Instance.GetMagicSide();
        enemySide        = MagicController.Instance.GetMagicEnemySide();
        enemyCenterPoint = warCtrl.GetArmyCentrePoint(enemySide);

        Vector3 scale;
        Vector3 juShiDownOff;
        Vector3 juShiBasePos;
        float   juShiXStep;

        if (side == WarSceneController.WhichSide.Left)
        {
            scale        = WarSceneController.manScaleLeft;
            juShiDownOff = juShiDownOffLeft;
            juShiBasePos = juShiBasePosLeft;
            juShiXStep   = juShiXStepLeft;
        }
        else
        {
            scale        = WarSceneController.manScaleRight;
            juShiDownOff = juShiDownOffRight;
            juShiBasePos = juShiBasePosRight;
            juShiXStep   = juShiXStepRight;
        }

        for (int i = 0; i < levelNum[level - 1]; i++)
        {
            int     col = i / 6;
            int     row = i % 6;
            Vector3 pos = new Vector3(juShiBasePos.x + juShiXStep * col,
                                      juShiBasePos.y + juShiYStep * row,
                                      juShiBasePos.z);
            GameObject go = InstantiateOneGO(juShiName, pos, scale, WarSceneController.manEulerAngles);
            listJuShi.Add(go);

            List <SolidersController> listSolidersAdded = new List <SolidersController>();

            SolidersController sCtrl = MagicController.Instance.warCtrl.GetRandomSolider(enemySide);
            if (sCtrl != null && !listSolidersAdded.Contains(sCtrl))
            {
                listSolidersAdded.Add(sCtrl);

                pos   = sCtrl.transform.localPosition;
                pos.z = 0;
                pos  += juShiDownOff;
            }
            else
            {
                if (!hitGeneral && Random.Range(0, 100) < 40)
                {
                    hitGeneral = true;
                    GeneralController gCtrl;
                    if (enemySide == WarSceneController.WhichSide.Left)
                    {
                        gCtrl = MagicController.Instance.warCtrl.leftGeneral;
                    }
                    else
                    {
                        gCtrl = MagicController.Instance.warCtrl.rightGeneral;
                    }
                    pos   = gCtrl.transform.localPosition;
                    pos.z = 0;
                    pos  += juShiDownOff;
                }
                else
                {
                    pos = new Vector3(enemyCenterPoint.x + Random.Range(-150, 150),
                                      enemyCenterPoint.y + Random.Range(-80, 80),
                                      -150);
                }
            }

            go = InstantiateOneGO(juShiDownName, pos, scale, WarSceneController.manEulerAngles);
            go.SetActive(false);
            go.GetComponent <MagicJuShiDown>().SetInfo(pos, pos - juShiDownOff, this);
            listJuShiDown.Add(go);
        }
    }
Exemplo n.º 19
0
    void Init()
    {
        transform.parent           = MagicController.Instance.magicRoot;
        transform.localPosition    = Vector3.zero;
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;

        warCtrl        = MagicController.Instance.warCtrl;
        side           = MagicController.Instance.GetMagicSide();
        enemySide      = MagicController.Instance.GetMagicEnemySide();
        enemyCenterPos = warCtrl.GetArmyCentrePoint(enemySide);

        Vector3 posGeneral;

        if (side == WarSceneController.WhichSide.Left)
        {
            posGeneral = warCtrl.leftGeneral.transform.localPosition;
        }
        else
        {
            posGeneral = warCtrl.rightGeneral.transform.localPosition;
        }
        yellowDragon = InstantiateOneGO(yellowDragonName, posGeneral, WarSceneController.manScaleRight, WarSceneController.manEulerAngles);
        yellowDragon.SetActive(false);

        particalGO = (GameObject)Instantiate(Resources.Load(particalName1));
        particalGO.transform.parent        = transform;
        particalGO.transform.localPosition = posGeneral;

        for (int i = 0; i < 10; i++)
        {
            Vector3 posUp = posGeneral;
            posUp.x += Random.Range(-30, 30);
            GameObject go = InstantiateOneGO(fireUpName, posUp, WarSceneController.manScaleRight, WarSceneController.manEulerAngles);
            go.SetActive(false);
            listFireUp.Add(go);

            go = InstantiateOneGO(fireDownName, Vector3.zero, WarSceneController.manScaleRight, WarSceneController.manEulerAngles);
            go.SetActive(false);
            listFireDown.Add(go);
            MagicFireDown      fireDownScript = go.GetComponent <MagicFireDown>();
            SolidersController sCtrl          = MagicController.Instance.warCtrl.GetRandomSolider(enemySide);
            Vector3            pos;
            if (sCtrl != null)
            {
                pos   = sCtrl.transform.localPosition;
                pos.z = -150;
            }
            else
            {
                if (!hitGeneral && Random.Range(0, 100) < 20)
                {
                    hitGeneral = true;
                    GeneralController gCtrl;
                    if (enemySide == WarSceneController.WhichSide.Left)
                    {
                        gCtrl = MagicController.Instance.warCtrl.leftGeneral;
                    }
                    else
                    {
                        gCtrl = MagicController.Instance.warCtrl.rightGeneral;
                    }
                    pos   = gCtrl.transform.localPosition;
                    pos.z = -150;
                }
                else
                {
                    pos = new Vector3(enemyCenterPos.x + Random.Range(-150, 150),
                                      enemyCenterPos.y + Random.Range(-80, 80),
                                      -150);
                }
            }

            fireDownScript.SetInfo(pos, this);

            go = InstantiateOneGO(fireExplodeName, Vector3.zero, WarSceneController.manScaleRight, WarSceneController.manEulerAngles);
            go.SetActive(false);
            listFireExplode.Add(go);
        }
    }
Exemplo n.º 20
0
 public void SetInfo(WarSceneController.WhichSide side)
 {
     this.side = side;
 }
Exemplo n.º 21
0
    void Init()
    {
        transform.parent           = MagicController.Instance.magicRoot;
        transform.localPosition    = Vector3.zero;
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;

        float   xStep         = 0;
        Vector3 arrowOff      = Vector3.zero;
        Vector3 arrowDownOff  = Vector3.zero;
        Vector3 posBase       = Vector3.zero;
        Vector3 scale         = Vector3.zero;
        string  archerName    = "";
        string  arrowUpName   = "";
        string  arrowDownName = "";

        WarSceneController.WhichSide side      = MagicController.Instance.GetMagicSide();
        WarSceneController.WhichSide enemySide =
            (side == WarSceneController.WhichSide.Left) ? WarSceneController.WhichSide.Right : WarSceneController.WhichSide.Left;

        if (side == WarSceneController.WhichSide.Left)
        {
            xStep        = this.manXStepLeft;
            arrowOff     = this.arrowOffLeft;
            arrowDownOff = this.arrowDownOffLeft;
            posBase      = this.manBasePosLeft;
            scale        = WarSceneController.manScaleLeft;

            if (!isWithFire)
            {
                archerName = this.archerNameLeft;
            }
            else
            {
                archerName = this.fireArcherNameLeft;
            }
        }
        else
        {
            xStep        = this.manXStepRight;
            arrowOff     = this.arrowOffRight;
            arrowDownOff = this.arrowDownOffRight;
            posBase      = this.manBasePosRight;
            scale        = WarSceneController.manScaleRight;

            if (!isWithFire)
            {
                archerName = this.archerNameRight;
            }
            else
            {
                archerName = this.fireArcherNameRight;
            }
        }

        if (!isWithFire)
        {
            arrowUpName   = this.arrowUpName;
            arrowDownName = this.arrowDownName;
        }
        else
        {
            arrowUpName   = this.fireArrowUpName;
            arrowDownName = this.fireArrowDownName;
        }

        this.enemyCenterPoint = MagicController.Instance.warCtrl.GetArmyCentrePoint(enemySide);
        List <SolidersController> listSolidersAdded = new List <SolidersController>();

        for (int i = 0; i < level; i++)
        {
            for (int j = 0; j < 10; j++)
            {
                GameObject archerGO = InstantiateOneGO(archerName, posBase, scale);
                archerGO.GetComponent <MGArcherCtrl>().SetInfo(i * 10 + j, isWithFire, Random.Range(1f, 1.5f), this);

                GameObject arrowUpGO = InstantiateOneGO(arrowUpName, posBase + arrowOff, scale);
                arrowUpGO.SetActive(false);
                listArrowUp.Add(arrowUpGO);
                arrowUpGO.GetComponent <MGArrowUpCtrl>().SetInfo(side);

                GameObject arrowDownGO = InstantiateOneGO(arrowDownName, Vector3.zero, scale);
                arrowDownGO.SetActive(false);
                listArrowDown.Add(arrowDownGO);

                Vector3            pos;
                SolidersController sCtrl = MagicController.Instance.warCtrl.GetRandomSolider(enemySide);
                if (sCtrl != null && !listSolidersAdded.Contains(sCtrl))
                {
                    listSolidersAdded.Add(sCtrl);

                    pos   = sCtrl.transform.localPosition;
                    pos.z = 0;
                    pos  += arrowDownOff;
                    arrowDownGO.GetComponent <MGArrowDownCtrl>().SetInfo(isWithFire, side, pos, sCtrl, null);
                }
                else
                {
                    if (!hitGeneral && Random.Range(0, 100) < 20)
                    {
                        hitGeneral = true;
                        GeneralController gCtrl;
                        if (enemySide == WarSceneController.WhichSide.Left)
                        {
                            gCtrl = MagicController.Instance.warCtrl.leftGeneral;
                        }
                        else
                        {
                            gCtrl = MagicController.Instance.warCtrl.rightGeneral;
                        }
                        pos   = gCtrl.transform.localPosition;
                        pos.z = 0;
                        pos  += arrowDownOff;
                        arrowDownGO.GetComponent <MGArrowDownCtrl>().SetInfo(isWithFire, side, pos, null, gCtrl);
                    }
                    else
                    {
                        pos = new Vector3(enemyCenterPoint.x + Random.Range(-150, 150),
                                          enemyCenterPoint.y + Random.Range(-80, 80),
                                          -150);
                        arrowDownGO.GetComponent <MGArrowDownCtrl>().SetInfo(isWithFire, side, pos, null, null);
                    }
                }

                posBase.y += this.manYStep;
            }
            posBase.x += xStep;
            posBase.y -= this.manYStep * 10;
        }
    }
Exemplo n.º 22
0
    void Init()
    {
        side = MagicController.Instance.GetMagicSide();

        transform.parent           = MagicController.Instance.magicRoot;
        transform.localPosition    = Vector3.zero;
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;

        int         soldierCur = 0;
        int         soldierMax = 0;
        int         addNum     = 0;
        float       manXStep   = 0;
        Vector3     pos        = Vector3.zero;
        GeneralInfo gInfo;

        if (side == WarSceneController.WhichSide.Left)
        {
            manXStep = manXStepLeft;
            pos      = manPosBaseLeft;
            gInfo    = Informations.Instance.GetGeneralInfo(WarSceneController.leftGeneralIdx);

            soldierRoot = GameObject.Find("LeftSoliders").transform;
        }
        else
        {
            manXStep = manXStepRight;
            pos      = manPosBaseRight;
            gInfo    = Informations.Instance.GetGeneralInfo(WarSceneController.rightGeneralIdx);

            soldierRoot = GameObject.Find("RightSoliders").transform;
        }

        soldierCur  = gInfo.soldierCur + gInfo.knightCur;
        soldierMax  = gInfo.soldierMax + gInfo.knightMax;
        soldierCur += levelNum[level];
        if (soldierCur > soldierMax)
        {
            soldierCur = soldierMax;
        }
        addNum = soldierCur - (gInfo.soldierCur + gInfo.knightCur);

        if (addNum == 0)
        {
            return;
        }

        int addIdx      = 0;
        int soliderType = Misc.GetArmsIdx(gInfo.armsCur);

        int knightNum = gInfo.knightMax - gInfo.knightCur;

        for (int i = 0; i < knightNum; i++)
        {
            GenerateOneSoldier(soliderType, pos, true);
            gInfo.knightCur++;

            addNum--;
            if (addNum == 0)
            {
                return;
            }

            addIdx++;
            if (addIdx == 10)
            {
                addIdx = 0;
                pos.x += manXStep;
                pos.y  = 180;
            }
            else
            {
                pos.y += manYStep;
            }
        }

        int footSoldierNum = gInfo.soldierMax - gInfo.soldierCur;

        for (int i = 0; i < footSoldierNum; i++)
        {
            GenerateOneSoldier(soliderType, pos, false);
            gInfo.soldierCur++;

            addNum--;
            if (addNum == 0)
            {
                return;
            }

            addIdx++;
            if (addIdx == 10)
            {
                addIdx = 0;
                pos.x += manXStep;
                pos.y  = 180;
            }
            else
            {
                pos.y += manYStep;
            }
        }
    }
Exemplo n.º 23
0
    void Init()
    {
        transform.parent           = MagicController.Instance.magicRoot;
        transform.localPosition    = Vector3.zero;
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;

        warCtrl   = MagicController.Instance.warCtrl;
        side      = MagicController.Instance.GetMagicSide();
        enemySide = MagicController.Instance.GetMagicEnemySide();

        Vector3 posGeneral;

        if (side == WarSceneController.WhichSide.Left)
        {
            posGeneral = warCtrl.leftGeneral.transform.localPosition;
        }
        else
        {
            posGeneral = warCtrl.rightGeneral.transform.localPosition;
        }

        float angle = 2 * Mathf.PI / (level * 4);

        for (int i = 0; i < level * 4; i++)
        {
            Vector3 pos = posGeneral;
            pos.x += radius * Mathf.Cos(angle * (i + 0.5f));
            pos.y += radius * Mathf.Sin(angle * (i + 0.5f));
            pos.z  = -50;
            GameObject go = InstantiateOneGO(swordUpName, pos, WarSceneController.manScaleRight, WarSceneController.manEulerAngles);
            go.SetActive(false);
            listSwordUp.Add(go);
        }

        List <SolidersController> listSoldier = new List <SolidersController>();

        for (int i = 0; i < level; i++)
        {
            SolidersController sCtrl = MagicController.Instance.warCtrl.GetRandomSolider(enemySide);
            Vector3            pos;
            if (sCtrl != null && !listSoldier.Contains(sCtrl))
            {
                pos   = sCtrl.transform.localPosition;
                pos.z = -150;
                listSoldier.Add(sCtrl);
            }
            else
            {
                GeneralController gCtrl;
                if (enemySide == WarSceneController.WhichSide.Left)
                {
                    gCtrl = MagicController.Instance.warCtrl.leftGeneral;
                }
                else
                {
                    gCtrl = MagicController.Instance.warCtrl.rightGeneral;
                }
                pos   = gCtrl.transform.localPosition;
                pos.z = -150;
            }
            GameObject go = InstantiateOneGO(swordDownMainName, pos, WarSceneController.manScaleRight * 3f, WarSceneController.manEulerAngles);
            go.SetActive(false);
            go.GetComponent <MagicSwordDonwMain>().SetInfo(this);
            listSwordDownMain.Add(go);

            for (int j = 0; j < 8; j++)
            {
                Vector3 posDown = pos;
                posDown.x += Random.Range(-50, 50);
                posDown.y += Random.Range(-50, 50);
                go         = InstantiateOneGO(swordDownName, posDown, WarSceneController.manScaleRight, WarSceneController.manEulerAngles);
                go.SetActive(false);
                listSwordDown.Add(go);
            }
        }
    }
Exemplo n.º 24
0
 public void SetSide(WarSceneController.WhichSide s)
 {
     side = s;
 }