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

This commit is contained in:
cib
2012-03-20 03:53:46 -08:00
86 changed files with 15752 additions and 12382 deletions
@@ -347,7 +347,6 @@ obj/machinery/computer/forensic_scanning
for(var/j = 1, j <= blood.len, j++)
var/list/templist2 = blood[j]
P.info += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type: [templist2[2]], DNA: [templist2[1]]<br>"
else
usr << "ERROR. Database not found!<br>"
if("scan")
+18 -2
View File
@@ -1566,7 +1566,7 @@
if (ticker && ticker.current_state >= GAME_STATE_PLAYING)
var/dat = "<html><head><title>Round Status</title></head><body><h1><B>Round Status</B></h1>"
dat += "Current Game Mode: <B>[ticker.mode.name]</B><BR>"
dat += "Round Duration: <B>[round(world.time / 36000)]:[add_zero(world.time / 600 % 60, 2)]:[world.time / 100 % 6][world.time / 100 % 10]</B><BR>"
dat += "Round Duration: <B>[round(world.time / 36000)]:[(((world.time / 600 % 60)/10) > 1 ? world.time / 600 % 60 : add_zero(world.time / 600 % 60, 2))]:[world.time / 100 % 6][world.time / 100 % 10]</B><BR>"
dat += "<B>Emergency shuttle</B><BR>"
if (!emergency_shuttle.online)
dat += "<a href='?src=\ref[src];call_shuttle=1'>Call Shuttle</a><br>"
@@ -1754,6 +1754,16 @@
J.spawn_positions = -1
message_admins("[key_name_admin(usr)] has removed the cap on security officers.")
return
if(href_list["vsc"])
if ((src.rank in list( "Moderator", "Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
if(href_list["vsc"] == "airflow")
vsc.ChangeSettingsDialog(usr,vsc.settings)
if(href_list["vsc"] == "plasma")
vsc.ChangeSettingsDialog(usr,vsc.plc.settings)
if(href_list["vsc"] == "load")
LoadTweaks()
if(href_list["vsc"] == "save")
SaveTweaks()
if (href_list["rnd_max"])
for(var/obj/machinery/computer/rdconsole/C in world)
for(var/datum/tech/T in C.files.known_tech)
@@ -1974,7 +1984,13 @@
if(lvl >= 5)
dat += "<A href='?src=\ref[src];create_mob=1'>Create Mob</A><br>"
// if(lvl == 6 )
usr << browse(dat, "window=admin2;size=210x180")
if(lvl >= 3 )
dat += "<br><A href='?src=\ref[src];vsc=airflow'>Edit Airflow Settings</A><br>"
dat += "<A href='?src=\ref[src];vsc=plasma'>Edit Plasma Settings</A><br>"
dat += "<br><A href='?src=\ref[src];vsc=load'>Load Settings</A><br>"
dat += "<A href='?src=\ref[src];vsc=save'>Save Settings</A><br>"
usr << browse(dat, "window=admin2;size=210x340")
return
/*
/obj/admins/proc/goons()
+1
View File
@@ -223,6 +223,7 @@
verbs += /proc/release
verbs += /client/proc/toggleprayers
verbs += /client/proc/editappear
verbs += /client/proc/Zone_Info
if (holder.level >= 2)//Admin Candidate********************************************************************
verbs += /client/proc/cmd_admin_add_random_ai_law
+1 -1
View File
@@ -17,7 +17,7 @@
if (!msg)
return
var/rendered = "<span class='game deadsay'><span class='prefix'>DEAD:</span> <span class='name'>ADMIN([src.stealth ? pick("BADMIN", "hornigranny", "TLF", "scaredforshadows", "KSI", "Silnazi", "HerpEs", "BJ69", "SpoofedEdd", "Uhangay", "Wario90900", "Regarity", "MissPhareon", "LastFish", "unMportant", "Deurpyn", "Fatbeaver") : src.key])</span> says, <span class='message'>\"[msg]\"</span></span>"
var/rendered = "<span class='game deadsay'><span class='prefix'>DEAD:</span> <span class='name'>ADMIN([src.stealth ? pick("\[DATA EXPUNGED\]", "\[REDACTED\]", "¦¦¦¦¦¦¦¦¦¦") : src.key])</span> says, <span class='message'>\"[msg]\"</span></span>"
for (var/mob/M in world)
if (istype(M, /mob/new_player))
+2 -2
View File
@@ -40,7 +40,7 @@
active_tiles += group.members.len
var/hotspots = 0
for(var/obj/effect/hotspot/hotspot in world)
for(var/obj/fire/fire in world)
hotspots++
var/output = {"<B>AIR SYSTEMS REPORT</B><HR>
@@ -74,7 +74,7 @@
var/burning = 0
if(istype(target, /turf/simulated))
var/turf/simulated/T = target
if(T.active_hotspot)
if(locate(/obj/fire) in T)
burning = 1
usr << "\blue @[target.x],[target.y] ([GM.group_multiplier]): O:[GM.oxygen] T:[GM.toxins] N:[GM.nitrogen] C:[GM.carbon_dioxide] w [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(burning)?("\red BURNING"):(null)]"
+109 -235
View File
@@ -922,7 +922,8 @@ datum
on_mob_life(var/mob/living/M as mob)
if(isrobot(M) || isAI(M)) return // Mutagen doesn't do anything to robutts!
if(!M) M = holder.my_atom
M.radiation += 3
if(prob(33))
M.radiation += 1
..()
return
@@ -2616,132 +2617,6 @@ datum
..()
return
beer
name = "Beer"
id = "beer"
description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
M.make_dizzy(3)
M:jitteriness = max(M:jitteriness-3,0)
M:nutrition += 2
if(data >= 25)
if (!M:slurring) M:slurring = 1
M:slurring += 3
if(data >= 40 && prob(33))
if (!M:confused) M:confused = 1
M:confused += 2
holder.remove_reagent(src.id, 0.2)
..()
return
whiskey
name = "Whiskey"
id = "whiskey"
description = "A superb and well-aged single-malt whiskey. Damn."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
M.dizziness +=4
if(data >= 45 && data <125)
if (!M.slurring) M.slurring = 1
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
specialwhiskey
name = "Special Blend Whiskey"
id = "specialwhiskey"
description = "Just when you thought regular station whiskey was good... This silky, amber goodness has to come along and ruin everything."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
M.dizziness +=3
if(data >= 45 && data <125)
if (!M.slurring) M.slurring = 1
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
gin
name = "Gin"
id = "gin"
description = "It's gin. In space. I say, good sir."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
M.dizziness +=3
if(data >= 45 && data <125)
if (!M.slurring) M.slurring = 1
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
rum
name = "Rum"
id = "rum"
description = "Yohoho and all that."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
M.dizziness +=3
if(data >= 45 && data <125)
if (!M.slurring) M.slurring = 1
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
vodka
name = "Vodka"
id = "vodka"
description = "Number one drink AND fueling choice for Russians worldwide."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
M.dizziness +=3
if(data >= 45 && data <125)
if (!M.slurring) M.slurring = 1
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
holywater
name = "Holy Water"
id = "holywater"
@@ -2765,65 +2640,125 @@ datum
if(!istype(T)) return
T.Bless()
tequilla
name = "Tequila"
id = "tequilla"
description = "A strong and mildly flavoured, mexican produced spirit. Feeling thirsty hombre?"
//ALCOHOL WOO
alcohol //Parent class for all alcoholic reagents.
name = "Alcohol"
id = "alcohol"
reagent_state = LIQUID
color = "#A8B0B7" // rgb: 168, 176, 183
var
dizzy_adj = 3
slurr_adj = 3
confused_adj = 2
slur_start = 45 //amount absorbed after which mob starts slurring
confused_start = 125 //amount absorbed after which mob starts confusing directions
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
M.dizziness +=3
if(data >= 45 && data <125)
if (!M.slurring) M.slurring = 1
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
M.dizziness +=dizzy_adj
if(data >= slur_start && data < confused_start)
if (!M:slurring) M:slurring = 1
M:slurring += slurr_adj
if(data >= confused_start && prob(33))
if (!M:confused) M:confused = 1
M.confused = max(M:confused+confused_adj,0)
holder.remove_reagent(src.id, 0.2)
..()
return
vermouth
name = "Vermouth"
id = "vermouth"
description = "You suddenly feel a craving for a martini..."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
beer //It's really much more stronger than other drinks
name = "Beer"
id = "beer"
description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
color = "#664300" // rgb: 102, 67, 0
slur_start = 25 //amount absorbed after which mob starts slurring
confused_start = 40 //amount absorbed after which mob starts confusing directions
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
M.dizziness +=3
if(data >= 45 && data <125)
if (!M.slurring) M.slurring = 1
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
on_mob_life(var/mob/living/M as mob)
..()
M:jitteriness = max(M:jitteriness-3,0)
M:nutrition += 2
return
wine
name = "Wine"
id = "wine"
description = "An premium alchoholic beverage made from distilled grape juice."
reagent_state = LIQUID
color = "#7E4043" // rgb: 126, 64, 67
whiskey
name = "Whiskey"
id = "whiskey"
description = "A superb and well-aged single-malt whiskey. Damn."
color = "#664300" // rgb: 102, 67, 0
dizzy_adj = 4
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
M.dizziness +=2
if(data >= 65 && data <125)
if (!M.slurring) M.slurring = 1
M.slurring += 3
else if(data >= 145 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
specialwhiskey
name = "Special Blend Whiskey"
id = "specialwhiskey"
description = "Just when you thought regular station whiskey was good... This silky, amber goodness has to come along and ruin everything."
color = "#664300" // rgb: 102, 67, 0
slur_start = 30 //amount absorbed after which mob starts slurring
gin
name = "Gin"
id = "gin"
description = "It's gin. In space. I say, good sir."
color = "#664300" // rgb: 102, 67, 0
dizzy_adj = 3
rum
name = "Rum"
id = "rum"
description = "Yohoho and all that."
color = "#664300" // rgb: 102, 67, 0
vodka
name = "Vodka"
id = "vodka"
description = "Number one drink AND fueling choice for Russians worldwide."
color = "#664300" // rgb: 102, 67, 0
tequilla
name = "Tequila"
id = "tequilla"
description = "A strong and mildly flavoured, mexican produced spirit. Feeling thirsty hombre?"
color = "#A8B0B7" // rgb: 168, 176, 183
vermouth
name = "Vermouth"
id = "vermouth"
description = "You suddenly feel a craving for a martini..."
color = "#664300" // rgb: 102, 67, 0
wine
name = "Wine"
id = "wine"
description = "An premium alchoholic beverage made from distilled grape juice."
color = "#7E4043" // rgb: 126, 64, 67
dizzy_adj = 2
slur_start = 65 //amount absorbed after which mob starts slurring
confused_start = 145 //amount absorbed after which mob starts confusing directions
cognac
name = "Cognac"
id = "cognac"
description = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. Classy as fornication."
color = "#664300" // rgb: 102, 67, 0
dizzy_adj = 4
confused_start = 115 //amount absorbed after which mob starts confusing directions
hooch
name = "Hooch"
id = "hooch"
description = "Either someone's failure at cocktail making or attempt in alchohol production. In any case, do you really want to drink that?"
color = "#664300" // rgb: 102, 67, 0
dizzy_adj = 6
slurr_adj = 5
slur_start = 35 //amount absorbed after which mob starts slurring
confused_start = 90 //amount absorbed after which mob starts confusing directions
ale
name = "Ale"
id = "ale"
description = "A dark alchoholic beverage made by malted barley and yeast."
color = "#664300" // rgb: 102, 67, 0
//ALCHOHOL end
tonic
name = "Tonic Water"
@@ -2858,67 +2793,6 @@ datum
..()
return
cognac
name = "Cognac"
id = "cognac"
description = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. Classy as fornication."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
M.dizziness +=4
if(data >= 45 && data <115)
if (!M.slurring) M.slurring = 1
M.slurring += 3
else if(data >= 115 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
hooch
name = "Hooch"
id = "hooch"
description = "Either someone's failure at cocktail making or attempt in alchohol production. In any case, do you really want to drink that?"
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
M.dizziness +=6
if(data >= 35 && data <90)
if (!M.slurring) M.slurring = 1
M.slurring += 5
else if(data >= 90 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
ale
name = "Ale"
id = "ale"
description = "A dark alchoholic beverage made by malted barley and yeast."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
M.dizziness +=3
if(data >= 45 && data <125)
if (!M.slurring) M.slurring = 1
M.slurring += 3
else if(data >= 125 && prob(33))
M.confused = max(M:confused+2,0)
holder.remove_reagent(src.id, 0.2)
..()
return
sodawater
name = "Soda Water"
id = "sodawater"
+13 -1
View File
@@ -212,7 +212,7 @@
return
user.machine = src
var/dat = {"<B> Grenade properties: </B>
<BR> <B> Beaker one:</B> [beaker_one] [beaker_one ? "<A href='?src=\ref[src];beaker_one=1'>Remove</A>" : ""]
<BR> <B> Beaker one:</B> [beaker_one] [beaker_one ? "<A href='?src=\ref[src];beakerone=1'>Remove</A>" : ""]
<BR> <B> Beaker two:</B> [beaker_two] [beaker_two ? "<A href='?src=\ref[src];beakertwo=1'>Remove</A>" : ""]
<BR> <B> Control attachment:</B> [attached_device ? "<A href='?src=\ref[src];device=1'>[attached_device]</A>" : "None"] [attached_device ? "<A href='?src=\ref[src];rem_device=1'>Remove</A>" : ""]"}
@@ -312,6 +312,7 @@
New()
..()
attached_device = new /obj/item/device/assembly/timer(src)
attached_device.master = src
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
@@ -332,6 +333,7 @@
New()
..()
attached_device = new /obj/item/device/assembly/timer(src)
attached_device.master = src
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
@@ -352,6 +354,7 @@
New()
..()
attached_device = new /obj/item/device/assembly/timer(src)
attached_device.master = src
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
@@ -2864,6 +2867,15 @@
..()
reagents.add_reagent("anti_toxin", 50)
/obj/item/weapon/reagent_containers/pill/antitox/tajaran
name = "peacebody plant powder"
desc = "A powder ingested to rid the body of poisons."
icon = 'food.dmi'
icon_state = "nettlesoup"
New()
..()
reagents.add_reagent("anti_toxin", 100)
/obj/item/weapon/reagent_containers/pill/tox
name = "Toxins pill"
desc = "Highly toxic."
+19 -9
View File
@@ -22,20 +22,30 @@
switch(health)
if(100 to INFINITY)
return "health100"
if(70 to 100)
if(90 to 100)
return "health90"
if(80 to 90)
return "health80"
if(50 to 70)
if(70 to 80)
return "health70"
if(60 to 70)
return "health60"
if(30 to 50)
if(50 to 60)
return "health50"
if(40 to 50)
return "health40"
if(18 to 30)
return "health25"
if(5 to 18)
if(30 to 40)
return "health30"
if(20 to 30)
return "health20"
if(10 to 20)
return "health10"
if(1 to 5)
if(0 to 10)
return "health1"
if(-99 to 0)
return "health0"
if(-50 to 0)
return "health-50"
if(-99 to -50)
return "health-99"
else
return "health-100"
return "0"
@@ -83,6 +83,12 @@
item_state = "nun"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS
/obj/item/clothing/suit/monk
name = "monk's robe"
desc = "A humble robe."
icon_state = "monk"
item_state = "monk"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
/obj/item/clothing/suit/storage/chaplain_hoodie
name = "chaplain hoodie"
@@ -32,6 +32,11 @@ Contains the procs that control attacking critters
O.show_message("\red <B>[user] has slashed at [src]!</B>", 1)
playsound(src.loc, 'slice.ogg', 25, 1, -1)
else if(user.type == /mob/living/carbon/human/tajaran)
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>[user] has slashed at [src]!</B>", 1)
playsound(src.loc, 'slice.ogg', 25, 1, -1)
else
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>[user] has bit [src]!</B>", 1)
@@ -650,6 +650,9 @@
else
attack_verb = "punch"
if(M.type == /mob/living/carbon/human/tajaran)
attack_verb = "slash"
if (prob(90))
if (M.mutations & HULK)//HULK SMASH
damage += 14
@@ -658,8 +661,11 @@
step_away(src,M,15)
sleep(3)
step_away(src,M,15)
playsound(loc, "punch", 25, 1, -1)
if(M.type != /mob/living/carbon/human/tajaran)
playsound(loc, "punch", 25, 1, -1)
else if (M.type == /mob/living/carbon/human/tajaran)
damage += 10
playsound(loc, 'slice.ogg', 25, 1, -1)
visible_message("\red <B>[M] has [attack_verb]ed [src]!</B>")
if (damage > 9||prob(5))//Regular humans have a very small chance of weakening an alien.
Weaken(1,5)
@@ -669,7 +675,10 @@
bruteloss += damage
updatehealth()
else
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
if(M.type != /mob/living/carbon/human/tajaran)
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
else if (M.type == /mob/living/carbon/human/tajaran)
playsound(loc, 'slashmiss.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\red <B>[] has attempted to [attack_verb] []!</B>", M, src), 1)
@@ -424,6 +424,10 @@
attack_verb = "slash"
else
attack_verb = "punch"
if(M.type == /mob/living/carbon/human/tajaran)
attack_verb = "slash"
if (prob(90))
if (M.mutations & HULK)
damage += 5
@@ -432,7 +436,11 @@
step_away(src,M,15)
sleep(3)
step_away(src,M,15)
playsound(loc, "punch", 25, 1, -1)
if(M.type != /mob/living/carbon/human/tajaran)
playsound(loc, "punch", 25, 1, -1)
else if (M.type == /mob/living/carbon/human/tajaran)
damage += 10
playsound(loc, 'slice.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\red <B>[] has [attack_verb]ed []!</B>", M, src), 1)
@@ -444,7 +452,10 @@
bruteloss += damage
updatehealth()
else
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
if(M.type != /mob/living/carbon/human/tajaran)
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
else if (M.type == /mob/living/carbon/human/tajaran)
playsound(loc, 'slashmiss.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\red <B>[] has attempted to [attack_verb] []!</B>", M, src), 1)
+28 -27
View File
@@ -178,32 +178,33 @@
if (!src.client)
usr << "\red [src.name] doesn't seem as though they want to talk."
for(var/named in organs)
var/datum/organ/external/temp = organs[named]
if(temp)
if(temp.destroyed)
usr << "\red [src.name] is missing [t_his] [temp.display_name]."
if(temp.wounds)
for(var/datum/organ/external/wound/w in temp.wounds)
var/size = w.wound_size
var/sizetext
switch(size)
if(1)
sizetext = "cut"
if(2)
sizetext = "deep cut"
if(3)
sizetext = "flesh wound"
if(4)
sizetext = "gaping wound"
if(5)
sizetext = "big gaping wound"
if(6)
sizetext = "massive wound"
if(w.bleeding)
usr << "\red [src.name] is bleeding from a [sizetext] on [t_his] [temp.display_name]."
continue
spawn(10) // I think we might be overloading the clients.
for(var/named in organs)
var/datum/organ/external/temp = organs[named]
if(temp)
if(temp.destroyed)
usr << "\red [src.name] is missing [t_his] [temp.display_name]."
if(temp.wounds)
for(var/datum/organ/external/wound/w in temp.wounds)
var/size = w.wound_size
var/sizetext
switch(size)
if(1)
sizetext = "cut"
if(2)
sizetext = "deep cut"
if(3)
sizetext = "flesh wound"
if(4)
sizetext = "gaping wound"
if(5)
sizetext = "big gaping wound"
if(6)
sizetext = "massive wound"
if(w.bleeding)
usr << "\red [src.name] is bleeding from a [sizetext] on [t_his] [temp.display_name]."
continue
print_flavor_text()
print_flavor_text()
usr << "\blue *---------*"
usr << "\blue *---------*"
@@ -953,7 +953,7 @@
shoes_icon.Blend(new /icon('limb_mask.dmi', "left[lying?"_l":""]"), ICON_MULTIPLY)
overlays += image(shoes_icon, "layer" = MOB_LAYER)
if (shoes.blood_DNA)
var/icon/stain_icon = icon('blood.dmi', "shoesblood[!lying ? "" : "2"]")
var/icon/stain_icon = icon('blood.dmi', "shoeblood[!lying ? "" : "2"]")
if(lo.destroyed)
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
else if(ro.destroyed)
@@ -72,10 +72,16 @@
return 1
if("hurt")
M.attack_log += text("\[[time_stamp()]\] <font color='red'>Punched [src.name] ([src.ckey])</font>")
src.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been punched by [M.name] ([M.ckey])</font>")
log_admin("ATTACK: [src] ([src.ckey]) punched [M] ([M.ckey]).")
message_admins("ATTACK: [src] ([src.ckey]) punched [M] ([M.ckey]).")
if(M.type != /mob/living/carbon/human/tajaran)
M.attack_log += text("\[[time_stamp()]\] <font color='red'>Punched [src.name] ([src.ckey])</font>")
src.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been punched by [M.name] ([M.ckey])</font>")
log_admin("ATTACK: [M] ([M.ckey]) punched [src] ([src.ckey]).")
message_admins("ATTACK: [M] ([M.ckey]) punched [src] ([src.ckey]).")
else if(M.type == /mob/living/carbon/human/tajaran)
M.attack_log += text("\[[time_stamp()]\] <font color='red'>Slashed [src.name] ([src.ckey])</font>")
src.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been slashed by [M.name] ([M.ckey])</font>")
log_admin("ATTACK: [M] ([M.ckey]) slashed [src] ([src.ckey]).")
message_admins("ATTACK: [M] ([M.ckey]) slashed [src] ([src.ckey]).")
var/attack_verb
switch(M.mutantrace)
@@ -86,16 +92,26 @@
else
attack_verb = "punch"
if(M.type == /mob/living/carbon/human/tajaran)
attack_verb = "slash"
var/damage = rand(0, 9)
if(!damage)
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
if(M.type != /mob/living/carbon/human/tajaran)
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
else if (M.type == /mob/living/carbon/human/tajaran)
playsound(loc, 'slashmiss.ogg', 25, 1, -1)
visible_message("\red <B>[M] has attempted to [attack_verb] [src]!</B>")
return 0
var/datum/organ/external/affecting = get_organ(ran_zone(M.zone_sel.selecting))
var/armor_block = run_armor_check(affecting, "melee")
if(M.mutations & HULK) damage += 5
playsound(loc, "punch", 25, 1, -1)
if(M.type != /mob/living/carbon/human/tajaran)
playsound(loc, "punch", 25, 1, -1)
else if (M.type == /mob/living/carbon/human/tajaran)
damage += 10
playsound(loc, 'slice.ogg', 25, 1, -1)
visible_message("\red <B>[M] has [attack_verb]ed [src]!</B>")
@@ -103,7 +103,7 @@ emp_act
var/bloody = 0
if((I.damtype == BRUTE) && prob(25 + (I.force * 2)))
src.add_blood(src)
I.add_blood(src)
if(prob(33))
bloody = 1
var/turf/location = loc
@@ -975,6 +975,11 @@
if(!druggy)
see_invisible = 2
else if (type == /mob/living/carbon/human/tajaran)
// sight |= SEE_MOBS
// sight |= SEE_OBJS
see_in_dark = 8
else if (seer)
var/obj/effect/rune/R = locate() in loc
if (istype(R) && R.word1 == wordsee && R.word2 == wordhell && R.word3 == wordjoin)
@@ -63,8 +63,9 @@
O.hear_talk(src, message)
var/list/listening = hearers(message_range, src)
listening -= src
listening += src
// listening -= src
// listening += src
// WAT.
var/list/eavesdropping = hearers(2, src)
eavesdropping -= src
eavesdropping -= listening
@@ -503,6 +503,9 @@
else
attack_verb = "punch"
if(M.type == /mob/living/carbon/human/tajaran)
attack_verb = "slash"
attacked += 10
if (prob(90))
if (M.mutations & HULK)
@@ -519,7 +522,11 @@
step_away(src,M,15)
playsound(loc, "punch", 25, 1, -1)
if(M.type != /mob/living/carbon/human/tajaran)
playsound(loc, "punch", 25, 1, -1)
else if (M.type == /mob/living/carbon/human/tajaran)
damage += 10
playsound(loc, 'slice.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\red <B>[] has [attack_verb]ed []!</B>", M, src), 1)
@@ -527,7 +534,10 @@
bruteloss += damage
updatehealth()
else
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
if(M.type != /mob/living/carbon/human/tajaran)
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
else if (M.type == /mob/living/carbon/human/tajaran)
playsound(loc, 'slashmiss.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\red <B>[] has attempted to [attack_verb] []!</B>", M, src), 1)
@@ -222,13 +222,20 @@
else
attack_verb = "punch"
if(M.type == /mob/living/carbon/human/tajaran)
attack_verb = "slash"
if ((prob(75) && health > 0))
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\red <B>[] has [attack_verb]ed [name]!</B>", M), 1)
playsound(loc, "punch", 25, 1, -1)
var/damage = rand(5, 10)
if(M.type != /mob/living/carbon/human/tajaran)
playsound(loc, "punch", 25, 1, -1)
else if(M.type == /mob/living/carbon/human/tajaran)
damage += 10
playsound(loc, 'slice.ogg', 25, 1, -1)
if (prob(40))
damage = rand(10, 15)
if (paralysis < 5)
@@ -242,7 +249,10 @@
updatehealth()
react_to_attack(M)
else
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
if(M.type != /mob/living/carbon/human/tajaran)
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
else if(M.type == /mob/living/carbon/human/tajaran)
playsound(loc, 'slashmiss.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\red <B>[] has attempted to [attack_verb] [name]!</B>", M), 1)
+2 -2
View File
@@ -153,7 +153,7 @@
if( !message_mode && (disease_symptoms & DISEASE_WHISPER))
message_mode = "whisper"
if(src.stunned > 0 || (traumatic_shock > 61 && prob(50)))
if(src.stunned > 2 || (traumatic_shock > 61 && prob(50)))
message_mode = "" //Stunned people shouldn't be able to physically turn on their radio/hold down the button to speak into it
@@ -339,7 +339,7 @@
for(var/mob/M in listening)
eavesdroppers.Remove(M)
for(var/mob/M in eavesdroppers)
if(M.stat)
if(M.stat || !M.client)
eavesdroppers.Remove(M)
for (var/obj/O in ((W | contents)-used_radios))
+1 -1
View File
@@ -96,7 +96,7 @@
return
/mob/living/silicon/robot/attackby(obj/item/weapon/W as obj, mob/user as mob)
/mob/living/silicon/ai/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench))
if(anchored)
user.visible_message("\blue [user] starts to unbolt [src] from the plating...")
@@ -166,6 +166,8 @@
stat("Time To Start:", ticker.pregame_timeleft)
if((ticker.current_state == GAME_STATE_PREGAME) && !going)
stat("Time To Start:", "DELAYED")
if((ticker.current_state == GAME_STATE_PLAYING) && going)
stat("Round Duration:", "[round(world.time / 36000)]:[(((world.time / 600 % 60)/10) > 1 ? world.time / 600 % 60 : add_zero(world.time / 600 % 60, 2))]:[world.time / 100 % 6][world.time / 100 % 10]")
statpanel("Lobby")
if(client.statpanel=="Lobby" && ticker)
+3 -1
View File
@@ -44,7 +44,9 @@
brightness = 3
desc = "A small lighting fixture."
light_type = /obj/item/weapon/light/bulb
/obj/machinery/light/small/spot
brightness = 5
/obj/machinery/light/spot
name = "spotlight"
@@ -101,13 +101,13 @@
if(haystack && needle)
if(isobject(haystack))
if(istype(haystack, /list))
if(length(haystack) >= end && start > 0)
if(length(haystack) + 1 >= end && start > 0)
var/list/listhaystack = haystack
return listhaystack.Find(needle, start, end)
else
if(istext(haystack))
if(length(haystack) >= end && start > 0)
if(length(haystack) + 1 >= end && start > 0)
return findtext(haystack, needle, start, end)
// Clone of copytext()