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:
DGamerL
2023-12-13 15:22:02 +00:00
committed by GitHub
co-authored by Burzah Henri215
parent 2c85645444
commit 962e78a363
23 changed files with 108 additions and 70 deletions
+1 -1
View File
@@ -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
+5 -2
View File
@@ -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)
+5 -5
View File
@@ -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)