Merge branch 'master' of git://github.com/Baystation12/Baystation12

This commit is contained in:
SkyMarshal
2012-09-06 15:44:21 -07:00
89 changed files with 11507 additions and 10718 deletions

View File

@@ -3585,13 +3585,13 @@ var/list/grind_products = list()
volume = 100
/obj/item/weapon/reagent_containers/food/drinks/flask
name = "Captain's Flask"
name = "captain\'s flask"
desc = "A metal flask belonging to the captain"
icon_state = "flask"
volume = 60
/obj/item/weapon/reagent_containers/food/drinks/dflask
name = "Detective's Flask"
name = "detective\'s flask"
desc = "A well used metal flask with the detective's name etched into it."
icon_state = "dflask"
volume = 60

View File

@@ -710,3 +710,100 @@ obj/item/clothing/suit/justice
icon_state = "creamsuit"
item_state = "creamsuit"
flags = FPRINT | TABLEPASS
/obj/item/clothing/under/wedding/bride_orange
name = "orange wedding dress"
desc = "A big and puffy orange dress."
icon_state = "bride_orange"
item_state = "creamsuit"
color = "bride_orange"
flags_inv = HIDESHOES
/obj/item/clothing/under/wedding/suit_white
name = "white suit"
desc = "A fabulous white suit with orange shirt."
icon_state = "white_suit"
item_state = "creamsuit"
color = "white_suit"
/obj/item/clothing/under/wedding/bridesmaid
name = "yellow dress"
desc = "A big and puffy orange dress."
icon_state = "bridesmaid"
item_state = "creamsuit"
color = "bridesmaid"
/obj/item/clothing/under/wedding/firedress
name = "flaming hot black dress"
desc = "A small black dress with blue flames print on it."
icon_state = "dress_fire"
color = "dress_fire"
/obj/item/clothing/under/wedding/dress_orange
name = "orange dress"
icon_state = "d_orange"
color = "d_orange"
/obj/item/clothing/under/wedding/dress_green
name = "green dress"
icon_state = "d_green"
color = "d_green"
/obj/item/clothing/under/wedding/dress_purple
name = "purple dress"
icon_state = "d_purple"
color = "d_purple"
/obj/item/clothing/under/wedding/dress_red
name = "red dress"
icon_state = "d_red"
color = "d_red"
/obj/item/clothing/under/wedding/dress_blue
name = "blue dress"
icon_state = "d_blue"
color = "d_blue"
/obj/item/clothing/under/wedding/officer_blue
name = "blue officer dress"
icon_state = "officer_blue"
color = "officer_blue"
/obj/item/clothing/under/wedding/dress_vampire
name = "vampire dress"
icon_state = "d_vampire"
color = "d_vampire"
/obj/item/clothing/under/wedding/orangedress
name = "orange dress"
desc = "A small and not puffy orange dress."
icon_state = "dress_orange"
item_state = "creamsuit"
color = "dress_orange"
flags_inv = HIDESHOES
/obj/item/clothing/under/stripper/stripper_pink
name = "pink swimsuit"
desc = "A rather skimpy pink swimsuit."
icon_state = "stripper_p_under"
color = "stripper_p"
/obj/item/clothing/under/stripper/stripper_green
name = "green swimsuit"
desc = "A rather skimpy green swimsuit."
icon_state = "stripper_g_under"
color = "stripper_g"
/obj/item/clothing/suit/stripper/stripper_pink
name = "pink skimpy dress"
desc = "A rather skimpy pink dress."
icon_state = "stripper_p_over"
item_state = "stripper_p"
/obj/item/clothing/suit/stripper/stripper_green
name = "green skimpy dress"
desc = "A rather skimpy green dress."
icon_state = "stripper_g_over"
item_state = "stripper_g"

View File

@@ -164,6 +164,8 @@
atkcarbon = 1
atksilicon = 0
attacktext = "bites"
melee_damage_lower = 0.1
melee_damage_upper = 0.5 //They're just roaches!
layer = 2.5 //so they can hide under objects
Bump(var/mob/M)

View File

