示例#1
0
        public override void OnAwake()
        {
            aiController = ((SharedAiCharacterController)base.Owner.GetVariable("AiCharacterController")).Value;

            characterController = aiController.character;
            aiBehaviour         = aiController.aiBehaviour;
        }
示例#2
0
    public void Show(BrCharacterController victim, BrCharacterController killer, string weaponName)
    {
        victimText.text = victim.UserID;
        if (killer)
        {
            killerText.gameObject.SetActive(true);

            killerText.text = killer.UserID;

            if (killer.WeaponController.CurrWeapon != null && killer.WeaponController.Armed)
            {
                weapon.sprite = killer.WeaponController.CurrWeapon.Icon;
            }
            else
            {
                weapon.sprite = BrLogManager.Instance.melleIcon;
            }
        }
        else
        {
            killerText.gameObject.SetActive(false);
            weapon.sprite = BrLogManager.Instance.killIcon;
        }

        transform.SetSiblingIndex(0);

        director.Play();
    }
示例#3
0
 public void PickPickup(BrPickupBase pickup, BrCharacterController player)
 {
     if (pickup.Index >= 0)
     {
         photonView.RPC(nameof(PickPickupRpc), RpcTarget.All, pickup.Index, player.UserID);
     }
 }
    private void Initialize()
    {
        if (isInitialized)
        {
            return;
        }

        isInitialized = true;

        var collider = GetComponentInParent <CapsuleCollider>();

        if (collider == null)
        {
            Debug.LogError("Collider not found!!!");
        }

        if (!Modules.ContainsKey(collider))
        {
            Modules.Add(collider, this);
        }

        characterModel      = GetComponentInParent <BrCharacterModel>();
        characterController = GetComponentInParent <BrCharacterController>();
        characterController.GetComponent <BrCharacterHitEffect>().OnHit.AddListener(() => { ShowForSeconds(OnFireShowDuration); });
        characterController.GetComponent <BrWeaponController>().OnFire.AddListener(() => { ShowForSeconds(OnHiShowDuration); });
    }
示例#5
0
 public void Initialize(BrWeapon weapon)
 {
     enabled = true;
     BulletModel.gameObject.SetActive(true);
     HitFx.gameObject.SetActive(false);
     OwnerCharacterController = weapon.WeaponController.CharacterController;
     _weapon = weapon;
     _range  = weapon.BulletRange;
 }
    private void PlayerDead(BrCharacterController victom, BrCharacterController killer, string weaponName)
    {
        if (killer && killer.IsMaster)
        {
            UpdateTexts(++killCount);
        }

        if (victom.IsMaster)
        {
            gameObject.SetActive(false);
        }
    }
示例#7
0
    private void Awake()
    {
        BrPlayerTracker.Instance.OnActivePlayerChange += (preActivePlayer, nextActivePlayer) =>
        {
            player = nextActivePlayer;

            if (preActivePlayer && !preActivePlayer.IsMaster)
            {
                Show();
            }
        };

        BrPlayerTracker.Instance.OnLastPlayerLeft += controller => OnHide.Invoke();
    }
示例#8
0
    private void OnTriggerStay(Collider other)
    {
        if (_currentPlayer)
        {
            return;
        }

        var controller = other.GetComponent <BrCharacterController>();

        if (controller && controller.isMine && CanPickup(controller))
        {
            _currentPlayer   = controller;
            _timeToGetReward = Duration;
        }
    }
示例#9
0
    private void Lose(BrCharacterController player)
    {
        var profile = player.profile;

        RemoteWinerName.text = player.UserID;

        StatText.text =
            BrExpManager.CalLevel(profile.PlayerStat.Experience) + "\n" +
            profile.PlayerStat.TotalWins + "\n" +
            profile.PlayerStat.TotalKills;

        Health.fillAmount = player.Health / (float)player.MaxHealth;
        Shield.fillAmount = player.Shield / (float)player.MaxShield;

        RemoteWinerDirector.Play();
    }
示例#10
0
    private void OnTriggerExit(Collider other)
    {
        if (!_currentPlayer)
        {
            return;
        }

        var controller = other.GetComponent <BrCharacterController>();

        if (_currentPlayer == controller)
        {
            _currentPlayer   = null;
            _timeToGetReward = 0;
            if (Image)
            {
                Image.fillAmount = 0;
            }
        }
    }
