This commit is contained in:
caelaislinn
2012-06-30 01:18:33 +10:00
27 changed files with 8804 additions and 8718 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
school = "transmutation"
charge_max = 600
clothes_req = 0
clothes_req = 1
invocation = "GIN'YU CAPAN"
invocation_type = "whisper"
range = 1
+1
View File
@@ -9,5 +9,6 @@
canmove = 0
blinded = 0
anchored = 1 // don't get pushed around
universal_speak = 1 //Ghosts are multi-lingual!
var/mob/corpse = null // observer mode
var/datum/hud/living/carbon/hud = null // hud
+1 -1
View File
@@ -164,7 +164,7 @@
if ("7")
//feedback_add_details("wizard_spell_learned","MT") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells
usr.spell_list += new /obj/effect/proc_holder/spell/targeted/mind_transfer(usr)
src.temp = "This spell allows the user to switch bodies with a target. Careful to not lose your memory in the process."
src.temp = "This spell allows the user to switch bodies with a target, and requires full wizard garb. Careful to not lose your memory in the process."
if ("8")
//feedback_add_details("wizard_spell_learned","FW") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells
usr.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall(usr)
+47 -10
View File
@@ -209,6 +209,9 @@
/obj/machinery/body_scanconsole/attack_hand(user as mob)
if(..())
return
if(!ishuman(connected.occupant))
user << "\red This device can only scan compatible lifeforms."
return
var/dat
if (src.delete && src.temphtml) //Window in buffer but its just simple message, so nothing
src.delete = src.delete
@@ -216,7 +219,7 @@
dat = text("[]<BR><BR><A href='?src=\ref[];clear=1'>Main Menu</A>", src.temphtml, src)
else
if (src.connected) //Is something connected?
var/mob/living/carbon/occupant = src.connected.occupant
var/mob/living/carbon/human/occupant = src.connected.occupant
dat = "<font color='blue'><B>Occupant Statistics:</B></FONT><BR>" //Blah obvious
if (istype(occupant)) //is there REALLY someone in there?
var/t1
@@ -231,34 +234,68 @@
dat += "<font color='red'>This device can only scan human occupants.</FONT>"
else
dat += text("[]\tHealth %: [] ([])</FONT><BR>", (occupant.health > 50 ? "<font color='blue'>" : "<font color='red'>"), occupant.health, t1)
dat += text("<font color='green'>Radiation Level: []%</FONT><BR><BR>", occupant.radiation)
dat += "<table border='1'>"
dat += text("[]\t-Brute Damage %: []</FONT><BR>", (occupant.getBruteLoss() < 60 ? "<font color='blue'>" : "<font color='red'>"), occupant.getBruteLoss())
dat += text("[]\t-Respiratory Damage %: []</FONT><BR>", (occupant.getOxyLoss() < 60 ? "<font color='blue'>" : "<font color='red'>"), occupant.getOxyLoss())
dat += text("[]\t-Toxin Content %: []</FONT><BR>", (occupant.getToxLoss() < 60 ? "<font color='blue'>" : "<font color='red'>"), occupant.getToxLoss())
dat += text("[]\t-Burn Severity %: []</FONT><BR><BR>", (occupant.getFireLoss() < 60 ? "<font color='blue'>" : "<font color='red'>"), occupant.getFireLoss())
dat += text("[]\tRadiation Level %: []</FONT><BR>", (occupant.radiation < 10 ?"<font color='blue'>" : "<font color='red'>"), occupant.radiation)
dat += text("[]\tGenetic Tissue Damage %: []</FONT><BR>", (occupant.getCloneLoss() < 1 ?"<font color='blue'>" : "<font color='red'>"), occupant.getCloneLoss())
dat += text("[]\tApprox. Brain Damage %: []</FONT><BR>", (occupant.getBrainLoss() < 1 ?"<font color='blue'>" : "<font color='red'>"), occupant.getBrainLoss())
dat += text("Paralysis Summary %: [] ([] seconds left!)<BR>", occupant.paralysis, round(occupant.paralysis / 4))
dat += text("Body Temperature: [occupant.bodytemperature-T0C]&deg;C ([occupant.bodytemperature*1.8-459.67]&deg;F)<BR><HR>")
if(occupant.vessel)
var/blood_volume = round(occupant.vessel.get_reagent_amount("blood"))
var/blood_percent = blood_volume / 560
blood_percent *= 100
dat += text("[]\tBlood Level %: [] ([blood_volume] units)</FONT><BR>", (blood_volume > 448 ?"<font color='blue'>" : "<font color='red'>"), blood_volume)
if(occupant.reagents)
dat += text("Inaprovaline units: [] units<BR>", occupant.reagents.get_reagent_amount("inaprovaline"))
dat += text("Soporific (Sleep Toxin): [] units<BR>", occupant.reagents.get_reagent_amount("stoxin"))
dat += text("[]\tDermaline: [] units</FONT><BR>", (occupant.reagents.get_reagent_amount("dermaline") < 30 ? "<font color='black'>" : "<font color='red'>"), occupant.reagents.get_reagent_amount("dermaline"))
dat += text("[]\tBicaridine: [] units<BR>", (occupant.reagents.get_reagent_amount("bicaridine") < 30 ? "<font color='black'>" : "<font color='red'>"), occupant.reagents.get_reagent_amount("bicaridine"))
dat += text("[]\tDexalin: [] units<BR>", (occupant.reagents.get_reagent_amount("dexalin") < 30 ? "<font color='black'>" : "<font color='red'>"), occupant.reagents.get_reagent_amount("dexalin"))
for(var/datum/disease/D in occupant.viruses)
if(!D.hidden[SCANNER])
dat += text("<font color='red'><B>Warning: [D.form] Detected</B>\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]</FONT><BR>")
if (occupant.virus2 || occupant.reagents.reagent_list.len > 0)
dat += text("<font color='red'>Warning: Foreign substances detected in bloodstream.</FONT>")
dat += "<HR><table border='1'>"
dat += "<tr>"
dat += "<th>Organ</th>"
dat += "<th>Burn Damage</th>"
dat += "<th>Brute Damage</th>"
dat += "<th>Other Wounds</th>"
dat += "</tr>"
for(var/name in occupant:organs)
var/datum/organ/external/e = occupant:organs[name]
for(var/name in occupant.organs)
var/datum/organ/external/e = occupant.organs[name]
dat += "<tr>"
var/AN = ""
var/open = ""
var/infected = ""
var/imp = ""
var/bled = ""
var/splint = ""
if(e.status & SPLINTED)
splint = "Splinted:"
if(e.status & BLEEDING)
bled = "Bleeding:"
if(e.status & BROKEN)
AN = "[e.broken_description]:"
if(e.open)
open = "OPEN:"
open = "Open:"
if(e.implant && e.implant.len)
imp = "IMPLANT:"
imp = "Implanted:"
if(!AN && !open && !infected & !imp)
AN = "None"
if(!e.status & DESTROYED)
dat += "<td>[e.display_name]</td><td>[e.burn_dam]</td><td>[e.brute_dam]</td><td>[bled][AN][open][infected][imp]</td>"
if(!(e.status & DESTROYED))
dat += "<td>[e.display_name]</td><td>[e.burn_dam]</td><td>[e.brute_dam]</td><td>[bled][AN][splint][open][infected][imp]</td>"
else
dat += "<td>[e.display_name]</td><td>-</td><td>-</td><td>Not Found</td>"
dat += "</tr>"
@@ -268,5 +305,5 @@
else
dat = "<font color='red'> Error: No Body Scanner connected.</font>"
dat += text("<BR><BR><A href='?src=\ref[];mach_close=scanconsole'>Close</A>", user)
user << browse(dat, "window=scanconsole;size=500x500")
user << browse(dat, "window=scanconsole;size=430x600")
return
+2
View File
@@ -185,6 +185,8 @@
new/obj/item/nutrient/rh(src.loc)
new/obj/item/nutrient/rh(src.loc)
new/obj/item/nutrient/rh(src.loc)
if("wallet")
new/obj/item/weapon/storage/wallet(src.loc)
if("gloves")
new/obj/item/clothing/gloves/botanic_leather(src.loc)
if("tbelt")
+1 -1
View File
@@ -474,7 +474,7 @@
temp = "Updating local R&D database..."
src.updateUsrDialog()
sleep(30) //only sleep if called by user
for(var/obj/machinery/computer/rdconsole/RDC in get_area(src))
for(var/obj/machinery/computer/rdconsole/RDC in oview(7)) //get_area(src)) is broken due to ULTRALIIIIIGHT
if(!RDC.sync)
continue
for(var/datum/tech/T in RDC.files.known_tech)
+1 -1
View File
@@ -192,7 +192,7 @@
return 0
var/mob/M = loc
if(!M.canmove)
if(!M.canmove && (!M.buckled && M.handcuffed))
return 0
if((src in M.contents) || ( istype(loc, /turf) && in_range(src, M) ) )
+2 -2
View File
@@ -114,14 +114,14 @@ MASS SPECTROMETER
else if (M.getBrainLoss() >= 10)
user.show_message(text("\red Significant brain damage detected. Subject may have had a concussion."), 1)
if (M.virus2 || M.reagents.reagent_list.len > 0)
user.show_message(text("\red Unknown substance detected in blood."), 1)
user.show_message(text("\red Foreign substances detected in bloodstream."), 1)
if(ishuman(M))
var/mob/living/carbon/human/H = M
for(var/name in H.organs)
var/datum/organ/external/e = H.organs[name]
var/limb = e.getDisplayName()
if(e.status & BROKEN)
if(((e.name == "l_arm") || (e.name == "r_arm") || (e.name == "l_leg") || (e.name == "r_leg")) && (!e.status & SPLINTED))
if(((e.name == "l_arm") || (e.name == "r_arm") || (e.name == "l_leg") || (e.name == "r_leg")) && (!(e.status & SPLINTED)))
user << "\red Unsecured fracture in subject [limb]. Splinting recommended for transport."
for(var/name in H.organs)
var/datum/organ/external/e = H.organs[name]
@@ -23,6 +23,9 @@
if (recording)
var/ending = copytext(msg, length(msg))
src.timestamp+= src.timerecorded
if (issilicon(M))
src.storedinfo += "\[[time2text(src.timerecorded*10,"hh:mm:ss")]\] [M.name] states, \"[msg]\""
return
if (M.stuttering)
src.storedinfo += "\[[time2text(src.timerecorded*10,"hh:mm:ss")]\] [M.name] stammers, \"[msg]\""
return
+1 -1
View File
@@ -139,7 +139,7 @@
var/direction = get_dir(src,target)
if(usr.buckled && isobj(usr.buckled) && !usr.buckled.anchored )
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/office) && !usr.buckled.anchored ) //Making only office chairs fire-extinguishable. Because NO FUN ALLOWED
spawn(0)
var/obj/B = usr.buckled
var/movementdirection = turn(direction,180)
+3 -3
View File
@@ -7,10 +7,10 @@ MEDICAL
/obj/item/stack/medical/attack(mob/living/carbon/M as mob, mob/user as mob)
var/heal_cap = 0
var/heal_cap = 50
if(istype(src, /obj/item/stack/medical/advanced))
heal_cap = -50
heal_cap = 0
if (M.stat == 2)
var/t_him = "it"
@@ -51,7 +51,7 @@ MEDICAL
if(!((affecting.name == "l_arm") || (affecting.name == "r_arm") || (affecting.name == "l_leg") || (affecting.name == "r_leg")))
user << "\red You can't apply a splint there!"
return
if(!affecting.status & BROKEN)
if(!(affecting.status & BROKEN))
user << "\red [M]'s [limb] isn't broken!"
return
if(affecting.status & SPLINTED)
+2 -2
View File
@@ -60,7 +60,7 @@
..()
return
if(user.a_intent != "help")
if(user.a_intent == "hurt")
if(!..()) return
H.apply_effect(5, WEAKEN, 0)
H.visible_message("<span class='danger'>[M] has been beaten with the [src] by [user]!</span>")
@@ -77,7 +77,7 @@
H.lastattacker = user
charges--
H.visible_message("<span class='danger'>[M] has been stunned with the [src] by [user]!</span>")
playsound(src.loc, "sparks", 75, 1, -1)
playsound(src.loc, 'Egloves.ogg', 50, 1, -1)
if(charges < 1)
status = 0
update_icon()
+1 -1
View File
@@ -9,7 +9,7 @@
s["enter"] = enter_allowed
s["vote"] = config.allow_vote_mode
s["ai"] = config.allow_ai
s["host"] = host ? host : null
s["host"] = config.hostedby
s["players"] = list()
s["admins"] = 0
var/n = 0
+4
View File
@@ -26,6 +26,10 @@
user << "You are wearing that."
return
if(O in user) //TEMPORARY FIX. It seems trying to put items that are in your hand in the bags breaks them horribly. - Erthilo
user << "You'll need to put the evidence down to properly bag it."
return
if(contents.len)
user << "The [src] already has something inside it."
return ..()
+1 -1
View File
@@ -1448,7 +1448,7 @@ var/global/BSACooldown = 0
special_role_description = "Role: <i>Mind datum missing</i> Antagonist: <i>Mind datum missing</i>; Has been rev: <i>Mind datum missing</i>;"
//Health
health_description = "Oxy: [M.oxyloss] - Tox: [M.toxloss] - Fire: [M.fireloss] - Brute: [M.bruteloss] - Clone: [M.cloneloss] - Brain: [M.brainloss]"
health_description = "Oxy: [M.getOxyLoss()] - Tox: [M.getToxLoss()] - Fire: [M:getFireLoss()] - Brute: [M:getBruteLoss()] - Clone: [M.getCloneLoss()] - Brain: [M.getBrainLoss()]"
src.owner << "<b>Info about [M.name]:</b> "
src.owner << "Mob type = [M.type]; Damage = [health_description]"
+3 -2
View File
@@ -878,8 +878,9 @@
verbs -= /client/proc/hide_most_verbs
verbs += /client/proc/show_verbs
verbs += /client/proc/deadchat //toggles deadchat
verbs += /obj/admins/proc/toggleooc //toggle ooc
if(holder.level > 0)
verbs += /client/proc/deadchat //toggles deadchat
verbs += /obj/admins/proc/toggleooc //toggle ooc
verbs += /client/proc/cmd_admin_say//asay
verbs += /client/proc/cmd_mod_say//asay
// feedback_add_details("admin_verb","TAVVH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+1 -1
View File
@@ -947,7 +947,7 @@
emote("scream")
else if(E.name == "l_leg" || E.name == "l_foot" \
|| E.name == "r_leg" || E.name == "r_foot" && !lying)
if(!E.status & SPLINTED)
if(!(E.status & SPLINTED))
leg_tally-- // let it fail even if just foot&leg
// can't stand
if(leg_tally == 0 && !paralysis && !(lying || resting))
@@ -450,7 +450,7 @@
emote("scream")
else if(E.name == "l_leg" || E.name == "l_foot" \
|| E.name == "r_leg" || E.name == "r_foot" && !lying)
if(!E.status & SPLINTED)
if(!(E.status & SPLINTED))
leg_tally-- // let it fail even if just foot&leg
// can't stand
+6
View File
@@ -70,6 +70,12 @@
M.show_message(rendered_a, 2)
else//If they do not.
M.show_message(rendered_b, 2)
for (var/obj/item/device/taperecorder/O in range(T, 7)) //Puree hack for tap recorder
spawn (0)
if(O && !istype(O.loc, /obj/item/weapon/storage))
O.hear_talk(src, message_a)
/*Radios "filter out" this conversation channel so we don't need to account for them.
This is another way of saying that we won't bother dealing with them.*/
else
+1 -1
View File
@@ -687,7 +687,7 @@
if(H.health - H.halloss <= config.health_threshold_crit)
for(var/name in H.organs)
var/datum/organ/external/e = H.organs[name]
if((H.lying) && ((e.status & BROKEN && !e.status & SPLINTED) || e.status & BLEEDING) && (H.getBruteLoss() + H.getFireLoss() >= 100))
if((H.lying) && ((e.status & BROKEN && !(e.status & SPLINTED)) || e.status & BLEEDING) && (H.getBruteLoss() + H.getFireLoss() >= 100))
return 1
break
return 0
@@ -747,17 +747,23 @@ datum/preferences
if("input")
var/list/new_species = list("Human")
var/prev_species = species
var/whitelisted = 0
if(config.usealienwhitelist) //If we're using the whitelist, make sure to check it!
if(is_alien_whitelisted(user, "Soghun")) //Check for Soghun and admins
new_species += "Soghun"
whitelisted = 1
if(is_alien_whitelisted(user, "Tajaran")) //Check for Tajaran and admins
new_species += "Tajaran"
whitelisted = 1
if(is_alien_whitelisted(user, "Skrell")) //Check for Skrell and admins
new_species += "Skrell"
whitelisted = 1
else //Not using the whitelist? Aliens for everyone!
new_species += "Tajaran"
new_species += "Soghun"
new_species += "Skrell"
if(!whitelisted)
alert(user, "You cannot change your species as you need to be whitelisted. If you wish to be whitelisted contact an admin in-game, on the forums, or on IRC.")
species = input("Please select a species", "Character Generation", null) in new_species
if(prev_species != species)
h_style = "Bald" //Try not to carry face/head hair over.
+4 -4
View File
@@ -55,6 +55,10 @@
if(!text)
return "says, \"...\""; //not the best solution, but it will stop a large number of runtimes. The cause is somewhere in the Tcomms code
var/ending = copytext(text, length(text))
if (is_speaking_soghun)
return "hisses, \"[text]\"";
if (is_speaking_skrell)
return "warbles, \"[text]\"";
if (src.disease_symptoms & DISEASE_HOARSE)
return "rasps, \"[text]\"";
if (src.stuttering)
@@ -67,10 +71,6 @@
return "asks, \"[text]\"";
if (ending == "!")
return "exclaims, \"[text]\"";
if (is_speaking_soghun)
return "hisses, \"[text]\"";
if (is_speaking_skrell)
return "warbles, \"[text]\"";
return "says, \"[text]\"";
+1 -1
View File
@@ -127,7 +127,7 @@
var/oldlum = luminosity
//luminosity = on * brightness
ul_SetLuminosity(on * brightness, on * brightness, fitting != "bulb" ? on * brightness : max(on * (brightness - 2), 0) ) // *DAL*
ul_SetLuminosity(on * brightness, on * brightness, fitting != "bulb" ? on * brightness : max(on * (brightness - 1), 0) ) // *DAL*
// if the state changed, inc the switching counter
if(oldlum != luminosity)