@@ -252,6 +252,13 @@
icon = 'custom_items.dmi'
icon_state = "odysseus_spec_id"
/obj/item/weapon/clipboard/fluff/mcreary_journal //sirribbot: James McReary
name = "McReary's journal"
desc = "A journal with a warning sticker on the front cover. The initials \"J.M.\" are written on the back."
icon = 'custom_items.dmi'
icon_state = "mcreary_journal"
item_state = "mcreary_journal"
//////////////////////////////////
//////////// Clothing ////////////
//////////////////////////////////
@@ -326,7 +333,6 @@
desc = "Because when you're the toughest Mother Hubbard on the station, nobody's criticizing your fashion sense."
icon = 'custom_items.dmi'
icon_state = "enos_adlai_1"
flags = FPRINT|TABLEPASS
//////////// Suits ////////////
@@ -398,8 +404,17 @@
item_state = "tian_dress"
color = "tian_dress"
/obj/item/clothing/under/rank/bartender/fluff/classy //searif: Ara Al-Jazari
name = "classy bartender uniform"
desc = "A prim and proper uniform that looks very similar to a bartender's, the only differences being a red tie, waistcoat and a rag hanging out of the back pocket."
icon = 'custom_items.dmi'
icon_state = "ara_bar_uniform"
item_state = "ara_bar_uniform"
color = "ara_bar_uniform"
//////////// Masks ////////////
/*
/obj/item/clothing/mask/fluff/flagmask //searif: Tsiokeriio Tarbell
name = "\improper First Nations facemask"
desc = "A simple cloth rag that bears the flag of the first nations."
@@ -409,6 +424,7 @@
flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH
w_class = 2
gas_transfer_coefficient = 0.90
*/
/obj/item/clothing/mask/mara_kilpatrick_1 //staghorn: Mara Kilpatrick
name = "shamrock pendant"

View File

@@ -362,35 +362,35 @@
O = locate(/obj/item, input.loc)
if (O)
if (istype(O,/obj/item/weapon/ore/iron))
ore_iron++;
ore_iron = ore_iron + O:amount;
del(O)
continue
if (istype(O,/obj/item/weapon/ore/glass))
ore_glass++;
ore_glass = ore_glass + O:amount;
del(O)
continue
if (istype(O,/obj/item/weapon/ore/diamond))
ore_diamond++;
ore_diamond = ore_diamond + O:amount;
del(O)
continue
if (istype(O,/obj/item/weapon/ore/plasma))
ore_plasma++
ore_plasma = ore_plasma + O:amount
del(O)
continue
if (istype(O,/obj/item/weapon/ore/gold))
ore_gold++
ore_gold = ore_gold + O:amount
del(O)
continue
if (istype(O,/obj/item/weapon/ore/silver))
ore_silver++
ore_silver = ore_silver + O:amount
del(O)
continue
if (istype(O,/obj/item/weapon/ore/uranium))
ore_uranium++
ore_uranium = ore_uranium + O:amount
del(O)
continue
if (istype(O,/obj/item/weapon/ore/clown))
ore_clown++
ore_clown = ore_clown + O:amount
del(O)
continue
O.loc = src.output.loc

View File

@@ -27,6 +27,48 @@
if (src.output && src.input)
if (locate(/obj/structure/ore_box, input.loc))
var/obj/structure/ore_box/BOX = locate(/obj/structure/ore_box, input.loc)
BOX.update()
if (BOX.amt_diamond > 0)
var/obj/item/weapon/ore/diamond/G = new /obj/item/weapon/ore/diamond
G.amount = BOX.amt_diamond
G.loc = output.loc
BOX.amt_diamond = 0
if (BOX.amt_glass > 0)
var/obj/item/weapon/ore/glass/G = new /obj/item/weapon/ore/glass
G.amount = BOX.amt_glass
G.loc = output.loc
BOX.amt_glass = 0
if (BOX.amt_plasma > 0)
var/obj/item/weapon/ore/plasma/G = new /obj/item/weapon/ore/plasma
G.amount = BOX.amt_plasma
G.loc = output.loc
BOX.amt_plasma = 0
if (BOX.amt_iron > 0)
var/obj/item/weapon/ore/iron/G = new /obj/item/weapon/ore/iron
G.amount = BOX.amt_iron
G.loc = output.loc
BOX.amt_iron = 0
if (BOX.amt_silver > 0)
var/obj/item/weapon/ore/silver/G = new /obj/item/weapon/ore/silver
G.amount = BOX.amt_silver
G.loc = output.loc
BOX.amt_silver = 0
if (BOX.amt_gold > 0)
var/obj/item/weapon/ore/gold/G = new /obj/item/weapon/ore/gold
G.amount = BOX.amt_gold
G.loc = output.loc
BOX.amt_gold = 0
if (BOX.amt_uranium > 0)
var/obj/item/weapon/ore/uranium/G = new /obj/item/weapon/ore/uranium
G.amount = BOX.amt_uranium
G.loc = output.loc
BOX.amt_uranium = 0
if (BOX.amt_clown > 0)
var/obj/item/weapon/ore/clown/G = new /obj/item/weapon/ore/clown
G.amount = BOX.amt_clown
G.loc = output.loc
BOX.amt_clown = 0
var/i = 0
for (var/obj/item/weapon/ore/O in BOX.contents)
BOX.contents -= O

