mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Merge remote-tracking branch 'paradise/master' into uselesadminverb
This commit is contained in:
@@ -87,8 +87,8 @@
|
||||
|
||||
if (href_list["freq"])
|
||||
var/new_frequency = (frequency + text2num(href_list["freq"]))
|
||||
if(new_frequency < 1441 || new_frequency > 1489)
|
||||
new_frequency = sanitize_frequency(new_frequency)
|
||||
if(new_frequency < RADIO_LOW_FREQ || new_frequency > RADIO_HIGH_FREQ)
|
||||
new_frequency = sanitize_frequency(new_frequency, RADIO_LOW_FREQ, RADIO_HIGH_FREQ)
|
||||
set_frequency(new_frequency)
|
||||
|
||||
if(href_list["code"])
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
/obj/item/clothing/under/color
|
||||
desc = "A standard issue colored jumpsuit. Variety is the spice of life!"
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/uniform.dmi'
|
||||
)
|
||||
|
||||
|
||||
/obj/item/clothing/under/color/random/New()
|
||||
..()
|
||||
@@ -48,10 +53,6 @@
|
||||
item_state = "gy_suit"
|
||||
_color = "grey"
|
||||
flags = ONESIZEFITSALL
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/uniform.dmi'
|
||||
)
|
||||
|
||||
/obj/item/clothing/under/color/grey/greytide
|
||||
flags = ONESIZEFITSALL | NODROP
|
||||
@@ -111,6 +112,10 @@
|
||||
desc = "Groovy!"
|
||||
icon_state = "psyche"
|
||||
_color = "psyche"
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/uniform.dmi'
|
||||
)
|
||||
|
||||
/obj/item/clothing/under/color/lightblue
|
||||
name = "light blue jumpsuit"
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
* Head of Security
|
||||
*/
|
||||
|
||||
/*
|
||||
* Making everything but the jackets fit Vox
|
||||
*/
|
||||
/obj/item/clothing/under/rank
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/uniform.dmi'
|
||||
)
|
||||
|
||||
/*
|
||||
* Security
|
||||
*/
|
||||
@@ -70,6 +79,10 @@
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
flags = ONESIZEFITSALL
|
||||
siemens_coefficient = 0.9
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/uniform.dmi'
|
||||
)
|
||||
|
||||
/*
|
||||
* Head of Security
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
|
||||
light_color = LIGHT_COLOR_GREEN
|
||||
|
||||
/obj/machinery/computer/account_database/proc/get_access_level(user as mob)
|
||||
if(isobserver(user) && check_rights(R_ADMIN, 0, user))
|
||||
/obj/machinery/computer/account_database/proc/get_access_level(var/mob/user)
|
||||
if(user.can_admin_interact())
|
||||
return 2
|
||||
if (!held_card)
|
||||
return 0
|
||||
|
||||
@@ -517,9 +517,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
src << "\blue Temperature: [round(environment.temperature-T0C,0.1)]°C"
|
||||
src << "\blue Heat Capacity: [round(environment.heat_capacity(),0.1)]"
|
||||
|
||||
|
||||
/mob/dead/observer/verb/view_manfiest()
|
||||
|
||||
/mob/dead/observer/verb/view_manifest()
|
||||
set name = "View Crew Manifest"
|
||||
set category = "Ghost"
|
||||
|
||||
@@ -638,4 +637,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
client.images |= ghost_darkness_images
|
||||
if (ghostimage)
|
||||
client.images -= ghostimage //remove ourself
|
||||
|
||||
|
||||
/mob/proc/can_admin_interact()
|
||||
return 0
|
||||
|
||||
/mob/dead/observer/can_admin_interact()
|
||||
return check_rights(R_ADMIN, 0, src)
|
||||
@@ -49,7 +49,7 @@
|
||||
grabber << "<span class='notice'>You scoop up \the [src]."
|
||||
src << "<span class='notice'>\The [grabber] scoops you up.</span>"
|
||||
grabber.status_flags |= PASSEMOTES
|
||||
return
|
||||
return H
|
||||
|
||||
//Mob specific holders.
|
||||
|
||||
@@ -65,4 +65,9 @@
|
||||
name = "maintenance drone"
|
||||
desc = "It's a small maintenance robot."
|
||||
icon_state = "drone"
|
||||
origin_tech = "magnets=3;engineering=5"
|
||||
origin_tech = "magnets=3;engineering=5"
|
||||
|
||||
/obj/item/weapon/holder/pai
|
||||
name = "pAI"
|
||||
desc = "It's a little robot."
|
||||
icon_state = "pai"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/obj/item/organ/brain
|
||||
name = "brain"
|
||||
health = 400 //They need to live awhile longer than other organs.
|
||||
max_damage = 200
|
||||
icon_state = "brain2"
|
||||
force = 1.0
|
||||
w_class = 2.0
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
/mob/living/silicon/pai/emote(var/act,var/m_type=1,var/message = null)
|
||||
var/param = null
|
||||
if (findtext(act, "-", 1, null))
|
||||
var/t1 = findtext(act, "-", 1, null)
|
||||
param = copytext(act, t1 + 1, length(act) + 1)
|
||||
act = copytext(act, 1, t1)
|
||||
|
||||
if(findtext(act,"s",-1) && !findtext(act,"_",-2))//Removes ending s's unless they are prefixed with a '_'
|
||||
act = copytext(act,1,length(act))
|
||||
|
||||
//Emote Cooldown System (it's so simple!)
|
||||
// proc/handle_emote_CD() located in [code\modules\mob\emote.dm]
|
||||
var/on_CD = 0
|
||||
switch(act)
|
||||
//Cooldown-inducing emotes
|
||||
if("ping","buzz")
|
||||
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm
|
||||
//Everything else, including typos of the above emotes
|
||||
else
|
||||
on_CD = 0 //If it doesn't induce the cooldown, we won't check for the cooldown
|
||||
|
||||
if(on_CD == 1) // Check if we need to suppress the emote attempt.
|
||||
return // Suppress emote, you're still cooling off.
|
||||
//--FalseIncarnate
|
||||
|
||||
switch(act)
|
||||
if ("me")
|
||||
if (src.client)
|
||||
if(client.prefs.muted & MUTE_IC)
|
||||
src << "You cannot send IC messages (muted)."
|
||||
return
|
||||
if (src.client.handle_spam_prevention(message,MUTE_IC))
|
||||
return
|
||||
if (stat)
|
||||
return
|
||||
if(!(message))
|
||||
return
|
||||
else
|
||||
return custom_emote(m_type, message)
|
||||
|
||||
if ("custom")
|
||||
return custom_emote(m_type, message)
|
||||
|
||||
if("ping")
|
||||
var/M = null
|
||||
if(param)
|
||||
for (var/mob/A in view(null, null))
|
||||
if (param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
|
||||
if (param)
|
||||
message = "<B>[src]</B> pings at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> pings."
|
||||
playsound(src.loc, 'sound/machines/ping.ogg', 50, 0)
|
||||
m_type = 1
|
||||
|
||||
if("buzz")
|
||||
var/M = null
|
||||
if(param)
|
||||
for (var/mob/A in view(null, null))
|
||||
if (param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
|
||||
if (param)
|
||||
message = "<B>[src]</B> buzzes at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> buzzes."
|
||||
playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0)
|
||||
m_type = 1
|
||||
|
||||
if ("help")
|
||||
src << "ping, \nbuzz."
|
||||
else
|
||||
src << "\blue Unusable emote '[act]'. Say *help for a list."
|
||||
|
||||
if ((message && src.stat == 0))
|
||||
if (m_type & 1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message(message, m_type)
|
||||
else
|
||||
for(var/mob/O in hearers(src, null))
|
||||
O.show_message(message, m_type)
|
||||
return
|
||||
@@ -8,7 +8,7 @@
|
||||
small = 1
|
||||
pass_flags = 1
|
||||
density = 0
|
||||
|
||||
holder_type = /obj/item/weapon/holder/pai
|
||||
var/network = "SS13"
|
||||
var/obj/machinery/camera/current = null
|
||||
|
||||
@@ -25,7 +25,11 @@
|
||||
"Mouse" = "mouse",
|
||||
"Monkey" = "monkey",
|
||||
"Corgi" = "borgi",
|
||||
"Fox" = "fox"
|
||||
"Fox" = "fox",
|
||||
"Parrot" = "parrot",
|
||||
"Box Bot" = "boxbot",
|
||||
"Spider Bot" = "spiderbot",
|
||||
"Fairy" = "fairy"
|
||||
)
|
||||
|
||||
var/global/list/possible_say_verbs = list(
|
||||
@@ -461,6 +465,16 @@
|
||||
src.client.perspective = EYE_PERSPECTIVE
|
||||
src.client.eye = card
|
||||
|
||||
// If we are being held, handle removing our holder from their inv.
|
||||
var/obj/item/weapon/holder/H = loc
|
||||
if(istype(H))
|
||||
var/mob/living/M = H.loc
|
||||
if(istype(M))
|
||||
M.unEquip(H)
|
||||
H.loc = get_turf(src)
|
||||
src.loc = get_turf(H)
|
||||
|
||||
// Move us into the card and move the card to the ground
|
||||
//This seems redundant but not including the forced loc setting messes the behavior up.
|
||||
src.loc = card
|
||||
card.loc = get_turf(card)
|
||||
@@ -520,6 +534,31 @@
|
||||
// No binary for pAIs.
|
||||
/mob/living/silicon/pai/binarycheck()
|
||||
return 0
|
||||
|
||||
// Handle being picked up.
|
||||
|
||||
|
||||
/mob/living/silicon/pai/get_scooped(var/mob/living/carbon/grabber)
|
||||
var/obj/item/weapon/holder/H = ..()
|
||||
if(!istype(H))
|
||||
return
|
||||
H.icon_state = "pai-[icon_state]"
|
||||
H.item_state = "pai-[icon_state]"
|
||||
H.icon_override = 'icons/mob/in-hand/paiheld.dmi'//I have these in diffrent DMI so i am overriding
|
||||
grabber.put_in_active_hand(H)//for some reason unless i call this it dosen't work
|
||||
grabber.update_inv_l_hand()
|
||||
grabber.update_inv_r_hand()
|
||||
|
||||
return H
|
||||
|
||||
/mob/living/silicon/pai/MouseDrop(atom/over_object)
|
||||
var/mob/living/carbon/H = over_object
|
||||
if(!istype(H) || !Adjacent(H)) return ..()
|
||||
if(H.a_intent == "help")
|
||||
get_scooped(H)
|
||||
//return
|
||||
else
|
||||
return ..()
|
||||
|
||||
/mob/living/silicon/pai/on_forcemove(atom/newloc)
|
||||
if(card)
|
||||
|
||||
@@ -538,7 +538,7 @@
|
||||
|
||||
else if(href_list["freq"])
|
||||
var/new_frequency = (P.sradio.frequency + text2num(href_list["freq"]))
|
||||
if(new_frequency < 1200 || new_frequency > 1600)
|
||||
if(new_frequency < PUBLIC_LOW_FREQ || new_frequency > PUBLIC_HIGH_FREQ)
|
||||
new_frequency = sanitize_frequency(new_frequency)
|
||||
P.sradio.set_frequency(new_frequency)
|
||||
return 1
|
||||
@@ -549,3 +549,42 @@
|
||||
P.sradio.code = min(100, P.sradio.code)
|
||||
P.sradio.code = max(1, P.sradio.code)
|
||||
return 1
|
||||
|
||||
/datum/pai_software/host_scan
|
||||
name = "Host Bioscan"
|
||||
ram_cost = 5
|
||||
id = "bioscan"
|
||||
toggle = 0
|
||||
|
||||
|
||||
on_ui_interact(mob/living/silicon/pai/user, datum/nanoui/ui=null, force_open=1)
|
||||
|
||||
var/data[0]
|
||||
var/mob/living/held = user.loc
|
||||
var/count = 0
|
||||
|
||||
// Find the carrier
|
||||
while(!isliving(held))
|
||||
if(!held || !held.loc || count > 6)
|
||||
//For a runtime where M ends up in nullspace (similar to bluespace but less colourful)
|
||||
src << "You are not being carried by anyone!"
|
||||
return 0
|
||||
held = held.loc
|
||||
count++
|
||||
if(isliving(held))
|
||||
data["holder"] = held
|
||||
data["health"] = "[held.stat > 1 ? "dead" : "[held.health]% healthy"]"
|
||||
data["oxy"] = "[held.getOxyLoss() > 50 ? "<font color=#FF5555>" : "<font color=#55FF55>"][held.getOxyLoss()]</font>"
|
||||
data["tox"] = "[held.getToxLoss() > 50 ? "<font color=#FF5555>" : "<font color=#55FF55>"][held.getToxLoss()]</font>"
|
||||
data["burn"] = "[held.getFireLoss() > 50 ? "<font color=#FF5555>" : "<font color=#55FF55>"][held.getFireLoss()]</font>"
|
||||
data["temp"] = "[held.bodytemperature-T0C]°C ([held.bodytemperature*1.8-459.67]°F)"
|
||||
else
|
||||
data["holder"] = 0
|
||||
|
||||
ui = nanomanager.try_update_ui(user, user, id, ui,data , force_open)
|
||||
if(!ui)
|
||||
// Don't copy-paste this unless you're making a pAI software module!
|
||||
ui = new(user, user, id, "pai_bioscan.tmpl", "Host Bioscan", 400, 350)
|
||||
ui.set_initial_data(data)
|
||||
ui.open()
|
||||
//.set_auto_update(1)
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
name = "Slaughter Demon"
|
||||
real_name = "Slaughter Demon"
|
||||
desc = "You should run."
|
||||
speak = list("ire", "ego", "nahlizet", "certum", "veri", "jatkaa", "balaq", "mgar", "karazet", "geeri", "orkan", "allaq")
|
||||
speak_emote = list("gurgles")
|
||||
emote_hear = list("wails","screeches")
|
||||
response_help = "thinks better of touching"
|
||||
@@ -76,7 +77,7 @@
|
||||
/mob/living/simple_animal/slaughter/Life()
|
||||
..()
|
||||
if(boost<world.time)
|
||||
speed = 1
|
||||
speed = 2
|
||||
else
|
||||
speed = 0
|
||||
|
||||
@@ -98,8 +99,6 @@
|
||||
speed = 0
|
||||
boost = world.time + 30
|
||||
|
||||
/mob/living/simple_animal/slaughter/say(message)
|
||||
return 0
|
||||
////////////////////The Powers
|
||||
|
||||
//Paradise Port:I added this cuase..SPOOPY DEMON IN YOUR BRAIN
|
||||
@@ -122,7 +121,7 @@
|
||||
return
|
||||
log_say("Slaughter Demon Transmit: [key_name(usr)]->[key_name(M)]: [msg]")
|
||||
usr << "<span class='info'><b>You whisper to [M]: </b>[msg]</span>"
|
||||
M << "<span class='deadsay'><b>Suddenly a strange, demonic voice resonates in your head... </b></span><i><span class='danger'> [msg]</span></I>"
|
||||
M << "<span class='deadsay'><b>Suddenly a strange, demonic voice resonates in your head... </b></span><i><span class='danger'> [msg]</span></I>"
|
||||
for(var/mob/dead/observer/G in player_list)
|
||||
G.show_message("<i>Demonic message from <b>[usr]</b> ([ghost_follow_link(usr, ghost=G)]) to <b>[M]</b> ([ghost_follow_link(M, ghost=G)]): [msg]</i>")
|
||||
|
||||
|
||||
@@ -391,7 +391,7 @@
|
||||
var/mob/living/carbon/attacker = user
|
||||
user.visible_message("<span class='danger'>[user] is attempting to devour \the [affecting]!</span>")
|
||||
|
||||
if(!do_mob(user, affecting) || !do_after(user, checktime(user, affecting, target = affecting))) return
|
||||
if(!do_after(user, checktime(user, affecting), target = affecting)) return
|
||||
|
||||
user.visible_message("<span class='danger'>[user] devours \the [affecting]!</span>")
|
||||
|
||||
|
||||
@@ -113,8 +113,6 @@
|
||||
loc_landmark = sloc
|
||||
|
||||
O.loc = loc_landmark.loc
|
||||
for (var/obj/item/device/radio/intercom/comm in O.loc)
|
||||
comm.ai += O
|
||||
|
||||
O.on_mob_init()
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
return STATUS_CLOSE // By default no mob can do anything with NanoUI
|
||||
|
||||
/mob/dead/observer/default_can_use_topic()
|
||||
if(check_rights(R_ADMIN, 0, src))
|
||||
if(can_admin_interact())
|
||||
return STATUS_INTERACTIVE // Admins are more equal
|
||||
return STATUS_UPDATE // Ghosts can view updates
|
||||
|
||||
|
||||
@@ -836,8 +836,8 @@
|
||||
return wires.IsIndexCut(wireIndex)
|
||||
|
||||
|
||||
/obj/machinery/power/apc/proc/can_use(mob/user as mob, var/loud = 0) //used by attack_hand() and Topic()
|
||||
if(isobserver(user) && check_rights(R_ADMIN, 0, user))
|
||||
/obj/machinery/power/apc/proc/can_use(var/mob/user, var/loud = 0) //used by attack_hand() and Topic()
|
||||
if(user.can_admin_interact())
|
||||
return 1
|
||||
|
||||
autoflag = 5
|
||||
|
||||
@@ -471,25 +471,35 @@ datum
|
||||
process_flags = ORGANIC | SYNTHETIC
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(ishuman(M))
|
||||
if((M.mind in ticker.mode.cult) && prob(10))
|
||||
M << "\blue A cooling sensation from inside you brings you an untold calmness."
|
||||
if(!data) data = 1
|
||||
data++
|
||||
M.jitteriness = max(M.jitteriness-5,0)
|
||||
if(data >= 30) // 12 units, 60 seconds @ metabolism 0.4 units & tick rate 2.0 sec
|
||||
if (!M.stuttering) M.stuttering = 1
|
||||
M.stuttering += 4
|
||||
M.Dizzy(5)
|
||||
if(iscultist(M) && prob(5))
|
||||
M.say(pick("Av'te Nar'sie","Pa'lid Mors","INO INO ORA ANA","SAT ANA!","Daim'niodeis Arc'iai Le'eones","Egkau'haom'nai en Chaous","Ho Diak'nos tou Ap'iron","R'ge Na'sie","Diabo us Vo'iscum","Si gn'um Co'nu"))
|
||||
if(data >= 75 && prob(33)) // 30 units, 150 seconds
|
||||
if (!M.confused) M.confused = 1
|
||||
M.confused += 3
|
||||
if(iscultist(M))
|
||||
ticker.mode.remove_cultist(M.mind)
|
||||
ticker.mode.remove_all_cult_icons_from_client(M.client) // fixes the deconverted's own client not removing their mob's cult icon
|
||||
for(var/mob/O in viewers(M, null))
|
||||
O.show_message(text("\blue []'s eyes blink and become clearer.", M), 1) // So observers know it worked.
|
||||
// Vampires who ingest holy water combust if it's in their system for long enough.
|
||||
holder.remove_reagent(src.id, src.volume) // maybe this is a little too perfect and a max() cap on the statuses would be better??
|
||||
M.jitteriness = 0
|
||||
M.stuttering = 0
|
||||
M.confused = 0
|
||||
if(ishuman(M)) .
|
||||
if(((M.mind in ticker.mode.vampires) || M.mind.vampire) && (!(VAMP_FULL in M.mind.vampire.powers)) && prob(80))
|
||||
data++
|
||||
switch(data)
|
||||
if(1 to 3)
|
||||
if(1 to 4)
|
||||
M << "<span class = 'warning'>Something sizzles in your veins!</span>"
|
||||
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
|
||||
if(4 to 10)
|
||||
if(5 to 12)
|
||||
M << "<span class = 'danger'>You feel an intense burning inside of you!</span>"
|
||||
M.adjustFireLoss(1)
|
||||
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
|
||||
if(11 to INFINITY)
|
||||
if(13 to INFINITY)
|
||||
M << "<span class = 'danger'>You suddenly ignite in a holy fire!</span>"
|
||||
for(var/mob/O in viewers(M, null))
|
||||
O.show_message(text("<span class = 'danger'>[] suddenly bursts into flames!<span>", M), 1)
|
||||
@@ -497,7 +507,8 @@ datum
|
||||
M.IgniteMob() //Only problem with igniting people is currently the commonly availible fire suits make you immune to being on fire
|
||||
M.adjustFireLoss(3) //Hence the other damages... ain't I a bastard?
|
||||
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
|
||||
holder.remove_reagent(src.id, 10 * REAGENTS_METABOLISM) //high metabolism to prevent extended uncult rolls.
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
@@ -1063,23 +1074,35 @@ datum
|
||||
return
|
||||
if(method == TOUCH)
|
||||
M.adjust_fire_stacks(volume / 10)
|
||||
return
|
||||
/*
|
||||
reaction_obj(var/obj/O, var/volume)
|
||||
var/turf/the_turf = get_turf(O)
|
||||
if(!the_turf)
|
||||
return //No sense trying to start a fire if you don't have a turf to set on fire. --NEO
|
||||
new /obj/effect/decal/cleanable/liquid_fuel(the_turf, volume)
|
||||
reaction_turf(var/turf/T, var/volume)
|
||||
new /obj/effect/decal/cleanable/liquid_fuel(T, volume)
|
||||
return
|
||||
*/
|
||||
return
|
||||
..()
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(1)
|
||||
..()
|
||||
return
|
||||
|
||||
unholywater //if you somehow managed to extract this from someone, dont splash it on yourself and have a smoke
|
||||
name = "Unholy Water"
|
||||
id = "unholywater"
|
||||
description = "Something that shouldn't exist on this plane of existance."
|
||||
process_flags = ORGANIC | SYNTHETIC //ethereal means everything processes it.
|
||||
|
||||
on_mob_life(mob/living/M)
|
||||
M.adjustBrainLoss(3)
|
||||
if(iscultist(M))
|
||||
M.status_flags |= GOTTAGOFAST
|
||||
M.drowsyness = max(M.drowsyness-5, 0)
|
||||
M.AdjustParalysis(-2)
|
||||
M.AdjustStunned(-2)
|
||||
M.AdjustWeakened(-2)
|
||||
else
|
||||
M.adjustToxLoss(2)
|
||||
M.adjustFireLoss(2)
|
||||
M.adjustOxyLoss(2)
|
||||
M.adjustBruteLoss(2)
|
||||
holder.remove_reagent(src.id, 1)
|
||||
|
||||
incendiary_fuel //copy-pasta of welding fuel; allow incendiary grenades to function better without the headache of people spraying fuel everywhere with regular welding fuel.
|
||||
name = "Incendiary fuel"
|
||||
@@ -2242,11 +2265,11 @@ datum
|
||||
M.AdjustWeakened(-1)
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
overdose_process(var/mob/living/M as mob)
|
||||
if(volume > 45)
|
||||
M.Jitter(5)
|
||||
|
||||
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
target_radio = null
|
||||
else if(href_list["freq"])
|
||||
var/new_frequency = (frequency + text2num(href_list["freq"]))
|
||||
if (frequency < 1200 || frequency > 1600)
|
||||
if (frequency < RADIO_LOW_FREQ || frequency > RADIO_HIGH_FREQ)
|
||||
new_frequency = sanitize_frequency(new_frequency, 1499)
|
||||
frequency = new_frequency
|
||||
|
||||
|
||||
@@ -62,14 +62,14 @@
|
||||
interpreter.SetVar("WEST" , WEST) // WEST (8)
|
||||
|
||||
// Channel macros
|
||||
interpreter.SetVar("$common", 1459)
|
||||
interpreter.SetVar("$science", 1351)
|
||||
interpreter.SetVar("$command", 1353)
|
||||
interpreter.SetVar("$medical", 1355)
|
||||
interpreter.SetVar("$engineering", 1357)
|
||||
interpreter.SetVar("$security", 1359)
|
||||
interpreter.SetVar("$supply", 1347)
|
||||
interpreter.SetVar("$service", 1349)
|
||||
interpreter.SetVar("$common", PUB_FREQ)
|
||||
interpreter.SetVar("$science", SCI_FREQ)
|
||||
interpreter.SetVar("$command", COMM_FREQ)
|
||||
interpreter.SetVar("$medical", MED_FREQ)
|
||||
interpreter.SetVar("$engineering", ENG_FREQ)
|
||||
interpreter.SetVar("$security", SEC_FREQ)
|
||||
interpreter.SetVar("$supply", SUP_FREQ)
|
||||
interpreter.SetVar("$service", SRV_FREQ)
|
||||
|
||||
// Signal data
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
return
|
||||
|
||||
if(!allowed(user) && !isobserver(user))
|
||||
user << "<span class='warning'>Access Denied.</span>"
|
||||
user << "<span class='warning'>Access denied.</span>"
|
||||
return 1
|
||||
|
||||
ui_interact(user)
|
||||
|
||||
Reference in New Issue
Block a user