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."); }
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; } }
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()); } }
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); } } }