View File

@@ -4,6 +4,7 @@
name = "Rock"
icon = 'Mining.dmi'
icon_state = "ore"
var/amount = 1
/obj/item/weapon/ore/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()

View File

@@ -51,6 +51,14 @@
desc = "A heavy box used for storing ore."
density = 1
var/capacity = 200
var/amt_gold = 0
var/amt_silver = 0
var/amt_diamond = 0
var/amt_glass = 0
var/amt_iron = 0
var/amt_plasma = 0
var/amt_uranium = 0
var/amt_clown = 0
New()
if(prob(50))
@@ -69,9 +77,45 @@
user << "\blue You empty the satchel into the box."
else
user << "\blue The ore box is full."
return
/obj/structure/ore_box/proc/update(obj, mob/user as mob)
for (var/obj/item/weapon/ore/C in contents)
if (istype(C,/obj/item/weapon/ore/diamond))
amt_diamond++
del(C)
continue
else if (istype(C,/obj/item/weapon/ore/glass))
amt_glass++
del(C)
continue
else if (istype(C,/obj/item/weapon/ore/plasma))
amt_plasma++
del(C)
continue
else if (istype(C,/obj/item/weapon/ore/iron))
amt_iron++
del(C)
continue
else if (istype(C,/obj/item/weapon/ore/silver))
amt_silver++
del(C)
continue
else if (istype(C,/obj/item/weapon/ore/gold))
amt_gold++
del(C)
continue
else if (istype(C,/obj/item/weapon/ore/uranium))
amt_uranium++
del(C)
continue
else if (istype(C,/obj/item/weapon/ore/clown))
amt_clown++
del(C)
continue
return
/obj/structure/ore_box/attack_hand(obj, mob/user as mob)
var/amt_gold = 0
var/amt_silver = 0
@@ -126,12 +170,53 @@
user << browse("[dat]", "window=orebox")
return
/obj/structure/ore_box/Topic(href, href_list)
if(..())
return
usr.machine = src
src.add_fingerprint(usr)
if(href_list["removeall"])
if (amt_diamond > 0)
var/obj/item/weapon/ore/diamond/G = new /obj/item/weapon/ore/diamond
G.amount = src.amt_diamond
G.loc = src.loc
src.amt_diamond = 0
if (amt_glass > 0)
var/obj/item/weapon/ore/glass/G = new /obj/item/weapon/ore/glass
G.amount = src.amt_glass
G.loc = src.loc
src.amt_glass = 0
if (amt_plasma > 0)
var/obj/item/weapon/ore/plasma/G = new /obj/item/weapon/ore/plasma
G.amount = src.amt_plasma
G.loc = src.loc
src.amt_plasma = 0
if (amt_iron > 0)
var/obj/item/weapon/ore/iron/G = new /obj/item/weapon/ore/iron
G.amount = src.amt_iron
G.loc = src.loc
src.amt_iron = 0
if (amt_silver > 0)
var/obj/item/weapon/ore/silver/G = new /obj/item/weapon/ore/silver
G.amount = src.amt_silver
G.loc = src.loc
src.amt_silver = 0
if (amt_gold > 0)
var/obj/item/weapon/ore/gold/G = new /obj/item/weapon/ore/gold
G.amount = src.amt_gold
G.loc = src.loc
src.amt_gold = 0
if (amt_uranium > 0)
var/obj/item/weapon/ore/uranium/G = new /obj/item/weapon/ore/uranium
G.amount = src.amt_uranium
G.loc = src.loc
src.amt_uranium = 0
if (amt_clown > 0)
var/obj/item/weapon/ore/clown/G = new /obj/item/weapon/ore/clown
G.amount = src.amt_clown
G.loc = src.loc
src.amt_clown = 0
for (var/obj/item/weapon/ore/O in contents)
contents -= O
O.loc = src.loc

View File

@@ -163,8 +163,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(corpse.ajourn)
corpse.ajourn=0
client.mob = corpse
if (corpse.stat==2)
verbs += /mob/proc/ghost
if (corpse.stat==2 || istype(corpse, /mob/living/simple_animal/mouse ))
corpse.verbs += /mob/proc/ghost
del(src)
/mob/dead/observer/proc/become_mouse()

View File

