Example #1
0
 public void Collect(NoteCollectArgs args)
 {
     _shine.SetActive(true);
     _shineMaterial.SetColor("EColor", args.Color);
     //_shineMaterial.SetFloat("Intensity", 1);
     StartCoroutine(ShineDispose(args.CollectionTime));
 }
Example #2
0
    public void CollectNote(NoteCollectArgs args)
    {
        var accuracy  = args.Accuracy;
        var scoreArgs = new ScoreEarnedArgs();

        if (accuracy >= 0.7f)
        {
            scoreArgs.Rate     = ScoreRate.Poor;
            _currentMultiplier = 1;
        }
        else if (accuracy >= 0.45f && accuracy < 0.7f)
        {
            scoreArgs.Rate     = ScoreRate.Good;
            _currentMultiplier = 1;
        }
        else if (accuracy > 0 && accuracy < 0.45f)
        {
            scoreArgs.Rate = ScoreRate.Perfect;
            if (_currentMultiplier != _scoreData.maxMultiplier)
            {
                _currentMultiplier++;
            }
        }
        else
        {
            return;
        }
        scoreArgs.CurrentIncome = _scoreData.noteScore * _currentMultiplier;
        _totalScore            += scoreArgs.CurrentIncome;
        scoreArgs.Total         = _totalScore;
        scoreArgs.Multiplier    = _currentMultiplier;
        scoreArgs.ScorePosition = args.Collectable.transform.position;

        EventBus.RaiseEvent <IScoreEarnedHandler>(x => x.ProcessScoreData(scoreArgs));
    }
Example #3
0
    private void OnTriggerEnter(Collider other)
    {
        var args = new NoteCollectArgs()
        {
            Accuracy    = -1,
            Collectable = other.GetComponent <ICollectable>(),
        };

        EventBus.RaiseEvent <INoteCollectedHandler>(x => x.CollectNote(args));
    }
Example #4
0
    public void CollectNote(NoteCollectArgs args)
    {
        if (args.Accuracy < 0)
        {
            RestoreNote((Block)args.Collectable);
            return;
        }
        args.CollectionTime = _blockData.CollectTime;
        args.Collectable.Collect(args);
        var block = (Block)args.Collectable;

        RestoreNote(block);
    }
Example #5
0
    private void OnTriggerEnter(Collider other)
    {
        var             block = other.GetComponent <IPlayer>();
        NoteCollectArgs args  = new NoteCollectArgs()
        {
            Collectable = this,
        };

        if (block == null)
        {
            args.Accuracy = -1;
        }
        else
        {
            var accuracy = Mathf.Abs(other.transform.position.z - transform.position.z);
            args.Color    = _renderer.material.GetColor("EColor");
            args.Accuracy = accuracy;
        }
        EventBus.RaiseEvent <INoteCollectedHandler>(x => x.CollectNote(args));
    }