This commit is contained in:
RavingManiac
2012-11-24 01:26:19 +08:00
36 changed files with 106 additions and 76 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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))

View File

@@ -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

View File

@@ -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"])

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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()

View File

@@ -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()

View File

@@ -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