mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-11 18:22:14 +00:00
Couple of fixes for situations involving mechas and the clock cult gamemode (#37218)
* couple of mech fixes * safety * gateway, gravity gen * Restores oingo-boingo punch-nuke
This commit is contained in:
committed by
AnturK
parent
8fa8436f54
commit
0e2ee4f5b6
@@ -383,7 +383,7 @@
|
|||||||
|
|
||||||
if(throwing)
|
if(throwing)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
if(!isturf(loc))
|
if(!isturf(loc))
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
@@ -415,6 +415,9 @@
|
|||||||
step(src, AM.dir)
|
step(src, AM.dir)
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
/atom/movable/proc/safe_throw_at(atom/target, range, speed, mob/thrower, spin=TRUE, diagonals_first = FALSE, var/datum/callback/callback)
|
||||||
|
return throw_at(target, range, speed, thrower, spin, diagonals_first, callback)
|
||||||
|
|
||||||
/atom/movable/proc/throw_at(atom/target, range, speed, mob/thrower, spin=TRUE, diagonals_first = FALSE, var/datum/callback/callback) //If this returns FALSE then callback will not be called.
|
/atom/movable/proc/throw_at(atom/target, range, speed, mob/thrower, spin=TRUE, diagonals_first = FALSE, var/datum/callback/callback) //If this returns FALSE then callback will not be called.
|
||||||
. = FALSE
|
. = FALSE
|
||||||
if (!target || (flags_1 & NODROP_1) || speed <= 0)
|
if (!target || (flags_1 & NODROP_1) || speed <= 0)
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
playsound(chassis, fire_sound, 50, 1)
|
playsound(chassis, fire_sound, 50, 1)
|
||||||
|
|
||||||
sleep(max(0, projectile_delay))
|
sleep(max(0, projectile_delay))
|
||||||
|
|
||||||
if(kickback)
|
if(kickback)
|
||||||
chassis.newtonian_move(turn(chassis.dir,180))
|
chassis.newtonian_move(turn(chassis.dir,180))
|
||||||
chassis.log_message("Fired from [src.name], targeting [target].")
|
chassis.log_message("Fired from [src.name], targeting [target].")
|
||||||
@@ -428,6 +428,5 @@
|
|||||||
if(!..())
|
if(!..())
|
||||||
if(ismovableatom(hit_atom))
|
if(ismovableatom(hit_atom))
|
||||||
var/atom/movable/AM = hit_atom
|
var/atom/movable/AM = hit_atom
|
||||||
AM.throw_at(get_edge_target_turf(AM,get_dir(src, AM)), 7, 2)
|
AM.safe_throw_at(get_edge_target_turf(AM,get_dir(src, AM)), 7, 2)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
|
|||||||
@@ -54,8 +54,14 @@
|
|||||||
|
|
||||||
/obj/effect/clockwork/city_of_cogs_rift/proc/beckon(atom/movable/AM)
|
/obj/effect/clockwork/city_of_cogs_rift/proc/beckon(atom/movable/AM)
|
||||||
var/turf/T = get_turf(pick(GLOB.city_of_cogs_spawns))
|
var/turf/T = get_turf(pick(GLOB.city_of_cogs_spawns))
|
||||||
if(is_servant_of_ratvar(AM))
|
if(ismob(AM) && is_servant_of_ratvar(AM))
|
||||||
T = GLOB.ark_of_the_clockwork_justiciar ? get_step(GLOB.ark_of_the_clockwork_justiciar, SOUTH) : get_turf(pick(GLOB.servant_spawns))
|
T = GLOB.ark_of_the_clockwork_justiciar ? get_step(GLOB.ark_of_the_clockwork_justiciar, SOUTH) : get_turf(pick(GLOB.servant_spawns))
|
||||||
|
else // Handle mechas and such
|
||||||
|
var/list/target_contents = AM.GetAllContents() + AM
|
||||||
|
for(var/mob/living/L in target_contents)
|
||||||
|
if(is_servant_of_ratvar(L) && L.stat != DEAD) // Having a living cultist in your inventory sends you to the cultist spawn
|
||||||
|
T = GLOB.ark_of_the_clockwork_justiciar ? get_step(GLOB.ark_of_the_clockwork_justiciar, SOUTH) : get_turf(pick(GLOB.servant_spawns))
|
||||||
|
break
|
||||||
AM.visible_message("<span class='danger'>[AM] passes through [src]!</span>", null, null, null, AM)
|
AM.visible_message("<span class='danger'>[AM] passes through [src]!</span>", null, null, null, AM)
|
||||||
AM.forceMove(T)
|
AM.forceMove(T)
|
||||||
AM.visible_message("<span class='danger'>[AM] materializes from the air!</span>", \
|
AM.visible_message("<span class='danger'>[AM] materializes from the air!</span>", \
|
||||||
|
|||||||
@@ -42,3 +42,6 @@
|
|||||||
|
|
||||||
/obj/effect/clockwork/servant_blocker/ex_act(severity, target)
|
/obj/effect/clockwork/servant_blocker/ex_act(severity, target)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
/obj/effect/clockwork/servant_blocker/safe_throw_at()
|
||||||
|
return
|
||||||
|
|||||||
@@ -74,6 +74,9 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
|
|||||||
/obj/machinery/gateway/proc/toggleon(mob/user)
|
/obj/machinery/gateway/proc/toggleon(mob/user)
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
|
/obj/machinery/gateway/safe_throw_at()
|
||||||
|
return
|
||||||
|
|
||||||
/obj/machinery/gateway/centerstation/Initialize()
|
/obj/machinery/gateway/centerstation/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
if(!GLOB.the_gateway)
|
if(!GLOB.the_gateway)
|
||||||
@@ -250,4 +253,4 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
|
|||||||
|
|
||||||
/obj/item/paper/fluff/gateway
|
/obj/item/paper/fluff/gateway
|
||||||
info = "Congratulations,<br><br>Your station has been selected to carry out the Gateway Project.<br><br>The equipment will be shipped to you at the start of the next quarter.<br> You are to prepare a secure location to house the equipment as outlined in the attached documents.<br><br>--Nanotrasen Blue Space Research"
|
info = "Congratulations,<br><br>Your station has been selected to carry out the Gateway Project.<br><br>The equipment will be shipped to you at the start of the next quarter.<br> You are to prepare a secure location to house the equipment as outlined in the attached documents.<br><br>--Nanotrasen Blue Space Research"
|
||||||
name = "Confidential Correspondence, Pg 1"
|
name = "Confidential Correspondence, Pg 1"
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
|
|||||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||||
var/sprite_number = 0
|
var/sprite_number = 0
|
||||||
|
|
||||||
/obj/machinery/gravity_generator/throw_at()
|
/obj/machinery/gravity_generator/safe_throw_at()
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/obj/machinery/gravity_generator/ex_act(severity, target)
|
/obj/machinery/gravity_generator/ex_act(severity, target)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/obj/item/projectile/bullet/shotgun_slug
|
/obj/item/projectile/bullet/shotgun_slug
|
||||||
name = "12g shotgun slug"
|
name = "12g shotgun slug"
|
||||||
damage = 60
|
damage = 60
|
||||||
|
|
||||||
/obj/item/projectile/bullet/shotgun_slug/tengauge
|
/obj/item/projectile/bullet/shotgun_slug/tengauge
|
||||||
name = "10g shotgun slug"
|
name = "10g shotgun slug"
|
||||||
damage = 72.5
|
damage = 72.5
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
if(ismovableatom(target))
|
if(ismovableatom(target))
|
||||||
var/atom/movable/M = target
|
var/atom/movable/M = target
|
||||||
var/atom/throw_target = get_edge_target_turf(M, get_dir(src, get_step_away(M, src)))
|
var/atom/throw_target = get_edge_target_turf(M, get_dir(src, get_step_away(M, src)))
|
||||||
M.throw_at(throw_target, 3, 2)
|
M.safe_throw_at(throw_target, 3, 2)
|
||||||
|
|
||||||
/obj/item/projectile/bullet/shotgun_meteorslug/Initialize()
|
/obj/item/projectile/bullet/shotgun_meteorslug/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|||||||
Reference in New Issue
Block a user