mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Merge branch 'master' of https://github.com/Baystation12/Baystation12
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
for (var/client/C in admin_list)
|
||||
if (src.holder.rank == "Admin Observer")
|
||||
C << "<span class='adminobserver'><span class='prefix'>ADMIN:</span> <EM>[key_name(usr, C)]:</EM> <span class='message'>[msg]</span></span>"
|
||||
else if(C.holder.level != 0)
|
||||
else if(C.holder && C.holder.level != 0)
|
||||
C << "<span class='admin'><span class='prefix'>ADMIN:</span> <EM>[key_name(usr, C)]</EM> (<A HREF='?src=\ref[C.holder];adminplayerobservejump=\ref[mob]'>JMP</A>): <span class='message'>[msg]</span></span>"
|
||||
|
||||
/client/proc/cmd_mod_say(msg as text)
|
||||
|
||||
@@ -249,16 +249,16 @@ BLIND // can't see anything
|
||||
H.holstered = usr.get_active_hand()
|
||||
usr.drop_item()
|
||||
H.holstered.loc = src
|
||||
usr.visible_message("\blue [usr] holsters \the [H.holstered].", "You holster \the [H.holstered].")
|
||||
usr.visible_message("\blue \The [usr] holsters \the [H.holstered].", "You holster \the [H.holstered].")
|
||||
else
|
||||
if(istype(usr.get_active_hand(),/obj) && istype(usr.get_inactive_hand(),/obj))
|
||||
usr << "\red You need an empty hand to draw the gun!"
|
||||
else
|
||||
if(usr.a_intent == "hurt")
|
||||
usr.visible_message("\red [usr] draws \the [H.holstered], ready to shoot!", \
|
||||
usr.visible_message("\red \The [usr] draws \the [H.holstered], ready to shoot!", \
|
||||
"\red You draw \the [H.holstered], ready to shoot!")
|
||||
else
|
||||
usr.visible_message("\blue [usr] draws \the [H.holstered], pointing it at the ground.", \
|
||||
"\blue You draw \the [H.holstered], pointing it at tthe ground.")
|
||||
usr.visible_message("\blue \The [usr] draws \the [H.holstered], pointing it at the ground.", \
|
||||
"\blue You draw \the [H.holstered], pointing it at the ground.")
|
||||
usr.put_in_hands(H.holstered)
|
||||
H.holstered = null
|
||||
|
||||
@@ -418,8 +418,8 @@
|
||||
if (fire) fire.icon_state = "fire[fire_alert ? 1 : 0]"
|
||||
//NOTE: the alerts dont reset when youre out of danger. dont blame me,
|
||||
//blame the person who coded them. Temporary fix added.
|
||||
|
||||
client.screen.Remove(global_hud.blurry,global_hud.druggy,global_hud.vimpaired)
|
||||
if (client)
|
||||
client.screen.Remove(global_hud.blurry,global_hud.druggy,global_hud.vimpaired)
|
||||
|
||||
if ((blind && stat != 2))
|
||||
if ((blinded))
|
||||
@@ -441,7 +441,7 @@
|
||||
if (!( machine.check_eye(src) ))
|
||||
reset_view(null)
|
||||
else
|
||||
if(!client.adminobs)
|
||||
if(client && !client.adminobs)
|
||||
reset_view(null)
|
||||
|
||||
return 1
|
||||
|
||||
@@ -332,9 +332,8 @@ FUCK YOU MORE FAT CODE -Hawk*/
|
||||
if (fire) fire.icon_state = "fire[fire_alert ? 1 : 0]"
|
||||
//NOTE: the alerts dont reset when youre out of danger. dont blame me,
|
||||
//blame the person who coded them. Temporary fix added.
|
||||
|
||||
|
||||
client.screen.Remove(global_hud.blurry,global_hud.druggy,global_hud.vimpaired)
|
||||
if (client)
|
||||
client.screen.Remove(global_hud.blurry,global_hud.druggy,global_hud.vimpaired)
|
||||
|
||||
if ((blind && stat != 2))
|
||||
if ((blinded))
|
||||
@@ -356,7 +355,7 @@ FUCK YOU MORE FAT CODE -Hawk*/
|
||||
if (!( machine.check_eye(src) ))
|
||||
reset_view(null)
|
||||
else
|
||||
if(!client.adminobs)
|
||||
if(client && !client.adminobs)
|
||||
reset_view(null)
|
||||
|
||||
return 1
|
||||
|
||||
@@ -242,8 +242,8 @@
|
||||
healths.icon_state = "health7"
|
||||
|
||||
if(pullin) pullin.icon_state = "pull[pulling ? 1 : 0]"
|
||||
|
||||
client.screen.Remove(global_hud.blurry,global_hud.druggy,global_hud.vimpaired)
|
||||
if (client)
|
||||
client.screen.Remove(global_hud.blurry,global_hud.druggy,global_hud.vimpaired)
|
||||
|
||||
if ((blind && stat != 2))
|
||||
if ((blinded))
|
||||
@@ -265,7 +265,7 @@
|
||||
if (!( machine.check_eye(src) ))
|
||||
reset_view(null)
|
||||
else
|
||||
if(!client.adminobs)
|
||||
if(client && !client.adminobs)
|
||||
reset_view(null)
|
||||
|
||||
return 1
|
||||
|
||||
@@ -461,6 +461,7 @@ The else statement is for equipping stuff to empty slots.
|
||||
It can still be worn/put on as normal.
|
||||
*/
|
||||
/obj/effect/equip_e/human/done() //TODO: And rewrite this :< ~Carn
|
||||
target.cpr_time = 1
|
||||
if(!source || !target) return //Target or source no longer exist
|
||||
if(source.loc != s_loc) return //source has moved
|
||||
if(target.loc != t_loc) return //target has moved
|
||||
@@ -549,7 +550,6 @@ It can still be worn/put on as normal.
|
||||
O.show_message("\red [source] performs CPR on [target]!", 1)
|
||||
target << "\blue <b>You feel a breath of fresh air enter your lungs. It feels good.</b>"
|
||||
source << "\red Repeat at least every 7 seconds."
|
||||
target.cpr_time = 1
|
||||
if("dnainjector")
|
||||
var/obj/item/weapon/dnainjector/S = item
|
||||
if(S)
|
||||
|
||||
@@ -187,6 +187,10 @@
|
||||
var/word = pick("dizzy","woosey","faint")
|
||||
src << "\red You feel extremely [word]"
|
||||
if(0 to 122)
|
||||
// There currently is a strange bug here. If the mob is not below -100 health
|
||||
// when death() is called, apparently they will be just fine, and this way it'll
|
||||
// spam deathgasp. Adjusting toxloss ensures the mob will stay dead.
|
||||
toxloss += 300 // just to be safe!
|
||||
death()
|
||||
|
||||
|
||||
@@ -489,7 +493,7 @@
|
||||
domutcheck(src,null)
|
||||
emote("gasp")
|
||||
updatehealth()
|
||||
|
||||
|
||||
if(damage && organs.len)
|
||||
var/datum/organ/external/O = pick(organs)
|
||||
if(istype(O)) O.add_autopsy_data("Radiation Poisoning", damage)
|
||||
@@ -499,6 +503,7 @@
|
||||
if(istype(loc, /obj/machinery/atmospherics/unary/cryo_cell)) return
|
||||
|
||||
var/lung_ruptured = is_lung_ruptured()
|
||||
|
||||
if(lung_ruptured && prob(2))
|
||||
spawn emote("me", 1, "coughs up blood!")
|
||||
src.drip(10)
|
||||
@@ -527,7 +532,7 @@
|
||||
if(!breath)
|
||||
if(isobj(loc))
|
||||
var/obj/location_as_object = loc
|
||||
breath = location_as_object.handle_internal_lifeform(src, BREATH_VOLUME)
|
||||
breath = location_as_object.handle_internal_lifeform(src, BREATH_MOLES)
|
||||
else if(isturf(loc))
|
||||
var/breath_moles = 0
|
||||
/*if(environment.return_pressure() > ONE_ATMOSPHERE)
|
||||
@@ -538,6 +543,13 @@
|
||||
breath_moles = environment.total_moles()*BREATH_PERCENTAGE
|
||||
|
||||
breath = loc.remove_air(breath_moles)
|
||||
|
||||
|
||||
if(!lung_ruptured)
|
||||
if(!breath || breath.total_moles < BREATH_MOLES / 5 || breath.total_moles > BREATH_MOLES * 5)
|
||||
if(prob(5))
|
||||
rupture_lung()
|
||||
|
||||
// Handle chem smoke effect -- Doohl
|
||||
var/block = 0
|
||||
if(wear_mask)
|
||||
@@ -713,9 +725,6 @@
|
||||
apply_damage(HEAT_GAS_DAMAGE_LEVEL_3, BURN, "head", used_weapon = "Excessive Heat")
|
||||
fire_alert = max(fire_alert, 2)
|
||||
|
||||
if(oxyloss >= 50 && prob(oxyloss / 5))
|
||||
rupture_lung()
|
||||
|
||||
//Temporary fixes to the alerts.
|
||||
|
||||
return 1
|
||||
@@ -1480,7 +1489,7 @@
|
||||
if((mRemote in mutations) && remoteview_target)
|
||||
if(remoteview_target.stat==CONSCIOUS)
|
||||
isRemoteObserve = 1
|
||||
if(!isRemoteObserve && !client.adminobs)
|
||||
if(!isRemoteObserve && client && !client.adminobs)
|
||||
remoteview_target = null
|
||||
reset_view(null)
|
||||
return 1
|
||||
|
||||
@@ -551,7 +551,7 @@
|
||||
if (!( machine.check_eye(src) ))
|
||||
reset_view(null)
|
||||
else
|
||||
if(!client.adminobs)
|
||||
if(client && !client.adminobs)
|
||||
reset_view(null)
|
||||
|
||||
return 1
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
dna = new /datum/dna( null )
|
||||
dna.real_name = real_name
|
||||
dna.uni_identity = "00600200A00E0110148FC01300B009"
|
||||
dna.struc_enzymes = "0983E840344C39F4B059D5145FC5785DC6406A4BB8"
|
||||
dna.struc_enzymes = "43359156756131E13763334D1C369012032164D4FE4CD61544B6C03F251B6C60A42821D26BA3B0FD6"
|
||||
dna.unique_enzymes = md5(name)
|
||||
//////////blah
|
||||
var/gendervar
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/mob/living/Logout()
|
||||
..()
|
||||
if(!key && mind) //key and mind have become seperated.
|
||||
mind.active = 0 //This is to stop say, a mind.transfer_to call on a corpse causing a ghost to re-enter its body.
|
||||
if(!immune_to_ssd && sleeping < 2 && mind.active)
|
||||
sleeping = 2
|
||||
if (mind)
|
||||
if(!key) //key and mind have become seperated.
|
||||
mind.active = 0 //This is to stop say, a mind.transfer_to call on a corpse causing a ghost to re-enter its body.
|
||||
if(!immune_to_ssd && sleeping < 2 && mind.active)
|
||||
sleeping = 2
|
||||
|
||||
@@ -195,10 +195,13 @@
|
||||
m_type = 2
|
||||
|
||||
if("law")
|
||||
message = "<B>[src]</B> shows its legal authorization barcode."
|
||||
if (istype(module,/obj/item/weapon/robot_module/security))
|
||||
message = "<B>[src]</B> shows its legal authorization barcode."
|
||||
|
||||
playsound(src.loc, 'biamthelaw.ogg', 50, 0)
|
||||
m_type = 2
|
||||
playsound(src.loc, 'biamthelaw.ogg', 50, 0)
|
||||
m_type = 2
|
||||
else
|
||||
src << "You are not THE LAW, pal."
|
||||
else
|
||||
src << text("Invalid Emote: []", act)
|
||||
if ((message && src.stat == 0))
|
||||
|
||||
@@ -255,7 +255,7 @@
|
||||
if (!( src.machine.check_eye(src) ))
|
||||
src.reset_view(null)
|
||||
else
|
||||
if(!client.adminobs)
|
||||
if(client && !client.adminobs)
|
||||
reset_view(null)
|
||||
|
||||
return 1
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
|
||||
/obj/item/weapon/paper/Topic(href, href_list)
|
||||
..()
|
||||
if((usr.stat || usr.restrained()))
|
||||
if(!usr || (usr.stat || usr.restrained()))
|
||||
return
|
||||
|
||||
if(href_list["write"])
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
|
||||
|
||||
/obj/machinery/power/smes/proc/chargedisplay()
|
||||
return round(5.5*charge/capacity)
|
||||
return round(5.5*charge/(capacity ? capacity : 5e6))
|
||||
|
||||
#define SMESRATE 0.05 // rate of internal charge to external power
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ obj/item/weapon/gun/energy/laser/retro
|
||||
name = "laser tag gun"
|
||||
icon_state = "bluetag"
|
||||
desc = "Standard issue weapon of the Imperial Guard"
|
||||
projectile_type = "/obj/item/projectile/beam/bluetag"
|
||||
projectile_type = "/obj/item/projectile/beam/lastertag/blue"
|
||||
origin_tech = "combat=1;magnets=2"
|
||||
clumsy_check = 0
|
||||
var/charge_tick = 0
|
||||
@@ -127,7 +127,7 @@ obj/item/weapon/gun/energy/laser/retro
|
||||
name = "laser tag gun"
|
||||
icon_state = "redtag"
|
||||
desc = "Standard issue weapon of the Imperial Guard"
|
||||
projectile_type = "/obj/item/projectile/beam/redtag"
|
||||
projectile_type = "/obj/item/projectile/beam/lastertag/red"
|
||||
origin_tech = "combat=1;magnets=2"
|
||||
clumsy_check = 0
|
||||
var/charge_tick = 0
|
||||
|
||||
@@ -111,7 +111,7 @@ var/list/beam_master = list()
|
||||
|
||||
|
||||
|
||||
/obj/item/projectile/beam/bluetag
|
||||
/obj/item/projectile/beam/lastertag/blue
|
||||
name = "lasertag beam"
|
||||
icon_state = "bluelaser"
|
||||
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
||||
@@ -126,7 +126,7 @@ var/list/beam_master = list()
|
||||
M.Weaken(5)
|
||||
return 1
|
||||
|
||||
/obj/item/projectile/beam/redtag
|
||||
/obj/item/projectile/beam/lastertag/red
|
||||
name = "lasertag beam"
|
||||
icon_state = "laser"
|
||||
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
||||
@@ -141,7 +141,7 @@ var/list/beam_master = list()
|
||||
M.Weaken(5)
|
||||
return 1
|
||||
|
||||
/obj/item/projectile/beam/omnitag//A laser tag bolt that stuns EVERYONE
|
||||
/obj/item/projectile/beam/lastertag/omni//A laser tag bolt that stuns EVERYONE
|
||||
name = "lasertag beam"
|
||||
icon_state = "omnilaser"
|
||||
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
||||
|
||||
@@ -145,7 +145,8 @@
|
||||
|
||||
bullet_act(var/obj/item/projectile/Proj)
|
||||
if(istype(Proj ,/obj/item/projectile/beam)||istype(Proj,/obj/item/projectile/bullet))
|
||||
explode()
|
||||
if(!istype(Proj ,/obj/item/projectile/beam/lastertag) && !istype(Proj ,/obj/item/projectile/beam/practice) )
|
||||
explode()
|
||||
|
||||
blob_act()
|
||||
explode()
|
||||
|
||||
@@ -153,8 +153,6 @@
|
||||
if(istype(P,/obj/item/projectile/beam)) src.Artifact_Activate()
|
||||
else if(istype(P,/obj/item/projectile/ion)) src.Artifact_Activate()
|
||||
else if(istype(P,/obj/item/projectile/energy)) src.Artifact_Activate()
|
||||
else if(istype(P,/obj/item/projectile/beam/bluetag)) src.Artifact_Activate()
|
||||
else if(istype(P,/obj/item/projectile/beam/redtag)) src.Artifact_Activate()
|
||||
if (my_effect.trigger == "heat")
|
||||
if(istype(P,/obj/item/projectile/temp)) src.Artifact_Activate()
|
||||
|
||||
|
||||
@@ -221,7 +221,7 @@
|
||||
findarti++
|
||||
cur_artifact = A
|
||||
if (findarti == 1)
|
||||
if(cur_artifact.being_used)
|
||||
if(cur_artifact && cur_artifact.being_used)
|
||||
var/message = "<b>[src]</b> states, \"Cannot analyse. Excess energy drain is disrupting signal.\""
|
||||
src.visible_message(message, message)
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user