Merge pull request #7586 from Zuhayr/dev-freeze

Fixes the remainder of #7567, plus other fixes.
This commit is contained in:
Zuhayr
2014-12-31 22:48:39 +10:30
10 changed files with 68 additions and 57 deletions

View File

@@ -382,22 +382,23 @@ its easier to just keep the beam vertical.
//returns 1 if made bloody, returns 0 otherwise
/atom/proc/add_blood(mob/living/carbon/human/M as mob)
if(flags & NOBLOODY) return 0
.=1
if (!( istype(M, /mob/living/carbon/human) ))
return 0
if (!istype(M.dna, /datum/dna))
M.dna = new /datum/dna(null)
M.dna.real_name = M.real_name
M.check_dna()
if (!( src.flags ) & FPRINT)
if((flags & NOBLOODY) || !(flags & FPRINT))
return 0
if(!blood_DNA || !istype(blood_DNA, /list)) //if our list of DNA doesn't exist yet (or isn't a list) initialise it.
blood_DNA = list()
blood_color = "#A10808"
if (M.species)
blood_color = M.species.blood_color
return
if(istype(M))
if (!istype(M.dna, /datum/dna))
M.dna = new /datum/dna(null)
M.dna.real_name = M.real_name
M.check_dna()
if (M.species)
blood_color = M.species.blood_color
. = 1
return 1
/atom/proc/add_vomit_floor(mob/living/carbon/M as mob, var/toxvomit = 0)
if( istype(src, /turf/simulated) )

View File

@@ -605,10 +605,10 @@
overlays += blood_overlay
//if this blood isn't already in the list, add it
if(blood_DNA[M.dna.unique_enzymes])
return 0 //already bloodied with this blood. Cannot add more.
blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
if(istype(M))
if(blood_DNA[M.dna.unique_enzymes])
return 0 //already bloodied with this blood. Cannot add more.
blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
return 1 //we applied blood to the item
/obj/item/proc/generate_blood_overlay()

View File

