Exemplo n.º 1
0
    public override void FixedUpdate()
    {
        base.FixedUpdate();

        if (shieldState == ShieldState.DReflect)
        {
            if (shieldTime >= this.shieldDecay)
            {
                shieldState = ShieldState.Standard;
            }
        }
        else if (shieldState == ShieldState.Standard)
        {
            if (!pressed)
            {
                shieldState = ShieldState.None;
            }
        }
        else if (shieldState == ShieldState.OmniReflect)
        {
            if (shieldTime >= this.shieldDecay)
            {
                shieldState = ShieldState.None;
            }
        }

        shieldTime += Time.fixedDeltaTime;
    }
Exemplo n.º 2
0
    void ShieldHandle()
    {
        if (shield <= maxShield && shield >= 0.667 * maxShield)
        {
            shieldSprite.GetComponent <SpriteRenderer>().sprite = GameAssets.i.shield3;
            state = ShieldState.power3;
        }
        else if (shield <= 0.667 * maxShield && shield >= 0.333 * maxShield)
        {
            shieldSprite.GetComponent <SpriteRenderer>().sprite = GameAssets.i.shield2;
            state = ShieldState.power2;
        }

        else if (shield <= 0.333 * maxShield && shield > 0)
        {
            shieldSprite.GetComponent <SpriteRenderer>().sprite = GameAssets.i.shield1;
            state = ShieldState.power1;
        }
        else
        {
            shield = 0;
            shieldSprite.GetComponent <SpriteRenderer>().sprite = null;
            state = ShieldState.disabled;
        }

        shieldSprite.transform.position = transform.position;

        if (Mathf.Abs(shield - finalShield) > 0.5f)
        {
            shield -= Time.deltaTime * (shield - finalShield) * 10f;
        }
        shieldBar.fillAmount = shield / maxShield;
    }
Exemplo n.º 3
0
        public void onHit(float damage)
        {
            if (ship.alive)
            {
                if (game.minigame.active)
                    game.minigame.abort();
                if (damage < shieldVal)
                {
                    shieldVal -= damage;
                }
                else if (shieldVal == 0)
                {
                    hpVal -= damage;
                }
                else
                {
                    damage -= shieldVal;
                    shieldVal = 0;
                    hpVal -= damage;
                }

                shieldState = ShieldState.idle;
                shieldIdleTime = 3;

                if (hpVal <= 0)
                {
                    ship.onDeath();
                    //reset();
                }
            }
        }
Exemplo n.º 4
0
 public override void GetPose(EnemyHuman human, PlayerState pose)
 {
     Sheathed      = true;
     pose.LeftArm  = ArmState.Angular(5);
     pose.RightArm = ArmState.Angular(5);
     pose.Shield   = ShieldState.KatanaSheath(MathHelper.ToRadians(-20));
 }
Exemplo n.º 5
0
 void OnCollisionEnter(Collision collision)
 {
     if (collision.gameObject.tag == "bulletPlayer")
     {
         currentState = ShieldState.Dead;
     }
 }
Exemplo n.º 6
0
    private void Start()
    {
        GetBalaIndex();

        GetRigidBody().drag = GetPlayerDeceleration();

        life  = 1;
        score = 0;
        SetCanShoot(true);
        damageable = true;

        matchController = FindObjectOfType <MatchController>();
        //matchController.AddPlayer(this);
        spawnPoint = matchController.GetSpawnPoint(this);

        teamId = 5;

        movementSM = new StateMachine();

        groundedState = new GroundedState(this, movementSM);
        shootingState = new ShootingState(this, movementSM);
        shieldState   = new ShieldState(this, movementSM);
        deadState     = new DeadState(this, movementSM);
        stunState     = new StunState(this, movementSM);
        feederState   = new FeederState(this, movementSM);

        movementSM.Initialize(shootingState);
    }
