Merge branch 'bleeding-edge-freeze' of https://github.com/Baystation12/Baystation12 into bleeding-edge-freeze

Conflicts:
	baystation12.dme

Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
Cael_Aislinn
2013-02-13 12:30:01 +10:00
26 changed files with 257 additions and 102 deletions

View File

@@ -6,11 +6,9 @@
// BEGIN_FILE_DIR
#define FILE_DIR .
// END_FILE_DIR
// BEGIN_PREFERENCES
#define DEBUG
// END_PREFERENCES
// BEGIN_INCLUDE
#include "code\global.dm"
#include "code\hub.dm"
@@ -705,6 +703,7 @@
#include "code\modules\clothing\shoes\colour.dm"
#include "code\modules\clothing\shoes\magboots.dm"
#include "code\modules\clothing\shoes\miscellaneous.dm"
#include "code\modules\clothing\spacesuits\alien.dm"
#include "code\modules\clothing\spacesuits\captain.dm"
#include "code\modules\clothing\spacesuits\ert.dm"
#include "code\modules\clothing\spacesuits\miscellaneous.dm"
@@ -732,11 +731,10 @@
#include "code\modules\customitems\item_defines.dm"
#include "code\modules\customitems\item_spawning.dm"
#include "code\modules\destilery\main.dm"
#include "code\modules\detectivework\detective_work.dm"
#include "code\modules\detectivework\evidence.dm"
#include "code\modules\detectivework\footprints_and_rag.dm"
#include "code\modules\detectivework\scanner.dm"
#include "code\modules\events\alien_infestation.dm"
#include "code\modules\DetectiveWork\detective_work.dm"
#include "code\modules\DetectiveWork\evidence.dm"
#include "code\modules\DetectiveWork\footprints_and_rag.dm"
#include "code\modules\DetectiveWork\scanner.dm"#include "code\modules\events\alien_infestation.dm"
#include "code\modules\events\blob.dm"
#include "code\modules\events\brand_intelligence.dm"
#include "code\modules\events\carp_migration.dm"
@@ -756,8 +754,7 @@
#include "code\modules\events\spider_infestation.dm"
#include "code\modules\events\spontaneous_appendicitis.dm"
#include "code\modules\events\viral_infection.dm"
#include "code\modules\events\viral_outbreak.dm"
#include "code\modules\flufftext\Dreaming.dm"
#include "code\modules\events\viral_outbreak.dm"#include "code\modules\flufftext\Dreaming.dm"
#include "code\modules\flufftext\Hallucination.dm"
#include "code\modules\flufftext\TextFilters.dm"
#include "code\modules\food\recipes_microwave.dm"
@@ -1169,8 +1166,8 @@
#include "code\WorkInProgress\Cael_Aislinn\Supermatter\SuperMatter.dm"
#include "code\WorkInProgress\Cael_Aislinn\Supermatter\ZeroPointLaser.dm"
#include "code\WorkInProgress\Chinsky\ashtray.dm"
#include "code\WorkInProgress\Mini\ATM.dm"
#include "code\WorkInProgress\Ported\policetape.dm"
#include "code\WorkInProgress\Cib\MedicalSideEffects.dm"
#include "code\WorkInProgress\Mini\ATM.dm"#include "code\WorkInProgress\Ported\policetape.dm"
#include "code\WorkInProgress\SkyMarshal\Ultralight_procs.dm"
#include "code\WorkInProgress\Susan\susan_desert_turfs.dm"
#include "code\WorkInProgress\virus2\analyser.dm"

View File

