mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 03:55:05 +01:00
Merge branch 'master' of github.com:Baystation12/Baystation12
This commit is contained in:
@@ -347,7 +347,6 @@ obj/machinery/computer/forensic_scanning
|
||||
for(var/j = 1, j <= blood.len, j++)
|
||||
var/list/templist2 = blood[j]
|
||||
P.info += " Type: [templist2[2]], DNA: [templist2[1]]<br>"
|
||||
|
||||
else
|
||||
usr << "ERROR. Database not found!<br>"
|
||||
if("scan")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)]"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user