Exemplo n.º 7
0
        public override void GetPose(PlayerState basePose)
        {
            basePose.Body       = !Human.InAir ? BodyState.Stand : BodyState.Walk(1);
            Katana.Sheathed     = false;
            basePose.Shield     = ShieldState.KatanaSheathEmpty(MathHelper.ToRadians(-20));
            basePose.WeaponHold = WeaponHold.Left;
            switch (SlashAction)
            {
            default:
            case (SwingAction.StartSwing):
                basePose.LeftArm = ArmState.Angular(10);
                basePose.Weapon  = Weapon.GetWeaponState(Human, MathHelper.ToRadians(-135.5f));
                break;

            case (SwingAction.UpSwing):
                basePose.LeftArm = ArmState.Angular(13);
                basePose.Weapon  = Weapon.GetWeaponState(Human, MathHelper.ToRadians(-45));
                break;

            case (SwingAction.DownSwing):
                basePose.Body    = BodyState.Crouch(1);
                basePose.LeftArm = ArmState.Angular(1);
                basePose.Weapon  = Weapon.GetWeaponState(Human, MathHelper.ToRadians(22.5f));
                break;

            case (SwingAction.FinishSwing):
                basePose.LeftArm = ArmState.Angular(ArmAngle);
                basePose.Weapon  = Weapon.GetWeaponState(Human, MathHelper.ToRadians(Angle));
                break;
            }
        }
Exemplo n.º 8
0
    void Update()
    {
        switch (this.state)
        {
        case ShieldState.ACTIVE:
            this.shieldHealthFloat += this.regenAmount * Time.deltaTime;
            if (this.shieldHealthFloat > this.type.Health)
            {
                this.shieldHealthFloat = this.type.Health;
            }
            this.color.a        = this.shieldHealthFloat / this.type.Health;
            this.renderer.color = this.color;
            break;

        case ShieldState.REGENERATING:
            this.shieldHealthFloat += this.regenAmount * Time.deltaTime;
            if (this.shieldHealthFloat > this.type.Health)
            {
                this.shieldHealthFloat = this.type.Health;
                this.collider.enabled  = true;
                this.renderer.enabled  = true;
                this.state             = ShieldState.ACTIVE;
            }
            break;
        }
    }
Exemplo n.º 9
0
 public void Disable()
 {
     this.collider.enabled = false;
     this.renderer.enabled = false;
     this.state            = ShieldState.INACTIVE;
     this.gameObject.SetActive(false);
 }
Exemplo n.º 10
0
 public override void InitializeMoveStates()
 {
     // Initializes Free Move State, sets starting move state to player.freeMoveState, initializes Attack State
     freeMoveState        = new KnightFreeMoveState(this);
     currentMovementState = freeMoveState;
     attackState          = new AttackState(this);
     shieldState          = new ShieldState(this);
 }
Exemplo n.º 11
0
 internal ShieldStateEvent InvokeEvent(ShieldStateEvent arg)
 {
     if (_api.ValidateEvent(arg))
     {
         ShieldState?.Invoke(_api, arg);
     }
     return(arg);
 }
Exemplo n.º 12
0
 private void ApplyShieldState(ShieldState shieldState)
 {
     _tracker.Modify(shieldState.Timestamp, ship =>
     {
         // If shield state was unknown before (i.e. null) we know it now
         ship.ShieldsUp = shieldState.ShieldsUp;
     });
 }
Exemplo n.º 13
0
 public MoonShield(uint id, ContentManager content, Vector2 position)
     : base(id)
 {
     _spriteSheet = content.Load<Texture2D>(SPRITESHEET);
     _position = position;
     _state = ShieldState.s1;
     _timer = 0;
     this.Health = 700;
 }