@@ -0,0 +1,141 @@
// MEDICAL SIDE EFFECT BASE
// ========================
/datum/medical_effect/var/name = "None"
/datum/medical_effect/var/strength = 0
/datum/medical_effect/proc/on_life(mob/living/carbon/human/H, strength)
/datum/medical_effect/proc/cure(mob/living/carbon/human/H)
// MOB HELPERS
// ===========
/mob/living/carbon/human/var/list/datum/medical_effect/side_effects = list()
/mob/proc/add_side_effect(name, strength = 0)
/mob/living/carbon/human/add_side_effect(name, strength = 0)
for(var/datum/medical_effect/M in src.side_effects) if(M.name == name)
M.strength = max(M.strength, 10)
return
var/list/L = typesof(/datum/medical_effect)-/datum/medical_effect
for(var/T in L)
var/datum/medical_effect/M = new T
if(M.name == name)
M.strength = strength
side_effects += M
/mob/living/carbon/human/proc/handle_medical_side_effects()
if(src.reagents.has_reagent("bicaridine") || src.reagents.has_reagent("tricordrazine") || src.reagents.has_reagent("cryoxadone"))
src.add_side_effect("Headache")
if(src.reagents.has_reagent("kelotane") || src.reagents.has_reagent("dermaline"))
src.add_side_effect("Bad Stomach")
// One full cycle(in terms of strength) every 10 minutes
var/strength_percent = sin(life_tick / 2)
// Only do anything if the effect is currently strong enough
if(strength_percent >= 0.4)
for (var/datum/medical_effect/M in side_effects)
if (M.cure(src))
side_effects -= M
del(M)
else
if(life_tick % 15 == 0)
M.on_life(src, strength_percent*M.strength)
// Effect slowly growing stronger
M.strength+=0.05
// HEADACHE
// ========
/datum/medical_effect/headache/name = "Headache"
/datum/medical_effect/headache/on_life(mob/living/carbon/human/H, strength)
switch(strength)
if(1 to 10)
H.custom_pain("You feel a light pain in your head.",0)
if(11 to 30)
H.custom_pain("You feel a throbbing pain in your head!",1)
if(31 to 99)
H.custom_pain("You feel an excrutiating pain in your head!",1)
H.adjustBrainLoss(1)
if(99 to INFINITY)
H.custom_pain("It feels like your head is about to split open!",1)
H.adjustBrainLoss(3)
var/datum/organ/external/O = H.organs_by_name["head"]
O.take_damage(0, 1, 0, "Headache")
/datum/medical_effect/headache/cure(mob/living/carbon/human/H)
if(H.reagents.has_reagent("alkysine"))
return 1
return 0
// HEADACHE
// ========
/datum/medical_effect/headache/name = "Headache"
/datum/medical_effect/headache/on_life(mob/living/carbon/human/H, strength)
switch(strength)
if(1 to 10)
H.custom_pain("You feel a light pain in your head.",0)
if(11 to 30)
H.custom_pain("You feel a throbbing pain in your head!",1)
if(31 to 99)
H.custom_pain("You feel an excrutiating pain in your head!",1)
H.adjustBrainLoss(1)
if(99 to INFINITY)
H.custom_pain("It feels like your head is about to split open!",1)
H.adjustBrainLoss(3)
var/datum/organ/external/O = H.organs_by_name["head"]
O.take_damage(0, 1, 0, "Headache")
/datum/medical_effect/headache/cure(mob/living/carbon/human/H)
if(H.reagents.has_reagent("alkysine") || H.reagents.has_reagent("tramadol"))
H << "\red Your head stops throbbing.."
return 1
return 0
// BAD STOMACH
// ===========
/datum/medical_effect/bad_stomach/name = "Bad Stomach"
/datum/medical_effect/bad_stomach/on_life(mob/living/carbon/human/H, strength)
switch(strength)
if(1 to 10)
H.custom_pain("You feel a bit light around the stomach.",0)
if(11 to 30)
H.custom_pain("Your stomach hurts.",0)
if(31 to 99)
H.custom_pain("You feel sick.",1)
H.adjustToxLoss(1)
if(99 to INFINITY)
H.custom_pain("You can't hold it in any longer!",1)
H.vomit()
/datum/medical_effect/bad_stomach/cure(mob/living/carbon/human/H)
if(H.reagents.has_reagent("anti_toxin"))
H << "\red Your stomach feels a little better now.."
return 1
return 0
// CRAMPS
// ======
/datum/medical_effect/cramps/name = "Cramps"
/datum/medical_effect/cramps/on_life(mob/living/carbon/human/H, strength)
switch(strength)
if(1 to 10)
H.custom_pain("The muscles in your body hurt a little.",0)
if(11 to 30)
H.custom_pain("The muscles in your body cramp up painfully.",0)
if(31 to 99)
H.emote("me",1,"flinches as all the muscles in their body cramp up.")
H.custom_pain("There's pain all over your body.",1)
H.adjustToxLoss(1)
if(99 to INFINITY)
H.emote("me",1,"flinches as all the muscles in their body cramp up.")
H.custom_pain("It feels as though your muscles are being ripped apart!",1)
H.apply_damage(1, used_weapon = "Cramps")
/datum/medical_effect/cramps/cure(mob/living/carbon/human/H)
if(H.reagents.has_reagent("inaprovaline"))
H << "\red The cramps let up.."
return 1
return 0

