예제 #1
0
    public void SetItem(Var.ItemType type)
    {
        GameObject go = Instantiate(Tools.GetItemGameObjectByType(type), transform.position, transform.rotation) as GameObject;

        try { go.GetComponent <Boom>().isStart = true; } catch { }
        go.GetComponent <Rigidbody>().AddRelativeForce(0, 0, 100);
    }
예제 #2
0
 public void AroundShootAttack(Var.ItemType bullet, int start, int n)
 {
     for (float i = start; i < 360 + start; i += n)
     {
         ShootItemAtPos(bullet, transform.position + new Vector3(Mathf.Sin(i / 180 * Mathf.PI), 0.5f, Mathf.Cos(i / 180 * Mathf.PI)) * 1.5f);
     }
 }
예제 #3
0
    public GameObject ShootItemAtPosWithOutForce(Var.ItemType type, Vector3 pos)
    {
        GameObject go = Instantiate(Tools.GetItemGameObjectByType(type)) as GameObject;

        go.transform.position = pos;
        return(go);
    }
예제 #4
0
    public void ShootItemAtPosWithDir(Var.ItemType type, Vector3 pos, float power, Vector3 dir)
    {
        GameObject go = Instantiate(Tools.GetItemGameObjectByType(type)) as GameObject;

        go.transform.position = pos;
        dir = dir.normalized;
        go.GetComponent <Rigidbody>().AddRelativeForce(dir * power);
    }
예제 #5
0
    public IEnumerator AroundShootAttackWait(Var.ItemType bullet, int start, int n, float waittime)
    {
        yield return(new WaitForSeconds(waittime));

        for (float i = start; i < 360 + start; i += n)
        {
            ShootItemAtPos(bullet, transform.position + new Vector3(Mathf.Sin(i / 180 * Mathf.PI), 0.5f, Mathf.Cos(i / 180 * Mathf.PI)) * 1.5f);
        }
    }
예제 #6
0
    public IEnumerator ShootAttackAtPosWaitAddForce(Var.ItemType bullet, Vector3 pos, float power, float waittime)
    {
        GameObject o = ShootItemAtPosWithOutForce(bullet, pos);

        yield return(new WaitForSeconds(waittime));

        try { o.GetComponent <Rigidbody>().AddRelativeForce((GameManager.player.transform.position - pos).normalized * power); }
        catch { }
    }
예제 #7
0
    public void ShootItemAtPosToPlayer(Var.ItemType type, Vector3 pos, float power)
    {
        GameObject go = Instantiate(Tools.GetItemGameObjectByType(type)) as GameObject;

        go.transform.position = pos;
        Vector3 dir = (GameManager.player.transform.position - pos).normalized;

        go.GetComponent <Rigidbody>().AddRelativeForce(dir * power);
    }
예제 #8
0
 public void Initial(Var.ItemType type, int num, int sn)
 {
     nameText = transform.GetChild(1).GetComponent <Text>();
     numText  = transform.GetChild(2).GetComponent <Text>();
     transform.localPosition = Vector3.zero;
     itemData.itemType       = type;
     itemData.itemNum        = num;
     itemData.spaceNum       = sn;
     UpdateText();
 }
예제 #9
0
    public void ShootItemAtPos(Var.ItemType type, Vector3 pos, float power)
    {
        GameObject go = Instantiate(Tools.GetItemGameObjectByType(type)) as GameObject;

        go.transform.position = pos;
        Vector3 dir = (pos - transform.position).normalized;

        try { go.GetComponent <Boom>().isStart = true; } catch { }
        go.GetComponent <Rigidbody>().AddRelativeForce(dir * power);
    }
예제 #10
0
파일: GameManager.cs 프로젝트: Fuinaru/Game
    public bool PlayerHaveKeyItem(Var.ItemType key)
    {
        switch (key)
        {
        case Var.ItemType.SwordItem: if (hasSword)
            {
                return(true);
            }
            else
            {
                hasSword = true;
            } return(false);

        case Var.ItemType.FireBallItem: if (hasFire)
            {
                return(true);
            }
            else
            {
                hasFire = true;
            } return(false);

        case Var.ItemType.IceBallItem: if (hasIce)
            {
                return(true);
            }
            else
            {
                hasIce = true;
            } return(false);

        case Var.ItemType.PoisonItem: if (hasPoison)
            {
                return(true);
            }
            else
            {
                hasPoison = true;
            } return(false);

        case Var.ItemType.TeleportItem: if (hasTeleport)
            {
                return(true);
            }
            else
            {
                hasTeleport = true;
            } return(false);
        }
        return(false);
    }
예제 #11
0
파일: Store.cs 프로젝트: Fuinaru/Game
    void SetItem(Var.ItemType o)
    {
        int        n  = goodsList.IndexOf(o);
        GameObject go = Instantiate(storeItem);

        go.transform.GetChild(0).GetComponent <Image>().sprite = Tools.GetItemImgByType(o);
        go.transform.GetChild(1).GetComponent <Text>().text    = goodsPrice[n].ToString() + "$";
        go.transform.SetParent(transform);

        go.transform.position = new Vector3(n * width, 0) + transform.position;
        go.GetComponent <Button>().onClick.AddListener(delegate()
        {
            this.OnClick(o);
        });
    }
