예제 #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;
    }
예제 #2
0
    // Use this for initialization
    void Start()
    {
        warCtrl = GameObject.FindWithTag("GameController").GetComponent <WarSceneController>();
        rwCrt   = GameObject.Find("RangedWeapons").GetComponent <RangedWeaponCreator>();

        sprite = GetComponent <exSprite>();
        anim   = GetComponent <exSpriteAnimation>();

        if (soliderType == 3 || soliderType == 4 || soliderType == 5)
        {
            timeCoolDown = 1;
        }
        else
        {
            timeCoolDown = 0.5f;
        }

        manPosMaxX    = WarSceneController.manPosMaxX;
        manPosMaxY    = WarSceneController.manPosMaxY;
        locationStepX = WarSceneController.locationStepX;
        locationStepY = WarSceneController.locationStepY;
        CheckLocationState();

        hitDistance1 = (int)(hitDistance / locationStepX);
    }
예제 #3
0
    /*      body animation
     *      Idle Run Hit AttackFront1 AttackFront2 AttackFront3 AttackFront4 AttackBack Dead Misc Arrow Dart
     *
     *      horse animation
     *      Idle Run Fight
     */

    // Use this for initialization
    void Start()
    {
        int gIdx;

        if (side == WarSceneController.WhichSide.Left)
        {
            gIdx = WarSceneController.leftGeneralIdx;
        }
        else
        {
            gIdx = WarSceneController.rightGeneralIdx;
        }

        gInfo = Informations.Instance.GetGeneralInfo(gIdx);

        GeneralInit(gIdx);
        SetMapLocationFrame();

        warCtrl             = GameObject.FindWithTag("GameController").GetComponent <WarSceneController>();
        leftGeneralIdleTime = Random.Range(8, 15);

        manPosMaxX    = WarSceneController.manPosMaxX;
        manPosMaxY    = WarSceneController.manPosMaxY;
        locationStepX = WarSceneController.locationStepX;
        CheckLocationState();
    }
예제 #4
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;
        }
    }
예제 #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);
        }
    }
예제 #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;
    }
예제 #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);
        }
    }
예제 #8
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);
    }
예제 #9
0
    void Init()
    {
        warCtrl = MagicController.Instance.warCtrl;

        if (MagicController.Instance.GetMagicSide() == WarSceneController.WhichSide.Left)
        {
            generalPos = MagicController.Instance.warCtrl.leftGeneral.transform;
        }
        else
        {
            generalPos = MagicController.Instance.warCtrl.rightGeneral.transform;
        }

        transform.parent           = MagicController.Instance.magicRoot;
        transform.localPosition    = Vector3.zero;
        transform.localEulerAngles = Vector3.zero;
        transform.localScale       = Vector3.one;
    }
예제 #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;
        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);
        }
    }
예제 #11
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;
        }
    }
예제 #12
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;
    }
예제 #13
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;
    }
예제 #14
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);
            }
        }
    }
예제 #15
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);
        }
    }
예제 #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();
        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);
        }
    }
예제 #17
0
 void Start()
 {
     warCtrl = GameObject.FindWithTag("GameController").GetComponent <WarSceneController>();
 }
예제 #18
0
 // Use this for initialization
 void Start()
 {
     warCtrl = MagicController.Instance.warCtrl;
 }
예제 #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();

        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);
            }
        }
    }