示例#1
0
    public void load(string path)
    {
        FileStream fs = File.OpenRead(path);

        byte[] bytes = new byte[fs.Length];
        fs.Read(bytes, 0, (int)fs.Length);

        data = new GameAttributeDefence[bytes.Length / 14];

        int index = 0;

        for (int i = 0; i < data.Length; ++i)
        {
            GameAttributeDefence attribute = new GameAttributeDefence();

            for (int j = 0; j <= (int)GameAttributeType.Dark; j++)
            {
                attribute.AttributeDefence[j] = BitConverter.ToInt16(bytes, index); index += 2;
            }

            // bug ?
            attribute.ID = BitConverter.ToInt16(bytes, index); index += 2;

            data[i] = attribute;
        }

        Debug.Log("GameAttributeDefence loaded.");
    }
示例#2
0
    public void showItem(GameUnitBase unitBase, GameItem item)
    {
        GameUnit gameUnit = GameUnitData.instance.getData(unitBase.UnitID);

        GameBattleUnitData unitData  = new GameBattleUnitData();
        GameBattleUnitData unitData1 = new GameBattleUnitData();

        GameItem weapon    = GameItemData.instance.getData(unitBase.Weapon);
        GameItem armor     = GameItemData.instance.getData(unitBase.Armor);;
        GameItem accessory = GameItemData.instance.getData(unitBase.Accessory);;

        GameAttributeDefence md = GameAttributeDefenceData.instance.getData(gameUnit.AttributeDefenceID);

        for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
        {
            if (md != null)
            {
                unitData.AttributeDefence[i] = md.AttributeDefence[i];
            }
            else
            {
                unitData.AttributeDefence[i] = 100;
            }
        }

        unitData.Attack  += unitBase.Str;
        unitData.Defence += unitBase.Vit / 2;

        if (weapon != null)
        {
            unitData.Attack   += weapon.Attack;
            unitData.Defence  += weapon.Defence;
            unitData.Hit      += weapon.AttackHit;
            unitData.Miss     += weapon.AttackMiss;
            unitData.Critical += weapon.AttackCritical;
            unitData.Double   += weapon.AttackDouble;

            for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
            {
                unitData.AttributeDefence[i] -= (short)(weapon.AttributeDefence[i] * unitData.AttributeDefence[i] / 100.0f);
            }
        }

        if (armor != null)
        {
            unitData.Attack   += armor.Attack;
            unitData.Defence  += armor.Defence;
            unitData.Hit      += armor.AttackHit;
            unitData.Miss     += armor.AttackMiss;
            unitData.Critical += armor.AttackCritical;
            unitData.Double   += armor.AttackDouble;

            for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
            {
                unitData.AttributeDefence[i] -= (short)(armor.AttributeDefence[i] * unitData.AttributeDefence[i] / 100.0f);
            }
        }

        if (accessory != null)
        {
            unitData.Attack   += accessory.Attack;
            unitData.Defence  += accessory.Defence;
            unitData.Hit      += accessory.AttackHit;
            unitData.Miss     += accessory.AttackMiss;
            unitData.Critical += accessory.AttackCritical;
            unitData.Double   += accessory.AttackDouble;

            for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
            {
                unitData.AttributeDefence[i] -= (short)(accessory.AttributeDefence[i] * unitData.AttributeDefence[i] / 100.0f);
            }
        }

        if (item != null)
        {
            unitData1.Attack   = unitData.Attack;
            unitData1.Defence  = unitData.Defence;
            unitData1.Hit      = unitData.Hit;
            unitData1.Miss     = unitData.Miss;
            unitData1.Critical = unitData.Critical;
            unitData1.Double   = unitData.Double;

            for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
            {
                unitData1.AttributeDefence[i] = unitData.AttributeDefence[i];
            }

            if (weapon != null && item.ItemType == GameItemType.Weapon)
            {
                unitData1.Attack   -= weapon.Attack;
                unitData1.Defence  -= weapon.Defence;
                unitData1.Hit      -= weapon.AttackHit;
                unitData1.Miss     -= weapon.AttackMiss;
                unitData1.Critical -= weapon.AttackCritical;
                unitData1.Double   -= weapon.AttackDouble;

                for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
                {
                    unitData1.AttributeDefence[i] += (short)(weapon.AttributeDefence[i] * unitData1.AttributeDefence[i] / 100.0f);
                }
            }

            if (armor != null && item.ItemType == GameItemType.Armor)
            {
                unitData1.Attack   -= armor.Attack;
                unitData1.Defence  -= armor.Defence;
                unitData1.Hit      -= armor.AttackHit;
                unitData1.Miss     -= armor.AttackMiss;
                unitData1.Critical -= armor.AttackCritical;
                unitData1.Double   -= armor.AttackDouble;

                for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
                {
                    unitData1.AttributeDefence[i] += (short)(armor.AttributeDefence[i] * unitData1.AttributeDefence[i] / 100.0f);
                }
            }

            if (accessory != null && item.ItemType == GameItemType.Accessory)
            {
                unitData1.Attack   -= accessory.Attack;
                unitData1.Defence  -= accessory.Defence;
                unitData1.Hit      -= accessory.AttackHit;
                unitData1.Miss     -= accessory.AttackMiss;
                unitData1.Critical -= accessory.AttackCritical;
                unitData1.Double   -= accessory.AttackDouble;

                for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
                {
                    unitData1.AttributeDefence[i] += (short)(accessory.AttributeDefence[i] * unitData1.AttributeDefence[i] / 100.0f);
                }
            }

            unitData1.Attack   += item.Attack;
            unitData1.Defence  += item.Defence;
            unitData1.Hit      += item.AttackHit;
            unitData1.Miss     += item.AttackMiss;
            unitData1.Critical += item.AttackCritical;
            unitData1.Double   += item.AttackDouble;

            for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
            {
                unitData1.AttributeDefence[i] -= (short)(item.AttributeDefence[i] * unitData1.AttributeDefence[i] / 100.0f);
            }
        }

        attack.text   = GameDefine.getBigInt(unitData.Attack.ToString());
        defence.text  = GameDefine.getBigInt(unitData.Defence.ToString());
        hit.text      = GameDefine.getBigInt(unitData.Hit.ToString());
        speed.text    = GameDefine.getBigInt(unitData.Miss.ToString());
        fire.text     = GameDefine.getBigInt(unitData.AttributeDefence[(int)GameAttributeType.Fire].ToString());
        thunder.text  = GameDefine.getBigInt(unitData.AttributeDefence[(int)GameAttributeType.Thunder].ToString());
        ice.text      = GameDefine.getBigInt(unitData.AttributeDefence[(int)GameAttributeType.Ice].ToString());
        illusion.text = GameDefine.getBigInt(unitData.AttributeDefence[(int)GameAttributeType.Illusion].ToString());
        light0.text   = GameDefine.getBigInt(unitData.AttributeDefence[(int)GameAttributeType.Light].ToString());
        dark.text     = GameDefine.getBigInt(unitData.AttributeDefence[(int)GameAttributeType.Dark].ToString());

        attack1.text   = GameDefine.getBigInt(unitData1.Attack.ToString());
        defence1.text  = GameDefine.getBigInt(unitData1.Defence.ToString());
        hit1.text      = GameDefine.getBigInt(unitData1.Hit.ToString());
        speed1.text    = GameDefine.getBigInt(unitData1.Miss.ToString());
        fire1.text     = GameDefine.getBigInt(unitData1.AttributeDefence[(int)GameAttributeType.Fire].ToString());
        thunder1.text  = GameDefine.getBigInt(unitData1.AttributeDefence[(int)GameAttributeType.Thunder].ToString());
        ice1.text      = GameDefine.getBigInt(unitData1.AttributeDefence[(int)GameAttributeType.Ice].ToString());
        illusion1.text = GameDefine.getBigInt(unitData1.AttributeDefence[(int)GameAttributeType.Illusion].ToString());
        light1.text    = GameDefine.getBigInt(unitData1.AttributeDefence[(int)GameAttributeType.Light].ToString());
        dark1.text     = GameDefine.getBigInt(unitData1.AttributeDefence[(int)GameAttributeType.Dark].ToString());


        attack1.color   = defaultColor;
        defence1.color  = defaultColor;
        hit1.color      = defaultColor;
        speed1.color    = defaultColor;
        fire1.color     = defaultColor;
        thunder1.color  = defaultColor;
        ice1.color      = defaultColor;
        illusion1.color = defaultColor;
        light1.color    = defaultColor;
        dark1.color     = defaultColor;

        Color colorRed   = Color.red;
        Color colorGreen = new Color(0.0f, 0.39f, 0.0f);

        if (unitData1.Attack > unitData.Attack)
        {
            attack1.color = Color.red;
        }
        if (unitData1.Defence > unitData.Defence)
        {
            defence1.color = Color.red;
        }
        if (unitData1.Hit > unitData.Hit)
        {
            hit1.color = Color.red;
        }
        if (unitData1.Miss > unitData.Miss)
        {
            speed1.color = Color.red;
        }

        if (unitData1.Attack < unitData.Attack)
        {
            attack1.color = colorGreen;
        }
        if (unitData1.Defence < unitData.Defence)
        {
            defence1.color = colorGreen;
        }
        if (unitData1.Hit < unitData.Hit)
        {
            hit1.color = colorGreen;
        }
        if (unitData1.Miss < unitData.Miss)
        {
            speed1.color = colorGreen;
        }


        if (unitData1.AttributeDefence[(int)GameAttributeType.Fire] < unitData.AttributeDefence[(int)GameAttributeType.Fire])
        {
            fire1.color = Color.red;
        }
        if (unitData1.AttributeDefence[(int)GameAttributeType.Thunder] < unitData.AttributeDefence[(int)GameAttributeType.Thunder])
        {
            thunder1.color = Color.red;
        }
        if (unitData1.AttributeDefence[(int)GameAttributeType.Ice] < unitData.AttributeDefence[(int)GameAttributeType.Ice])
        {
            ice1.color = Color.red;
        }
        if (unitData1.AttributeDefence[(int)GameAttributeType.Illusion] < unitData.AttributeDefence[(int)GameAttributeType.Illusion])
        {
            illusion1.color = Color.red;
        }
        if (unitData1.AttributeDefence[(int)GameAttributeType.Light] < unitData.AttributeDefence[(int)GameAttributeType.Light])
        {
            light1.color = Color.red;
        }
        if (unitData1.AttributeDefence[(int)GameAttributeType.Dark] < unitData.AttributeDefence[(int)GameAttributeType.Dark])
        {
            dark1.color = Color.red;
        }

        if (unitData1.AttributeDefence[(int)GameAttributeType.Fire] > unitData.AttributeDefence[(int)GameAttributeType.Fire])
        {
            fire1.color = colorGreen;
        }
        if (unitData1.AttributeDefence[(int)GameAttributeType.Thunder] > unitData.AttributeDefence[(int)GameAttributeType.Thunder])
        {
            thunder1.color = colorGreen;
        }
        if (unitData1.AttributeDefence[(int)GameAttributeType.Ice] > unitData.AttributeDefence[(int)GameAttributeType.Ice])
        {
            ice1.color = colorGreen;
        }
        if (unitData1.AttributeDefence[(int)GameAttributeType.Illusion] > unitData.AttributeDefence[(int)GameAttributeType.Illusion])
        {
            illusion1.color = colorGreen;
        }
        if (unitData1.AttributeDefence[(int)GameAttributeType.Light] > unitData.AttributeDefence[(int)GameAttributeType.Light])
        {
            light1.color = colorGreen;
        }
        if (unitData1.AttributeDefence[(int)GameAttributeType.Dark] > unitData.AttributeDefence[(int)GameAttributeType.Dark])
        {
            dark1.color = colorGreen;
        }
    }
