mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 09:54:52 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
4
code/__DEFINES/dcs/signals/signals_movable.dm
Normal file
4
code/__DEFINES/dcs/signals/signals_movable.dm
Normal file
@@ -0,0 +1,4 @@
|
||||
///from base of atom/experience_pressure_difference(): (pressure_difference, direction, pressure_resistance_prob_delta)
|
||||
#define COMSIG_MOVABLE_PRE_PRESSURE_PUSH "atom_pre_pressure_push"
|
||||
///prevents pressure movement
|
||||
#define COMSIG_MOVABLE_BLOCKS_PRESSURE (1<<0)
|
||||
@@ -237,34 +237,45 @@
|
||||
SSair.high_pressure_delta[src] = TRUE
|
||||
|
||||
/turf/open/proc/high_pressure_movements()
|
||||
var/diff = pressure_difference
|
||||
var/atom/movable/M
|
||||
var/multiplier = 1
|
||||
if(locate(/obj/structure/rack) in src)
|
||||
diff *= 0.1
|
||||
multiplier *= 0.1
|
||||
else if(locate(/obj/structure/table) in src)
|
||||
diff *= 0.2
|
||||
for(var/obj/M in src)
|
||||
if(!M.anchored && !M.pulledby && M.last_high_pressure_movement_air_cycle < SSair.times_fired)
|
||||
M.experience_pressure_difference(diff, pressure_direction, 0, pressure_specific_target)
|
||||
for(var/mob/M in src)
|
||||
if(!M.anchored && !M.pulledby && M.last_high_pressure_movement_air_cycle < SSair.times_fired)
|
||||
M.experience_pressure_difference(diff, pressure_direction, 0, pressure_specific_target)
|
||||
/*
|
||||
multiplier *= 0.2
|
||||
for(var/thing in src)
|
||||
M = thing
|
||||
if (!M.anchored && !M.pulledby && M.last_high_pressure_movement_air_cycle < SSair.times_fired)
|
||||
M.experience_pressure_difference(pressure_difference * multiplier, pressure_direction, 0, pressure_specific_target)
|
||||
|
||||
if(pressure_difference > 100)
|
||||
new /obj/effect/temp_visual/dir_setting/space_wind(src, pressure_direction, clamp(round(sqrt(pressure_difference) * 2), 10, 255))
|
||||
*/
|
||||
|
||||
|
||||
/atom/movable/var/pressure_resistance = 10
|
||||
/atom/movable/var/last_high_pressure_movement_air_cycle = 0
|
||||
|
||||
/atom/movable/proc/experience_pressure_difference(pressure_difference, direction, pressure_resistance_prob_delta = 0, throw_target)
|
||||
var/const/PROBABILITY_OFFSET = 25
|
||||
var/const/PROBABILITY_BASE_PRECENT = 75
|
||||
set waitfor = FALSE
|
||||
if(SEND_SIGNAL(src, COMSIG_MOVABLE_PRE_PRESSURE_PUSH) & COMSIG_MOVABLE_BLOCKS_PRESSURE)
|
||||
return
|
||||
|
||||
var/const/PROBABILITY_OFFSET = 40
|
||||
var/const/PROBABILITY_BASE_PRECENT = 10
|
||||
var/max_force = sqrt(pressure_difference)*(MOVE_FORCE_DEFAULT / 5)
|
||||
set waitfor = 0
|
||||
var/move_prob = 100
|
||||
if (pressure_resistance > 0)
|
||||
if(pressure_resistance > 0)
|
||||
move_prob = (pressure_difference/pressure_resistance*PROBABILITY_BASE_PRECENT)-PROBABILITY_OFFSET
|
||||
move_prob += pressure_resistance_prob_delta
|
||||
if (move_prob > PROBABILITY_OFFSET && prob(move_prob) && (move_resist != INFINITY) && (!anchored && (max_force >= (move_resist * MOVE_FORCE_PUSH_RATIO))) || (anchored && (max_force >= (move_resist * MOVE_FORCE_FORCEPUSH_RATIO))))
|
||||
step(src, direction)
|
||||
|
||||
if(move_prob > PROBABILITY_OFFSET && prob(move_prob) && (move_resist != INFINITY) && (!anchored && (max_force >= (move_resist * MOVE_FORCE_PUSH_RATIO))) || (anchored && (max_force >= (move_resist * MOVE_FORCE_FORCEPUSH_RATIO))))
|
||||
var/move_force = max_force * clamp(move_prob, 0, 100) / 100
|
||||
if(move_force > 6000)
|
||||
// WALLSLAM HELL TIME OH BOY
|
||||
var/turf/throw_turf = get_ranged_target_turf(get_turf(src), direction, round(move_force / 2000))
|
||||
if(throw_target && (get_dir(src, throw_target) & direction))
|
||||
throw_turf = get_turf(throw_target)
|
||||
var/throw_speed = clamp(round(move_force / 3000), 1, 10)
|
||||
throw_at(throw_turf, move_force / 3000, throw_speed)
|
||||
else
|
||||
step(src, direction)
|
||||
last_high_pressure_movement_air_cycle = SSair.times_fired
|
||||
|
||||
5
html/changelogs/AutoChangeLog-pr-288.yml
Normal file
5
html/changelogs/AutoChangeLog-pr-288.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
author: LeDrascol
|
||||
delete-after: true
|
||||
changes:
|
||||
- tweak: Bluespace mining research is now behind Anomaly Research
|
||||
- balance: Bluespace miners now require a bluespace anomaly core
|
||||
@@ -90,3 +90,12 @@
|
||||
- spellcheck: You
|
||||
BongaTheProto:
|
||||
- code_imp: optimizes some genital related code
|
||||
2023-01-18:
|
||||
LeDrascol:
|
||||
- tweak: Moved Autodoc techweb entry from Advanced Surgery to Advanced Surgery Tools
|
||||
SandPoot:
|
||||
- balance: Maybe very small amounts of air aren't as aggressive with pushing stuff
|
||||
around.
|
||||
- balance: Way too much air can send you FLYING, maybe think twice about opening
|
||||
that airlock/firelock now.
|
||||
- imageadd: Added space wind image for air pushing stuff.
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 22 KiB |
@@ -40,7 +40,7 @@
|
||||
/obj/item/stock_parts/micro_laser = 5,
|
||||
/obj/item/stock_parts/manipulator = 5,
|
||||
/obj/item/stock_parts/scanning_module = 5,
|
||||
/obj/item/stack/ore/bluespace_crystal = 5)
|
||||
ANOMALY_CORE_BLUESPACE = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
/obj/item/circuitboard/machine/telecomms/message_server
|
||||
|
||||
@@ -33,8 +33,8 @@
|
||||
/datum/techweb_node/bs_mining
|
||||
id = "bluespace_mining"
|
||||
display_name = "Bluespace Mining Technology"
|
||||
description = "Harness the power of bluespace to make materials out of nothing. Slowly."
|
||||
prereq_ids = list("practical_bluespace", "adv_mining")
|
||||
description = "Harness the power of bluespace to make materials out of nothing, slowly. Requires a bluespace core to function."
|
||||
prereq_ids = list("practical_bluespace", "adv_mining", "anomaly_research")
|
||||
design_ids = list("bluespace_miner")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500)
|
||||
|
||||
|
||||
@@ -156,6 +156,7 @@
|
||||
#include "code\__DEFINES\dcs\flags.dm"
|
||||
#include "code\__DEFINES\dcs\helpers.dm"
|
||||
#include "code\__DEFINES\dcs\signals.dm"
|
||||
#include "code\__DEFINES\dcs\signals\signals_movable.dm"
|
||||
#include "code\__DEFINES\dcs\signals\signals_subsystem.dm"
|
||||
#include "code\__DEFINES\dcs\signals\signals_atom\signals_atom_movement.dm"
|
||||
#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_living.dm"
|
||||
|
||||
Reference in New Issue
Block a user