@@ -85,6 +85,8 @@ I kind of like the right click only--the window version can get a little confusi
M.show_message(text("\green <B>[user] vomits globs of vile stuff all over [src]!</B>"), 1)
A.tick()
// This one is currently broken, however the other one isn't. And they both do the same thing. Weird.
/*
/mob/living/carbon/alien/humanoid/proc/corrode_target() //Aliens only see items on the list of objects that they can actually spit on./N
set name = "Spit Corrosive Acid (200)"
set desc = "Drench an object in acid, destroying it over time."
@@ -106,7 +108,7 @@ I kind of like the right click only--the window version can get a little confusi
else
src << "\green Target is too far away."
return
*/
/mob/living/carbon/alien/humanoid/verb/corrode(obj/O as anything in oview(1)) //If they right click to corrode, an error will flash if its an invalid target./N
set name = "Corrode with Acid (200)"
set desc = "Drench an object in acid, destroying it over time."

View File

@@ -6,7 +6,7 @@
src.name = text("alien drone ([rand(1, 1000)])")
src.real_name = src.name
spawn (1)
src.verbs += /mob/living/carbon/alien/humanoid/proc/corrode_target
// src.verbs += /mob/living/carbon/alien/humanoid/proc/corrode
src.verbs -= /mob/living/carbon/alien/humanoid/verb/ActivateHuggers
src.stand_icon = new /icon('alien.dmi', "aliend_s")
src.lying_icon = new /icon('alien.dmi', "aliend_l")

View File

@@ -6,7 +6,7 @@
src.name = text("alien sentinel ([rand(1, 1000)])")
src.real_name = src.name
spawn (1)
src.verbs += /mob/living/carbon/alien/humanoid/proc/corrode_target
// src.verbs += /mob/living/carbon/alien/humanoid/proc/corrode
src.stand_icon = new /icon('alien.dmi', "aliens_s")
src.lying_icon = new /icon('alien.dmi', "aliens_l")
src.resting_icon = new /icon('alien.dmi', "aliens_sleep")
@@ -182,5 +182,5 @@
A.current = U
A.yo = U.y - T.y
A.xo = U.x - T.x
A.process()
A.fired()
return

View File

@@ -7,7 +7,7 @@
// src.name = text("alien ([rand(1, 1000)])")
src.real_name = src.name
spawn (1)
src.verbs += /mob/living/carbon/alien/humanoid/proc/corrode_target
// src.verbs += /mob/living/carbon/alien/humanoid/proc/corrode
src.verbs += /mob/living/carbon/alien/humanoid/sentinel/verb/spit
src.verbs -= /mob/living/carbon/alien/humanoid/verb/ventcrawl
src.stand_icon = new /icon('alien.dmi', "queen_s")

View File

@@ -134,7 +134,7 @@
if(istype(M) && M.lying) //Pulling lying down people is slower
tally += 3
if(mRun in mutations)
if(MINCREASERUN in mutations)
tally = 0
return tally

View File

@@ -57,7 +57,7 @@
handle_disabilities()
//Status updates, death etc.
UpdateLuminosity()
// UpdateLuminosity()
handle_regular_status_updates()
if(client)

View File

@@ -413,8 +413,35 @@
msg += "<span class = 'deptradio'>Criminal status:</span> <a href='?src=\ref[src];criminal=1'>\[[criminal]\]</a>\n"
msg += "<span class = 'deptradio'>Security records:</span> <a href='?src=\ref[src];secrecord=`'>\[View\]</a>\n"
//msg += "\[Set Hostile Identification\]\n"
if(istype(usr, /mob/living/carbon/human))
var/mob/living/carbon/human/H = usr
if(istype(H.glasses, /obj/item/clothing/glasses/hud/health))
var/perpname = "wot"
var/medical = "None"
if(wear_id)
if(istype(wear_id,/obj/item/weapon/card/id))
perpname = wear_id:registered_name
else if(istype(wear_id,/obj/item/device/pda))
var/obj/item/device/pda/tempPda = wear_id
perpname = tempPda.owner
else
perpname = src.name
for (var/datum/data/record/E in data_core.general)
if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.general)
if (R.fields["id"] == E.fields["id"])
medical = R.fields["p_stat"]
msg += "<span class = 'deptradio'>Physical status:</span> <a href='?src=\ref[src];medical=1'>\[[medical]\]</a>\n"
msg += "<span class = 'deptradio'>Medical records:</span> <a href='?src=\ref[src];medrecord=`'>\[View\]</a>\n"
if(print_flavor_text()) msg += "[print_flavor_text()]\n"
msg += "\blue *---------*"

View File

