Exemplo n.º 1
0
    public Player GetPlayer(Define.PlayerType playerType)
    {
        if (playerType == Define.PlayerType.None)
        {
            return(null);
        }

        return(_players[(int)playerType - 1]);
    }
Exemplo n.º 2
0
    /// <summary>
    /// 指定したプレイヤーのスコアを返す
    /// </summary>
    public int GetScore(Define.PlayerType playerType)
    {
        if ((int)playerType < 0 || (int)playerType >= Define.METER_NUM_MAX)
        {
            Debug.LogError("プレイヤー番号が不正です");
            return(0);
        }

        return(_valueArray[(int)playerType]);
    }
Exemplo n.º 3
0
Arquivo: Mob.cs Projeto: misoten8/Mock
    private void Start()
    {
        // 無所属に全てのファンポイントを設定
        _fanPointArray[0] = Define.FanPointArray[(int)_fanLevel];

        // ファンタイプの更新
        _funType = (Define.PlayerType)_fanPointArray.FindIndexMax();

        // アウトラインの更新
        _meshRenderer.materials[1].color = new Color(0.2f, 0.2f, 0.2f);

        // モブ再生イベント実行
        onMoveMob?.Invoke();
    }
Exemplo n.º 4
0
    /// <summary>
    /// 指定したプレイヤーのスコアを変更する
    /// </summary>
    public void SetScore(Define.PlayerType playerType, int value)
    {
        if ((int)playerType < 0 || (int)playerType >= Define.METER_NUM_MAX)
        {
            Debug.LogError("プレイヤー番号が不正です");
            return;
        }

        // スコアを設定する
        _valueArray[(int)playerType] = value;

        // 影響力を設定する
        _ip.SetPlayerScoreArray(_valueArray.Select(x => (float)x).ToArray());
    }
Exemplo n.º 5
0
Arquivo: Mob.cs Projeto: misoten8/Mock
    private void OnTriggerStay(Collider other)
    {
        if (other.tag != "DanceRange")
        {
            return;
        }

        // 既に他のプレイヤーのダンスを視聴している場合無視する
        if (_isViewingInDance)
        {
            return;
        }

        Dance playerDance = other.gameObject.GetComponent <Dance>();

        // プレイヤーがダンス中であれば、視聴する
        if (playerDance.IsPlaying)
        {
            Debug.Log(_instanceID.ToString() + "番のモブは視聴するドン!");
            // モブ停止イベント実行
            onDanceWatchMob?.Invoke();

            // ダンス視聴中エフェクト再生
            _danceNowEffect = ParticleManager.Play("DanceNow", new Vector3(), transform);

            _isViewingInDance = true;

            // ダンス終了イベントにメソッドを登録する
            playerDance.onEndDance += (isCancel, isSuccess) =>
            {
                _isViewingInDance = false;

                if (!isCancel)
                {
                    // モブキャラ管理クラスにスコア変更を通知
                    _mobManager.OnScoreChange();

                    // ファンタイプが変更したかチェックする
                    Define.PlayerType newFunType = isSuccess ? playerDance.Player.Type : Define.PlayerType.None;
                    if (_funType != newFunType)
                    {
                        // ファンタイプの更新
                        _funType = newFunType;

                        // 推しているプレイヤーの更新
                        _funPlayer = playerDance.Player;

                        // 追従対象の更新
                        _fllowTarget = playerDance.PlayerType;

                        // アウトラインの更新
                        _meshRenderer.materials[1].color = playerDance.Player.PlayerColor;
                    }
                }

                // プレイヤーが客引き状態の場合、追従判定を行う
                if (_mobManager.GetFunCount(_fllowTarget) < _mobManager.GetFunCount(playerDance.PlayerType) ||
                    _fllowTarget == Define.PlayerType.None)
                {
                    if (FunType == Define.PlayerType.None)
                    {
                        // 追従対象の更新
                        _fllowTarget = playerDance.PlayerType;
                    }
                }

                // モブ再生イベント実行
                onMoveMob?.Invoke();

                Destroy(_danceNowEffect);
            };
        }
        else
        {
            // プレイヤーが客引き状態の場合、追従判定を行う
            if (_mobManager.GetFunCount(_fllowTarget) < _mobManager.GetFunCount(playerDance.PlayerType) ||
                _fllowTarget == Define.PlayerType.None)
            {
                if (FunType != Define.PlayerType.None)
                {
                    return;
                }
                _fllowTarget = playerDance.PlayerType;
                onChangeFllowPlayer?.Invoke();
            }
        }
    }
Exemplo n.º 6
0
 public int GetFunCount(Define.PlayerType playerType)
 {
     return(_funCount[(int)playerType]);
 }
Exemplo n.º 7
0
 /// <summary>
 /// 影響力(注目度)を要素ごとに取得する
 /// </summary>
 public float GetValue(Define.PlayerType playerType)
 {
     return(_influencePowerArray[(int)playerType]);
 }