@@ -8,6 +8,7 @@
flags = FPRINT | TABLEPASS | NOBLOODY
/obj/item/weapon/melee/energy/proc/activate(mob/living/user)
anchored = 1
active = 1
force = active_force
throwforce = active_throwforce
@@ -17,6 +18,7 @@
playsound(user, 'sound/weapons/saberon.ogg', 50, 1)
/obj/item/weapon/melee/energy/proc/deactivate(mob/living/user)
anchored = 0
active = 0
force = initial(force)
throwforce = initial(throwforce)
@@ -28,7 +30,8 @@
/obj/item/weapon/melee/energy/attack_self(mob/living/user as mob)
if (active)
if ((CLUMSY in user.mutations) && prob(50))
user.visible_message("\red [user] accidentally cuts \himself with \the [src].", "\red You accidentally cut yourself with \the [src].")
user.visible_message("<span class='danger'>[user] accidentally cuts \himself with \the [src].</span>",\
"<span class='danger'>You accidentally cut yourself with \the [src].</span>")
user.take_organ_damage(5,5)
deactivate(user)
else
@@ -44,8 +47,8 @@
/obj/item/weapon/melee/energy/suicide_act(mob/user)
if (active)
viewers(user) << pick("\red <b>[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.</b>", \
"\red <b>[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.</b>")
viewers(user) << pick("<span class='danger'>[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.</span>", \
"<span class='danger'>[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.</span>")
return (BRUTELOSS|FIRELOSS)
/*
@@ -105,6 +108,11 @@
flags = FPRINT | TABLEPASS | NOSHIELD | NOBLOODY
origin_tech = "magnets=3;syndicate=4"
/obj/item/weapon/melee/energy/sword/dropped(var/mob/user)
..()
if(!istype(loc,/mob))
deactivate(user)
/obj/item/weapon/melee/energy/sword/New()
item_color = pick("red","blue","green","purple")
@@ -121,16 +129,18 @@
item_color = "purple"
/obj/item/weapon/melee/energy/sword/activate(mob/living/user)
if(!active)
user << "<span class='notice'>\The [src] is now energised.</span>"
..()
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
icon_state = "sword[item_color]"
user << "\blue \The [src] is now energised."
/obj/item/weapon/melee/energy/sword/deactivate(mob/living/user)
if(active)
user << "<span class='notice'>\The [src] deactivates!</span>"
..()
attack_verb = list()
icon_state = initial(icon_state)
user << "\blue It can now be concealed."
/obj/item/weapon/melee/energy/sword/IsShield()
if(active)
@@ -158,7 +168,8 @@
force = 70.0//Normal attacks deal very high damage.
sharp = 1
edge = 1
throwforce = 1//Throwing or dropping the item deletes it.
anchored = 1 // Never spawned outside of inventory, should be fine.
throwforce = 1 //Throwing or dropping the item deletes it.
throw_speed = 1
throw_range = 1
w_class = 4.0//So you can't hide it in your pocket or some such.

View File

@@ -110,15 +110,15 @@
if (!..())
return 0
for(var/obj/effect/decal/cleanable/blood/B in contents)
if(!B.blood_DNA[M.dna.unique_enzymes])
B.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
B.virus2 = virus_copylist(M.virus2)
if(istype(M))
for(var/obj/effect/decal/cleanable/blood/B in contents)
if(!B.blood_DNA[M.dna.unique_enzymes])
B.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
B.virus2 = virus_copylist(M.virus2)
return 1 //we bloodied the floor
blood_splatter(src,M.get_blood(M.vessel),1)
return 1 //we bloodied the floor
blood_splatter(src,M.get_blood(M.vessel),1)
return 1 //we bloodied the floor
return 0
// Only adds blood on the floor -- Skie
/turf/simulated/proc/add_blood_floor(mob/living/carbon/M as mob)

View File

@@ -128,6 +128,7 @@
chest = new chest_type(src)
if(allowed)
chest.allowed = allowed
chest.slowdown = offline_slowdown
verbs |= /obj/item/weapon/rig/proc/toggle_chest
for(var/obj/item/piece in list(gloves,helmet,boots,chest))
@@ -237,12 +238,8 @@
if(!seal_target)
if(flags & AIRTIGHT)
helmet.flags |= AIRTIGHT
helmet.flags_inv |= (HIDEEYES|HIDEFACE|HIDEMASK)
helmet.body_parts_covered |= (FACE|EYES)
else
helmet.flags &= ~AIRTIGHT
helmet.flags_inv &= ~(HIDEEYES|HIDEFACE|HIDEMASK)
helmet.body_parts_covered &= ~(FACE|EYES)
helmet.update_light(wearer)
else
failed_to_seal = 1
@@ -261,13 +258,9 @@
if(canremove)
if(flags & AIRTIGHT)
helmet.flags |= AIRTIGHT
helmet.flags_inv |= (HIDEEYES|HIDEFACE)
helmet.body_parts_covered |= (FACE|EYES)
else
if(flags & AIRTIGHT)
helmet.flags &= ~AIRTIGHT
helmet.flags_inv &= ~(HIDEEYES|HIDEFACE)
helmet.body_parts_covered &= ~(FACE|EYES)
update_icon(1)
return 0
@@ -314,14 +307,14 @@
else
if(offline)
offline = 0
slowdown = initial(slowdown)
chest.slowdown = initial(slowdown)
if(offline)
if(offline == 1)
for(var/obj/item/rig_module/module in installed_modules)
module.deactivate()
offline = 2
slowdown = offline_slowdown
chest.slowdown = offline_slowdown
return
if(cell && cell.charge > 0 && electrified > 0)
@@ -522,6 +515,7 @@
module.charge_selected = href_list["charge_type"]
else if(href_list["toggle_ai_control"])
ai_override_enabled = !ai_override_enabled
notify_ai("Synthetic suit control has been [ai_override_enabled ? "enabled" : "disabled"].")
else if(href_list["toggle_suit_lock"])
locked = !locked
@@ -529,6 +523,14 @@
src.add_fingerprint(usr)
return
/obj/item/weapon/rig/proc/notify_ai(var/message)
if(!message || !installed_modules || !installed_modules.len)
return
for(var/obj/item/rig_module/module in installed_modules)
for(var/mob/living/silicon/ai/ai in module.contents)
if(ai && ai.client && !ai.stat)
ai << "[message]"
/obj/item/weapon/rig/equipped(mob/living/carbon/human/M)
..()
@@ -549,11 +551,7 @@
/obj/item/weapon/rig/proc/toggle_piece(var/piece, var/mob/living/carbon/human/H, var/deploy_mode)
if(sealing)
return
if(!cell || !cell.charge)
H << "<span class='warning'>The suit is out of power.</span>"
if(sealing || !cell || !cell.charge)
return
if(!istype(wearer) || !wearer.back == src)

View File

@@ -5,10 +5,10 @@
/obj/item/clothing/head/helmet/space/rig
name = "helmet"
flags = FPRINT | TABLEPASS | HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | THICKMATERIAL
flags_inv = HIDEEARS
body_parts_covered = HEAD
heat_protection = HEAD
cold_protection = HEAD
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE
body_parts_covered = HEAD|FACE|EYES
heat_protection = HEAD|FACE|EYES
cold_protection = HEAD|FACE|EYES
brightness_on = 4
species_restricted = null

View File

@@ -16,7 +16,7 @@
if(!species)
if(new_species)
set_species(new_species)
set_species(new_species,1)
else
set_species()
@@ -1014,9 +1014,9 @@
if (!..())
return 0
//if this blood isn't already in the list, add it
if(blood_DNA[M.dna.unique_enzymes])
return 0 //already bloodied with this blood. Cannot add more.
blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
if(istype(M))
if(!blood_DNA[M.dna.unique_enzymes])
blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
hand_blood_color = blood_color
src.update_inv_gloves() //handles bloody hands overlays and updating
verbs += /mob/living/carbon/human/proc/bloody_doodle

View File

@@ -282,7 +282,7 @@ emp_act
forcesay(hit_appends) //forcesay checks stat already
//Melee weapon embedded object code.
if (I && I.damtype == BRUTE && !I.is_robot_module())
if (I && I.damtype == BRUTE && !I.anchored && !I.is_robot_module())
var/damage = I.force
if (armor)
damage /= armor+1

View File

@@ -94,6 +94,7 @@
flesh_color = "#8CD7A3"
blood_color = "#1D2CBF"
base_color = "#006666"
reagent_tag = IS_SKRELL