@@ -136,6 +136,9 @@
lying_icon = new /icon('human.dmi', "body_[g]_l")
icon = stand_icon
rebuild_appearance()
update_clothing()
update_body()
update_face()
src << "\blue Your icons have been generated!"
@@ -151,9 +154,10 @@
..()
spawn(5) // Failsafe for.. weirdness.
update_clothing()
spawn(33)
update_body()
update_clothing()
update_face()
/*var/known_languages = list()
known_languages.Add("english")*/
@@ -315,7 +319,7 @@
if(istype(M) && M.lying) //Pulling lying down people is slower
tally += 3
if(mRun in mutations)
if(MINCREASERUN in mutations)
tally = 0
return tally
@@ -2596,10 +2600,110 @@ It can still be worn/put on as normal.
if(!modified)
usr << "\red Unable to locate a data core entry for this person."
if (href_list["secrecord"])
if(istype(usr, /mob/living/carbon/human))
var/mob/living/carbon/human/H = usr
if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud))
var/perpname = "wot"
var/read = 0
if(wear_id)
if(istype(wear_id,/obj/item/weapon/card/id))
perpname = wear_id:registered_name
else if(istype(wear_id,/obj/item/device/pda))
var/obj/item/device/pda/tempPda = wear_id
perpname = tempPda.owner
else
perpname = src.name
for (var/datum/data/record/E in data_core.general)
if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.security)
if (R.fields["id"] == E.fields["id"])
if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud))
usr << "<b>Name:</b> [R.fields["name"]] <b>Criminal Status:</b> [R.fields["criminal"]]"
usr << "<b>Minor Crimes:</b> [R.fields["mi_crim"]]"
usr << "<b>Details:</b> [R.fields["mi_crim_d"]]"
usr << "<b>Major Crimes:</b> [R.fields["ma_crim"]]"
usr << "<b>Details:</b> [R.fields["ma_crim_d"]]"
usr << "<b>Notes:</b> [R.fields["notes"]]"
read = 1
if(!read)
usr << "\red Unable to locate a data core entry for this person."
if (href_list["medical"])
if(istype(usr, /mob/living/carbon/human))
var/mob/living/carbon/human/H = usr
if(istype(H.glasses, /obj/item/clothing/glasses/hud/health))
var/perpname = "wot"
var/modified = 0
if(wear_id)
if(istype(wear_id,/obj/item/weapon/card/id))
perpname = wear_id:registered_name
else if(istype(wear_id,/obj/item/device/pda))
var/obj/item/device/pda/tempPda = wear_id
perpname = tempPda.owner
else
perpname = src.name
for (var/datum/data/record/E in data_core.general)
if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.general)
if (R.fields["id"] == E.fields["id"])
var/setmedical = input(usr, "Specify a new criminal status for this person.", "Medical HUD", R.fields["p_stat"]) in list("*Deceased*", "*Unconscious*", "Physically Unfit", "Active", "Cancel")
if(istype(H.glasses, /obj/item/clothing/glasses/hud/health))
if(setmedical != "Cancel")
R.fields["p_stat"] = setmedical
modified = 1
spawn()
H.handle_regular_hud_updates()
if(!modified)
usr << "\red Unable to locate a data core entry for this person."
if (href_list["medrecord"])
if(istype(usr, /mob/living/carbon/human))
var/mob/living/carbon/human/H = usr
if(istype(H.glasses, /obj/item/clothing/glasses/hud/health))
var/perpname = "wot"
var/read = 0
if(wear_id)
if(istype(wear_id,/obj/item/weapon/card/id))
perpname = wear_id:registered_name
else if(istype(wear_id,/obj/item/device/pda))
var/obj/item/device/pda/tempPda = wear_id
perpname = tempPda.owner
else
perpname = src.name
for (var/datum/data/record/E in data_core.general)
if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.medical)
if (R.fields["id"] == E.fields["id"])
if(istype(H.glasses, /obj/item/clothing/glasses/hud/health))
usr << "<b>Name:</b> [R.fields["name"]] <b>Blood Type:</b> [R.fields["b_type"]]"
usr << "<b>DNA:</b> [R.fields["b_dna"]]"
usr << "<b>Minor Disabilities:</b> [R.fields["mi_dis"]]"
usr << "<b>Details:</b> [R.fields["mi_dis_d"]]"
usr << "<b>Major Disabilities:</b> [R.fields["ma_dis"]]"
usr << "<b>Details:</b> [R.fields["ma_dis_d"]]"
usr << "<b>Notes:</b> [R.fields["notes"]]"
read = 1
if(!read)
usr << "\red Unable to locate a data core entry for this person."
..()
return
///eyecheck()
///Returns a number between -1 to 2
/mob/living/carbon/human/eyecheck()
@@ -2692,7 +2796,7 @@ It can still be worn/put on as normal.
/mob/living/carbon/human/proc/morph()
set name = "Morph"
set category = "Superpower"
if(!(mMorph in mutations))
if(!(MMORPH in mutations))
src.verbs -= /mob/living/carbon/human/proc/morph
return
@@ -2772,17 +2876,21 @@ It can still be worn/put on as normal.
gender = MALE
else
gender = FEMALE
rebuild_appearance()
update_body()
check_dna()
for(var/mob/M in view())
visible_message("\blue \The [src] morphs and changes [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] appearance!", "\blue You change your appearance!", "\red Oh, god! What the hell was that? It sounded like flesh getting squished and bone ground into a different shape!")
spawn(10)
rebuild_appearance()
update_body()
update_clothing()
update_face()
/mob/living/carbon/human/proc/remotesay()
set name = "Project mind"
set category = "Superpower"
if(!(mRemotetalk in src.mutations))
if(!(MREMOTETALK in src.mutations))
src.verbs -= /mob/living/carbon/human/proc/remotesay
return
var/list/creatures = list()
@@ -2793,7 +2901,7 @@ It can still be worn/put on as normal.
return
var/say = input ("What do you wish to say")
if(mRemotetalk in target.mutations)
if(MREMOTETALK in target.mutations)
target.show_message("\blue You hear [src.real_name]'s voice: [say]")
else
target.show_message("\blue You hear a voice that seems to echo around the room: [say]")
@@ -2807,7 +2915,7 @@ It can still be worn/put on as normal.
set name = "Remote View"
set category = "Superpower"
if(!(mRemote in src.mutations))
if(!(MREMOTEVIEW in src.mutations))
reset_view(0)
remoteobserve = null
src.verbs -= /mob/living/carbon/human/proc/remoteobserve

