Beispiel #1
0
    public void onHit(int _demage, int num = 1)
    {
        float _delay = 0.0f;

        for (int i = 0; i < num; i++)
        {
            Loom.QueueOnMainThread(() => {
                if (PropertyDic [Property.HP] > 0)
                {
                    Bleed bleed = (Bleed)PoolManager.getInstance().getGameObject("Bleed");
                    if (_demage > 0)
                    {
                        iTween.ShakePosition(style.gameObject, new Vector3(5.0f, 5.0f, 0.0f), 0.2f);
                        bleed.blood.color = DataManager.getInstance().getColor("red");
                    }
                    else
                    {
                        //加血
                        bleed.blood.color = DataManager.getInstance().getColor("green");
                    }
                    int buffhp = PropertyAddByBuffDic [Property.HP];                    //护盾
                    buffhp     = buffhp - _demage;
                    PropertyAddByBuffDic [Property.HP] = buffhp < 0 ? 0 : buffhp;
                    if (buffhp < 0 || _demage < 0)
                    {
                        int hp                    = PropertyDic [Property.HP];
                        int maxhp                 = PropertyDic [Property.MAXHP];
                        hp                        = hp + buffhp;
                        hp                        = hp >= 0 ? hp : 0;
                        hp                        = hp >= maxhp ? maxhp : hp;
                        float xscale              = (float)hp / (float)maxhp;
                        HP.transform.localScale   = new Vector3(xscale, 1, 1);
                        HPTxt.text                = (Math.Ceiling(xscale * 100)).ToString() + "%";
                        PropertyDic [Property.HP] = hp;
                    }
                    else
                    {
                        buffhp = 0;
                    }
                    bleed.transform.SetParent(this.transform);
                    bleed.show(buffhp, () => {
                        if (PropertyDic [Property.HP] == 0)
                        {
                            onDead();
                        }
                        pvescene.checkBout();
                    });
                }
            }, _delay);
            _delay += 0.3f;
        }
    }
Beispiel #2
0
    public void showPropertyChange(Property changeEntityProperty, int _changeValue, int valueType)
    {
        Bleed bleed = (Bleed)PoolManager.getInstance().getGameObject("Bleed");

        if (_changeValue > 0)
        {
            bleed.blood.color = DataManager.getInstance().getColor("green");
        }
        else
        {
            bleed.blood.color = DataManager.getInstance().getColor("red");
        }
        bleed.transform.SetParent(this.transform);
        string str = "";

        switch (valueType)
        {
        case 0:
            str = DataManager.getInstance().languageJson [10011 + (int)changeEntityProperty] ["name"].ToString() + _changeValue.ToString();
            if (changeEntityProperty == Property.HP)
            {
                if (PropertyDic [Property.HP] > PropertyDic [Property.MAXHP])
                {
                    PropertyDic [Property.HP] = PropertyDic [Property.MAXHP];
                }
                float xscale = (float)PropertyDic [Property.HP] / (float)PropertyDic [Property.MAXHP];
                HP.transform.localScale = new Vector3(xscale, 1, 1);
                HPTxt.text = (Math.Ceiling(xscale * 100)).ToString() + "%";
            }
            break;

        case 1:
            str = DataManager.getInstance().languageJson [10023 + (int)changeEntityProperty]["name"].ToString() + _changeValue.ToString();
            break;

        case 2:
            str = DataManager.getInstance().languageJson [10035 + (int)changeEntityProperty]["name"].ToString() + _changeValue.ToString();
            break;

        default:
            break;
        }
        bleed.show(str, () => {
            if (PropertyDic [Property.HP] == 0)
            {
                onDead();
            }
            pvescene.checkBout();
        });
    }
Beispiel #3
0
    public void initMonster()
    {
        MonsterManager.getInstance().initMonsterData(ChapterManager2.getInstance().monsterPath);
        PveMonsterList.Clear();
        ArrayList monsterArr = MonsterManager.getInstance().getPveMonstersByBoShu(monsterBoShu, bg.transform);

        if (monsterArr.Count > 0)
        {
            Bleed bleed = (Bleed)PoolManager.getInstance().getGameObject("Bleed");
            bleed.transform.SetParent(bg.transform);
            bleed.show("第 " + monsterBoShu.ToString() + " 回合", () => {
                for (int i = 0; i < monsterArr.Count; i++)
                {
                    string[] oneData        = (string[])monsterArr [i];
                    JsonObject _monsterData = DataManager.getInstance().monsterDicJson [int.Parse(oneData [1])];
                    PveMonster pvmonster    = (PveMonster)PoolManager.getInstance().getGameObject("PveMonster");
                    //foreach (KeyValuePair<int,PveMonster> kvp in PveMonsterList) {
                    pvmonster.transform.SetParent(bg.transform);
                    pvmonster.transform.localScale    = Vector3.one;
                    JsonObject _monsterpos            = DataManager.getInstance().pvePosJson [int.Parse(oneData [2])];
                    pvmonster.transform.localPosition = new Vector3(float.Parse(_monsterpos ["x"].ToString()), float.Parse(_monsterpos ["y"].ToString()), float.Parse(_monsterpos ["z"].ToString()));
                    pvmonster.init(_monsterData, this);
                    PveMonsterList [i] = pvmonster;
                    //}
                }
                monsterBoShu++;
                sortEntityBySpeed();
                setNextAttackEntityBySpeed();
            });
            //Loom.QueueOnMainThread (, 2.0f);
        }
        else
        {
            gameOver();             //战斗结束
        }
    }