mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-25 09:31:30 +00:00
Merge pull request #7586 from Zuhayr/dev-freeze
Fixes the remainder of #7567, plus other fixes.
This commit is contained in:
@@ -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) )
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -94,6 +94,7 @@
|
||||
|
||||
flesh_color = "#8CD7A3"
|
||||
blood_color = "#1D2CBF"
|
||||
base_color = "#006666"
|
||||
|
||||
reagent_tag = IS_SKRELL
|
||||
|
||||
|
||||
Reference in New Issue
Block a user