View File

@@ -56,19 +56,20 @@
if (stat != 2) //still breathing
if(!(MNOBREATH in mutations)) //No breathing needed
//First, resolve location and get a breath
//First, resolve location and get a breath
if(air_master.current_cycle%4==2)
//Only try to take a breath every 4 seconds, unless suffocating
spawn(0) breathe()
if(air_master.current_cycle%4==2)
//Only try to take a breath every 4 seconds, unless suffocating
spawn(0) breathe()
else //Still give containing object the chance to interact
if(istype(loc, /obj/))
var/obj/location_as_object = loc
location_as_object.handle_internal_lifeform(src, 0)
else //Still give containing object the chance to interact
if(istype(loc, /obj/))
var/obj/location_as_object = loc
location_as_object.handle_internal_lifeform(src, 0)
src.handle_shock()
src.handle_shock()
//Apparently, the person who wrote this code designed it so that
//blinded get reset each cycle and then get activated later in the
@@ -104,7 +105,7 @@
handle_random_events()
//Status updates, death etc.
UpdateLuminosity()
// UpdateLuminosity()
handle_regular_status_updates()
handle_pain()
@@ -168,7 +169,7 @@
handle_disabilities()
if(mHallucination in mutations)
if(MHALLUCINATION in mutations)
hallucination = 100
halloss = 0
@@ -198,7 +199,7 @@
Paralyse(15)
setHalLoss(99)
if(mSmallsize in mutations)
if(MSMALLSIZE in mutations)
if(!(pass_flags & PASSTABLE))
pass_flags |= PASSTABLE
else
@@ -207,7 +208,7 @@
if (mRegen in mutations)
if (MREGENERATE in mutations)
adjustBruteLoss(-2)
adjustToxLoss(-2)
adjustOxyLoss(-2)
@@ -215,24 +216,24 @@
updatehealth()
if(!(/mob/living/carbon/human/proc/morph in src.verbs))
if(mMorph in mutations)
if(MMORPH in mutations)
src.verbs += /mob/living/carbon/human/proc/morph
else
if(!(mMorph in mutations))
if(!(MMORPH in mutations))
src.verbs -= /mob/living/carbon/human/proc/morph
if(!(/mob/living/carbon/human/proc/remoteobserve in src.verbs))
if(mRemote in mutations)
if(MREMOTEVIEW in mutations)
src.verbs += /mob/living/carbon/human/proc/remoteobserve
else
if(!(mRemote in mutations))
if(!(MREMOTEVIEW in mutations))
src.verbs -= /mob/living/carbon/human/proc/remoteobserve
if(!(/mob/living/carbon/human/proc/remotesay in src.verbs))
if(mRemotetalk in mutations)
if(MREMOTETALK in mutations)
src.verbs += /mob/living/carbon/human/proc/remotesay
else
if(!(mRemotetalk in mutations))
if(!(MREMOTETALK in mutations))
src.verbs -= /mob/living/carbon/human/proc/remotesay
@@ -321,9 +322,10 @@
if (radiation)
if (radiation > 100)
radiation = 100
Weaken(10)
src << "\red You feel weak."
emote("collapse")
if(prob(3))
Weaken(10)
src << "\red You feel weak."
emote("collapse")
if (radiation < 0)
radiation = 0
@@ -380,6 +382,7 @@
**/
breathe()
if(MNOBREATH in mutations) return
if(reagents.has_reagent("lexorin")) return
if(istype(loc, /obj/machinery/atmospherics/unary/cryo_cell)) return
@@ -487,7 +490,7 @@
canmove = 1
handle_breath(datum/gas_mixture/breath)
if(nodamage || REBREATHER in augmentations || (mNobreath in mutations))
if(nodamage || REBREATHER in augmentations || MNOBREATH in mutations)
return
if(!breath || (breath.total_moles == 0))
@@ -541,7 +544,7 @@
oxygen_alert = max(oxygen_alert, 1)*/
else // We're in safe limits
adjustOxyLoss(-5)
oxygen_used = breath.oxygen/6
oxygen_used = breath.oxygen
oxygen_alert = 0
breath.oxygen -= oxygen_used
@@ -1456,7 +1459,7 @@
if (machine)
if (!( machine.check_eye(src) ))
reset_view(null)
else if(!(mRemote in mutations) && !client.adminobs)
else if(!(MREMOTEVIEW in mutations) && !client.adminobs)
reset_view(null)
if(remoteobserve)
remoteobserve = null