Exemplo n.º 14
0
    //Performs Shield ability
    //NOTE: Also need to pass in bool if that's how I'm gonna handle animationss
    public void Shield(ref PlayerState playerState)
    {
        switch (shieldState)
        {
        case ShieldState.Setup:
            //Activate shield collider here
            playerFaceDirection = orientationSystem.DetermineDirectionFromVector(moveInfo.GetLastMove());
            ActivateCorrespondingCollider(playerFaceDirection);
            //Debug.Log (playerFaceDirection);

            //Play animation
            animator.Play("Shield State");

            shieldState = ShieldState.Shielding;

            break;

        case ShieldState.Shielding:
            //NOTE: if strafing, play strafe animation
            Strafe();

            //If player is shielding, stay in this state; else, exit state
            if (isShielding())
            {
                //Stay in this state
            }
            else
            {
                DeactivateCorrespondingCollider(playerFaceDirection);

                shieldState = ShieldState.Setup;
                playerState = PlayerState.Default;
                return;
            }

            //Check for Grab, Dodge, or (maybe) Jump inputs
            //Grab
            if (Input.GetButtonDown("AttackPS4"))
            {
                //shieldColliderUp.enabled = false;
                //Switch to grab state
            }
            else if (Input.GetButtonDown("SprintPS4"))
            {
                //Check if there's any movement
                if (playerMoving)
                {
                    //Switch to DodgeRoll state
                    DeactivateCorrespondingCollider(playerFaceDirection);
                    shieldState = ShieldState.Setup;
                    playerState = PlayerState.DodgeRolling;
                }
            }

            break;
        }
    }     //Shield
Exemplo n.º 15
0
    public void ResetState(ref PlayerState playerState)
    {
        //Deactivate collider
        DeactivateCorrespondingCollider(playerFaceDirection);

        playerMoving  = false;
        moveDirection = Vector2.zero;
        shieldState   = ShieldState.Setup;
        playerState   = PlayerState.Default;
    }
Exemplo n.º 16
0
    // Update is called once per frame
    void Update()
    {
        Vector3 fwd       = transform.TransformDirection(Vector3.forward);
        Vector3 leftCast  = transform.TransformDirection(Vector3.left);
        Vector3 rightCast = transform.TransformDirection(Vector3.right);

        ColorChange();
        switch (currentState)
        {
        case ShieldState.MoveRandom:
            a = target - transform.position;
            if (transform.position == currentNode.transform.position)
            {
                RandomMove();
            }
            if (playerTarget.GetComponent <PlayerScript> ().fired == true)
            {
                currentState = ShieldState.MoveToPlayer;
                Debug.Log(currentState);
            }
            if ((Physics.Raycast(leftFoward.transform.position, fwd, out hit, detectDistance) || Physics.Raycast(rightFoward.transform.position, fwd, out hit, detectDistance)) && hit.transform.CompareTag("Player"))
            {
                currentState = ShieldState.MoveToPlayer;
                Debug.Log(currentState);
            }
            transform.rotation    = Quaternion.LookRotation(Vector3.RotateTowards(transform.forward, a, speed * Time.deltaTime, 0.0f));
            transform.eulerAngles = new Vector3(0, transform.eulerAngles.y, 0);
            break;

        case ShieldState.MoveToPlayer:
            a = playerTarget.transform.position;
            if (transform.position == currentNode.transform.position)
            {
                TargetMove();
            }
            transform.LookAt(playerTarget.transform.position);
            transform.eulerAngles = new Vector3(0, transform.eulerAngles.y, 0);
            break;

        case ShieldState.Dead:
        {
            speed = 0;
            dead  = true;
        }
        break;

        default:
            break;
        }
        transform.position = Vector3.MoveTowards(transform.position, currentNode.transform.position, speed * Time.deltaTime);
    }
Exemplo n.º 17
0
 /// <summary>
 /// Hit by bullet (should only be triggered when active)
 /// </summary>
 /// <param name="sender">the bullet that hit this shield</param>
 /// <param name="e">the arguments describing the event</param>
 private void TakeHit(object sender, BulletHitEventArgs e)
 {
     if (e.HitCollider == this.collider && state == ShieldState.ACTIVE)
     {
         this.shieldHealthFloat -= e.ShotDamage;
         if (this.shieldHealthFloat <= 0f)
         {
             this.shieldHealthFloat = 0f;
             this.state             = ShieldState.REGENERATING;
             this.collider.enabled  = false;
             this.renderer.enabled  = false;
         }
     }
 }
