////////////////

        public void DrainStaminaAmount(Player player, float amount, StaminaDrainTypes type)
        {
            this.CurrentDrainCount++;

            foreach (var hook in this.StaminaChangeHooks)
            {
                amount = hook(player, type, amount);
            }

            if (amount > this.CurrentDrainMost)
            {
                this.CurrentDrain    += this.CurrentDrainMost;
                this.CurrentDrainMost = amount;
            }
            else
            {
                this.CurrentDrain += amount;
            }

            string baseType = type.ToString();

            if (this.CurrentDrainTypes.ContainsKey(baseType))
            {
                this.CurrentDrainTypes[baseType] += amount;
            }
            else
            {
                this.CurrentDrainTypes[baseType] = amount;
            }
        }
        public void DrainStamina(Player player, StaminaDrainTypes type)
        {
            var mymod = StaminaMod.Instance;

            switch (type)
            {
            case StaminaDrainTypes.ItemUse:
                this.DrainStaminaViaItemUse(player);
                break;

            case StaminaDrainTypes.MagicItemUse:
                this.DrainStaminaViaMagicItemUse(player);
                break;

            //case StaminaDrainTypes.CustomItemUse:
            //	this.DrainStaminaViaCustomItemUse( player );
            //	break;
            case StaminaDrainTypes.GrappleBegin:
                this.DrainStaminaViaGrappleBegin(player);
                break;

            case StaminaDrainTypes.GrappleHold:
                this.DrainStaminaViaGrappleHold(player);
                break;

            case StaminaDrainTypes.Sprint:
                this.DrainStaminaViaSprint(player);
                break;

            case StaminaDrainTypes.Dash:
                this.DrainStaminaViaDash(player);
                break;

            case StaminaDrainTypes.SwimBegin:
                this.DrainStaminaViaSwimBegin(player);
                break;

            case StaminaDrainTypes.SwimHold:
                this.DrainStaminaViaSwimHold(player);
                break;

            case StaminaDrainTypes.JumpBegin:
                this.DrainStaminaViaJumpBegin(player);
                break;

            case StaminaDrainTypes.JumpHold:
                this.DrainStaminaViaJumpHold(player);
                break;

            case StaminaDrainTypes.GravitationPotion:
                this.DrainStaminaViaGravitationPotion(player);
                break;

            default:
                throw new ModHelpersException("No such drain type.");
            }
        }
Пример #3
0
        ////

        public static void DrainStamina(Player player, StaminaDrainTypes type)
        {
            var myplayer = player.GetModPlayer <StaminaPlayer>();

            myplayer.Logic.DrainStamina(player, type);
        }