This commit is contained in:
Enric Gabriel
2020-08-02 17:41:21 -03:00
18 changed files with 203 additions and 140 deletions
@@ -227,7 +227,7 @@
/area/ruin/unpowered/xenonest)
"ba" = (
/obj/structure/stone_tile/slab,
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bb" = (
/obj/structure/stone_tile/cracked{
@@ -241,7 +241,7 @@
dir = 8
},
/obj/item/flashlight/lantern,
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bc" = (
/obj/structure/stone_tile/block,
@@ -251,7 +251,7 @@
/obj/structure/stone_tile{
dir = 4
},
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bd" = (
/obj/structure/stone_tile/block,
@@ -262,7 +262,7 @@
dir = 1
},
/obj/effect/decal/cleanable/blood/xeno,
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"be" = (
/obj/structure/stone_tile/block,
@@ -272,7 +272,7 @@
/obj/structure/stone_tile{
dir = 1
},
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bf" = (
/obj/structure/stone_tile,
@@ -286,7 +286,7 @@
dir = 4
},
/obj/item/flashlight/lantern,
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bg" = (
/obj/structure/alien/weeds,
@@ -303,7 +303,7 @@
/obj/structure/stone_tile{
dir = 8
},
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bi" = (
/obj/structure/alien/weeds,
@@ -336,11 +336,11 @@
dir = 1
},
/obj/structure/stone_tile,
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bm" = (
/obj/structure/stone_tile/slab/cracked,
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bn" = (
/obj/structure/stone_tile/block{
@@ -352,7 +352,7 @@
/obj/structure/stone_tile{
dir = 4
},
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bo" = (
/obj/structure/stone_tile/surrounding_tile{
@@ -383,7 +383,7 @@
dir = 1
},
/obj/effect/decal/cleanable/blood/xeno,
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bs" = (
/obj/structure/stone_tile/block{
@@ -416,7 +416,7 @@
dir = 1
},
/obj/structure/stone_tile/cracked,
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bw" = (
/obj/structure/stone_tile/cracked{
@@ -430,7 +430,7 @@
dir = 8
},
/obj/item/flashlight/lantern,
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bx" = (
/obj/structure/stone_tile/block{
@@ -441,7 +441,7 @@
dir = 8
},
/obj/effect/decal/cleanable/blood/xeno,
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"by" = (
/obj/structure/stone_tile/block{
@@ -451,7 +451,7 @@
/obj/structure/stone_tile/cracked{
dir = 8
},
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bz" = (
/obj/structure/stone_tile/block/cracked{
@@ -461,7 +461,7 @@
/obj/structure/stone_tile{
dir = 8
},
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bA" = (
/obj/structure/stone_tile/cracked{
@@ -475,7 +475,7 @@
},
/obj/structure/stone_tile,
/obj/item/flashlight/lantern,
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/xenonest)
"bB" = (
/obj/structure/alien/weeds,
+32 -51
View File
@@ -5103,7 +5103,7 @@
/area/security/main)
"ajv" = (
/obj/machinery/computer/med_data{
dir = 3
dir = 4
},
/obj/structure/sign/poster/official/medical_green_cross{
pixel_x = -32
@@ -30889,7 +30889,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/turf/open/floor/plating,
/turf/open/floor/plating/airless,
/area/space/nearstation)
"bvH" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
@@ -53711,9 +53711,6 @@
},
/turf/open/floor/mineral/titanium/blue,
/area/crew_quarters/toilet)
"dVU" = (
/turf/open/floor/plating,
/area/space/nearstation)
"dXq" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
@@ -53770,7 +53767,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 6
},
/turf/open/floor/plating,
/turf/open/floor/plating/airless,
/area/space/nearstation)
"egt" = (
/obj/effect/turf_decal/tile/bar,
@@ -54417,7 +54414,7 @@
"fIs" = (
/obj/structure/grille,
/obj/structure/lattice,
/turf/open/floor/plating,
/turf/open/space/basic,
/area/space/nearstation)
"fJY" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -54575,19 +54572,6 @@
},
/turf/open/floor/carpet,
/area/crew_quarters/cryopod)
"ghq" = (
/obj/structure/lattice/catwalk,
/obj/item/stack/marker_beacon{
anchored = 1;
icon_state = "markerburgundy-on";
light_color = "#FA644B";
light_power = 3;
light_range = 3;
name = "Docking Beacon";
picked_color = "Burgundy"
},
/turf/open/floor/plating,
/area/space/nearstation)
"ghD" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
@@ -54744,7 +54728,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 9
},
/turf/open/floor/plating,
/turf/open/floor/plating/airless,
/area/space/nearstation)
"gJi" = (
/obj/structure/lattice/catwalk,
@@ -54980,7 +54964,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 10
},
/turf/open/floor/plating,
/turf/open/floor/plating/airless,
/area/space/nearstation)
"hxn" = (
/obj/effect/spawner/structure/window/reinforced,
@@ -57361,7 +57345,7 @@
/area/crew_quarters/theatre)
"oyN" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating,
/turf/open/floor/plating/airless,
/area/space/nearstation)
"oyX" = (
/obj/machinery/atmospherics/components/binary/pump/on{
@@ -58206,7 +58190,7 @@
dir = 5
},
/obj/machinery/camera{
c_tag = "Bar Backroom"
c_tag = "Gravity Generator - Fore"
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
@@ -58501,7 +58485,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/plating,
/turf/open/floor/plating/airless,
/area/space/nearstation)
"slk" = (
/obj/machinery/door/airlock/maintenance{
@@ -58758,9 +58742,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall/r_wall,
/area/engine/engine_smes)
"sQX" = (
/turf/open/floor/plating,
/area/space)
"sRH" = (
/obj/machinery/autolathe/secure{
name = "public autolathe"
@@ -58877,7 +58858,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 5
},
/turf/open/floor/plating,
/turf/open/floor/plating/airless,
/area/space/nearstation)
"trb" = (
/obj/machinery/light{
@@ -59100,7 +59081,7 @@
/area/hallway/primary/central)
"uaw" = (
/obj/machinery/power/apc{
areastring = "/area/storage/art";
areastring = "/area/maintenance/bar";
dir = 1;
name = "Maint bar";
pixel_y = 24
@@ -59513,7 +59494,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/turf/open/floor/plating,
/turf/open/floor/plating/airless,
/area/space/nearstation)
"vbi" = (
/obj/structure/table,
@@ -60613,7 +60594,7 @@
name = "Docking Beacon";
picked_color = "Burgundy"
},
/turf/open/space/basic,
/turf/open/floor/plating/airless,
/area/space/nearstation)
"xOx" = (
/obj/structure/chair/comfy/brown{
@@ -66846,11 +66827,11 @@ aaa
aaa
aaa
aaa
ghq
xLX
aaa
aaa
aaa
ghq
xLX
aaa
aaa
aaa
@@ -67097,9 +67078,9 @@ aaa
aaa
aaa
aaa
ghq
xLX
aaa
ghq
xLX
aaa
aaa
aaa
@@ -67111,9 +67092,9 @@ gXs
aaa
aaa
aaa
ghq
xLX
aaa
ghq
xLX
aaa
aaa
aaa
@@ -76662,7 +76643,7 @@ aaa
aaa
aaa
aaa
aag
aaa
aaa
aaa
aaa
@@ -76919,7 +76900,7 @@ aaa
aaa
aaa
aaa
aag
aaa
aaa
aaa
aaa
@@ -77176,7 +77157,7 @@ aaa
aaa
aaa
aaa
aag
aaa
aaa
aaa
aaa
@@ -77433,7 +77414,7 @@ aaa
aaa
aaa
aaa
aag
aaa
aaa
aaa
aaa
@@ -77690,7 +77671,7 @@ aaa
aaa
aaa
aaa
aag
aaa
aaa
aaa
aaa
@@ -77947,7 +77928,7 @@ aaa
aaa
aaa
aaa
aag
aaa
aaa
aaa
aaa
@@ -78204,7 +78185,7 @@ aaa
aaa
aaa
aaa
aag
aaa
aaa
aoV
bZm
@@ -78461,13 +78442,13 @@ aaa
aaa
aaa
aaa
aag
aaa
aaa
aoV
bVz
aaf
aaf
sQX
aoV
aaa
aaS
aaf
@@ -78718,7 +78699,7 @@ aaa
aaa
aaa
aaa
aag
aaa
aaa
aag
bVz
@@ -78975,7 +78956,7 @@ aaa
aaa
aaa
aaa
aag
gJi
aaa
aaf
bVz
@@ -79232,7 +79213,7 @@ aaa
aaa
aaa
aaa
aag
gJi
aaa
aaf
bVz
@@ -84282,7 +84263,7 @@ aaa
aaa
gXs
gXs
dVU
aaH
abc
abu
abu
+4 -3
View File
@@ -154,9 +154,10 @@
#define SHOVE_KNOCKDOWN_HUMAN 30
#define SHOVE_KNOCKDOWN_TABLE 30
#define SHOVE_KNOCKDOWN_COLLATERAL 10
//for the shove slowdown, see __DEFINES/movespeed_modification.dm
#define SHOVE_SLOWDOWN_LENGTH 30
#define SHOVE_SLOWDOWN_STRENGTH 0.85 //multiplier
/// how long they're staggered for
#define SHOVE_STAGGER_DURATION 35
/// how long they're off balance for
#define SHOVE_OFFBALANCE_DURATION 30
//Shove disarming item list
GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
/obj/item/gun)))
-1
View File
@@ -63,7 +63,6 @@
#define MOVESPEED_ID_TASED_STATUS "TASED"
#define MOVESPEED_ID_ELECTROSTAFF "ELECTROSTAFF"
#define MOVESPEED_ID_SHOVE "SHOVE"
#define MOVESPEED_ID_FAT "FAT"
#define MOVESPEED_ID_COLD "COLD"
#define MOVESPEED_ID_HUNGRY "HUNGRY"
+3
View File
@@ -111,6 +111,9 @@
#define STATUS_EFFECT_LIMP /datum/status_effect/limp //For when you have a busted leg (or two!) and want additional slowdown when walking on that leg
/// shoves inflict this to indicate the next shove while this is in effect should disarm guns
#define STATUS_EFFECT_OFF_BALANCE /datum/status_effect/off_balance
/////////////
// NEUTRAL //
/////////////
+91
View File
@@ -0,0 +1,91 @@
/**
* KILLER QUEEN
*
* Simple contact bomb component
* Blows up the first person to touch it.
*/
/datum/component/killerqueen
can_transfer = TRUE
/// strength of explosion on the touch-er. 0 to disable. usually only used if the normal explosion is disabled (this is the default).
var/ex_strength = EXPLODE_HEAVY
/// callback to invoke with (parent, victim) before standard detonation - useful for losing a reference to this component or implementing custom behavior. return FALSE to prevent explosion.
var/datum/callback/pre_explode
/// callback to invoke with (parent) when deleting without an explosion
var/datum/callback/failure
/// did we explode
var/exploded = FALSE
/// examine message
var/examine_message
/// light explosion radius
var/light = 0
/// heavy explosion radius
var/heavy = 0
/// dev explosion radius
var/dev = 0
/// flame explosion radius
var/flame = 0
/// only triggered by living mobs
var/living_only = TRUE
/datum/component/killerqueen/Initialize(ex_strength = EXPLODE_HEAVY, datum/callback/pre_explode, datum/callback/failure, examine_message, light = 0, heavy = 0, dev = 0, flame = 0, living_only = TRUE)
. = ..()
if(. & COMPONENT_INCOMPATIBLE)
return
if(!isatom(parent))
return COMPONENT_INCOMPATIBLE
src.ex_strength = ex_strength
src.pre_explode = pre_explode
src.failure = failure
src.examine_message = examine_message
src.light = light
src.heavy = heavy
src.dev = dev
src.flame = flame
src.living_only = living_only
/datum/component/killerqueen/Destroy()
if(!exploded)
failure?.Invoke(parent)
return ..()
/datum/component/killerqueen/RegisterWithParent()
. = ..()
RegisterSignal(parent, list(COMSIG_ATOM_ATTACK_HAND, COMSIG_ATOM_ATTACK_PAW, COMSIG_ATOM_ATTACK_ANIMAL), .proc/touch_detonate)
RegisterSignal(parent, COMSIG_MOVABLE_BUMP, .proc/bump_detonate)
RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/attackby_detonate)
RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_examine)
/datum/component/killerqueen/UnregisterFromParent()
. = ..()
UnregisterSignal(parent, list(COMSIG_ATOM_ATTACK_ANIMAL, COMSIG_ATOM_ATTACK_HAND, COMSIG_ATOM_ATTACK_PAW,
COMSIG_MOVABLE_BUMP, COMSIG_PARENT_ATTACKBY, COMSIG_PARENT_EXAMINE))
/datum/component/killerqueen/proc/attackby_detonate(datum/source, obj/item/I, mob/user)
detonate(user)
/datum/component/killerqueen/proc/bump_detonate(datum/source, atom/A)
detonate(A)
/datum/component/killerqueen/proc/touch_detonate(datum/source, mob/user)
detonate(user)
/datum/component/killerqueen/proc/on_examine(datum/source, mob/examiner, list/examine_return)
if(examine_message)
examine_return += examine_message
/datum/component/killerqueen/proc/detonate(atom/victim)
if(!isliving(victim) && living_only)
return
if(pre_explode && !pre_explode.Invoke(parent, victim))
return
if(ex_strength)
victim.ex_act(ex_strength)
if(light || heavy || dev || flame)
explosion(parent, dev, heavy, light, flame_range = flame)
else
var/turf/T = get_turf(parent)
playsound(T, 'sound/effects/explosion2.ogg', 200, 1)
new /obj/effect/temp_visual/explosion(T)
exploded = TRUE
qdel(src)
+15
View File
@@ -97,6 +97,21 @@
duration = set_duration
return ..()
/datum/status_effect/off_balance
id = "offbalance"
alert_type = null
/datum/status_effect/off_balance/on_creation(mob/living/new_owner, set_duration)
if(isnum(set_duration))
duration = set_duration
return ..()
/datum/status_effect/off_balance/on_remove()
var/active_item = owner.get_active_held_item()
if(is_type_in_typecache(active_item, GLOB.shove_disarming_types))
owner.visible_message("<span class='warning'>[owner.name] regains their grip on \the [active_item]!</span>", "<span class='warning'>You regain your grip on \the [active_item]</span>", null, COMBAT_MESSAGE_RANGE)
return ..()
/obj/screen/alert/status_effect/asleep
name = "Asleep"
desc = "You've fallen asleep. Wait a bit and you should wake up. Unless you don't, considering how helpless you are."
+2 -4
View File
@@ -257,10 +257,8 @@
if(14 to 25) // 1.3ish% chance to stumble and be a bit off balance (like being disarmed)
to_chat(our_guy, "<span class='danger'>You stumble a bit on your untied shoelaces!</span>")
if(!our_guy.has_movespeed_modifier(/datum/movespeed_modifier/shove))
our_guy.add_movespeed_modifier(/datum/movespeed_modifier/shove)
addtimer(CALLBACK(our_guy, /mob/living/carbon/human/proc/clear_shove_slowdown), SHOVE_SLOWDOWN_LENGTH)
our_guy.ShoveOffBalance(SHOVE_OFFBALANCE_DURATION)
our_guy.Stagger(SHOVE_OFFBALANCE_DURATION) //yes, same.
if(26 to 1000)
wiser = FALSE
if(wiser)
@@ -1041,12 +1041,6 @@
return TRUE
return FALSE
/mob/living/carbon/human/proc/clear_shove_slowdown()
remove_movespeed_modifier(/datum/movespeed_modifier/shove)
var/active_item = get_active_held_item()
if(is_type_in_typecache(active_item, GLOB.shove_disarming_types))
visible_message("<span class='warning'>[src.name] regains their grip on \the [active_item]!</span>", "<span class='warning'>You regain your grip on \the [active_item]</span>", null, COMBAT_MESSAGE_RANGE)
/mob/living/carbon/human/updatehealth()
. = ..()
@@ -1944,11 +1944,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
target.visible_message("<span class='danger'>[user.name] shoves [target.name]!</span>",
"<span class='danger'>[user.name] shoves you!</span>", null, COMBAT_MESSAGE_RANGE, null,
user, "<span class='danger'>You shove [target.name]!</span>")
target.Stagger(SHOVE_STAGGER_DURATION)
var/obj/item/target_held_item = target.get_active_held_item()
if(!is_type_in_typecache(target_held_item, GLOB.shove_disarming_types))
target_held_item = null
if(!target.has_movespeed_modifier(/datum/movespeed_modifier/shove))
target.add_movespeed_modifier(/datum/movespeed_modifier/shove)
if(!target.has_status_effect(STATUS_EFFECT_OFF_BALANCE))
if(target_held_item)
if(!HAS_TRAIT(target_held_item, TRAIT_NODROP))
target.visible_message("<span class='danger'>[target.name]'s grip on \the [target_held_item] loosens!</span>",
@@ -1956,12 +1956,12 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
append_message += ", loosening their grip on [target_held_item]"
else
append_message += ", but couldn't loose their grip on [target_held_item]"
addtimer(CALLBACK(target, /mob/living/carbon/human/proc/clear_shove_slowdown), SHOVE_SLOWDOWN_LENGTH)
else if(target_held_item)
if(target.dropItemToGround(target_held_item))
target.visible_message("<span class='danger'>[target.name] drops \the [target_held_item]!!</span>",
"<span class='danger'>You drop \the [target_held_item]!!</span>", null, COMBAT_MESSAGE_RANGE)
append_message += ", causing them to drop [target_held_item]"
target.ShoveOffBalance(SHOVE_OFFBALANCE_DURATION)
log_combat(user, target, "shoved", append_message)
/datum/species/proc/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked, mob/living/carbon/human/H, forced = FALSE, spread_damage = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = FALSE)
@@ -36,60 +36,21 @@
return
if(isobj(A) && Adjacent(A))
if(bomb_cooldown <= world.time && !stat)
var/obj/guardian_bomb/B = new /obj/guardian_bomb(get_turf(A))
var/datum/component/killerqueen/K = A.AddComponent(/datum/component/killerqueen, EXPLODE_HEAVY, CALLBACK(src, .proc/on_explode), CALLBACK(src, .proc/on_failure), \
examine_message = "<span class='holoparasite'>It glows with a strange <font color=\"[guardiancolor]\">light</font>!</span>")
QDEL_IN(K, 1 MINUTES)
to_chat(src, "<span class='danger'><B>Success! Bomb armed!</span></B>")
bomb_cooldown = world.time + 200
B.spawner = src
B.disguise(A)
else
to_chat(src, "<span class='danger'><B>Your powers are on cooldown! You must wait 20 seconds between bombs.</span></B>")
/obj/guardian_bomb
name = "bomb"
desc = "You shouldn't be seeing this!"
var/obj/stored_obj
var/mob/living/simple_animal/hostile/guardian/spawner
/mob/living/simple_animal/hostile/guardian/bomb/proc/on_explode(atom/bomb, atom/victim)
if((victim == src) || (victim == summoner) || (hasmatchingsummoner(victim)))
to_chat(victim, "<span class='holoparasite'>[src] glows with a strange <font color=\"[guardiancolor]\">light</font>, and you don't touch it.</span>")
return FALSE
to_chat(src, "<span class='danger'>One of your explosive traps caught [victim]!</span>")
to_chat(victim, "<span class='danger'>[bomb] was boobytrapped!</span>")
return TRUE
/obj/guardian_bomb/proc/disguise(obj/A)
A.forceMove(src)
stored_obj = A
opacity = A.opacity
anchored = A.anchored
density = A.density
appearance = A.appearance
addtimer(CALLBACK(src, .proc/disable), 600)
/obj/guardian_bomb/proc/disable()
stored_obj.forceMove(get_turf(src))
to_chat(spawner, "<span class='danger'><B>Failure! Your trap didn't catch anyone this time.</span></B>")
qdel(src)
/obj/guardian_bomb/proc/detonate(mob/living/user)
if(isliving(user))
if(user != spawner && user != spawner.summoner && !spawner.hasmatchingsummoner(user))
to_chat(user, "<span class='danger'><B>[src] was boobytrapped!</span></B>")
to_chat(spawner, "<span class='danger'><B>Success! Your trap caught [user]</span></B>")
var/turf/T = get_turf(src)
stored_obj.forceMove(T)
playsound(T,'sound/effects/explosion2.ogg', 200, 1)
new /obj/effect/temp_visual/explosion(T)
user.ex_act(EXPLODE_HEAVY)
qdel(src)
else
to_chat(user, "<span class='holoparasite'>[src] glows with a strange <font color=\"[spawner.guardiancolor]\">light</font>, and you don't touch it.</span>")
/obj/guardian_bomb/Bump(atom/A)
detonate(A)
..()
/obj/guardian_bomb/attackby(mob/living/user)
detonate(user)
/obj/guardian_bomb/on_attack_hand(mob/living/user, act_intent = user.a_intent, unarmed_attack_flags)
detonate(user)
/obj/guardian_bomb/examine(mob/user)
. = stored_obj.examine(user)
if(get_dist(user,src)<=2)
. += "<span class='holoparasite'>It glows with a strange <font color=\"[spawner.guardiancolor]\">light</font>!</span>"
/mob/living/simple_animal/hostile/guardian/bomb/proc/on_failure(atom/bomb)
to_chat(src, "<span class='danger'><b>Failure! Your trap didn't catch anyone this time.</span></B>")
+9
View File
@@ -500,6 +500,15 @@
S = apply_status_effect(STATUS_EFFECT_SLEEPING, amount, updating)
return S
///////////////////////////////// OFF BALANCE/SHOVIES ////////////////////////
/mob/living/proc/ShoveOffBalance(amount)
var/datum/status_effect/off_balance/B = has_status_effect(STATUS_EFFECT_OFF_BALANCE)
if(B)
B.duration = max(world.time + amount, B.duration)
else if(amount > 0)
B = apply_status_effect(STATUS_EFFECT_OFF_BALANCE, amount)
return B
///////////////////////////////// FROZEN /////////////////////////////////////
/mob/living/proc/IsFrozen()
-3
View File
@@ -78,9 +78,6 @@
blacklisted_movetypes = FLOATING
variable = TRUE
/datum/movespeed_modifier/shove
multiplicative_slowdown = SHOVE_SLOWDOWN_STRENGTH
/datum/movespeed_modifier/human_carry
variable = TRUE
-1
View File
@@ -375,7 +375,6 @@
log_combat(user, target, "shoved", "into [src] (disposal bin)")
return TRUE
/obj/machinery/disposal/bin/flush()
..()
full_pressure = FALSE
@@ -0,0 +1,5 @@
author: "silicons"
delete-after: True
changes:
- rscadd: "shoves have been buffed to apply a status effect rather than a 0.85 movespeed modifier, meaning repeatedly shoving someone now renews the debuff"
- balance: "shoves now stagger for 3.5 seconds."
@@ -0,0 +1,5 @@
author: "silicons"
delete-after: True
changes:
- balance: "explosive stand bombs can now be examined from any distance"
- code_imp: "explosive stand bombs are now a component."
@@ -0,0 +1,4 @@
author: "dapnee"
delete-after: True
changes:
- bugfix: "active turfs on box and xenohive, maintenance bar APC not being stringed correctly, turned a monitor to face a direction that makes sense, changed tag of camera in gravgen being misnamed"
+1
View File
@@ -433,6 +433,7 @@
#include "code\datums\components\igniter.dm"
#include "code\datums\components\infective.dm"
#include "code\datums\components\jousting.dm"
#include "code\datums\components\killerqueen.dm"
#include "code\datums\components\knockback.dm"
#include "code\datums\components\knockoff.dm"
#include "code\datums\components\lifesteal.dm"