Exemplo n.º 18
0
    private IEnumerator ShieldRoutine(bool cast, Action callback)
    {
        shieldState = ShieldState.Transitioning;
        float elapsed = 0;

        while (elapsed < ShieldTime)
        {
            elapsed += Time.deltaTime;
            var pct = elapsed / ShieldTime;
            material.SetFloat("_PercentOn", Mathf.Clamp01(cast ? 1 - pct : pct));
            yield return(null);
        }
        shieldState = cast ? ShieldState.Casted : ShieldState.Dropped;
        callback.Invoke();
    }
Exemplo n.º 19
0
    public void Activate(ShieldType type)
    {
        this.type = type;

        if (this.type == ShieldTypes.None)
        {
            this.Disable();
        }
        else
        {
            this.shieldHealthFloat = this.type.Health;
            this.regenAmount       = this.type.Regen;
            this.state             = ShieldState.ACTIVE;
        }
    }
Exemplo n.º 20
0
    public void ReleaseShield()
    {
        Vector3    rayOrigin = playerView.PlayerCameraHandler.PlayerCamera.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0));
        RaycastHit hit;

        Vector3 hitPoint = Vector3.zero;

        Debug.DrawRay(rayOrigin, playerView.PlayerCameraHandler.CameraTransform.forward, Color.red, 5);
        if (Physics.Raycast(rayOrigin, playerView.PlayerCameraHandler.CameraTransform.forward, out hit, Mathf.Infinity))
        {
            hitPoint = hit.point;
        }

        shieldView.ShieldMovementHandler.ReleaseShield(hit.point);
        shieldEquippedState = ShieldState.Free;
    }
Exemplo n.º 21
0
    // Use this for initialization
    void Start()
    {
        shieldState         = ShieldState.Setup;
        playerMoving        = false;
        moveDirection       = Vector2.zero;
        playerBody          = GetComponent <Rigidbody2D> ();
        animator            = GetComponent <Animator> ();
        orientationSystem   = GetComponent <OrientationSystem> ();
        moveInfo            = GetComponent <AbilityBasicMovement> ();
        shieldColliderUp    = GameObject.Find("Shield Collider Up").GetComponent <PolygonCollider2D> ();
        shieldColliderDown  = GameObject.Find("Shield Collider Down").GetComponent <PolygonCollider2D> ();
        shieldColliderRight = GameObject.Find("Shield Collider Right").GetComponent <PolygonCollider2D> ();
        shieldColliderLeft  = GameObject.Find("Shield Collider Left").GetComponent <PolygonCollider2D> ();

        shieldColliderUp.enabled    = false;
        shieldColliderDown.enabled  = false;
        shieldColliderRight.enabled = false;
        shieldColliderLeft.enabled  = false;
    }
Exemplo n.º 22
0
    public override void FixedUpdate()
    {
        base.FixedUpdate ();

        if (shieldState == ShieldState.DReflect) {
            if(shieldTime >= this.shieldDecay) {
                shieldState = ShieldState.Standard;
            }
        } else if(shieldState == ShieldState.Standard) {
            if(!pressed) {
                shieldState = ShieldState.None;
            }
        } else if(shieldState == ShieldState.OmniReflect) {
            if(shieldTime >= this.shieldDecay) {
                shieldState = ShieldState.None;
            }
        }

        shieldTime += Time.fixedDeltaTime;
    }
Exemplo n.º 23
0
    /**
     * Sets the shield's state
     *
     * t_State : the state that the shield will be set as
     */
    private void SetState(ShieldState t_State)
    {
        m_State            = t_State;
        m_InHand           = false;
        m_Collider.enabled = true;

        switch (t_State)
        {
        // orphans the shield from player's hand
        case ShieldState.thrown:
            gameObject.transform.parent = null;
            break;

        // Sets position to fly back
        case ShieldState.recalled:
            m_ReturnTime            = 0;
            m_RigidBody.isKinematic = true;
            m_PullPosition          = transform.position;
            break;

        // Places shield at player's hand
        case ShieldState.equipped:
            m_InHand = true;
            gameObject.transform.parent = m_Hand;
            m_RigidBody.isKinematic     = true;
            transform.localPosition     = Vector3.zero;
            transform.localEulerAngles  = Vector3.zero;
            m_Collider.enabled          = false;
            break;

        case ShieldState.stuck:
            m_RigidBody.isKinematic = true;
            break;

        default:
            break;
        }
    }
