void TestClick(Vector3 pos)
    {
        RaycastHit2D hit = Physics2D.Raycast(pos, Vector2.zero);

        if (hit.collider != null)
        {
            if ((hit.transform.gameObject.GetComponent("ClickableItemBase") as ClickableItemBase) != null)
            {
                Destroy(hit.transform.gameObject);
                switch (hit.transform.gameObject.GetComponent <ClickableItemBase>().ClickableType())
                {
                case TypeOfClickable.FUEL:
                    RocketBase player = GameObject.FindObjectOfType(typeof(RocketBase)) as RocketBase;
                    player.AddFuel(hit.transform.gameObject.GetComponent <ClickableItemBase>().howMuchThisContains);
                    break;

                case TypeOfClickable.GOLD:
                    int coins = PlayerPrefs.GetInt("Coins");
                    PlayerPrefs.SetInt("Coins", ++coins);
                    if (PlayerPrefs.GetInt("Coins") > 99)
                    {
                        PlayerPrefs.SetInt("Coins", 99);
                    }
                    break;
                }
            }
        }
    }
Пример #2
0
    //保持しているEnemyが何かにヒットしたとき
    protected void HasEnemyTrigger(Collider other, EnemyBase enemy)
    {
        if (other.gameObject == gameObject || other.gameObject.tag == "Panel")
        {
            return;
        }
        //Debug.Log(enemy.ToString() + " hit :" + other.gameObject);

        GameObject obj        = other.gameObject;
        EnemyBase  otherEnemy = other.gameObject.GetComponent <EnemyBase>();
        RocketBase rocket     = GetComponent <RocketBase>();

        if (obj.tag == m_TargetTag)
        {//攻撃対象と衝突
            CollideTarget(obj, enemy.transform.position);
            GameObject EffectHit = Instantiate(m_EffectHitPrefub, transform);
            EffectHit.transform.position = enemy.transform.position;
            EffectHit.SetActive(true);
            StartCoroutine(m_Battery.Delay(new WaitForSeconds(0.5f)
                                           , () => Destroy(EffectHit.gameObject)));
        }

        if (otherEnemy != null)
        {//雑魚と衝突    子オブジェクトに追加
            AddChildEnemy(otherEnemy);
            State = RocketState.Fire;
        }
        else
        {
            BreakChildEnemys();
            State = RocketState.Back;
        }
    }
Пример #3
0
    void Rockets(AllData allData)
    {
        if (allData.roc != null)
        {
            float[][] transes = allData.roc.transes;
            int[][]   invents = allData.roc.invents;

            for (int i = 0; i < invents.Length; i++)
            {
                RocketBase rocket = Instantiate(rocketPrefab, new Vector3(transes[i][0], transes[i][1], 0), Quaternion.identity);
                rocket.transform.rotation = Quaternion.Euler(0, 0, transes[i][2]);
                rocket.storedCopper       = invents[i][1];
                rocket.storedIron         = invents[i][0];
                rocket.storedFuel         = invents[i][2];
            }
        }
    }
Пример #4
0
    private void Awake()
    {
        m_AudioSrc = gameObject.AddComponent <AudioSource>();
        m_AudioSrc.spatialBlend = 1.0f;
        m_AudioSrc.playOnAwake  = false;

        //ロケットの初期位置取得
        if (m_LStandTrans == null) //RocketStandの存在チェック
        {
            m_LStandTrans = transform.FindChild("RocketStand").transform;
        }
        if (m_RStandTrans == null) //RocketStandの存在チェック
        {
            m_RStandTrans = transform.FindChild("RocketStand").transform;
        }

        //Rocketが指定されていなければ生成
        if (m_LRocket == null)
        {
            //ロケットインスタンス化
            GameObject lRocketObj = Instantiate(m_RocketPrefub, transform);
            lRocketObj.transform.parent = null;
            m_LRocket = lRocketObj.GetComponent <RocketBase>();
            m_LRocket.m_StandTrans = m_LStandTrans;
        }
        //Rocketが指定されていなければ生成
        if (m_RRocket == null)
        {
            //ロケットインスタンス化
            GameObject rRocketObj = Instantiate(m_RocketPrefub, transform);
            rRocketObj.transform.parent = null;
            m_RRocket = rRocketObj.GetComponent <RocketBase>();
            m_RRocket.m_StandTrans = m_RStandTrans;
        }

        m_RRocket.gameObject.SetActive(false);
        m_LRocket.gameObject.SetActive(false);
        m_LRocket.m_Battery = this;
        m_RRocket.m_Battery = this;
        m_EffectChagePos    = m_Effect_Chage.transform.localPosition;
    }
