Merge pull request #565 from skull132/master

Skull's Things
This commit is contained in:
skull132
2015-05-31 16:37:31 +03:00
24 changed files with 238 additions and 54 deletions
+2
View File
@@ -1290,6 +1290,8 @@ var/global/floorIsLava = 0
if(2)
var/ref_mob = "\ref[M]"
return "<b>[key_name(C, link, name)](<A HREF='?_src_=holder;adminmoreinfo=[ref_mob]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=[ref_mob]'>PP</A>) (<A HREF='?_src_=vars;Vars=[ref_mob]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=[ref_mob]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=[ref_mob]'>JMP</A>) (<A HREF='?_src_=holder;check_antagonist=1'>CA</A>)</b>"
if(3)
return "<b>[key_name(C, link, name)](<A HREF='?_src_=holder;adminmoreinfo=\ref[M]'>?</A>) (<A HREF='?_src_=holder;admindibs=\ref[M]'>DIBS</A>) (<A HREF='?_src_=holder;adminplayeropts=\ref[M]'>PP</A>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[M]'>JMP</A>)</b>"
+20
View File
@@ -1527,6 +1527,9 @@
var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null
//so that we alert people with certain cartidges with a PDA message.
alertFaxes()
for(var/obj/machinery/faxmachine/F in machines)
if(! (F.stat & (BROKEN|NOPOWER) ) )
@@ -2816,4 +2819,21 @@
var/playerckey = href_list["warnsearchckey"]
warning_panel(adminckey, playerckey)
return
else if(href_list["admindibs"])
if(!check_rights(R_ADMIN|R_MOD)) return
var/mob/M = locate(href_list["admindibs"])
if(M.client.adminhelped == 2)
log_admin("[key_name(usr)] called dibs on [key_name(M)]'s adminhelp!")
message_admins("[key_name_admin(usr)] has called dibs on [key_name_admin(M)]'s adminhelp!")
message_mods("[key_name_admin(usr)] has called dibs on [key_name_admin(M)]'s adminhelp!")
usr << "<font color=blue><b>You have taken over [key_name_admin(M)]'s adminhelp.</b></font>"
usr << "[get_options_bar(M, 2, 1, 1)]"
M << "<font color=red><b>Your adminhelp will be tended to [usr.client.holder.fakekey ? "shortly" : "by [key_name(usr, 0, 0)]"]. Please allow the staff member a minute or two to type up a response.</b></font>"
M.client.adminhelped = 1
else
usr << "<font color=red><b>The adminhelp has already been claimed.</b></font>"
return
+8 -2
View File
@@ -18,7 +18,13 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
if(src.handle_spam_prevention(msg,MUTE_ADMINHELP))
return
adminhelped = 1 //Determines if they get the message to reply by clicking the name.
adminhelped = 2 //Determines if they get the message to reply by clicking the name.
/*A wee bit of an update here: we're using the following table for adminhelped values:
2 - Adminhelp has not been claimed by anyone.
1 - Adminhelp has been claimed, initial message has not been sent.
0 - Adminhelp has been claimed, initial message has been sent.
*/
/**src.verbs -= /client/verb/adminhelp
@@ -91,7 +97,7 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
if(!mob) return //this doesn't happen
var/ref_mob = "\ref[mob]"
msg = "\blue <b><font color=red>HELP: </font>[get_options_bar(mob, 2, 1, 1)][ai_found ? " (<A HREF='?_src_=holder;adminchecklaws=[ref_mob]'>CL</A>)" : ""]:</b> [msg]"
msg = "\blue <b><font color=red>HELP: </font>[get_options_bar(mob, 3, 1, 1)][ai_found ? " (<A HREF='?_src_=holder;adminchecklaws=[ref_mob]'>CL</A>)" : ""]:</b> [msg]"
//send this msg to all admins
var/admin_number_present = 0
+3
View File
@@ -41,6 +41,9 @@
/mob/living/proc/get_scooped(var/mob/living/carbon/grabber)
if(!holder_type)
return
if(buckled)
grabber << "Perhaps you should unbuckle [src] first?"
return
var/obj/item/weapon/holder/H = new holder_type(loc)
src.loc = H
H.name = loc.name
+3 -3
View File
@@ -149,8 +149,6 @@
name = "lungs"
parent_organ = "chest"
removed_type = /obj/item/organ/lungs
min_bruised_damage = 15
min_broken_damage = 20
process()
..()
@@ -164,7 +162,9 @@
owner.drip(10)
if(prob(4))
spawn owner.emote("me", 1, "gasps for air!")
owner.losebreath += 15
owner.losebreath += 6
if(is_broken())
owner.losebreath +=5
/datum/organ/internal/liver
name = "liver"
+12 -9
View File
@@ -9,6 +9,8 @@
idle_power_usage = 0
active_power_usage = 0
interact_offline = 1
/obj/machinery/power/Del()
disconnect_from_network()
..()
@@ -72,16 +74,17 @@
/obj/machinery/proc/power_change(var/area/master_area = null) // called whenever the power settings of the containing area change
// by default, check equipment channel & set flag
// can override if needed
var/has_power
if (master_area)
has_power = master_area.powered(power_channel)
else
has_power = powered(power_channel)
if(has_power)
// var/has_power
// if (master_area)
// has_power = master_area.powered(power_channel)
// else
// has_power = powered(power_channel)
//
if(powered(power_channel))
stat &= ~NOPOWER
else
stat |= NOPOWER
return
// the powernet datum
// each contiguous network of cables & nodes
@@ -270,8 +273,8 @@
//No animations will be performed by this proc.
/proc/electrocute_mob(mob/living/carbon/M as mob, var/power_source, var/obj/source, var/siemens_coeff = 1.0)
if(istype(M.loc,/obj/mecha)) return 0 //feckin mechs are dumb
//This is for performance optimization only.
//This is for performance optimization only.
//DO NOT modify siemens_coeff here. That is checked in human/electrocute_act()
if(istype(M,/mob/living/carbon/human))
var/mob/living/carbon/human/H = M
@@ -219,7 +219,7 @@
..()
reagents.add_reagent("tea", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
src.pixel_y = rand(0, 10)
/obj/item/weapon/reagent_containers/food/drinks/ice
name = "Ice Cup"
@@ -11,7 +11,12 @@
for (var/obj/item/weapon/cell/D in R.contents)
D.charge += rand() * 100 + 50
R << "\blue SYSTEM ALERT: Large energy boost detected!"
return 1
if(ishuman(user))
var/mob/living/carbon/human/H = user
if(H.species.flags & IS_SYNTHETIC)
H.nutrition += rand() * 100 + 50
H << "\blue Your batteries gain a quick boost of energy!"
return 1
/datum/artifact_effect/cellcharge/DoEffectAura()
if(holder)
@@ -24,6 +29,10 @@
for (var/obj/item/weapon/cell/D in M.contents)
D.charge += 25
M << "\blue SYSTEM ALERT: Energy boost detected!"
for (var/mob/living/carbon/human/H in range(effectrange,holder))
if(H.species.flags & IS_SYNTHETIC)
H.nutrition += 25
H << "\blue Your batteries gain a quick boost of energy!"
return 1
/datum/artifact_effect/cellcharge/DoEffectPulse()
@@ -37,4 +46,8 @@
for (var/obj/item/weapon/cell/D in M.contents)
D.charge += rand() * 100
M << "\blue SYSTEM ALERT: Energy boost detected!"
for (var/mob/living/carbon/human/H in range(effectrange,holder))
if(H.species.flags & IS_SYNTHETIC)
H.nutrition += rand() * 100
H << "\blue Your batteries gain a quick boost of energy!"
return 1
@@ -11,8 +11,11 @@
for (var/obj/item/weapon/cell/D in R.contents)
D.charge = max(D.charge - rand() * 100, 0)
R << "\blue SYSTEM ALERT: Energy drain detected!"
return 1
if(ishuman(user))
var/mob/living/carbon/human/H = user
if(H.species.flags & IS_SYNTHETIC)
H.nutrition += rand() * 100 + 50
H << "\red You feel your batteries draining."
return 1
/datum/artifact_effect/celldrain/DoEffectAura()
@@ -26,6 +29,10 @@
for (var/obj/item/weapon/cell/D in M.contents)
D.charge = max(D.charge - 50,0)
M << "\red SYSTEM ALERT: Energy drain detected!"
for (var/mob/living/carbon/human/H in range(effectrange,holder))
if(H.species.flags & IS_SYNTHETIC)
H.nutrition -= 25
H << "\red You feel your batteries draining."
return 1
/datum/artifact_effect/celldrain/DoEffectPulse()
@@ -39,4 +46,8 @@
for (var/obj/item/weapon/cell/D in M.contents)
D.charge = max(D.charge - rand() * 150,0)
M << "\red SYSTEM ALERT: Energy drain detected!"
for (var/mob/living/carbon/human/H in range(effectrange,holder))
if(H.species.flags & IS_SYNTHETIC)
H.nutrition -= rand() * 100
H << "\red You feel your batteries draining."
return 1
@@ -15,7 +15,10 @@
/datum/artifact_effect/dnaswitch/DoEffectTouch(var/mob/toucher)
var/weakness = GetAnomalySusceptibility(toucher)
if(ishuman(toucher) && prob(weakness * 100))
toucher << pick("\green You feel a little different.",\
var/mob/living/carbon/human/H = toucher
if(H.species.flags & IS_SYNTHETIC)
return 1
H << pick("\green You feel a little different.",\
"\green You feel very strange.",\
"\green Your stomach churns.",\
"\green Your skin feels loose.",\
@@ -23,15 +26,17 @@
"\green You feel a tingling sensation in your chest.",\
"\green Your entire body vibrates.")
if(prob(75))
scramble(1, toucher, weakness * severity)
scramble(1, H, weakness * severity)
else
scramble(0, toucher, weakness * severity)
scramble(0, H, weakness * severity)
return 1
/datum/artifact_effect/dnaswitch/DoEffectAura()
if(holder)
for(var/mob/living/carbon/human/H in range(src.effectrange,holder))
var/weakness = GetAnomalySusceptibility(H)
if(H.species.flags & IS_SYNTHETIC)
return 1
if(prob(weakness * 100))
if(prob(30))
H << pick("\green You feel a little different.",\
@@ -50,6 +55,8 @@
if(holder)
for(var/mob/living/carbon/human/H in range(200, holder))
var/weakness = GetAnomalySusceptibility(H)
if(H.species.flags & IS_SYNTHETIC)
return 1
if(prob(weakness * 100))
if(prob(75))
H << pick("\green You feel a little different.",\
@@ -13,6 +13,8 @@
if(ishuman(toucher))
var/mob/living/carbon/human/H = toucher
if(H.species.flags & IS_SYNTHETIC)
return 1
for(var/datum/organ/external/affecting in H.organs)
if(affecting && istype(affecting))
affecting.heal_damage(25 * weakness, 25 * weakness)
@@ -8,6 +8,10 @@
var/weakness = GetAnomalySusceptibility(toucher)
if(iscarbon(toucher) && prob(weakness * 100))
var/mob/living/carbon/C = toucher
if(ishuman(C))
var/mob/living/carbon/human/H = C
if(H.species.flags & IS_SYNTHETIC)
return 1
C << "\red A painful discharge of energy strikes you!"
C.adjustOxyLoss(rand(5,25) * weakness)
C.adjustToxLoss(rand(5,25) * weakness)
@@ -24,6 +28,10 @@
for (var/mob/living/carbon/C in range(src.effectrange,holder))
var/weakness = GetAnomalySusceptibility(C)
if(prob(weakness * 100))
if(ishuman(C))
var/mob/living/carbon/human/H = C
if(H.species.flags & IS_SYNTHETIC)
return 1
if(prob(10))
C << "\red You feel a painful force radiating from something nearby."
C.adjustBruteLoss(1 * weakness)
@@ -38,6 +46,10 @@
for (var/mob/living/carbon/C in range(effectrange, holder))
var/weakness = GetAnomalySusceptibility(C)
if(prob(weakness * 100))
if(ishuman(C))
var/mob/living/carbon/human/H = C
if(H.species.flags & IS_SYNTHETIC)
return 1
C << "\red A wave of painful energy strikes you!"
C.adjustBruteLoss(3 * weakness)
C.adjustFireLoss(3 * weakness)
@@ -14,6 +14,13 @@
R.adjustBruteLoss(rand(-10,-30))
R.adjustFireLoss(rand(-10,-30))
return 1
if (ishuman(user))
var/mob/living/carbon/human/H = user
if(H.species.flags & IS_SYNTHETIC)
H << "\blue The damage to your body appears to be mending itself."
H.adjustBruteLoss(rand(-10,-30))
H.adjustFireLoss(rand(-10,-30))
return 1
/datum/artifact_effect/roboheal/DoEffectAura()
if(holder)
@@ -23,6 +30,12 @@
M.adjustBruteLoss(-1)
M.adjustFireLoss(-1)
M.updatehealth()
for (var/mob/living/carbon/human/H in range(src.effectrange,holder))
if(H.species.flags & IS_SYNTHETIC)
H << "\blue The damage to your body appears to be mending itself."
H.adjustBruteLoss(-1)
H.adjustFireLoss(-1)
H.updatehealth()
return 1
/datum/artifact_effect/roboheal/DoEffectPulse()
@@ -32,4 +45,10 @@
M.adjustBruteLoss(-10)
M.adjustFireLoss(-10)
M.updatehealth()
for (var/mob/living/carbon/human/H in range(src.effectrange,holder))
if(H.species.flags & IS_SYNTHETIC)
H << "\blue The damage to your body appears to be mending itself."
H.adjustBruteLoss(-10)
H.adjustFireLoss(-10)
H.updatehealth()
return 1
@@ -14,6 +14,13 @@
R.adjustBruteLoss(rand(10,50))
R.adjustFireLoss(rand(10,50))
return 1
if (ishuman(user))
var/mob/living/carbon/human/H = user
if(H.species.flags & IS_SYNTHETIC)
H << "\red The metal chassis of your body starts to crumple and heat up!"
H.adjustBruteLoss(rand(10,50))
H.adjustFireLoss(rand(10, 50))
return 1
/datum/artifact_effect/robohurt/DoEffectAura()
if(holder)
@@ -22,6 +29,12 @@
M.adjustBruteLoss(1)
M.adjustFireLoss(1)
M.updatehealth()
for (var/mob/living/carbon/human/H in range(src.effectrange,holder))
if(H.species.flags & IS_SYNTHETIC)
if(prob(10)) H << "\red Your screen flickers and your servos buzz."
H.adjustBruteLoss(1)
H.adjustFireLoss(1)
H.updatehealth()
return 1
/datum/artifact_effect/robohurt/DoEffectPulse()
@@ -31,4 +44,10 @@
M.adjustBruteLoss(10)
M.adjustFireLoss(10)
M.updatehealth()
for (var/mob/living/carbon/human/H in range(src.effectrange,holder))
if(H.species.flags & IS_SYNTHETIC)
H << "\red Your screen flickers and your servos buzz."
H.adjustBruteLoss(10)
H.adjustFireLoss(10)
H.updatehealth()
return 1
@@ -12,7 +12,10 @@
var/weakness = GetAnomalySusceptibility(toucher)
if(ishuman(toucher) && prob(weakness * 100))
var/mob/living/carbon/human/H = toucher
H << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.")
if(H.species.flags & IS_SYNTHETIC)
H << pick("\blue Your core processor begins to slow down.","\blue Your sensory input begins to slow down.")
else
H << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.")
H.drowsyness = min(H.drowsyness + rand(5,25) * weakness, 50 * weakness)
H.eye_blurry = min(H.eye_blurry + rand(1,3) * weakness, 50 * weakness)
return 1
@@ -26,7 +29,10 @@
var/weakness = GetAnomalySusceptibility(H)
if(prob(weakness * 100))
if(prob(10))
H << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.")
if(H.species.flags & IS_SYNTHETIC)
H << pick("\blue Your core processor begins to slow down.","\blue Your sensory input begins to slow down.")
else
H << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.")
H.drowsyness = min(H.drowsyness + 1 * weakness, 25 * weakness)
H.eye_blurry = min(H.eye_blurry + 1 * weakness, 25 * weakness)
for (var/mob/living/silicon/robot/R in range(src.effectrange,holder))
@@ -36,9 +42,13 @@
/datum/artifact_effect/sleepy/DoEffectPulse()
if(holder)
for(var/mob/living/carbon/human/H in range(src.effectrange, holder))
var/weakness = GetAnomalySusceptibility(H)
if(prob(weakness * 100))
H << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.")
if(H.species.flags & IS_SYNTHETIC)
H << pick("\blue Your core processor begins to slow down.","\blue Your sensory input begins to slow down.")
else
H << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.")
H.drowsyness = min(H.drowsyness + rand(5,15) * weakness, 50 * weakness)
H.eye_blurry = min(H.eye_blurry + rand(5,15) * weakness, 50 * weakness)
for (var/mob/living/silicon/robot/R in range(src.effectrange,holder))
@@ -70,6 +70,11 @@
S.sample_item(src, user)
return
else if(istype(W,/obj/item/weapon/hand_labeler/))
var/obj/item/weapon/hand_labeler/HL = W
HL.afterattack(src, user)
return
..()
if(prob(33))
src.visible_message("<span class='warning'>[src] crumbles away, leaving some dust and gravel behind.</span>")