Exemplo n.º 24
0
    public void SetState(ShieldState state)
    {
        _state = state;

        switch (_state)
        {
        case ShieldState.green:
            break;

        case ShieldState.yellow:
            _animator.SetTrigger("greenBlink");
            break;

        case ShieldState.red:
            _animator.SetTrigger("yellowBlink");
            break;

        case ShieldState.none:
            _animator.SetTrigger("redBlink");
            _spriteRenderer.enabled = false;
            break;
        }
    }
Exemplo n.º 25
0
 protected override void doReleasedAction()
 {
     shieldState = ShieldState.OmniReflect;
     shieldTime = 0f;
 }
Exemplo n.º 26
0
 protected override void doReleasedAction()
 {
     shieldState = ShieldState.OmniReflect;
     shieldTime  = 0f;
 }
Exemplo n.º 27
0
 protected override void doInitialAction()
 {
     shieldState = ShieldState.DReflect;
     shieldTime  = 0f;
 }
Exemplo n.º 28
0
 public ShieldAction(Transform transform) : base(KeyCode.Mouse1)
 {
     shieldState          = ShieldState.None;
     this.playertransform = transform;
 }
Exemplo n.º 29
0
 public override void Update(float elapsedTime)
 {
     _position.Y -= ScrollingShooterGame.LevelManager.CurrentMap.Layers[ScrollingShooterGame.LevelManager.CurrentMap.PlayerLayer].ScrollOffset * elapsedTime;
     _timer += elapsedTime;
     if (_timer >= STATE_TIME)
     {
         _timer = 0;
         switch (_state)
         {
             case ShieldState.s1:
                 _state = ShieldState.s2;
                 break;
             case ShieldState.s2:
                 _state = ShieldState.s3;
                 break;
             case ShieldState.s3:
                 _state = ShieldState.s1;
                 break;
             default:
                 throw new Exception("Unknown state.");
         }
     }
 }
Exemplo n.º 30
0
 protected override void doInitialAction()
 {
     shieldState = ShieldState.DReflect;
     shieldTime = 0f;
 }
Exemplo n.º 31
0
 public void reset()
 {
     shieldMax = 100;
     shieldVal = 100;
     hpVal = 100;
     hpMax = 100;
     shieldIdleTime = 0;
     shieldState = ShieldState.max;
 }
Exemplo n.º 32
0
        public override void Update(GameTime gameTime)
        {
            if (!Utilities.softPaused && !Utilities.paused)
            {
                if (shieldState == ShieldState.idle)
                {
                    shieldIdleTime -= Utilities.deltaTime;
                    if (shieldIdleTime < 0)
                    {
                        shieldIdleTime = 0;
                        shieldState = ShieldState.recharging;
                    }
                }

                if (shieldState == ShieldState.recharging)
                {
                    shieldVal += Utilities.deltaTime * 40;
                    if (shieldVal >= shieldMax)
                    {
                        shieldVal = shieldMax;
                        shieldState = ShieldState.max;
                    }
                }
            }
        }
