Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local carry_limits = {
- -- modifer_power --> How much additional bags affect on this modifier (bigger - slower)
- -- min_val --> Minimal value of that modifier
- move_speed_modifier = { modifer_power = 0.35, min_val = 0.15 },
- jump_modifier = { modifer_power = 0.2, min_val = 0.35 },
- }
- if inGame == nil then
- -- INGAME CHECK
- inGame = function()
- if not game_state_machine then return false end
- return string.find(game_state_machine:current_state_name(), "game")
- end
- end
- function append_carry_limits(in_value, modifer_type)
- local out_value = in_value
- if managers.player.carry_stack ~= nil and #managers.player.carry_stack > 0 then
- for _,v in pairs(managers.player.carry_stack) do
- if type(v) == "table" then
- --ChatMessage(tostring(v.carry_id))
- if tweak_data.carry[v.carry_id] ~= nil then
- local carry_type = tweak_data.carry[v.carry_id].type
- if tweak_data.carry.types[carry_type] ~= nil then
- local add_mul = (1 - tweak_data.carry.types[carry_type][modifer_type]) * carry_limits[modifer_type].modifer_power
- if add_mul < 0 then add_mul = 0 end
- out_value = out_value - add_mul
- if out_value < 0 then out_value = carry_limits[modifer_type].min_val end
- if out_value > 1 then out_value = 1 end
- --ChatMessage(tostring(out_value))
- end
- end
- end
- end
- end
- return out_value
- end
- if not CarryStackerLimits then
- if inGame() and managers.player.carry_stack ~= nil then
- tweak_data.carry.types.light.move_speed_modifier = 0.9 -- 1.0 in orig game (Diamonds and jewelry)
- tweak_data.carry.types.coke_light.move_speed_modifier = 0.9 -- types.light
- -- Walk Speed
- function PlayerCarry:_get_max_walk_speed(...)
- local multiplier = tweak_data.carry.types[self._tweak_data_name].move_speed_modifier
- if managers.player:has_category_upgrade("carry", "movement_penalty_nullifier") then
- multiplier = 1
- else
- multiplier = append_carry_limits(multiplier, "move_speed_modifier") -- new
- multiplier = math.clamp(multiplier * managers.player:upgrade_value("carry", "movement_speed_multiplier", 1), 0, 1)
- end
- return PlayerCarry.super._get_max_walk_speed(self, ...) * multiplier
- end
- -- Bobbing effect
- function PlayerCarry:_get_walk_headbob(...)
- local multiplier = append_carry_limits(tweak_data.carry.types[self._tweak_data_name].move_speed_modifier, "move_speed_modifier") -- new
- return PlayerCarry.super._get_walk_headbob(self, ...) * multiplier
- end
- -- Jump power
- function PlayerCarry:_perform_jump(jump_vec)
- if managers.player:has_category_upgrade("carry", "movement_penalty_nullifier") then
- else
- local multiplier = append_carry_limits(tweak_data.carry.types[self._tweak_data_name].jump_modifier, "jump_modifier") -- new
- mvector3.multiply(jump_vec, multiplier)
- end
- PlayerCarry.super._perform_jump(self, jump_vec)
- end
- -- Can Run
- function PlayerCarry:_check_action_run(...) -- new
- local bCanRun = tweak_data.carry.types[self._tweak_data_name].can_run
- if bCanRun == true then
- if managers.player.carry_stack ~= nil and #managers.player.carry_stack > 0 then
- for _,v in pairs(managers.player.carry_stack) do
- if type(v) == "table" then
- if tweak_data.carry[v.carry_id] ~= nil then
- local carry_type = tweak_data.carry[v.carry_id].type
- if tweak_data.carry.types[carry_type] ~= nil then
- if tweak_data.carry.types[carry_type].can_run == false then
- bCanRun = false
- break
- end
- end
- end
- end
- end
- end
- end
- if bCanRun or managers.player:has_category_upgrade("carry", "movement_penalty_nullifier") then
- PlayerCarry.super._check_action_run(self, ...)
- end
- end
- CarryStackerLimits = true
- return
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement