コード例 #1
0
        ////////////////

        internal void RunUpdateForPlayer(Player player)
        {
            if (player.whoAmI != Main.myPlayer)
            {
                return;
            }
            if (!SaveableEntityComponent.HaveAllEntitiesLoaded)
            {
                return;
            }

            var myplayer = player.GetModPlayer <OnARailPlayer>();

            if (myplayer.MyTrainWho == -1)
            {
                return;
            }

            bool is_mounted = player.mount.Active && player.mount.Type == this.Type;

            this.UpdateInventoryState(is_mounted);

            if (is_mounted)
            {
                if (player.onTrack)
                {
                    if (PlayerMovementHelpers.IsOnFloor(player))
                    {
                        this.mountData.yOffset = 2;
                    }
                }
                else
                {
                    this.mountData.yOffset = 12;
                }
            }
        }
コード例 #2
0
        ////////////////


        public override void PostUpdateRunSpeeds()
        {
            if (this.player.dead)
            {
                return;
            }

            var mymod = (EncumbranceMod)this.mod;

            // Is sprinting?

            /*if( !player.mount.Active && player.velocity.Y == 0f && player.dashDelay >= 0 ) {
             *      float runMin = PlayerMovementHelpers.MinimumRunSpeed( player );
             *      float acc = player.accRunSpeed + 0.1f;
             *      float velX = player.velocity.X;
             *
             *      if( ( player.controlRight && velX > runMin && velX < acc ) ||
             *              ( player.controlLeft && velX < -runMin && velX > -acc ) ) {
             *              //Main.NewText("runMin:"+ runMin+ ",acc:"+ acc+ ",velX:"+ velX+",maxRunSpeed:"+ this.Player.maxRunSpeed);
             *              this.DrainStaminaViaSprint( mymod, player );
             *      }
             * }*/

            // Is dashing?
            if (!this.IsDashing)
            {
                if (this.player.dash != 0 && this.player.dashDelay == -1)
                {
                    this.RunDashEffect();
                    this.IsDashing = true;
                }
            }
            else if (this.player.dashDelay != -1)
            {
                this.IsDashing = false;
            }

            // Is (attempting) jump?
            if (this.player.controlJump)
            {
                if (!this.IsJumping && !PlayerMovementHelpers.IsFlying(this.player))
                {
                    if (this.player.swimTime > 0)
                    {
                        this.RunSwimEffect();
                    }
                    else
                    {
                        if (this.player.velocity.Y == 0 || this.player.sliding ||
                            this.player.jumpAgainBlizzard || this.player.jumpAgainCloud ||
                            this.player.jumpAgainFart || this.player.jumpAgainSandstorm)
                        {
                            this.RunJumpEffect();
                        }
                    }
                    this.IsJumping = true;
                }

                if (this.player.jump > 0 || PlayerMovementHelpers.IsFlying(this.player))
                {
                    if (this.player.swimTime > 0)
                    {
                        this.RunSwimHoldEffect();
                    }
                    else
                    {
                        this.RunJumpHoldEffect();
                    }
                }
            }
            else if (this.IsJumping)
            {
                this.IsJumping = false;
            }

            CustomLoadHooks.TriggerHook(EncumbrancePlayer.PlayerMovementPromiseValidator,
                                        EncumbrancePlayer.PlayerMovementPromiseValidatorKey,
                                        this.player.whoAmI
                                        );
        }
コード例 #3
0
        public void GatherActivityStaminaDrains(Player player)
        {
            var mymod    = StaminaMod.Instance;
            var myplayer = player.GetModPlayer <StaminaPlayer>();

            // Is sprinting?
            if (!player.mount.Active && player.velocity.Y == 0f && player.dashDelay >= 0)
            {
                float runMin = PlayerMovementHelpers.MinimumRunSpeed(player);
                float acc    = player.accRunSpeed + 0.1f;
                float velX   = player.velocity.X;

                if ((player.controlRight && velX > runMin && velX < acc) ||
                    (player.controlLeft && velX < -runMin && velX > -acc))
                {
//Main.NewText("runMin:"+ runMin+ ",acc:"+ acc+ ",velX:"+ velX+",maxRunSpeed:"+ this.Player.maxRunSpeed);
                    this.DrainStaminaViaSprint(player);
                }
            }

            // Is dashing?
            if (!myplayer.IsDashing)
            {
                if (player.dash != 0 && player.dashDelay == -1)
                {
                    this.DrainStaminaViaDash(player);
                    myplayer.IsDashing = true;
                }
            }
            else if (player.dashDelay != -1)
            {
                myplayer.IsDashing = false;
            }

            // Is (attempting) jump?
            if (player.controlJump)
            {
                if (!myplayer.IsJumping && !PlayerMovementHelpers.IsFlying(player))
                {
                    if (player.swimTime > 0)
                    {
                        this.DrainStaminaViaSwimBegin(player);
                    }
                    else
                    {
                        if (player.velocity.Y == 0 || player.sliding ||
                            player.jumpAgainBlizzard || player.jumpAgainCloud || player.jumpAgainFart || player.jumpAgainSandstorm)
                        {
                            this.DrainStaminaViaJumpBegin(player);
                        }
                    }
                    myplayer.IsJumping = true;
                }

                if (player.jump > 0 || PlayerMovementHelpers.IsFlying(player))
                {
                    if (player.swimTime > 0)
                    {
                        this.DrainStaminaViaSwimHold(player);
                    }
                    else
                    {
                        this.DrainStaminaViaJumpHold(player);
                    }
                }
            }
            else if (myplayer.IsJumping)
            {
                myplayer.IsJumping = false;
            }
        }