View File

@@ -204,12 +204,12 @@ Implants;
/datum/game_mode/proc/send_intercept()
var/intercepttext = "<FONT size = 3><B>Cent. Com. Update</B> Requested staus information:</FONT><HR>"
var/intercepttext = "<FONT size = 3><B>Cent. Com. Update</B> Requested status information:</FONT><HR>"
intercepttext += "<B> Cent. Com has recently been contacted by the following syndicate affiliated organisations in your area, please investigate any information you may have:</B>"
var/list/possible_modes = list()
possible_modes.Add("revolution", "wizard", "nuke", "traitor", "malf", "changeling", "cult")
possible_modes -= "[ticker.mode]"
//possible_modes -= "[ticker.mode]"
var/number = pick(2, 3)
var/i = 0
for(i = 0, i < number, i++)
@@ -428,3 +428,15 @@ proc/display_roundstart_logout_report()
for(var/mob/M in mob_list)
if(M.client && M.client.holder)
M << msg
proc/get_nt_opposed()
var/list/dudes = list()
for(var/mob/living/carbon/human/man in player_list)
if(man.client)
if(man.client.prefs.nanotrasen_relation == "Opposed")
dudes += man
else if(man.client.prefs.nanotrasen_relation == "Skeptical" && prob(50))
dudes += man
if(dudes.len == 0) return null
return pick(dudes)

View File

