From fe39beda729df3f5adf95ce238018e1d9fc7c5f8 Mon Sep 17 00:00:00 2001 From: "vageyenaman@gmail.com" Date: Sun, 18 Sep 2011 01:36:22 +0000 Subject: [PATCH] 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 --- code/modules/chemical/Chemistry-Recipes.dm | 9 +++++--- code/modules/critters/critter_defenses.dm | 26 ++++++++++++++++------ 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/code/modules/chemical/Chemistry-Recipes.dm b/code/modules/chemical/Chemistry-Recipes.dm index 0bcdf892f4..89f116aee8 100644 --- a/code/modules/chemical/Chemistry-Recipes.dm +++ b/code/modules/chemical/Chemistry-Recipes.dm @@ -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" diff --git a/code/modules/critters/critter_defenses.dm b/code/modules/critters/critter_defenses.dm index 5d944e40ac..010b664a83 100644 --- a/code/modules/critters/critter_defenses.dm +++ b/code/modules/critters/critter_defenses.dm @@ -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 [user] 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 [user] has punched [src]!", 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 [user] has slashed at [src]!", 1) + playsound(src.loc, 'slice.ogg', 25, 1, -1) + + else + for(var/mob/O in viewers(src, null)) + O.show_message("\red [user] has bit [src]!", 1) + if(src.defensive) Target_Attacker(user) else for(var/mob/O in viewers(src, null)) - O.show_message("\red [user] 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 [src] [src.angertext] [target:name]!", 1) - src.task = "chasing" + O.show_message("\red [src] [src.angertext] at [target:name]!", 1) + src.task = "chasing" return