[Ready]Makes space wind great again! (#19494)

* Makes space wind great again!
Space wind is now a scaling percent to move on pressure differences.
Space wind percent to move scales with pressure amount, and other modifers:
Actively moving (as in holding down a move key) reduces chance of getting moved by space wind by 30%
Having a wall or densed anchored object to your left or right (in terms of direction to be moved) will lower your chance to be moved in space wind by 20% in each direction. (so a wall on both sides is 40%) (Only applies to mob's with limbs)

* does the mrp
This commit is contained in:
Kyle Spier-Swenson
2016-07-28 09:43:51 +02:00
committed by AnturK
parent 7a28788429
commit c9831c4afd
12 changed files with 53 additions and 13 deletions
+1 -1
View File
@@ -209,7 +209,7 @@
verb_exclaim = "roars"
verb_yell = "bellows"
force_threshold = 10
pressure_resistance = 40
pressure_resistance = 50
mob_size = MOB_SIZE_LARGE
see_invisible = SEE_INVISIBLE_MINIMUM
see_in_dark = 8
+1 -1
View File
@@ -98,7 +98,7 @@ Class Procs:
icon = 'icons/obj/stationobjs.dmi'
verb_say = "beeps"
verb_yell = "blares"
pressure_resistance = 10
pressure_resistance = 15
var/stat = 0
var/emagged = 0
var/use_power = 1
+1 -1
View File
@@ -25,7 +25,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s
var/w_class = 3
var/slot_flags = 0 //This is used to determine on which slots an item can fit.
pass_flags = PASSTABLE
pressure_resistance = 3
pressure_resistance = 4
var/obj/item/master = null
var/heat_protection = 0 //flags which determine which body parts are protected from heat. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm
+1 -1
View File
@@ -9,7 +9,7 @@
throw_range = 1
throw_speed = 1
layer = MOB_LAYER
pressure_resistance = 1
pressure_resistance = 2
/obj/item/documents/nanotrasen
desc = "\"Top Secret\" Nanotrasen documents, filled with complex diagrams and lists of names, dates and coordinates."
@@ -246,16 +246,22 @@
for(var/atom/movable/M in src)
M.experience_pressure_difference(pressure_difference, pressure_direction)
/atom/movable/var/pressure_resistance = 5
/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)
/atom/movable/proc/experience_pressure_difference(pressure_difference, direction, pressure_resistance_prob_delta = 0)
set waitfor = 0
. = 0
if(!anchored && !pulledby)
if (!anchored && !pulledby)
. = 1
if(pressure_difference > pressure_resistance && last_high_pressure_movement_air_cycle < SSair.times_fired)
last_high_pressure_movement_air_cycle = SSair.times_fired
step(src, direction)
if (last_high_pressure_movement_air_cycle < SSair.times_fired)
var/move_prob = 100
if (pressure_resistance > 0)
move_prob = pressure_difference/pressure_resistance*50
move_prob += pressure_resistance_prob_delta
if (prob(move_prob))
step(src, direction)
last_high_pressure_movement_air_cycle = SSair.times_fired
///////////////////////////EXCITED GROUPS/////////////////////////////
@@ -1,5 +1,6 @@
/mob/living/carbon
gender = MALE
pressure_resistance = 15
var/list/stomach_contents = list()
var/list/internal_organs = list() //List of /obj/item/organ in the mob. They don't go in the contents for some reason I don't want to know.
var/list/internal_organs_slot = list() //Same as above, but stores "slot ID" - "organ" pairs for easy access.
@@ -3,6 +3,7 @@ var/global/default_martial_art = new/datum/martial_art
languages_spoken = HUMAN
languages_understood = HUMAN
hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD,ANTAG_HUD)
pressure_resistance = 25
//Hair colour and style
var/hair_color = "000"
var/hair_style = "Bald"
+27
View File
@@ -645,6 +645,33 @@ Sorry Giacom. Please don't be mad :(
else
return pick("trails_1", "trails_2")
/mob/living/experience_pressure_difference(pressure_difference, direction, pressure_resistance_prob_delta = 0)
if (client && client.move_delay >= world.time + world.tick_lag*2)
pressure_resistance_prob_delta -= 30
var/list/turfs_to_check = list()
if (has_limbs)
var/turf/T = get_step(src, angle2dir(dir2angle(direction)+90))
if (T)
turfs_to_check += T
T = get_step(src, angle2dir(dir2angle(direction)-90))
if (T)
turfs_to_check += T
for (var/t in turfs_to_check)
T = t
if (T.density)
pressure_resistance_prob_delta -= 20
continue
for (var/atom/movable/AM in T)
if (AM.density && AM.anchored)
pressure_resistance_prob_delta -= 20
break
..(pressure_difference, direction, pressure_resistance_prob_delta)
/mob/living/verb/resist()
set name = "Resist"
set category = "IC"
@@ -5,6 +5,7 @@
sight = 0
see_in_dark = 2
hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD)
pressure_resistance = 10
//Health and life related vars
var/maxHealth = 100 //Maximum health that should be possible.
@@ -21,7 +21,7 @@
healable = 0
faction = list("cult")
flying = 1
pressure_resistance = 200
pressure_resistance = 100
unique_name = 1
AIStatus = AI_OFF //normal constructs don't have AI
loot = list(/obj/item/weapon/ectoplasm)
@@ -28,7 +28,7 @@
minbodytemp = 0
maxbodytemp = 1500
flying = 1
pressure_resistance = 200
pressure_resistance = 300
gold_core_spawnable = 0 //too spooky for science
var/ghost_hair_style
var/ghost_hair_color
+5 -1
View File
@@ -10,7 +10,7 @@
mouse_opacity = 0
hitsound = 'sound/weapons/pierce.ogg'
var/hitsound_wall = ""
pressure_resistance = INFINITY
burn_state = LAVA_PROOF
var/def_zone = "" //Aiming at
var/mob/firer = null//Who shot it
@@ -227,3 +227,7 @@
/obj/item/projectile/proc/dumbfire(var/dir)
current = get_ranged_target_turf(src, dir, world.maxx)
fire()
/obj/item/projectile/experience_pressure_difference()
return