@@ -111,114 +111,70 @@
return num2text(md5(num2text(rand(1,10000))))
*/
/datum/intercept_text/proc/get_suspect()
var/list/dudes = list()
for(var/mob/living/carbon/human/man in player_list) if(man.client && man.client.prefs.nanotrasen_relation == "Opposed")
dudes += man
for(var/i = 0, i < max(player_list.len/10,2), i++)
dudes += pick(player_list)
return pick(dudes)
/datum/intercept_text/proc/build_traitor(datum/mind/correct_person)
var/name_1 = pick(src.org_names_1)
var/name_2 = pick(src.org_names_2)
/*
var/fingerprints
var/traitor_name
var/prob_right_dude = rand(prob_correct_person_lower, prob_correct_person_higher)
if(prob(prob_right_dude) && ticker.mode == "traitor")
if(correct_person:assigned_role=="MODE")
traitor_name = pick_mob()
else
traitor_name = correct_person:current
else if(prob(prob_right_dude))
traitor_name = pick_mob()
else
fingerprints = pick_fingerprints()
*/
var/mob/living/carbon/human/H = get_suspect()
var/fingerprints = num2text(md5(H.dna.uni_identity))
var/traitor_name = H.real_name
var/prob_right_dude = rand(1, 100)
src.text += "<BR><BR>The <B>[name_1] [name_2]</B> implied an undercover operative was acting on their behalf on the station currently."
src.text += "It would be in your best interests to suspect everybody, as these undercover operatives could have implants which trigger them to have their memories removed until they are needed. He, or she, could even be a high ranking officer."
/*
src.text += "After some investigation, we "
if(traitor_name)
if(prob(50))
src.text += "are [prob_right_dude]% sure that [traitor_name] may have been involved, and should be closely observed."
src.text += "<BR>Note: This group are known to be untrustworthy, so do not act on this information without proper discourse."
else
src.text += "discovered the following set of fingerprints ([fingerprints]) on sensitive materials, and their owner should be closely observed."
src.text += "However, these could also belong to a current Cent. Com employee, so do not act on this without reason."
*/
/datum/intercept_text/proc/build_cult(datum/mind/correct_person)
var/name_1 = pick(src.org_names_1)
var/name_2 = pick(src.org_names_2)
/*
var/traitor_name
var/traitor_job
var/prob_right_dude = rand(prob_correct_person_lower, prob_correct_person_higher)
var/prob_right_job = rand(prob_correct_job_lower, prob_correct_job_higher)
if(prob(prob_right_job) && is_convertable_to_cult(correct_person))
if (correct_person)
if(correct_person:assigned_role=="MODE")
traitor_job = pick(get_all_jobs())
else
traitor_job = correct_person:assigned_role
else
var/list/job_tmp = get_all_jobs()
job_tmp.Remove("Captain", "Chaplain", "AI", "Cyborg", "Security Officer", "Detective", "Head Of Security", "Head of Personnel", "Chief Engineer", "Research Director", "Chief Medical Officer")
traitor_job = pick(job_tmp)
if(prob(prob_right_dude) && ticker.mode == "cult")
if(correct_person:assigned_role=="MODE")
traitor_name = src.pick_mob()
else
traitor_name = correct_person:current
else
traitor_name = pick_mob()
*/
var/prob_right_dude = rand(1, 100)
var/mob/living/carbon/human/H = get_suspect()
var/traitor_job = H.mind.assigned_role
src.text += "<BR><BR>It has been brought to our attention that the [name_1] [name_2] have stumbled upon some dark secrets. They apparently want to spread the dangerous knowledge onto as many stations as they can."
src.text += "Watch out for the following: praying to an unfamilar god, preaching the word of \[REDACTED\], sacrifices, magical dark power, living constructs of evil and a portal to the dimension of the underworld."
/*
src.text += "Based on our intelligence, we are [prob_right_job]% sure that if true, someone doing the job of [traitor_job] on your station may have been converted "
src.text += "Based on our intelligence, we are [prob_right_dude]% sure that if true, someone doing the job of [traitor_job] on your station may have been converted "
src.text += "and instilled with the idea of the flimsiness of the real world, seeking to destroy it. "
if(prob(prob_right_dude))
src.text += "<BR> In addition, we are [prob_right_dude]% sure that [traitor_name] may have also some in to contact with this "
src.text += "organisation."
src.text += "<BR>However, if this information is acted on without substantial evidence, those responsible will face severe repercussions."
*/
/datum/intercept_text/proc/build_rev(datum/mind/correct_person)
var/name_1 = pick(src.org_names_1)
var/name_2 = pick(src.org_names_2)
/*
var/traitor_name
var/traitor_job
var/prob_right_dude = rand(prob_correct_person_lower, prob_correct_person_higher)
var/prob_right_job = rand(prob_correct_job_lower, prob_correct_job_higher)
if(prob(prob_right_job) && is_convertable_to_rev(correct_person))
if (correct_person)
if(correct_person.assigned_role=="MODE")
traitor_job = pick(get_all_jobs())
else
traitor_job = correct_person.assigned_role
else
var/list/job_tmp = get_all_jobs()
job_tmp-=nonhuman_positions
job_tmp-=command_positions
job_tmp.Remove("Security Officer", "Detective", "Warden", "MODE")
traitor_job = pick(job_tmp)
if(prob(prob_right_dude) && ticker.mode.config_tag == "revolution")
if(correct_person.assigned_role=="MODE")
traitor_name = src.pick_mob()
else
traitor_name = correct_person.current
else
traitor_name = src.pick_mob()
*/
var/prob_right_dude = rand(1, 100)
var/mob/living/carbon/human/H = get_suspect()
var/traitor_job = H.mind.assigned_role
src.text += "<BR><BR>It has been brought to our attention that the [name_1] [name_2] are attempting to stir unrest on one of our stations in your sector."
src.text += "Watch out for suspicious activity among the crew and make sure that all heads of staff report in periodically."
/*
src.text += "Based on our intelligence, we are [prob_right_job]% sure that if true, someone doing the job of [traitor_job] on your station may have been brainwashed "
src.text += "Based on our intelligence, we are [prob_right_dude]% sure that if true, someone doing the job of [traitor_job] on your station may have been brainwashed "
src.text += "at a recent conference, and their department should be closely monitored for signs of mutiny. "
if(prob(prob_right_dude))
src.text += "<BR> In addition, we are [prob_right_dude]% sure that [traitor_name] may have also some in to contact with this "
src.text += "organisation."
src.text += "<BR>However, if this information is acted on without substantial evidence, those responsible will face severe repercussions."
*/
/datum/intercept_text/proc/build_wizard(datum/mind/correct_person)

