public void LoadSword()
    {
        SwordData data = SaveSystem.LoadSword();

        level  = data.level;
        damage = data.damage;
    }
Exemple #2
0
    //Установить поведение рыцаря
    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);
    }
Exemple #3
0
    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();
 }
Exemple #6
0
    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);
    }
Exemple #7
0
    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;
            }
        }
Exemple #10
0
    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);
        }
    }
Exemple #11
0
        //Функция загружает настройки, согласно снаряжению рыцаря
        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);
Exemple #13
0
    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);
        }
    }
Exemple #14
0
    // 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();
            }
        }
    }