示例#11
0
    private void Awake()
    {
        // Get local player
        BrPlayerTracker.Instance.OnMasterPlayerRegister += player => masterCharacter = player;

        // New circle
        BrKillZone.Instance.OnNewCircle += (center, radoious) =>
        {
            this.center   = center;
            this.radoious = radoious;

            if (firstTime)
            {
                OnFirstArea.Invoke();
            }
            else
            {
                OnNewArea.Invoke();
            }

            firstTime    = false;
            isShirinking = false;
        };

        // Shrinking
        BrKillZone.Instance.Shrinking += time =>
        {
            if (!isShirinking)
            {
                OnStartShrinking.Invoke();
                isShirinking = true;
            }

            counter.text = time.ToString() + "s";
        };

        // Wait for shrink
        BrKillZone.Instance.OnWaitForShrink += time =>
        {
            counter.text = time.ToString() + "s";
        };
    }
    private void OnEnable()
    {
        if (_characterController)
        {
            return;
        }

        _characterController = GetComponentInParent <BrCharacterController>();
        virtualCamera        = GetComponent <CinemachineVirtualCamera>();

        transform.SetParent(null);

        virtualCamera.Priority = 10;

        // active if only this is master player
        virtualCamera.gameObject.SetActive(_characterController.IsMaster);


        BrPlayerTracker.Instance.OnActivePlayerChange += (player, activePlayer) =>
        {
            if (player == _characterController)
            {
                gameObject.SetActive(false);
            }

            if (activePlayer == _characterController)
            {
                gameObject.SetActive(true);
            }
        };

        _characterController.ParachuteState.OnLanding.AddListener((() =>
        {
            if (_characterController.IsMaster)
            {
                transform.position = BrFlyCutScene.Instance.VirtualCamera.transform.position;
            }

            transform.rotation = BrFlyCutScene.Instance.VirtualCamera.transform.rotation;
        }));
    }
示例#13
0
    void Awake()
    {
        // master player enter
        BrPlayerTracker.Instance.OnMasterPlayerRegister += player =>
        {
            _player = player;


            _player.OnHealthChange += HealthBar.OnUpdateBar;
            _player.OnShieldChange += ShieldBar.OnUpdateBar;

            _player.WeaponController.OnStatChange += WeaponStatChange;

            _player.ParachuteState.OnLanding.AddListener(() =>
            {
                HealthBar.Initialize(_player.Health, _player.MaxHealth);
                ShieldBar.Initialize(_player.Shield, _player.MaxShield);
                OnShow.Invoke();
                WeaponStatChange(_player.WeaponController);
            });

            _player.OnDead.AddListener((() => OnHide.Invoke()));
        };
    }
    private void Awake()
    {
        gameObject.SetActive(false);

        AimJoystick.SetActive(false);

        MovementJoystick.SetActive(false);

        BrPlayerTracker.Instance.OnMasterPlayerRegister += player =>
        {
            if (player.IsAi)
            {
                return;
            }

            masterCharacter = player;

            gameObject.SetActive(true);

            player.ParachuteState.OnOpenPara.AddListener(() =>
            {
                MovementJoystick.SetActive(true);
            });

            player.ParachuteState.OnLanding.AddListener(() =>
            {
                AimJoystick.SetActive(true);
            });

            player.OnDead.AddListener(() =>
            {
                AimJoystick.SetActive(false);
                MovementJoystick.SetActive(false);
            });
        };
    }
示例#15
0
 protected override void GetReward(BrCharacterController currentPlayer)
 {
     base.GetReward(currentPlayer);
     currentPlayer.Shield += Sheild;
 }
示例#16
0
 protected override bool CanPickup(BrCharacterController controller)
 {
     return(controller.NeedShield);
 }
示例#17
0
 protected override void GetReward(BrCharacterController currentPlayer)
 {
     base.GetReward(currentPlayer);
     currentPlayer.Health += Health;
 }
示例#18
0
 private void OnEnable()
 {
     _weaponController = GetComponentInParent <BrWeaponController>();
     _player           = GetComponentInParent <BrCharacterController>();
 }
 public void Initialize(BrCharacterController characterController)
 {
     _controller = characterController;
 }
示例#20
0
 protected override bool CanPickup(BrCharacterController controller)
 {
     return(controller.WeaponController.CanPickupAmmo());
 }
示例#21
0
 protected virtual bool CanPickup(BrCharacterController controller)
 {
     return(true);
 }
示例#22
0
 protected override void GetReward(BrCharacterController currentPlayer)
 {
     base.GetReward(currentPlayer);
     currentPlayer.WeaponController.PickupAmmo(BulletCount);
 }
示例#23
0
 protected virtual void GetReward(BrCharacterController currentPlayer)
 {
     BrPickupManager.Instance.PickPickup(this, currentPlayer);
 }
示例#24
0
 // Start is called before the first frame update
 void Start()
 {
     characterController = GetComponentInParent <BrCharacterController>();
     navMeshAgent        = GetComponentInParent <NavMeshAgent>();
 }
示例#25
0
    protected override void GetReward(BrCharacterController player)
    {
        base.GetReward(player);

        player.WeaponController.PickupWeapon(WeaponName);
    }
示例#26
0
 private void Win(BrCharacterController player)
 {
     LocalWinerName.text = player.UserID;
     WinnerDirector.Play();
 }