示例#3
0
    public void updateData(GameUnitBase unitBase)
    {
        clear();

        GameUnit gameUnit = GameUnitData.instance.getData(unitBase.UnitID);

        short Str = unitBase.Str;
        short Vit = unitBase.Vit;
        short Avg = unitBase.Avg;
        short Int = unitBase.Int;
        short Luk = unitBase.Luk;

        short[] AttributeDefence = new short[(int)GameAttributeType.Cure];

        GameAttributeDefence md = GameAttributeDefenceData.instance.getData(gameUnit.AttributeDefenceID);

        for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
        {
            if (md != null)
            {
                AttributeDefence[i] = md.AttributeDefence[i];
            }
            else
            {
                AttributeDefence[i] = 100;
            }
        }

        int atk = 0;
        int def = 0;
        int mag = Int;
        int spd = Avg;

        GameItem weapon    = GameItemData.instance.getData(unitBase.Weapon);
        GameItem armor     = GameItemData.instance.getData(unitBase.Armor);
        GameItem accessory = GameItemData.instance.getData(unitBase.Accessory);

        if (weapon != null)
        {
            atk += weapon.Attack;
            def += weapon.Defence;

            for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
            {
                AttributeDefence[i] -= (short)(weapon.AttributeDefence[i] * AttributeDefence[i] / 100.0f);
            }
        }

        if (armor != null)
        {
            atk += armor.Attack;
            def += armor.Defence;

            for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
            {
                AttributeDefence[i] -= (short)(armor.AttributeDefence[i] * AttributeDefence[i] / 100.0f);
            }
        }

        if (accessory != null)
        {
            atk += accessory.Attack;
            def += accessory.Defence;

            for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
            {
                AttributeDefence[i] -= (short)(accessory.AttributeDefence[i] * AttributeDefence[i] / 100.0f);
            }
        }

        atk += Str;
        def += (short)(Vit / 2.0f);

        atkText.text = GameDefine.getBigInt(atk.ToString());
        defText.text = GameDefine.getBigInt(def.ToString());
        magText.text = GameDefine.getBigInt(mag.ToString());
        spdText.text = GameDefine.getBigInt(spd.ToString());

        for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
        {
            int ad = AttributeDefence[i];

            if (ad > 100)
            {
                ad = 100;
            }

            if (ad < -100)
            {
                ad = -100;
            }

            if (ad > 0)
            {
                red[i].gameObject.SetActive(false);
                blue[i].gameObject.SetActive(true);

                red[i].anchoredPosition  = new Vector2(-1.5f - width, 0.0f);
                blue[i].anchoredPosition = new Vector2(-1.5f - width * (1.0f - ad / 100.0f), 0.0f);
            }
            else
            {
                red[i].gameObject.SetActive(true);
                blue[i].gameObject.SetActive(false);

                blue[i].anchoredPosition = new Vector2(-1.5f + width, 0.0f);
                red[i].anchoredPosition  = new Vector2(-1.5f - width * (1.0f + ad / 100.0f), 0.0f);
            }

            textTypes[i].text = GameDefine.getBigInt(Mathf.Abs(AttributeDefence[i]).ToString());
        }
    }
