public void LoadSword() { SwordData data = SaveSystem.LoadSword(); level = data.level; damage = data.damage; }
//Установить поведение рыцаря public void SetKnightBehaviour(int health, SwordData swordData, int combometerNeededPoints) { foreach (GameObject sword in swords) { sword.SetActive(false); } if (gameManager == null) { gameManager = GameManager.instance; } if (rhythmManager == null) { rhythmManager = RhythmManager.instance; } if (attackMenu == null) { attackMenu = AttackMenu.instance; } currentHealth = health; defaultHealth = health; GameObject currentSword = swords[swordData.id]; currentSword.SetActive(true); combometer = currentSword.transform.Find("Knight Combometer").GetComponent <KnightCombometer>(); combometer.StartCombometer(combometerNeededPoints); }
public void UpdateCharacterParam() { //プレイヤーのExpPoint表示 UnusedExpPoint.text = "Unused ExpPoint: " + PlayerData.unusedExpPoints; //キャラクタレベル情報 CharLevel.text = "Lv: " + _charData.Level; CharExpPoint.text = "Exp: " + _charData.CurrentExp; CharAtkPoint.text = "Atk: " + _charData.CrntAtk(); CharGunAtkPoint.text = "GUN: Not Equiped"; if (!string.IsNullOrEmpty(_charData.GunID)) { // GunData gunData = GunDataTableObject.Instance.Table.All.FirstOrDefault (tmpData => tmpData.ID == _charData.GunID); GunData gunData = GunDataTableObject.Instance.GetParams(_charData.GunID); CharGunAtkPoint.text = "GUN: x" + gunData.Damage; } CharSwdAtkPoint.text = "SWD: Not Equiped"; if (!string.IsNullOrEmpty(_charData.SwordID)) { SwordData swordData = SwordDataTableObject.Instance.Table.All.FirstOrDefault(tmpData => tmpData.ID == _charData.SwordID); CharSwdAtkPoint.text = "SWD: x" + swordData.Damage; } }
public void UpdateDisplayUI(SwordData swordData) { swordName.text = swordData.SwordName; description.text = swordData.Description; icon.sprite = swordData.Icon; goldCost.text = swordData.GoldCost.ToString(); attackDamage.text = swordData.AttackDamage.ToString(); }
public void UpdateDisplayUI(SwordData swordData) { swordName.text = swordData.SwordName; description.text = swordData.Description; icon.sprite = swordData.Icon; cost.text = swordData.Cost.ToString(); damage.text = swordData.Damage.ToString(); }
public void CopyParamsFrom(string id) { SwordData swordData = SwordDataTableObject.Instance.GetParams(id); Name = swordData.Name; Damage = swordData.Damage; GetComponent <SpriteRenderer> ().sprite = LoadSprite(swordData.Image); _reachLength = swordData.ReachLength; _swingEffectPrefab = Resources.Load <GameObject> ("Prefabs/Effect/" + swordData.SwingEffect); }
public static void SaveSword(Sword sword) { BinaryFormatter formatter = new BinaryFormatter(); string path = Application.persistentDataPath + "sword.fun"; FileStream stream = new FileStream(path, FileMode.Create); SwordData data = new SwordData(sword); formatter.Serialize(stream, data); stream.Close(); }
//Запустить меню атак public bool StartAttackMenu(SwordData swordData, int combometersSize) { Debug.Log($"AttackMenu.StartAttackMenu({swordData.id}, {combometersSize})"); CheckComponents(); SetSword(swordData); SetEnemies(enemies.Count); UpdateImages(); SetCombometers(combometersSize); SetCombos(combometersSize); return(true); }
// Установить настройки меча private void SetSword(SwordData swordData) { Debug.Log($"AttackMenu.SetSword({swordData.id})"); swordDamage = swordData.damage; Vector3 captureLinesSize = new Vector3(activeLinesTransforms[1].localScale.x, activeLinesTransforms[1].localScale.y); captureLinesSize *= swordData.captureZoneSize; foreach (Transform line in activeLinesTransforms) { line.localScale = captureLinesSize; } }
public static SwordData LoadSword() { string path = Application.persistentDataPath + "sword.fun"; if (File.Exists(path)) { BinaryFormatter formatter = new BinaryFormatter(); FileStream stream = new FileStream(path, FileMode.Open); SwordData data = (SwordData)formatter.Deserialize(stream); stream.Close(); return(data); } else { Debug.Log("SAVE FILE NOT FOUND IN : " + path); return(null); } }
//Функция загружает настройки, согласно снаряжению рыцаря private void LoadEquipment(SwordData currentWeapon, int currentArmor, CharmData[] charms) { gameManager.currentRecord = bestScore; gameManager.blackInk = blackInk; gameManager.pauseMenu = this.pauseMenu; gameManager.UpdateEquipment(scoreForPointModifier, musicVolume); gameManager.StartManager(); attackMenu.enemiesPosition = this.enemiesPosition; attackMenu.startRunningDelta = this.startRunningDelta; foreach (var charm in charms) { charm.ExecuteEffect(); } knightHealth += currentArmor; attackMenu.StartAttackMenu(currentWeapon, DataHolder.combometer_size); _knightBehaviour.SetKnightBehaviour(knightHealth, currentWeapon, attackMenu.combometerNeededPoints); attackMenu.knightCombometer = _knightBehaviour.GetCombometer(); }
private void OnSwordSelectedHandler(object sender, SwordData swordData) => UpdateDisplayUI(swordData);
void InitData() { CleanList(); Sword.transform.GetChild(0).transform.localPosition = FlyDir == Type.AROUND ? new Vector3(0, 0, Radius * Random.Range(1, 3)) : Vector3.zero; float radiusStep = Mathf.PI * 2 / SwordCount; for (int i = 0; i < SwordCount; ++i) { SwordData curSwordData = new SwordData(); curSwordData.obj = GameObject.Instantiate(Sword) as GameObject; curSwordData.obj.transform.parent = transform; curSwordData.obj.SetActive(true); Vector3 curPos = Vector3.zero; curPos.x = Mathf.Cos(i * radiusStep) * Radius; curPos.z = Mathf.Sin(i * radiusStep) * Radius; curSwordData.radius = Radius; curSwordData.speed = Speed; curSwordData.quad = curSwordData.obj.transform.GetChild(0).gameObject; if (SpeedRangeTimeMax > SpeedRangeTimeMin && SpeedRangeTimeMin >= 0) { curSwordData.speedUpdateTimer = Random.Range(SpeedRangeTimeMin, SpeedRangeTimeMax); } if (RadiusRangeTimeMax > RadiusRangeTimeMin && RadiusRangeTimeMin >= 0) { curSwordData.radiusUpdateTimer = Random.Range(RadiusRangeTimeMin, RadiusRangeTimeMax); } if (FlyDir == Type.IN) { curPos.y = Height; curSwordData.dir = (-curPos).normalized; curSwordData.obj.transform.localRotation = Quaternion.LookRotation(curPos); curSwordData.obj.transform.localPosition = curPos; curSwordData.quad.transform.localRotation = Quaternion.Euler(new Vector3(90, 0, 0)); } else if (FlyDir == Type.OUT) { Vector3 targetPos = curPos; targetPos.x = Mathf.Cos(i * radiusStep) * Radius; targetPos.z = Mathf.Sin(i * radiusStep) * Radius; targetPos.y = Height; curSwordData.dir = targetPos.normalized; curSwordData.obj.transform.localRotation = Quaternion.LookRotation(targetPos); curSwordData.obj.transform.localPosition = curPos; curSwordData.quad.transform.localRotation = Quaternion.Euler(new Vector3(90, 0, 0)); } else if (FlyDir == Type.AROUND) { Vector3 curDir = new Vector3(Random.Range(-100, 100), Random.Range(-100, 100), 0); curSwordData.dir = curDir.normalized; curSwordData.quad.transform.localRotation = Quaternion.Euler(0, 0, Mathf.Atan(-curDir.x / curDir.y) * 180 / Mathf.PI + 90.0f); curSwordData.obj.transform.localPosition = Vector3.zero; curSwordData.obj.transform.Rotate(curSwordData.dir, Random.Range(0, 360)); } m_swordList.Add(curSwordData); } }
// Update is called once per frame void Update() { if (m_delayTimer > 0) { m_delayTimer -= Time.deltaTime; if (m_delayTimer <= 0) { InitData(); } else { return; } } Color curColor = Color.white; if (ChangeColors.Length > 0 && ColorDuration > 0) { curColor = GetSlerpColor(m_durationTimer); } for (int i = 0, cout = m_swordList.Count; i < cout; ++i) { SwordData curObj = m_swordList[i]; if (ChangeColors.Length > 0 && ColorDuration > 0) { curObj.quad.GetComponent <Renderer>().material.SetColor("_TintColor", curColor); } if (curObj.radiusUpdateTimer > 0) { curObj.radiusUpdateTimer -= Time.deltaTime; if (curObj.radiusUpdateTimer <= 0) { curObj.radiusUpdateTimer = Random.Range(RadiusRangeTimeMin, RadiusRangeTimeMax); curObj.radius = Random.Range(RadiusRangeTimeMin, RadiusRangeMax) + Radius; } } if (curObj.speedUpdateTimer > 0) { curObj.speedUpdateTimer -= Time.deltaTime; if (curObj.speedUpdateTimer <= 0) { curObj.speedUpdateTimer = Random.Range(SpeedRangeMin, SpeedRangeMax); curObj.speed = Random.Range(SpeedRangeTimeMin, SpeedRangeTimeMax) + Speed; } } if (FlyDir == Type.AROUND) { curObj.obj.transform.Rotate(curObj.dir, Time.deltaTime * curObj.speed * 180 / Mathf.PI); curObj.quad.transform.localPosition = new Vector3(0, 0, curObj.radius); curObj.quad.transform.Rotate(LocalRotSpeed); } else { curObj.obj.transform.localPosition += curObj.dir * Time.deltaTime * curObj.speed; curObj.obj.transform.Rotate(LocalRotSpeed); } } if (m_durationTimer > 0) { m_durationTimer -= Time.deltaTime; if (m_durationTimer <= 0) { if (IsColorLoop) { m_durationTimer = ColorDuration; } else { m_durationTimer = 0; } } } if (m_lifeTimer > 0) { m_lifeTimer -= Time.deltaTime; if (m_lifeTimer <= 0) { CleanList(); } } }