View File

@@ -291,3 +291,9 @@
traitor_mob << "Unfortunately, the Syndicate did not provide you with a code response."
traitor_mob << "Use the code words in the order provided, during regular conversation, to identify other agents. Proceed with caution, however, as everyone is a potential foe."
//End code phrase.
// Tell them about people they might want to contact.
var/mob/living/carbon/human/M = get_nt_opposed()
if(M != traitor_mob)
traitor_mob << "We have received credible reports that [M.real_name] might be willing to help our cause. If you need assistance, consider contacting them."
traitor_mob.mind.store_memory("<b>Potential Collaborator</b>: [M.real_name]")

View File

@@ -326,6 +326,7 @@
src.icon_state = "pod_0"
src.eject_wait = 0 //If it's still set somehow.
domutcheck(src.occupant) //Waiting until they're out before possible monkeyizing.
src.occupant.add_side_effect("Bad Stomach") // Give them an extra side-effect for free.
src.occupant = null
return

View File

@@ -53,6 +53,7 @@
user.visible_message( "\blue [user] salves wounds on [M]'s [affecting.display_name].", \
"\blue You salve wounds on [M]'s [affecting.display_name]." )
H.add_side_effect("Cramps")
H.UpdateDamageIcon()
else
M.heal_organ_damage((src.heal_brute/2), (src.heal_burn/2))

View File

@@ -98,6 +98,8 @@ datum/preferences
var/sec_record = ""
var/disabilities = 0
var/nanotrasen_relation = "Neutral"
// OOC Metadata:
var/metadata = ""
var/slot_name = ""
@@ -298,6 +300,8 @@ datum/preferences
dat += "Backpack Type:<br><a href ='?_src_=prefs;preference=bag;task=input'><b>[backbaglist[backbag]]</b></a><br>"
dat += "Nanotrasen Relation:<br><a href ='?_src_=prefs;preference=nt_relation;task=input'><b>[nanotrasen_relation]</b></a><br>"
dat += "</td><td><b>Preview</b><br><img src=previewicon.png height=64 width=64><img src=previewicon2.png height=64 width=64></td></tr></table>"
dat += "</td><td width='300px' height='300px'>"
@@ -919,6 +923,11 @@ datum/preferences
if(new_backbag)
backbag = backbaglist.Find(new_backbag)
if("nt_relation")
var/new_relation = input(user, "Choose your relation to NT. Note that this represents what others can find out about your character by researching your background, not what your character actually thinks.", "Character Preference") as null|anything in list("Loyal", "Supportive", "Neutral", "Skeptical", "Opposed")
if(new_relation)
nanotrasen_relation = new_relation
if("flavor_text")
var/msg = input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(flavor_text)) as message

View File

@@ -143,6 +143,8 @@
S["skills"] >> skills
S["skill_specialization"] >> skill_specialization
S["organ_data"] >> organ_data
S["nanotrasen_relation"] >> nanotrasen_relation
//S["skin_style"] >> skin_style
//Sanitize
@@ -238,6 +240,8 @@
S["skills"] << skills
S["skill_specialization"] << skill_specialization
S["organ_data"] << organ_data
S["nanotrasen_relation"] << nanotrasen_relation
//S["skin_style"] << skin_style
return 1

View File