示例#4
0
    public void updateUnitData()
    {
        unitData.clear();

        unitData.HPMax = gameBattleMan.UnitBase.HP + gameBattleMan.HpAdd - gameBattleMan.HpSub;
        unitData.MPMax = gameBattleMan.UnitBase.MP + gameBattleMan.MpAdd - gameBattleMan.MpSub;

        unitData.Str = gameBattleMan.UnitBase.Str;
        unitData.Vit = gameBattleMan.UnitBase.Vit;
        unitData.Avg = gameBattleMan.UnitBase.Avg;
        unitData.Int = gameBattleMan.UnitBase.Int;
        unitData.Luk = gameBattleMan.UnitBase.Luk;

        GameAttributeDefence md = GameAttributeDefenceData.instance.getData(gameUnit.AttributeDefenceID);

        for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
        {
            if (md != null)
            {
                unitData.AttributeDefence[i] = md.AttributeDefence[i];
            }
            else
            {
                unitData.AttributeDefence[i] = 100;
            }
        }

        if (gameUnit.UnitID >= GameDefine.MAX_USER && !isCopy)
        {
            float difficulty = GameDefine.Difficulty;

            if (!IsEnemy)
            {
                difficulty = 1.0f;
            }

            if (!IsSummon)
            {
                unitData.HPMax += gameUnit.HP;
                unitData.MPMax += gameUnit.MP;
                unitData.Str   += gameUnit.Str;
                unitData.Vit   += gameUnit.Vit;
                unitData.Avg   += gameUnit.Avg;
                unitData.Int   += gameUnit.Int;
                unitData.Luk   += gameUnit.Luk;
            }

            int lv = gameBattleMan.UnitBase.LV;

            if (lv > 0)
            {
                unitData.HPMax += gameUnit.HPGrow * lv;
                unitData.MPMax += gameUnit.MPGrow * lv;
                unitData.Str   += gameUnit.StrGrow * lv;
                unitData.Vit   += gameUnit.VitGrow * lv;
                unitData.Avg   += gameUnit.AvgGrow * lv;
                unitData.Int   += gameUnit.IntGrow * lv;
                unitData.Luk   += gameUnit.LukGrow * lv;
            }

            unitData.HPMax = (int)(difficulty * unitData.HPMax);
            unitData.MPMax = (int)(difficulty * unitData.MPMax);
            unitData.Str   = (int)(difficulty * unitData.Str);
            unitData.Vit   = (int)(difficulty * unitData.Vit);
            unitData.Avg   = (int)(difficulty * unitData.Avg);
            unitData.Int   = (int)(difficulty * unitData.Int);
//            unitData.Luk = (int)( difficulty * unitData.Luk );
        }

        if (unitData.HPMax >= 2500)
        {
            isBoss = true;
        }

        unitData.AttributeType = GameAttributeType.None;

        unitData.MoveMax = unitData.Avg / 25 + gameUnit.Move;

        unitData.Attack   = 0;
        unitData.Defence  = 0;
        unitData.Hit      = 0;
        unitData.Miss     = 0;
        unitData.Critical = 0;
        unitData.Double   = 0;


        GameItem weapon    = Weapon;
        GameItem armor     = Armor;
        GameItem accessory = Accessory;

        if (weapon != null)
        {
            unitData.Attack   += weapon.Attack;
            unitData.Defence  += weapon.Defence;
            unitData.Hit      += weapon.AttackHit;
            unitData.Miss     += weapon.AttackMiss;
            unitData.Critical += weapon.AttackCritical;
            unitData.Double   += weapon.AttackDouble;

            unitData.AttributeType = weapon.AttackAttributeType;

            for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
            {
                unitData.AttributeDefence[i] -= (short)(weapon.AttributeDefence[i] * AttributeDefence[i] / 100.0f);
            }
        }

        if (armor != null)
        {
            unitData.Attack   += armor.Attack;
            unitData.Defence  += armor.Defence;
            unitData.Hit      += armor.AttackHit;
            unitData.Miss     += armor.AttackMiss;
            unitData.Critical += armor.AttackCritical;
            unitData.Double   += armor.AttackDouble;

            for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
            {
                unitData.AttributeDefence[i] -= (short)(armor.AttributeDefence[i] * AttributeDefence[i] / 100.0f);
            }
        }

        if (accessory != null)
        {
            unitData.Attack   += accessory.Attack;
            unitData.Defence  += accessory.Defence;
            unitData.Hit      += accessory.AttackHit;
            unitData.Miss     += accessory.AttackMiss;
            unitData.Critical += accessory.AttackCritical;
            unitData.Double   += accessory.AttackDouble;

            for (int i = 0; i <= (int)GameAttributeType.Dark; i++)
            {
                unitData.AttributeDefence[i] -= (short)(accessory.AttributeDefence[i] * AttributeDefence[i] / 100.0f);
            }
        }
    }