Exemplo n.º 33
0
    void Update()
    {
        if (!playerIndexSet || !prevState.IsConnected)
        {
            for (int k = 0; k < 4; k++)
            {
                PlayerIndex  testPlayerIndex = (PlayerIndex)k;
                GamePadState testState       = GamePad.GetState(testPlayerIndex);
                if (testState.IsConnected)
                {
                    Debug.Log(string.Format("GamePad found {0}", testPlayerIndex));
                    playerIndex    = testPlayerIndex;
                    playerIndexSet = true;
                    Debug.Log("Player One Index is: " + playerIndex);
                }
            }
        }

        prevState = state;
        state     = GamePad.GetState(playerIndex);

        playerIndex = PlayerIndex.One;


        if (playerIndex == PlayerIndex.One)
        {
            float moveHorizontal = state.ThumbSticks.Left.X * P1Speed * Time.deltaTime;
            float moveVertical   = state.ThumbSticks.Left.Y * P1Speed * Time.deltaTime;

            this.transform.Translate(new Vector3(moveHorizontal, moveVertical, 0f));


            if (p1power == 0)
            {
                dash = true;
            }

            if (p1power == 1)
            {
                shield = true;
            }

            if (p1power == 2)
            {
                Shoot = true;
            }


            if (dash == true)
            {
                switch (dashState)
                {
                case DashState.Ready:
                    var isDashKeyDown = prevState.Buttons.RightShoulder == ButtonState.Released && state.Buttons.RightShoulder == ButtonState.Pressed;
                    if (isDashKeyDown)
                    {
                        P1savedSpeed = P1Speed;
                        P1Speed      = P1Speed + 400;

                        DashIcon.SetActive(false);
                        DashIconCharging.SetActive(true);

                        dashState = DashState.Dashing;
                    }
                    break;

                case DashState.Dashing:
                    dashTimer += Time.deltaTime * 3;
                    if (dashTimer >= maxDash)
                    {
                        dashTimer = maxDash;
                        P1Speed   = P1savedSpeed;
                        dashState = DashState.Cooldown;
                    }
                    break;

                case DashState.Cooldown:
                    dashTimer -= Time.deltaTime;
                    if (dashTimer <= 0)
                    {
                        dashTimer = 0;

                        DashIcon.SetActive(true);
                        DashIconCharging.SetActive(false);

                        dashState = DashState.Ready;
                    }
                    break;
                }
            }


            if (shield == true)
            {
                switch (shieldState)
                {
                case ShieldState.Ready:
                    var P1ShieldKeyDown = prevState.Buttons.RightShoulder == ButtonState.Released && state.Buttons.RightShoulder == ButtonState.Pressed;
                    if (P1ShieldKeyDown)
                    {
                        P1Shield.SetActive(true);

                        ShieldIcon.SetActive(false);
                        ShieldIconCharging.SetActive(true);


                        shieldState = ShieldState.Shielding;
                    }
                    break;

                case ShieldState.Shielding:
                    shieldTimer += Time.deltaTime * 3;
                    if (shieldTimer >= maxShield)
                    {
                        shieldTimer = maxShield;

                        P1Shield.SetActive(false);

                        shieldState = ShieldState.Cooldown;
                    }
                    break;

                case ShieldState.Cooldown:
                    shieldTimer -= Time.deltaTime;
                    if (shieldTimer <= 0)
                    {
                        shieldTimer = 0;

                        ShieldIcon.SetActive(true);
                        ShieldIconCharging.SetActive(false);


                        shieldState = ShieldState.Ready;
                    }
                    break;
                }
            }


            if (Shoot == true)
            {
                switch (shootState)
                {
                case ShootState.Ready:
                    var P1CloneKeyDown = prevState.Buttons.RightShoulder == ButtonState.Released && state.Buttons.RightShoulder == ButtonState.Pressed;
                    if (P1CloneKeyDown)
                    {
                        BigShotIcon.SetActive(false);
                        BigShotIconCharging.SetActive(true);

                        Audio.PlayOneShot(Fireball);

                        //instantiate the first bullet
                        GameObject bullet01 = (GameObject)Instantiate(PlayerBulletGO, transform.position, Quaternion.identity);
                        //bullet01.transform.position = bulletPosition01.transform.position; //set the bullet initial postion

                        bullet01.GetComponent <PlayerBullet> ().xspeed = 15.0f;

                        shootState = ShootState.Shooting;
                    }
                    break;

                case ShootState.Shooting:
                    shootTimer += Time.deltaTime * 3;
                    if (shootTimer >= maxShoot)
                    {
                        shootTimer = maxShoot;

                        shootState = ShootState.Cooldown;
                    }
                    break;

                case ShootState.Cooldown:
                    shootTimer -= Time.deltaTime;
                    if (shootTimer <= 0)
                    {
                        shootTimer = 0;

                        BigShotIcon.SetActive(true);
                        BigShotIconCharging.SetActive(false);

                        shootState = ShootState.Ready;
                    }
                    break;
                }
            }
        }
    }
