Merge branch 'master' into diagonal-movement

This commit is contained in:
Couls
2019-07-02 05:55:44 -04:00
committed by GitHub
49 changed files with 267 additions and 100 deletions
+8
View File
@@ -169,6 +169,14 @@
message_admins("Ban process: A mob matching [playermob.ckey] was found at location [playermob.x], [playermob.y], [playermob.z]. Custom IP and computer id fields replaced with the IP and computer id from the located mob")
DB_ban_record(bantype, playermob, banduration, banreason, banjob, null, banckey, banip, bancid )
if(BANTYPE_PERMA)
add_note(banckey, "Permanently Banned - [banreason]", null, usr.ckey, 0)
else if(BANTYPE_TEMP)
add_note(banckey, "Banned for [banduration] minutes - [banreason]", null, usr.ckey, 0)
else if(BANTYPE_JOB_PERMA)
add_note(banckey, "Banned from [banjob] - [banreason]", null, usr.ckey, 0)
else
add_note(banckey, "[banreason]", null, usr.ckey, 0)
else if(href_list["editrights"])
+3 -1
View File
@@ -15,13 +15,15 @@
*/
/client/proc/SDQL2_query(query_text as message)
/client/proc/SDQL2_query()
set category = "Debug"
if(!check_rights(R_PROCCALL)) //Shouldn't happen... but just to be safe.
message_admins("<span class='danger'>ERROR: Non-admin [key_name_admin(usr)] attempted to execute a SDQL query!</span>")
log_admin("Non-admin [key_name(usr)] attempted to execute a SDQL query!")
var/query_text = input("SDQL2 query") as message
if(!query_text || length(query_text) < 1)
return
@@ -857,3 +857,36 @@
icon_state = "burial"
item_state = "burial"
item_color = "burial"
/obj/item/clothing/under/redhawaiianshirt
name = "red hawaiian shirt"
desc = "a floral shirt worn to most vacation destinations."
icon_state = "hawaiianred"
item_state = "hawaiianred"
item_color = "hawaiianred"
flags_size = ONESIZEFITSALL
/obj/item/clothing/under/pinkhawaiianshirt
name = "pink hawaiian shirt"
desc = "a pink floral shirt the material feels cool and comfy."
icon_state = "hawaiianpink"
item_state = "hawaiianpink"
item_color = "hawaiianpink"
flags_size = ONESIZEFITSALL
/obj/item/clothing/under/orangehawaiianshirt
name = "orange hawaiian shirt"
desc = "a orange floral shirt for a relaxing day in space."
icon_state = "hawaiianorange"
item_state = "hawaiianorange"
item_color = "hawaiianorange"
flags_size = ONESIZEFITSALL
/obj/item/clothing/under/bluehawaiianshirt
name = "blue hawaiian shirt"
desc = "a blue floral shirt it has a oddly colored pink flower on it."
icon_state = "hawaiianblue"
item_state = "hawaiianblue"
item_color = "hawaiianblue"
flags_size = ONESIZEFITSALL
+1
View File
@@ -15,6 +15,7 @@ GLOBAL_LIST_INIT(boo_phrases, list(
ghost = TRUE
action_icon_state = "boo"
school = "transmutation"
charge_max = 600
starts_charged = FALSE
@@ -106,6 +106,12 @@
else //Everyone else fails, skip the emote attempt
return
if("warble", "warbles")
if(isskrell(src)) //Only Skrell can warble.
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm'
else //Everyone else fails, skip the emote attempt
return
if("scream", "screams")
on_CD = handle_emote_CD(50) //longer cooldown
if("fart", "farts", "flip", "flips", "snap", "snaps")
@@ -221,6 +227,13 @@
playsound(loc, 'sound/effects/voxrustle.ogg', 50, 0) //Credit to sound-ideas (freesfx.co.uk) for the sound.
m_type = 2
if("warble", "warbles")
var/M = handle_emote_param(param)
message = "<B>[src]</B> warbles[M ? " at [M]" : ""]."
playsound(loc, 'sound/effects/warble.ogg', 50, 0) // Copyright CC BY 3.0 alienistcog (freesound.org) for the sound.
m_type = 2
if("yes")
var/M = handle_emote_param(param)
@@ -904,6 +917,8 @@
emotelist += "\nVox specific emotes :- quill(s)"
if("Diona")
emotelist += "\nDiona specific emotes :- creak(s)"
if("Skrell")
emotelist += "\nSkrell specific emotes :- warble(s)"
if(ismachine(src))
emotelist += "\nMachine specific emotes :- beep(s)-(none)/mob, buzz(es)-none/mob, no-(none)/mob, ping(s)-(none)/mob, yes-(none)/mob, buzz2-(none)/mob"
@@ -113,7 +113,7 @@
status_flags = 0
const_type = "juggernaut"
mob_size = MOB_SIZE_LARGE
construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/lesserforcewall)
construct_spells = list(/obj/effect/proc_holder/spell/targeted/night_vision, /obj/effect/proc_holder/spell/aoe_turf/conjure/lesserforcewall)
force_threshold = 11
playstyle_string = "<b>You are a Juggernaut. Though slow, your shell can withstand extreme punishment, \
create shield walls, rip apart enemies and walls alike, and even deflect energy weapons.</b>"
@@ -171,7 +171,7 @@
see_in_dark = 8
attack_sound = 'sound/weapons/bladeslice.ogg'
const_type = "wraith"
construct_spells = list(/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift)
construct_spells = list(/obj/effect/proc_holder/spell/targeted/night_vision, /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift)
retreat_distance = 2 //AI wraiths will move in and out of combat
playstyle_string = "<b>You are a Wraith. Though relatively fragile, you are fast, deadly, and even able to phase through walls.</b>"
@@ -202,7 +202,8 @@
minimum_distance = 10 //AI artificers will flee like fuck
attack_sound = 'sound/weapons/punch2.ogg'
const_type = "builder"
construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser,
construct_spells = list(/obj/effect/proc_holder/spell/targeted/night_vision,
/obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser,
/obj/effect/proc_holder/spell/aoe_turf/conjure/wall,
/obj/effect/proc_holder/spell/aoe_turf/conjure/floor,
/obj/effect/proc_holder/spell/aoe_turf/conjure/pylon,
@@ -311,7 +312,8 @@
see_in_dark = 8
attack_sound = 'sound/weapons/tap.ogg'
const_type = "harvester"
construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/wall,
construct_spells = list(/obj/effect/proc_holder/spell/targeted/night_vision,
/obj/effect/proc_holder/spell/aoe_turf/conjure/wall,
/obj/effect/proc_holder/spell/aoe_turf/conjure/floor,
/obj/effect/proc_holder/spell/targeted/smoke/disable)
retreat_distance = 2 //AI harvesters will move in and out of combat, like wraiths, but shittier
@@ -189,35 +189,6 @@
L.EyeBlind(4)
return
//Toggle Night Vision
/obj/effect/proc_holder/spell/targeted/night_vision
name = "Toggle Nightvision"
desc = "Toggle your nightvision mode."
charge_max = 10
clothes_req = 0
message = "<span class='notice'>You toggle your night vision!</span>"
range = -1
include_user = 1
/obj/effect/proc_holder/spell/targeted/night_vision/cast(list/targets, mob/user = usr)
for(var/mob/living/target in targets)
switch(target.lighting_alpha)
if (LIGHTING_PLANE_ALPHA_VISIBLE)
target.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE
name = "Toggle Nightvision \[More]"
if (LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE)
target.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
name = "Toggle Nightvision \[Full]"
if (LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE)
target.lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE
name = "Toggle Nightvision \[OFF]"
else
target.lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE
name = "Toggle Nightvision \[ON]"
target.update_sight()
/mob/living/simple_animal/hostile/statue/sentience_act()
faction -= "neutral"
@@ -202,7 +202,7 @@ var/global/list/ts_spiderling_list = list()
var/obj/machinery/door/airlock/A = target
if(A.density)
try_open_airlock(A)
else if(isliving(target))
else if(isliving(target) && (!client || a_intent == INTENT_HARM))
var/mob/living/G = target
if(issilicon(G))
G.attack_animal(src)
+3 -6
View File
@@ -692,11 +692,9 @@
// pipe is deleted
// ensure if holder is present, it is expelled
/obj/structure/disposalpipe/Destroy()
var/obj/structure/disposalholder/H = locate() in src
if(H)
// holder was present
for(var/obj/structure/disposalholder/H in contents)
H.active = 0
var/turf/T = src.loc
var/turf/T = loc
if(T.density)
// deleting pipe is inside a dense turf (wall)
// this is unlikely, but just dump out everything into the turf in case
@@ -709,8 +707,7 @@
return
// otherwise, do normal expel from turf
if(H)
expel(H, T, 0)
expel(H, T, 0)
return ..()
/obj/structure/disposalpipe/singularity_pull(S, current_size)
@@ -125,6 +125,7 @@
name = "Portable Seed Extractor"
desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant."
build_type = PROTOLATHE
id = "portaseeder"
req_tech = list("biotech" = 3, "engineering" = 2)
materials = list(MAT_METAL = 1000, MAT_GLASS = 400)
build_path = /obj/item/storage/bag/plants/portaseeder
@@ -101,7 +101,7 @@
materials = list(MAT_METAL = 1000, MAT_GLASS = 500)
construction_time = 75
build_path = /obj/item/mmi
category = list("Misc","Medical")
category = list("Medical")
/datum/design/robotic_brain
name = "Robotic Brain"
@@ -112,7 +112,7 @@
materials = list(MAT_METAL = 1700, MAT_GLASS = 1350, MAT_GOLD = 500) //Gold, because SWAG.
construction_time = 75
build_path = /obj/item/mmi/robotic_brain
category = list("Misc","Medical")
category = list("Medical")
/datum/design/mmi_radio_upgrade
name = "Man-Machine Interface Radio Upgrade"
@@ -123,7 +123,7 @@
materials = list(MAT_METAL = 200)
construction_time = 50
build_path = /obj/item/mmi_radio_upgrade
category = list("Misc","Medical")
category = list("Medical")
/datum/design/nanopaste
name = "Nanopaste"
@@ -288,7 +288,7 @@
construction_time = 40
materials = list(MAT_METAL = 600, MAT_GLASS = 400)
build_path = /obj/item/organ/internal/cyberimp/eyes/shield
category = list("Misc", "Medical")
category = list("Medical")
/datum/design/cyberimp_breather
name = "Breathing Tube Implant"
@@ -299,7 +299,7 @@
construction_time = 35
materials = list(MAT_METAL = 600, MAT_GLASS = 250)
build_path = /obj/item/organ/internal/cyberimp/mouth/breathing_tube
category = list("Misc", "Medical")
category = list("Medical")
/datum/design/cyberimp_surgical
name = "Surgical Arm Implant"
@@ -310,7 +310,7 @@
materials = list(MAT_METAL = 2500, MAT_GLASS = 1500, MAT_SILVER = 1500)
construction_time = 200
build_path = /obj/item/organ/internal/cyberimp/arm/surgery
category = list("Misc", "Medical")
category = list("Medical")
/datum/design/cyberimp_toolset
name = "Toolset Arm Implant"
@@ -321,7 +321,7 @@
materials = list(MAT_METAL = 2500, MAT_GLASS = 1500, MAT_SILVER = 1500)
construction_time = 200
build_path = /obj/item/organ/internal/cyberimp/arm/toolset
category = list("Misc", "Medical")
category = list("Medical")
/datum/design/cyberimp_diagnostic_hud
name = "Diagnostic HUD implant"
@@ -332,7 +332,7 @@
construction_time = 50
materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 500)
build_path = /obj/item/organ/internal/cyberimp/eyes/hud/diagnostic
category = list("Misc", "Medical")
category = list("Medical")
/datum/design/cyberimp_medical_hud
name = "Medical HUD implant"
@@ -343,7 +343,7 @@
construction_time = 50
materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 500)
build_path = /obj/item/organ/internal/cyberimp/eyes/hud/medical
category = list("Misc", "Medical")
category = list("Medical")
/datum/design/cyberimp_security_hud
name = "Security HUD implant"
@@ -354,7 +354,7 @@
construction_time = 50
materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 750, MAT_GOLD = 750)
build_path = /obj/item/organ/internal/cyberimp/eyes/hud/security
category = list("Misc", "Medical")
category = list("Medical")
/datum/design/cyberimp_meson
name = "Meson scanner implant"
@@ -365,7 +365,7 @@
construction_time = 50
materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 500, MAT_GOLD = 300)
build_path = /obj/item/organ/internal/cyberimp/eyes/meson
category = list("Misc", "Medical")
category = list("Medical")
/datum/design/cyberimp_xray
name = "X-Ray implant"
@@ -376,7 +376,7 @@
construction_time = 60
materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_URANIUM = 1000, MAT_DIAMOND = 1000, MAT_BLUESPACE = 1000)
build_path = /obj/item/organ/internal/cyberimp/eyes/xray
category = list("Misc", "Medical")
category = list("Medical")
/datum/design/cyberimp_thermals
name = "Thermals implant"
@@ -387,7 +387,7 @@
construction_time = 60
materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_DIAMOND = 2000)
build_path = /obj/item/organ/internal/cyberimp/eyes/thermals
category = list("Misc", "Medical")
category = list("Medical")
/datum/design/cyberimp_antidrop
name = "Anti-Drop implant"
@@ -398,7 +398,7 @@
construction_time = 60
materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 400, MAT_GOLD = 400)
build_path = /obj/item/organ/internal/cyberimp/brain/anti_drop
category = list("Misc", "Medical")
category = list("Medical")
/datum/design/cyberimp_antistun
name = "CNS Rebooter implant"
@@ -409,7 +409,7 @@
construction_time = 60
materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 1000)
build_path = /obj/item/organ/internal/cyberimp/brain/anti_stun
category = list("Misc", "Medical")
category = list("Medical")
/datum/design/cyberimp_clownvoice
name = "Comical implant"
@@ -420,7 +420,7 @@
construction_time = 60
materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_BANANIUM = 200)
build_path = /obj/item/organ/internal/cyberimp/brain/clown_voice
category = list("Misc", "Medical")
category = list("Medical")
/datum/design/cyberimp_nutriment
name = "Nutriment pump implant"
@@ -431,7 +431,7 @@
construction_time = 40
materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_GOLD = 500)
build_path = /obj/item/organ/internal/cyberimp/chest/nutriment
category = list("Misc", "Medical")
category = list("Medical")
/datum/design/cyberimp_nutriment_plus
name = "Nutriment pump implant PLUS"
@@ -442,7 +442,7 @@
construction_time = 50
materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_GOLD = 500, MAT_URANIUM = 750)
build_path = /obj/item/organ/internal/cyberimp/chest/nutriment/plus
category = list("Misc", "Medical")
category = list("Medical")
/datum/design/cyberimp_reviver
name = "Reviver implant"
@@ -453,7 +453,7 @@
construction_time = 60
materials = list(MAT_METAL = 800, MAT_GLASS = 800, MAT_GOLD = 300, MAT_URANIUM = 500)
build_path = /obj/item/organ/internal/cyberimp/chest/reviver
category = list("Misc", "Medical")
category = list("Medical")
/////////////////////////////////////////
////////////Regular Implants/////////////
@@ -508,6 +508,7 @@
req_tech = list("biotech" = 4, "materials" = 4)
build_type = PROTOLATHE | MECHFAB
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
construction_time = 60
build_path = /obj/item/organ/internal/eyes/cybernetic
category = list("Medical")
@@ -518,6 +519,7 @@
req_tech = list("biotech" = 4, "materials" = 4)
build_type = PROTOLATHE | MECHFAB
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
construction_time = 60
build_path = /obj/item/organ/internal/liver/cybernetic
category = list("Medical")
@@ -528,6 +530,7 @@
req_tech = list("biotech" = 4, "materials" = 4)
build_type = PROTOLATHE | MECHFAB
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
construction_time = 60
build_path = /obj/item/organ/internal/kidneys/cybernetic
category = list("Medical")
@@ -538,6 +541,7 @@
req_tech = list("biotech" = 4, "materials" = 4)
build_type = PROTOLATHE | MECHFAB
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
construction_time = 60
build_path = /obj/item/organ/internal/heart/cybernetic
category = list("Medical")
@@ -548,6 +552,7 @@
req_tech = list("biotech" = 5, "materials" = 5, "engineering" = 5)
build_type = PROTOLATHE | MECHFAB
materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 500)
construction_time = 60
build_path = /obj/item/organ/internal/heart/cybernetic/upgraded
category = list("Medical")
@@ -558,6 +563,7 @@
req_tech = list("biotech" = 4, "materials" = 4)
build_type = PROTOLATHE | MECHFAB
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
construction_time = 60
build_path = /obj/item/organ/internal/lungs/cybernetic
category = list("Medical")
@@ -568,5 +574,6 @@
req_tech = list("biotech" = 5, "materials" = 5, "engineering" = 5)
build_type = PROTOLATHE | MECHFAB
materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 500)
construction_time = 60
build_path = /obj/item/organ/internal/lungs/cybernetic/upgraded
category = list("Medical")