예제 #12
0
    public void AddItem(Var.ItemType type, int num)
    {
        foreach (ItemData o in bagItems)
        {
            if (o.itemType.Equals(type))
            {
                o.itemNum   += num;
                o.numChanged = true;
                return;
            }
        }
        for (int i = 0; i < EquipNum; i++)
        {
            GameObject o = equipObj.transform.GetChild(i).gameObject;
            if (o.transform.childCount == 1)
            {
                Type       classType = Tools.ReturnTypeByStr(type.ToString());
                GameObject go        = Instantiate(bagItem, Vector3.zero, equipObj.transform.rotation) as GameObject;
                go.transform.SetParent(o.transform);
                go.transform.SetAsFirstSibling();
                go.AddComponent(classType);
                go.transform.localScale = Vector3.one;
                go.GetComponent <BagItem>().Initial(type, num, i);
                bagItems.Add(go.GetComponent <BagItem>().itemData);
                return;
            }
        }


        for (int i = 0; i < bagSize; i++)
        {
            GameObject o = bagObj.transform.GetChild(i).gameObject;
            if (o.transform.childCount == 0)
            {
                Type       classType = Tools.ReturnTypeByStr(type.ToString());
                GameObject go        = Instantiate(bagItem, Vector3.zero, bagObj.transform.rotation) as GameObject;
                go.transform.SetParent(o.transform);
                go.AddComponent(classType);
                go.transform.localScale = Vector3.one;
                go.GetComponent <BagItem>().Initial(type, num, i + EquipNum);
                bagItems.Add(go.GetComponent <BagItem>().itemData);
                return;
            }
        }

        Debug.Log("满了");
    }
예제 #13
0
파일: GameManager.cs 프로젝트: Fuinaru/Game
    IEnumerator BossDefeat(Var.ItemType item, GameObject o)
    {
        yield return(new WaitUntil(() => o == null));

        if (!PlayerHaveKeyItem(item))
        {
            playerLaunch.GetItem(item, 1);
            switch (item)
            {
            case Var.ItemType.TeleportItem: NPC.SetConver("天之声", "你获得了闪现"); TaskManager.taskManager.CompleteTask(0); break;

            case Var.ItemType.FireBallItem: NPC.SetConver("天之声", "你获得了火球"); TaskManager.taskManager.CompleteTask(1); break;

            case Var.ItemType.IceBallItem: NPC.SetConver("天之声", "你获得了冰球"); TaskManager.taskManager.CompleteTask(2); break;
            }
        }
    }
예제 #14
0
    public IEnumerator AroundPlayerShootAttackWaitAddForce(Var.ItemType bullet, int start, int n, float power, float dis, float waittime)
    {
        ArrayList array = new ArrayList();
        Vector3   pos   = GameManager.player.transform.position;

        for (float i = start; i < 360 + start; i += n)
        {
            array.Add(ShootItemAtPosWithOutForce(bullet, pos + new Vector3(Mathf.Sin(i / 180 * Mathf.PI), 0, Mathf.Cos(i / 180 * Mathf.PI)) * dis + new Vector3(0, 0.5f, 0)));
        }
        yield return(new WaitForSeconds(waittime));

        foreach (GameObject o in array)
        {
            try { o.GetComponent <Rigidbody>().AddRelativeForce((pos - o.transform.position).normalized * power); }
            catch { }
        }
    }
예제 #15
0
    public IEnumerator ShootAttackAtPosWaitAddForceDirAndPlayerTwice(Var.ItemType bullet, Vector3 pos, float power, Vector3 dir, float waittime, float waittime2)
    {
        GameObject o = ShootItemAtPosWithOutForce(bullet, pos);

        yield return(new WaitForSeconds(waittime));

        try { o.GetComponent <Rigidbody>().AddRelativeForce(dir.normalized * power); }
        catch { }
        yield return(new WaitForSeconds(0.5f));

        try
        {
            o.GetComponent <Rigidbody>().velocity = Vector3.zero;
        }
        catch { }
        yield return(new WaitForSeconds(waittime2));

        try
        {
            o.GetComponent <Rigidbody>().AddRelativeForce((GameManager.player.transform.position - o.transform.position).normalized * power);
        }
        catch { }
    }
예제 #16
0
파일: Store.cs 프로젝트: Fuinaru/Game
    public void OnClick(Var.ItemType o)
    {
        int n = goodsList.IndexOf(o);

        n = goodsPrice[n];
        if (GameManager.player.CostCoin(n))
        {
            GameManager.player.CostCoin(n);
            if (o == Var.ItemType.Coin)
            {
                GameManager.player.GetCoin(10);
            }
            else
            {
                GameManager.playerLaunch.GetItem(o, 1);
            }
            NPC.SetConver("OldMan", "顾客就是上帝");
        }
        else
        {
            NPC.SetConver("OldMan", "没钱滚!!!");
            CloseStore();
        }
    }
예제 #17
0
 public void GetItem(Var.ItemType type, int a)
 {
     GameManager.bagSys.AddItem(type, a);
 }
예제 #18
0
    public IEnumerator ShootItemAtPosWait(Var.ItemType type, Vector3 pos, float waittime, float power, float boomTime)
    {
        yield return(new WaitForSeconds(waittime));

        ShootItemAtPos(type, pos, power, boomTime);
    }
예제 #19
0
파일: GameManager.cs 프로젝트: Fuinaru/Game
 public void DefeatBoss(Var.ItemType item, GameObject o)
 {
     StartCoroutine(BossDefeat(item, o));
 }
예제 #20
0
파일: Tools.cs 프로젝트: Fuinaru/Game
 public static GameObject GetItemInSceneByType(Var.ItemType type)
 {
     return(GetGameObjectByPath(itemInScenePath + type.ToString()));
 }
예제 #21
0
파일: Tools.cs 프로젝트: Fuinaru/Game
 public static Sprite GetItemImgByType(Var.ItemType type)
 {
     return(GetImgByPath(itemImgPath + type.ToString()));
 }