mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 19:17:50 +01:00
Makes borgs take damage from being flung into objects (#23000)
* we are so back * Makes it compile * Vendors, walls, windows and consoles done * Blob and living mobs * Magpulses are now based on traits * Gives borgs the trait by action button * Fixes modsuits * Update code/game/objects/objs.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/game/turfs/turf.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/modules/mob/living/living.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Fixes Thunk * Actually fixes it * I took an L (away from the trait) * One proc now * Update code/modules/clothing/shoes/magboots.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Update code/modules/clothing/shoes/magboots.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> --------- Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
This commit is contained in:
co-authored by
Burzah
Henri215
parent
2c85645444
commit
962e78a363
@@ -129,7 +129,7 @@
|
||||
for(var/mob/living/M in range(0, src))
|
||||
gravShock(M)
|
||||
for(var/mob/living/M in orange(4, src))
|
||||
if(!M.mob_negates_gravity())
|
||||
if(!M.mob_negates_gravity() && !issilicon(M))
|
||||
step_towards(M,src)
|
||||
for(var/obj/O in range(0, src))
|
||||
if(!O.anchored && O.loc != src && O.move_resist < MOVE_FORCE_OVERPOWERING) // so it cannot throw the anomaly core or super big things
|
||||
|
||||
@@ -297,7 +297,7 @@
|
||||
// In the event that the object doesn't have an overriden version of this proc to do it, log a runtime so one can be added.
|
||||
CRASH("Proc force_eject_occupant() is not overridden on a machine containing a mob.")
|
||||
|
||||
/obj/hit_by_thrown_carbon(mob/living/carbon/human/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt)
|
||||
/obj/hit_by_thrown_mob(mob/living/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt)
|
||||
damage *= 0.75 //Define this probably somewhere, we want objects to hurt less than walls, unless special impact effects.
|
||||
playsound(src, 'sound/weapons/punch1.ogg', 35, 1)
|
||||
if(mob_hurt) //Density check probably not needed, one should only bump into something if it is dense, and blob tiles are not dense, because of course they are not.
|
||||
@@ -306,4 +306,7 @@
|
||||
C.take_organ_damage(damage)
|
||||
if(!self_hurt)
|
||||
take_damage(damage, BRUTE)
|
||||
C.KnockDown(3 SECONDS)
|
||||
if(issilicon(C))
|
||||
C.Weaken(3 SECONDS)
|
||||
else
|
||||
C.KnockDown(3 SECONDS)
|
||||
|
||||
@@ -456,14 +456,14 @@
|
||||
if(exposed_temperature > (T0C + heat_resistance))
|
||||
take_damage(round(exposed_volume / 100), BURN, 0, 0)
|
||||
|
||||
/obj/structure/window/hit_by_thrown_carbon(mob/living/carbon/human/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt)
|
||||
/obj/structure/window/hit_by_thrown_mob(mob/living/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt)
|
||||
var/shattered = FALSE
|
||||
if(damage * 2 >= obj_integrity && shardtype && !mob_hurt)
|
||||
shattered = TRUE
|
||||
var/obj/item/S = new shardtype(loc)
|
||||
S.embedded_ignore_throwspeed_threshold = TRUE
|
||||
S.throw_impact(C)
|
||||
S.embedded_ignore_throwspeed_threshold = FALSE
|
||||
var/obj/item/shard = new shardtype(loc)
|
||||
shard.embedded_ignore_throwspeed_threshold = TRUE
|
||||
shard.throw_impact(C)
|
||||
shard.embedded_ignore_throwspeed_threshold = FALSE
|
||||
damage *= (4/3) //Inverts damage loss from being a structure, since glass breaking on you hurts
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/obj/structure/grille/G in T.contents)
|
||||
|
||||
Reference in New Issue
Block a user