View File

@@ -73,7 +73,7 @@
handle_disabilities()
//Status updates, death etc.
UpdateLuminosity()
// UpdateLuminosity()
handle_regular_status_updates()
if(client)

View File

@@ -17,7 +17,7 @@
//sort of a legacy burn method for /electrocute, /shock, and the e_chair
/mob/living/proc/burn_skin(burn_amount, used_weapon = null)
if(istype(src, /mob/living/carbon/human))
if(mShock in src.mutations)
if(MSHOCK in src.mutations)
return 0
//world << "DEBUG: burn_skin(), mutations=[mutations]"
if (COLD_RESISTANCE in src.mutations) //fireproof

View File

@@ -125,6 +125,9 @@
icons += "B.A.N.N.E.D."
if (src.name == "M00X-BC" && src.ckey == "searif")
icons += "M00X-BC"
if (src.name == "TRIBUNAL" && src.ckey == "serithi")
icons += "Tribunal"
icons += "Tribunal Malfunctioning"
icontype = input("Please, select a display!", "AI", null/*, null*/) in icons
if(icontype == "Blue")
icon_state = "ai"
@@ -156,6 +159,10 @@
icon_state = "ai-malf"
else if(icontype == "Static")
icon_state = "ai-static"
else if(icontype == "Tribunal")
icon_state = "ai-tribunal"
else if(icontype == "Tribunal Malfunctioning")
icon_state = "ai-tribunal-malf"
else//(icontype == "Matrix")
icon_state = "ai-matrix"

View File

@@ -13,7 +13,7 @@
handle_regular_status_updates()
if(client)
UpdateLuminosity()
// UpdateLuminosity()
handle_regular_hud_updates()
update_items()
if (src.stat != 2) //still using power

View File

@@ -674,9 +674,9 @@
/mob/proc/get_damage()
return health
/mob/proc/UpdateLuminosity()
ul_SetLuminosity(LuminosityRed, LuminosityGreen, LuminosityBlue)//Current hardcode max at 7, should likely be a const somewhere else
return 1
///mob/proc/UpdateLuminosity()
// ul_SetLuminosity(ul_Red, ul_Green, ul_Blue)//Current hardcode max at 7, should likely be a const somewhere else
// return 1
/mob/proc/pull_damage()
if(ishuman(src))

View File

@@ -358,14 +358,17 @@
preferences.randomize_appearance_for(new_character)
else
preferences.copy_to(new_character)
if((preferences.species == "Soghun") && (is_alien_whitelisted(src, "Soghun"))) //This probably shouldn't be here, but I can't think of any other way
if((preferences.species == "Soghun") && ((is_alien_whitelisted(src, "Soghun")) || !config.usealienwhitelist)) //This probably shouldn't be here, but I can't think of any other way
new_character.mutantrace = "lizard"
new_character.soghun_talk_understand = 1
new_character.voice_name = "Soghun"
if((preferences.species == "Skrell") && (is_alien_whitelisted(src, "Skrell")))
if((preferences.species == "Skrell") && ((is_alien_whitelisted(src, "Skrell")) || !config.usealienwhitelist))
new_character.mutantrace = "skrell"
new_character.skrell_talk_understand = 1
new_character.voice_name = "Skrell"
new_character.update_clothing()
new_character.update_body()
new_character.update_face() //Hotfix for non-updating sprites.
src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1)
new_character.dna.ready_dna(new_character)

