Merge branch 'master' into var/const-to-define

This commit is contained in:
AffectedArc07
2020-03-09 10:33:59 +00:00
committed by GitHub
50 changed files with 182 additions and 96 deletions
+1 -1
View File
@@ -2164,7 +2164,7 @@
var/obj/pageobj = B.contents[page]
data += "<A href='?src=[UID()];AdminFaxViewPage=[page];paper_bundle=\ref[B]'>Page [page] - [pageobj.name]</A><BR>"
usr << browse(data, "window=[B.name]")
usr << browse(data, "window=PaperBundle[B.UID()]")
else
to_chat(usr, "<span class='warning'>The faxed item is not viewable. This is probably a bug, and should be reported on the tracker: [fax.type]</span>")
+1 -1
View File
@@ -116,7 +116,7 @@
if(!msg)
return
msg = pencode_to_html(msg)
msg = admin_pencode_to_html(msg)
to_chat(world, "[msg]")
log_admin("GlobalNarrate: [key_name(usr)] : [msg]")
message_admins("<span class='boldnotice'>GlobalNarrate: [key_name_admin(usr)]: [msg]<BR></span>", 1)
+1 -1
View File
@@ -439,7 +439,7 @@
/datum/lore/organization/gov/synth
name = "Synthetic Union"
short_name = "Synthtica"
short_name = "Synthetica"
acronym = "SYN"
desc = "A defensive coalition of synthetics based out of New Canaan,\
the Synthetic Union is an organization which aims to establish and consolidate synthetic rights across the galaxy.\
+4
View File
@@ -15,6 +15,10 @@
var/list/vents = list()
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in GLOB.all_vent_pumps)
if(is_station_level(temp_vent.loc.z) && !temp_vent.welded)
if(!temp_vent.parent)
// Issue happening more often with vents. Log and continue. Delete once solved
log_debug("spider_terror/start(), vent has no parent: [temp_vent], qdeled: [QDELETED(temp_vent)], loc: [temp_vent.loc]")
continue
if(temp_vent.parent.other_atmosmch.len > 50)
vents += temp_vent
var/spider_type
+3
View File
@@ -18,6 +18,9 @@ var/global/list/unused_trade_stations = list("sol")
return
if(seclevel2num(get_security_level()) >= SEC_LEVEL_RED)
event_announcement.Announce("A trading shuttle from Jupiter Station has been denied docking permission due to the heightened security alert aboard [station_name()].", "Trader Shuttle Docking Request Refused")
// if the docking request was refused, fire another major event in 60 seconds
var/list/datum/event_container/EC = SSevents.event_containers[EVENT_LEVEL_MAJOR]
EC.next_event_time = world.time + (60 * 10)
return
var/list/spawnlocs = list()
+5 -4
View File
@@ -17,7 +17,7 @@
/obj/item/seeds/cannabis/death,
/obj/item/seeds/cannabis/white,
/obj/item/seeds/cannabis/ultimate)
reagents_add = list("thc" = 0.15)
reagents_add = list("thc" = 0.15, "cbd" = 0.15)
/obj/item/seeds/cannabis/rainbow
@@ -28,7 +28,7 @@
plantname = "Rainbow Weed"
product = /obj/item/reagent_containers/food/snacks/grown/cannabis/rainbow
mutatelist = list()
reagents_add = list("lsd" = 0.15, "thc" = 0.15)
reagents_add = list("lsd" = 0.15, "thc" = 0.15, "cbd" = 0.15)
rarity = 40
/obj/item/seeds/cannabis/death
@@ -39,7 +39,7 @@
plantname = "Deathweed"
product = /obj/item/reagent_containers/food/snacks/grown/cannabis/death
mutatelist = list()
reagents_add = list("cyanide" = 0.35, "thc" = 0.15)
reagents_add = list("cyanide" = 0.35, "thc" = 0.15, "cbd" = 0.15)
rarity = 40
/obj/item/seeds/cannabis/white
@@ -50,7 +50,7 @@
plantname = "Lifeweed"
product = /obj/item/reagent_containers/food/snacks/grown/cannabis/white
mutatelist = list()
reagents_add = list("omnizine" = 0.35, "thc" = 0.15)
reagents_add = list("omnizine" = 0.35, "thc" = 0.15, "cbd" = 0.15)
rarity = 40
@@ -72,6 +72,7 @@
"haloperidol" = 0.15,
"methamphetamine" = 0.15,
"thc" = 0.15,
"cbd" = 0.15,
"psilocybin" = 0.15,
"hairgrownium" = 0.15,
"ectoplasm" = 0.15,
+4 -1
View File
@@ -141,7 +141,8 @@
spawn(30)
if(!QDELETED(src))
var/mob/living/simple_animal/hostile/killertomato/K = new /mob/living/simple_animal/hostile/killertomato(get_turf(loc))
var/turf/T = get_turf(user)
var/mob/living/simple_animal/hostile/killertomato/K = new /mob/living/simple_animal/hostile/killertomato(T)
K.maxHealth += round(seed.endurance / 3)
K.melee_damage_lower += round(seed.potency / 10)
K.melee_damage_upper += round(seed.potency / 10)
@@ -150,4 +151,6 @@
K.visible_message("<span class='notice'>The Killer Tomato growls as it suddenly awakens.</span>")
if(user)
user.unEquip(src)
message_admins("[key_name_admin(user)] released a killer tomato at [ADMIN_COORDJMP(T)]")
log_game("[key_name(user)] released a killer tomato at [COORD(T)]")
qdel(src)
@@ -79,5 +79,5 @@ In all, this is a lot like the monkey code. /N
if(M.is_adult)
damage = rand(10, 40)
adjustBruteLoss(damage)
add_attack_logs(src, M, "Slime'd for [damage] damage")
add_attack_logs(M, src, "Slime'd for [damage] damage")
updatehealth("slime attack")
@@ -585,6 +585,14 @@
message = "<B>[src]</B> makes a weak noise"
m_type = 2
if("hsigh", "hsighs")
if(!muzzled)
message = "<B>[src]</B> sighs contentedly."
m_type = 2
else
message = "<B>[src]</B> makes a [pick("chill", "relaxed")] noise"
m_type = 2
if("laugh", "laughs")
var/M = handle_emote_param(param)
if(miming)
@@ -454,12 +454,6 @@
popup.set_content(dat)
popup.open()
/mob/living/carbon/human/Crossed(atom/movable/AM, oldloc)
var/mob/living/simple_animal/bot/mulebot/MB = AM
if(istype(MB))
MB.RunOver(src)
// Get rank from ID, ID inside PDA, PDA, ID in wallet, etc.
/mob/living/carbon/human/proc/get_authentification_rank(var/if_no_id = "No id", var/if_no_job = "No job")
var/obj/item/pda/pda = wear_id
+1 -1
View File
@@ -542,7 +542,7 @@
if(COLDRES in mutations)
return 1 //Fully protected from the cold.
temperature = max(temperature, 2.7) //There is an occasional bug where the temperature is miscalculated in ares with a small amount of gas on them, so this is necessary to ensure that that bug does not affect this calculation. Space's temperature is 2.7K and most suits that are intended to protect against any cold, protect down to 2.0K.
temperature = max(temperature, TCMB) //There is an occasional bug where the temperature is miscalculated in areas with a small amount of gas on them, so this is necessary to ensure that that bug does not affect this calculation. Space's temperature is 2.7K and most suits that are intended to protect against any cold, protect down to 2.0K.
var/thermal_protection_flags = get_cold_protection_flags(temperature)
var/thermal_protection = 0.0
@@ -165,7 +165,7 @@
..()
/datum/species/plasmaman/handle_reagents(mob/living/carbon/human/H, datum/reagent/R)
if(R.id == "plasma")
if(R.id == "plasma" || R.id == "plasma_dust")
H.adjustBruteLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER)
H.adjustFireLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER)
H.adjustPlasma(20)
+1 -1
View File
@@ -296,7 +296,7 @@
return FALSE
if(stat != DEAD)
add_attack_logs(src, M, "Slime'd")
add_attack_logs(M, src, "Slime'd")
M.do_attack_animation(src)
visible_message("<span class='danger'>\The [M.name] glomps [src]!</span>", "<span class='userdanger'>\The [M.name] glomps you!</span>")
return TRUE
@@ -63,6 +63,7 @@
mulebot_count++
set_suffix(suffix ? suffix : "#[mulebot_count]")
RegisterSignal(src, COMSIG_CROSSED_MOVABLE, .proc/human_squish_check)
/mob/living/simple_animal/bot/mulebot/Destroy()
unload(0)
@@ -866,6 +867,11 @@
else
..()
/mob/living/simple_animal/bot/mulebot/proc/human_squish_check(src, atom/movable/AM)
if(!ishuman(AM))
return
RunOver(AM)
#undef SIGH
#undef ANNOYED
#undef DELIGHT
+1 -1
View File
@@ -80,7 +80,7 @@
else
data = "<div id='markdown'>[infolinks ? info_links : info]</div>[stamps]"
if(view)
var/datum/browser/popup = new(user, name, , paper_width, paper_height)
var/datum/browser/popup = new(user, "Paper[UID()]", , paper_width, paper_height)
popup.stylesheets = list()
popup.set_content(data)
if(!stars)
+4 -4
View File
@@ -63,13 +63,13 @@
qdel(W)
else
if(istype(W, /obj/item/pen) || istype(W, /obj/item/toy/crayon))
usr << browse("", "window=[name]") //Closes the dialog
usr << browse("", "window=PaperBundle[UID()]") //Closes the dialog
P = src[page]
P.attackby(W, user, params)
update_icon()
if(winget(usr, "[name]", "is-visible") == "true") // NOT MY FAULT IT IS A BUILT IN PROC PLEASE DO NOT HIT ME
if(winget(usr, "PaperBundle[UID()]", "is-visible") == "true") // NOT MY FAULT IT IS A BUILT IN PROC PLEASE DO NOT HIT ME
attack_self(usr) //Update the browsed page.
add_fingerprint(usr)
return
@@ -125,7 +125,7 @@
if(istype(src[page], /obj/item/paper))
var/obj/item/paper/P = W
dat += P.show_content(usr, view = 0)
usr << browse(dat, "window=[name]")
usr << browse(dat, "window=PaperBundle[UID()]")
else if(istype(src[page], /obj/item/photo))
var/obj/item/photo/P = W
usr << browse_rsc(P.img, "tmp_photo.png")
@@ -133,7 +133,7 @@
+ "<body style='overflow:hidden'>" \
+ "<div> <img src='tmp_photo.png' width = '180'" \
+ "[P.scribble ? "<div><br> Written on the back:<br><i>[P.scribble]</i>" : ""]"\
+ "</body></html>", "window=[name]")
+ "</body></html>", "window=PaperBundle[UID()]")
/obj/item/paper_bundle/attack_self(mob/user as mob)
src.show_content(user)
+12 -3
View File
@@ -81,13 +81,22 @@
. += "<span class='notice'>It is too far away.</span>"
/obj/item/photo/proc/show(mob/user as mob)
usr << browse_rsc(img, "tmp_photo.png")
var/icon/img_shown = new/icon(img)
var/colormatrix = user.get_screen_colour()
// Apply colorblindness effects, if any.
if(islist(colormatrix))
img_shown.MapColors(
colormatrix[1], colormatrix[2], colormatrix[3],
colormatrix[4], colormatrix[5], colormatrix[6],
colormatrix[7], colormatrix[8], colormatrix[9],
)
usr << browse_rsc(img_shown, "tmp_photo.png")
usr << browse("<html><head><title>[name]</title></head>" \
+ "<body style='overflow:hidden;margin:0;text-align:center'>" \
+ "<img src='tmp_photo.png' width='[64*photo_size]' style='-ms-interpolation-mode:nearest-neighbor' />" \
+ "[scribble ? "<br>Written on the back:<br><i>[scribble]</i>" : ""]"\
+ "</body></html>", "window=book;size=[64*photo_size]x[scribble ? 400 : 64*photo_size]")
onclose(usr, "[name]")
+ "</body></html>", "window=Photo[UID()];size=[64*photo_size]x[scribble ? 400 : 64*photo_size]")
onclose(usr, "Photo[UID()]")
return
/obj/item/photo/verb/rename()
@@ -22,30 +22,29 @@
energy = 50
/obj/effect/accelerated_particle/New(loc)
..()
/obj/effect/accelerated_particle/Initialize(loc)
. = ..()
addtimer(CALLBACK(src, .proc/propagate), 1)
RegisterSignal(src, COMSIG_CROSSED_MOVABLE, .proc/try_irradiate)
RegisterSignal(src, COMSIG_MOVABLE_CROSSED, .proc/try_irradiate)
QDEL_IN(src, movement_range)
addtimer(CALLBACK(src, .proc/move), 1)
/obj/effect/accelerated_particle/Bump(atom/A)
if(A)
if(isliving(A))
toxmob(A)
else if(istype(A, /obj/machinery/the_singularitygen))
var/obj/machinery/the_singularitygen/S = A
S.energy += energy
else if(istype(A, /obj/singularity))
var/obj/singularity/S = A
S.energy += energy
else if(istype(A, /obj/structure/blob))
var/obj/structure/blob/B = A
B.take_damage(energy * 0.6)
movement_range = 0
/obj/effect/accelerated_particle/Crossed(atom/A, oldloc)
/obj/effect/accelerated_particle/proc/try_irradiate(src, atom/A)
if(isliving(A))
toxmob(A)
var/mob/living/L = A
L.apply_effect((energy * 6), IRRADIATE, 0)
else if(istype(A, /obj/machinery/the_singularitygen))
var/obj/machinery/the_singularitygen/S = A
S.energy += energy
else if(istype(A, /obj/structure/blob))
var/obj/structure/blob/B = A
B.take_damage(energy * 0.6)
movement_range = 0
/obj/effect/accelerated_particle/Bump(obj/singularity/S)
if(!istype(S))
return ..()
S.energy += energy
/obj/effect/accelerated_particle/ex_act(severity)
@@ -54,17 +53,7 @@
/obj/effect/accelerated_particle/singularity_pull()
return
/obj/effect/accelerated_particle/proc/toxmob(mob/living/M)
M.apply_effect((energy * 6), IRRADIATE, 0)
/obj/effect/accelerated_particle/proc/move()
/obj/effect/accelerated_particle/proc/propagate()
addtimer(CALLBACK(src, .proc/propagate), 1)
if(!step(src,dir))
forceMove(get_step(src, dir))
movement_range--
if(movement_range == 0)
qdel(src)
else
sleep(speed)
move()
+9 -1
View File
@@ -98,7 +98,7 @@
return
if(!chambered)
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
if(cell.charge >= shot.e_cost) //if there's enough power in the cell cell...
if(cell.charge >= shot.e_cost) //if there's enough power in the WEAPON'S cell...
chambered = shot //...prepare a new shot based on the current ammo type selected
if(!chambered.BB)
chambered.newshot()
@@ -111,6 +111,11 @@
chambered = null //either way, released the prepared shot
newshot()
/obj/item/gun/energy/process_fire(atom/target, mob/living/user, message = 1, params, zone_override, bonus_spread = 0)
if(!chambered && can_shoot())
process_chamber()
return ..()
/obj/item/gun/energy/proc/select_fire(mob/living/user)
select++
if(select > ammo_type.len)
@@ -193,6 +198,9 @@
. = ..()
/obj/item/gun/energy/proc/robocharge()
if(cell.charge == cell.maxcharge)
// No point in recharging a weapon's cell that is already at 100%. That would just waste borg cell power for no reason.
return
if(isrobot(loc))
var/mob/living/silicon/robot/R = loc
if(R && R.cell)
@@ -23,6 +23,7 @@
I.receive_damage(-5, FALSE)
for(var/obj/item/organ/external/E in H.bodyparts)
E.mend_fracture()
E.internal_bleeding = FALSE
M.SetEyeBlind(0, FALSE)
M.CureNearsighted(FALSE)
M.CureBlind(FALSE)
@@ -1192,15 +1192,16 @@
taste_description = "motor oil"
/datum/reagent/consumable/ethanol/synthanol/on_mob_life(mob/living/M)
if(!M.isSynthetic())
if(!(M.dna.species.reagent_tag & PROCESS_SYN))
holder.remove_reagent(id, 3.6) //gets removed from organics very fast
if(prob(25))
holder.remove_reagent(id, 15)
M.fakevomit()
return ..()
/datum/reagent/consumable/ethanol/synthanol/reaction_mob(mob/living/M, method=REAGENT_TOUCH, volume)
if(M.isSynthetic())
if(M.dna.species.reagent_tag & PROCESS_SYN)
return
if(method == REAGENT_INGEST)
to_chat(M, pick("<span class = 'danger'>That was awful!</span>", "<span class = 'danger'>Yuck!</span>"))
@@ -525,6 +525,32 @@
M.Drowsy(10)
return ..()
/datum/reagent/cbd
name = "Cannabidiol"
id = "cbd"
description = "A non-psychoactive phytocannabinoid extracted from the cannabis plant."
reagent_state = LIQUID
color = "#00e100"
taste_description = "relaxation"
/datum/reagent/cbd/on_mob_life(mob/living/M)
var/update_flags = STATUS_UPDATE_NONE
if(prob(5))
M.emote(pick("hsigh", "yawn"))
if(prob(5))
to_chat(M, "<span class='notice'>[pick("You feel peaceful.", "You breathe softly.", "You feel chill.", "You vibe.")]</span>")
if(prob(10))
M.AdjustConfused(-5)
update_flags |= M.SetWeakened(0, FALSE)
if(volume >= 70 && prob(25))
if(M.reagents.has_reagent("thc") <= 20)
M.Drowsy(10)
if(prob(25))
update_flags |= M.adjustBruteLoss(-2, FALSE)
update_flags |= M.adjustFireLoss(-2, FALSE)
return ..() | update_flags
/datum/reagent/fliptonium
name = "Fliptonium"
id = "fliptonium"
@@ -872,14 +872,6 @@
build_path = /obj/item/assembly/mousetrap
category = list("initial", "Miscellaneous")
/datum/design/videocam
name = "Video Camera"
id = "videocam"
build_type = AUTOLATHE
materials = list(MAT_METAL = 120, MAT_GLASS = 60)
build_path = /obj/item/videocam
category = list("initial", "Miscellaneous")
/datum/design/logic_board
name = "Logic Circuit"
id = "logic_board"
+2
View File
@@ -4,6 +4,7 @@
shuttleId = "specops"
possible_destinations = "specops_home;specops_away;specops_custom"
resistance_flags = INDESTRUCTIBLE
flags = NODECONSTRUCT
/obj/machinery/computer/camera_advanced/shuttle_docker/ert
name = "specops navigation computer"
@@ -16,6 +17,7 @@
x_offset = 0
y_offset = 0
resistance_flags = INDESTRUCTIBLE
flags = NODECONSTRUCT
access_tcomms = FALSE
access_construction = FALSE
access_mining = FALSE
+1
View File
@@ -9,6 +9,7 @@
shuttleId = "syndicate"
possible_destinations = "syndicate_away;syndicate_z5;syndicate_z3;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s;syndicate_custom"
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
flags = NODECONSTRUCT
var/challenge = FALSE
var/moved = FALSE
+2
View File
@@ -4,6 +4,7 @@
shuttleId = "skipjack"
possible_destinations = "skipjack_away;skipjack_ne;skipjack_nw;skipjack_se;skipjack_sw;skipjack_z5;skipjack_custom"
resistance_flags = INDESTRUCTIBLE
flags = NODECONSTRUCT
/obj/machinery/computer/camera_advanced/shuttle_docker/vox
name = "skipjack navigation computer"
@@ -16,4 +17,5 @@
x_offset = -10
y_offset = -10
resistance_flags = INDESTRUCTIBLE
flags = NODECONSTRUCT
access_derelict = TRUE
@@ -39,9 +39,9 @@
/obj/item/organ/internal/cyberimp/brain/anti_drop
name = "Anti-drop implant"
desc = "This cybernetic brain implant will allow you to force your hand muscles to contract, preventing item dropping. Twitch ear to toggle."
var/active = 0
var/l_hand_ignore = 0
var/r_hand_ignore = 0
var/active = FALSE
var/l_hand_ignore = FALSE
var/r_hand_ignore = FALSE
var/obj/item/l_hand_obj = null
var/obj/item/r_hand_obj = null
implant_color = "#DE7E00"
@@ -56,17 +56,17 @@
r_hand_obj = owner.r_hand
if(l_hand_obj)
if(owner.l_hand.flags & NODROP)
l_hand_ignore = 1
l_hand_ignore = TRUE
else
owner.l_hand.flags |= NODROP
l_hand_ignore = 0
l_hand_ignore = FALSE
if(r_hand_obj)
if(owner.r_hand.flags & NODROP)
r_hand_ignore = 1
r_hand_ignore = TRUE
else
owner.r_hand.flags |= NODROP
r_hand_ignore = 0
r_hand_ignore = FALSE
if(!l_hand_obj && !r_hand_obj)
to_chat(owner, "<span class='notice'>You are not holding any items, your hands relax...</span>")
@@ -102,12 +102,15 @@
A = pick(oview(range))
L_item.throw_at(A, range, 2)
to_chat(owner, "<span class='notice'>Your left arm spasms and throws the [L_item.name]!</span>")
l_hand_obj = null
if(R_item)
A = pick(oview(range))
R_item.throw_at(A, range, 2)
to_chat(owner, "<span class='notice'>Your right arm spasms and throws the [R_item.name]!</span>")
r_hand_obj = null
/obj/item/organ/internal/cyberimp/brain/anti_drop/proc/release_items()
active = FALSE
if(!l_hand_ignore && l_hand_obj in owner.contents)
l_hand_obj.flags ^= NODROP
if(!r_hand_ignore && r_hand_obj in owner.contents)