Exemplo n.º 34
0
 public PedigreeExporter(IBaseWindow baseWin, GDMIndividualRecord root) : base(baseWin, false)
 {
     fRoot        = root;
     fTitle       = LangMan.LS(LSID.LSID_ExpPedigree) + ": " + GKUtils.GetNameString(fRoot, true, false);
     fShieldState = baseWin.Context.ShieldState;
 }
Exemplo n.º 35
0
 public ShieldAction(Transform transform)
     : base(KeyCode.Mouse1)
 {
     shieldState = ShieldState.None;
     this.playertransform = transform;
 }
 public void putToEnd()
 {
     solarFighter.GetComponent <Player_PlayerFighterObject>().setShieldBools(false, solorShieldType);
     state = ShieldState.onEnd;
 }
Exemplo n.º 37
0
    private void Start()
    {
        rigidBody.drag = playerDeceleration;

        life                = maxLife;
        score               = 0;
        canShoot            = true;
        canShield           = true;
        damageable          = true;
        stunSlider.maxValue = stunTime;

        lifeText.text = "Vida: " + life;
        scoreText.GetComponent <TMPro.TextMeshProUGUI>().text = score + " pts";
        hudManager = GetComponent <HUDmanager>();
        GetBalaIndex();
        if (PhotonNetwork.IsConnected && PV.IsMine)
        {
            canvas.SetActive(true);
            mainCamera.enabled      = true;
            playerInput.enabled     = true;
            mobileCharacter.enabled = true;
            audioListener.enabled   = true;
            sAlas.Play();
        }
        if (PhotonNetwork.IsConnected && PhotonNetwork.IsMasterClient)
        {
            matchController = FindObjectOfType <MatchController>();
            matchController.AddPlayer(this);
            teamId = FindObjectOfType <RoomManager>().FindTeamIdByPlayer(PV.Owner);
            if (teamId == -1)
            {
                teamId = 0;
                Debug.Log("No se ha encontrado el teamId, se le ha añadido al equipo 0");
            }
            PV.RPC("GetSpawnpoint_RPC", RpcTarget.All, teamId);
        }
        else if (!PhotonNetwork.IsConnected)
        {
            canvas.SetActive(true);
            mainCamera.enabled      = true;
            playerInput.enabled     = true;
            mobileCharacter.enabled = true;
            RoomManagerOffline RMO = FindObjectOfType <RoomManagerOffline>();
            if (RMO.gamemodeIndex == 3)
            {
                teamId = 0;
            }
            else
            {
                teamId = RMO.jugadoresInfo[GetComponentInChildren <PlayerInput>().playerIndex + 1][1];
            }
            if (playerInput.playerIndex == 0)
            {
                audioListener.enabled = true;
            }
            matchController = FindObjectOfType <MatchController>();
            matchController.AddPlayer(this);
            spawnPoint = matchController.GetSpawnPoint(this);
            GetComponent <Transform>().position = spawnPoint.transform.position;
            hudManager.setBackground();
        }

        movementSM = new StateMachine();

        groundedState = new GroundedState(this, movementSM);
        shootingState = new ShootingState(this, movementSM);
        shieldState   = new ShieldState(this, movementSM);
        deadState     = new DeadState(this, movementSM);
        stunState     = new StunState(this, movementSM);
        feederState   = new FeederState(this, movementSM);

        movementSM.Initialize(groundedState);
    }
Exemplo n.º 38
0
 public void SetShieldStateToHeld()
 {
     shieldEquippedState = ShieldState.Held;
 }