View File

@@ -799,7 +799,7 @@ datum/preferences
new_species += "Tajaran"
new_species += "Soghun"
new_species += "Skrell"
if(!whitelisted)
if(!whitelisted && config.usealienwhitelist)
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)

View File

@@ -552,7 +552,8 @@
owner.original_name = owner.real_name
H.name = "[owner.original_name]'s head"
owner.update_face()
if(ishuman(owner))
owner.update_face()
owner.update_body()
owner.death()
if(ARM_RIGHT)

View File

@@ -18,6 +18,9 @@
response_harm = "kicks the"
var/turns_since_scan = 0
var/mob/living/simple_animal/mouse/movement_target
min_oxy = 16 //Require atleast 16kPA oxygen
minbodytemp = 223 //Below -50 Degrees Celcius
maxbodytemp = 323 //Above 50 Degrees Celcius
/mob/living/simple_animal/cat/Life()
//MICE!

View File

@@ -18,7 +18,9 @@
response_disarm = "gently pushes aside the"
response_harm = "kicks the"
minbodytemp = 250
min_oxy = 1
min_oxy = 16 //Require atleast 16kPA oxygen
minbodytemp = 223 //Below -50 Degrees Celcius
maxbodytemp = 323 //Above 50 Degrees Celcius
/mob/living/simple_animal/kobold/Life()
..()

View File

@@ -21,6 +21,9 @@
var/color //brown, gray and white
layer = 2.5 //so they can hide under objects
swap_on_mobbump = 0
min_oxy = 16 //Require atleast 16kPA oxygen
minbodytemp = 223 //Below -50 Degrees Celcius
maxbodytemp = 323 //Above 50 Degrees Celcius
/mob/living/simple_animal/mouse/Life()
..()
@@ -143,4 +146,7 @@
//Simple pass check.
if(O.ZCanPass(T, 1) && !(O in open) && !(O in closed) && O in possibles)
open += O
*/
*/
mob/living/simple_animal/mouse/restrained() //Hotfix to stop mice from doing things with MouseDrop
return 1

View File

@@ -15,6 +15,9 @@
response_help = "pets the"
response_disarm = "gently moves aside the"
response_harm = "swats the"
min_oxy = 16 //Require atleast 16kPA oxygen
minbodytemp = 223 //Below -50 Degrees Celcius
maxbodytemp = 323 //Above 50 Degrees Celcius
l_ear = new /obj/item/device/radio/headset/headset_eng()

View File

@@ -41,12 +41,11 @@
for(var/mob/M in view(src,7))
M << "<b>[src]</b> [pick(speak_emote)], \"[message]\""
/mob/living/simple_animal/emote(var/message = null, var/m_type=1, var/act = "auto")
/mob/living/simple_animal/emote(var/act = "auto", var/m_type=1, var/message = null)
switch(act)
if ("scream")
message = "<B>[src]</B> makes a loud and pained whimper"
m_type = 2
if ("custom")
var/input = copytext(sanitize(input("Choose an emote to display.") as text|null),1,MAX_MESSAGE_LEN)
if (!input)
@@ -60,7 +59,6 @@
alert("Unable to use this emote, must be either hearable or visible.")
return
message = "<B>[src]</B> [input]"
if ("me")
if(silent)
return

View File

@@ -7,6 +7,7 @@ var/global/list/uneatable = list(
/obj/effect/expl_particles,
/obj/effect/forcefield,
/obj/effect/effect,
/obj/effect/sign,
/mob/aiEye,
/mob/dead/observer // Stop ghosts being ate and not being able to get back to their bodies
)
@@ -256,8 +257,6 @@ var/global/list/uneatable = list(
gain = 100
spawn()
A:gib()
//Sleep being called in process() :|
// sleep(1)
else if(istype(A,/obj/))
if (istype(A,/obj/item/weapon/storage/backpack/holding))

View File

@@ -86,6 +86,6 @@
/obj/item/ammo_casing/shotgun/dart
name = "shotgun darts"
desc = "A dart for use in shotguns."
icon_state = "blshell" //someone, draw the icon, please.
icon_state = "dart"
projectile_type = "/obj/item/projectile/energy/dart"
m_amt = 12500

View File

@@ -694,6 +694,8 @@
M.weakened += 2
if(prob(20))
M.paralysis += 2
if(istype(M,/mob/living/simple_animal/mouse))
continue
if(istype(M,/mob/living/carbon/human))
var/name = pick(M:organs)
var/datum/organ/external/temp = M:organs[name]