Пример #5
0
    public RocketData(SaveMaster mast)
    {
        int num = mast.rockets.Length;

        transes = new float[num][];
        invents = new int[num][];

        for (int i = 0; i < num; i++)
        {
            RocketBase rocket = mast.rockets[i];
            float[]    t      = new float[3];
            t[0]       = rocket.transform.position.x;
            t[1]       = rocket.transform.position.y;
            t[2]       = rocket.transform.rotation.eulerAngles.z;
            transes[i] = t;

            int[] its = new int[3];
            its[0] = rocket.storedIron;
            its[1] = rocket.storedCopper;
            its[2] = rocket.storedFuel;

            invents[i] = its;
        }
    }
Пример #6
0
    public void OpenEditor(GameObject editable)
    {
        //break out?
        gameInfo = GameObject.FindObjectOfType <GameInfo>();
        if (gameInfo.currentlyMouseAiming)
        {
            Close();
            return;
        }
        if (!metaInventory)
        {
            metaInventory = GameObject.FindObjectOfType <MetaInventory>();
        }
        //activate cursor
        Cursor.visible = true;

        //get editable
        obj = editable.transform.parent.gameObject;
        if (editable.GetComponent <EditRotation>())
        {
            //activate mouseaim if...
            mouseAimButton.SetActive(true);
            eRot = editable.GetComponent <EditRotation>();
            elements[4].SetActive(true);
        }
        else
        {
            mouseAimButton.SetActive(false);
            eRot = null;
            //so that you never end up doing it for something else
        }
        //make the title of the ui the obj name
        string objName = obj.name;

        //if it has a (, remove everything after that (
        if (objName.Contains("("))
        {
            int loc = objName.IndexOf("(");
            //substring does the trick
            objName   = objName.Substring(0, loc);
            name.text = objName;
        }
        else
        {
            name.text = objName;
        }

        if (obj.GetComponent <Miner>())
        {
            //set type
            typeSelected = 1;
            //set up layout for miner obj
            miner = obj.GetComponent <Miner>();
            s1.gameObject.SetActive(true);
            s1.maxValue = 1000;
            s1.value    = miner.launchForce;
            s1T.text    = "Launch Force: " + s1.value.ToString();
        }
        if (obj.GetComponent <LauncherController>())
        {
            //set type
            typeSelected = 2;
            //set up layout for launcher obj
            launcher = obj.GetComponent <LauncherController>();
            s1.gameObject.SetActive(true);
            s1.maxValue = 1000;
            s1.value    = launcher.launchForce;
            s1T.text    = "Launch Force: " + s1.value.ToString();
            //set up second slider for interval
            s2.gameObject.SetActive(true);
            s2.maxValue = 2;
            s2.minValue = 0.25f;
            s2.value    = launcher.coolDown;
            s2T.text    = "Fire Interval: " + s2.value.ToString();
        }
        if (obj.GetComponent <OreController>())
        {
            typeSelected = 3;
            ore          = obj.GetComponent <OreController>();
            MidInfoT.gameObject.SetActive(true);
            if (ore.eternal)
            {
                MidInfoT.text = "Quantity: Eternal" + " Hardness: " + ore.hardness;
            }
            else
            {
                MidInfoT.text = "Quantity: " + ore.currentQuantity.ToString() + System.Environment.NewLine + "Hardness: " + ore.hardness;
            }
            MidInfoT.color = ore.GetComponent <SpriteRenderer>().color;

            bottomButton.gameObject.SetActive(true);
            if (ore.eternal)
            {
                print("ore is eternal");
                bottomButton.interactable = true;
                bottomButtonText.text     = "Destroy Ore";
            }
            else if (metaInventory.eternalizers > 0)
            {
                bottomButton.interactable = true;
                bottomButtonText.text     = "Mount MOED";
            }
            else
            {
                bottomButton.interactable = false;
                bottomButtonText.text     = "No MOED's";
            }
        }
        if (obj.GetComponent <Crafting>())
        {
            //set up crafter ui
            typeSelected = 4;
            crafterPanel.SetActive(true);
            craft = obj.GetComponent <Crafting>();
            MidInfoT.gameObject.SetActive(true);
            UIButtonArray car = crafterPanel.GetComponent <UIButtonArray>();
            foreach (Button b in car.buttons)
            {
                ///THIS
                ///MEANS
                ///THAT
                ///ALL
                ///BUTTONS
                ///MUST BE NAMED
                ///P R O P E R L Y !!!
                //print(b.name + " : " + craft.recipe.name);
                if (b.name == craft.recipe.name)
                {
                    car.BClick(b);
                }
            }
        }
        if (obj.GetComponent <UnPackager>())
        {
            typeSelected = 5;
        }
        if (obj.GetComponent <Packager>())
        {
            Packager pack = obj.GetComponent <Packager>();
            typeSelected = 6;
            s1.gameObject.SetActive(true);
            s1.maxValue = 100;
            s1.minValue = 10;
            s1.value    = pack.maxItems;
            s1T.text    = "Maximum Items: " + Mathf.RoundToInt(s1.value).ToString();
        }
        else if (obj.GetComponent <Splitter>())
        {
            split        = obj.GetComponent <Splitter>();
            typeSelected = 7;
            MidInfoT.gameObject.SetActive(true);
            MidInfoT.text  = "Set a filter ->";
            MidInfoT.color = new Color(0, 255, 255, 255);
            filterPanel.gameObject.SetActive(true);
            //setup filter panel
            UIButtonArray ar = filterPanel.GetComponent <UIButtonArray>();
            foreach (Button b in ar.buttons)
            {
                ///THIS
                ///MEANS
                ///THAT
                ///ALL
                ///BUTTONS
                ///MUST BE NAMED
                ///P R O P E R L Y !!!
                if (b.name == split.typeName)
                {
                    ar.BClick(b);
                }
                else
                {
                    if (b.name == "Empty filter" && split.typeName == "")
                    {
                        ar.BClick(b);
                    }
                }
            }
        }
        else if (obj.GetComponent <Pump>())
        {
            pump = obj.GetComponent <Pump>();
            MidInfoT.gameObject.SetActive(true);
            typeSelected = 8;
        }
        else if (obj.GetComponent <Core>())
        {
            typeSelected = 9;
            core         = obj.GetComponent <Core>();
            int lv = core.level;
            MidInfoT.gameObject.SetActive(true);
            MidInfoT.text = "Level " + lv.ToString();
        }
        else if (obj.GetComponent <RocketBase>())
        {
            typeSelected = 10;
            rocket       = obj.GetComponent <RocketBase>();
            MidInfoT.gameObject.SetActive(true);
            rocketPanel.SetActive(true);
            rIronSlider.slider.maxValue = rocket.maxIron;
            rCopSlider.slider.maxValue  = rocket.maxCopper;
            rFuelSlider.slider.maxValue = rocket.maxFuel;
            MidInfoT.text = "Needs rocket fuel";
            //set max
            rIronSlider.SetSliderParameters(rocket.maxIron);
            rCopSlider.SetSliderParameters(rocket.maxCopper);
            rFuelSlider.SetSliderParameters(rocket.maxFuel);
        }
    }