mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
Modified miscellaneous chem recipes.
Changed up some critter code a bit, fixing some oddities and inconsistencies. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2215 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -608,7 +608,7 @@ datum
|
||||
name = "Metroid Teleport"
|
||||
id = "m_tele"
|
||||
result = null
|
||||
required_reagents = list("plasma" = 1, "acid" = 1)
|
||||
required_reagents = list("plasma" = 1, "pacid" = 2, "mutagen" = 3)
|
||||
result_amount = 1
|
||||
required_container = /obj/item/metroid_core
|
||||
required_other = 4
|
||||
@@ -638,8 +638,9 @@ datum
|
||||
|
||||
var/y_distance = TO.y - FROM.y
|
||||
var/x_distance = TO.x - FROM.x
|
||||
for (var/atom/movable/A in range(3, FROM )) // iterate thru list of mobs in the area
|
||||
if(A == chosen) continue // don't teleport the actual beacon that's just stupid as fukkkkk
|
||||
for (var/atom/movable/A in range(2, FROM )) // iterate thru list of mobs in the area
|
||||
if(istype(A, /obj/item/device/radio/beacon)) continue // don't teleport beacons because that's just insanely stupid
|
||||
if(A.anchored) continue // don't teleport anchored things (computers, tables, windows, grilles, etc) because this causes problems!
|
||||
|
||||
var/turf/newloc = locate(A.x + x_distance, A.y + y_distance, TO.z) // calculate the new place
|
||||
if(!A.Move(newloc)) // if the atom, for some reason, can't move, FORCE them to move! :) We try Move() first to invoke any movement-related checks the atom needs to perform after moving
|
||||
@@ -663,6 +664,8 @@ datum
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
metroidchloral
|
||||
name = "Metroid Chloral"
|
||||
id = "m_bunch"
|
||||
|
||||
@@ -21,23 +21,35 @@ Contains the procs that control attacking critters
|
||||
if (!src.alive) ..()
|
||||
if (user.a_intent == "hurt")
|
||||
TakeDamage(rand(1,2) * brutevuln)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message("\red <b>[user]</b> punches [src]!", 1)
|
||||
playsound(src.loc, pick('punch1.ogg','punch2.ogg','punch3.ogg','punch4.ogg'), 100, 1)
|
||||
|
||||
if(istype(user, /mob/living/carbon/human))
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message("\red <B>[user] has punched [src]!</B>", 1)
|
||||
playsound(src.loc, pick('punch1.ogg','punch2.ogg','punch3.ogg','punch4.ogg'), 100, 1)
|
||||
|
||||
else if(istype(user, /mob/living/carbon/alien/humanoid))
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message("\red <B>[user] has slashed at [src]!</B>", 1)
|
||||
playsound(src.loc, 'slice.ogg', 25, 1, -1)
|
||||
|
||||
else
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message("\red <B>[user] has bit [src]!</B>", 1)
|
||||
|
||||
if(src.defensive) Target_Attacker(user)
|
||||
else
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message("\red <b>[user]</b> touches [src]!", 1)
|
||||
O.show_message("\blue [user] touches [src]!", 1)
|
||||
|
||||
|
||||
Target_Attacker(var/target)
|
||||
if(!target) return
|
||||
src.target = target
|
||||
src.oldtarget_name = target:name
|
||||
if(task != "chasing")
|
||||
if(task != "chasing" || task != "attacking")
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message("\red <b>[src]</b> [src.angertext] [target:name]!", 1)
|
||||
src.task = "chasing"
|
||||
O.show_message("\red <b>[src]</b> [src.angertext] at [target:name]!", 1)
|
||||
src.task = "chasing"
|
||||
return
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user