@@ -0,0 +1,20 @@
/obj/item/clothing/head/helmet/space/helmet_soghun_cheap
name = "NT breacher helmet"
desc = "Hey! Watch it with that thing! It's a knock-off of a soghun battle-helm, and that spike could put someone's eye out."
icon_state = "sog_helm_cheap"
item_state = "sog_helm_cheap"
color = "sog_helm_cheap"
armor = list(melee = 40, bullet = 30, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 50)
heat_protection = HEAD
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
/obj/item/clothing/suit/space/rig_soghun_cheap
name = "NT breacher chassis"
desc = "A cheap NT knock-off of a soghun battle-rig. Looks like a fish, moves like a fish, steers like a cow."
icon_state = "rig-soghun-cheap"
item_state = "rig-soghun-cheap"
slowdown = 2
armor = list(melee = 40, bullet = 30, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 50)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd)
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE

View File

@@ -99,6 +99,8 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
handle_pain()
handle_medical_side_effects()
//Status updates, death etc.
handle_regular_status_updates() //TODO: optimise ~Carn
update_canmove()

View File

@@ -13,10 +13,9 @@
response_help = "pets the"
response_disarm = "gently pushes aside the"
response_harm = "hits the"
speed = -1
speed = 4
maxHealth = 25
health = 25
destroy_surroundings = 0
harm_intent_damage = 8
melee_damage_lower = 15
@@ -35,6 +34,8 @@
max_n2 = 0
minbodytemp = 0
break_stuff_probability = 2
faction = "carp"
/mob/living/simple_animal/hostile/carp/Process_Spacemove(var/check_drift = 0)

View File

@@ -13,3 +13,4 @@
attacktext = "chomps"
attack_sound = 'sound/weapons/bite.ogg'
faction = "creature"
speed = 4

View File

@@ -28,6 +28,7 @@
min_n2 = 0
max_n2 = 0
minbodytemp = 0
speed = 4
faction = "faithless"

View File

@@ -33,7 +33,7 @@
var/busy = 0
pass_flags = PASSTABLE
move_to_delay = 6
destroy_surroundings = 0
speed = 3
//nursemaids - these create webs and eggs
/mob/living/simple_animal/hostile/giant_spider/nurse

View File

@@ -26,6 +26,7 @@
min_n2 = 0
max_n2 = 0
minbodytemp = 0
speed = 4
/mob/living/simple_animal/hostile/hivebot/range
name = "Hivebot"

View File

@@ -10,6 +10,7 @@
var/casingtype
var/move_to_delay = 2 //delay for the automated movement.
var/list/friends = list()
var/break_stuff_probability = 10
stop_automated_movement_when_pulled = 0
var/destroy_surroundings = 1
@@ -173,7 +174,8 @@
return
/mob/living/simple_animal/hostile/proc/DestroySurroundings()
for(var/dir in cardinal) // North, South, East, West
var/obj/structure/obstacle = locate(/obj/structure, get_step(src, dir))
if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille))
obstacle.attack_animal(src)
if(prob(break_stuff_probability))
for(var/dir in cardinal) // North, South, East, West
var/obj/structure/obstacle = locate(/obj/structure, get_step(src, dir))
if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille))
obstacle.attack_animal(src)

View File

@@ -13,7 +13,7 @@
response_help = "touches the"
response_disarm = "pushes the"
response_harm = "hits the"
speed = -1
speed = 4
maxHealth = 250
health = 250

View File

@@ -9,7 +9,7 @@
response_help = "pushes the"
response_disarm = "shoves"
response_harm = "hits the"
speed = -1
speed = 4
stop_automated_movement_when_pulled = 0
maxHealth = 100
health = 100

View File

@@ -10,7 +10,7 @@
response_help = "pokes the"
response_disarm = "shoves the"
response_harm = "hits the"
speed = -1
speed = 4
stop_automated_movement_when_pulled = 0
maxHealth = 100
health = 100

View File

@@ -10,7 +10,7 @@
response_help = "pokes the"
response_disarm = "shoves the"
response_harm = "hits the"
speed = -1
speed = 4
stop_automated_movement_when_pulled = 0
maxHealth = 100
health = 100

View File

@@ -444,7 +444,7 @@
/mob/living/simple_animal/proc/SA_attackable(target_mob)
if (isliving(target_mob))
var/mob/living/L = target_mob
if(!L.stat)
if(!L.stat || L.health <= 0)
return (0)
if (istype(target_mob,/obj/mecha))
var/obj/mecha/M = target_mob

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 KiB

After

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 64 KiB