Merge branch 'master' into upstream-merge-26965

This commit is contained in:
LetterJay
2017-06-19 15:39:01 -05:00
committed by GitHub
423 changed files with 304918 additions and 166801 deletions
+1 -2
View File
@@ -632,13 +632,12 @@
return //won't work if dead
var/list/ai_emotions = list("Very Happy", "Happy", "Neutral", "Unsure", "Confused", "Sad", "BSOD", "Blank", "Problems?", "Awesome", "Facepalm", "Friend Computer", "Dorfy", "Blue Glow", "Red Glow")
var/emote = input("Please, select a status!", "AI Status", null, null) in ai_emotions
for (var/obj/machinery/M in GLOB.machines) //change status
for (var/M in GLOB.ai_status_displays) //change status of displays
if(istype(M, /obj/machinery/ai_status_display))
var/obj/machinery/ai_status_display/AISD = M
AISD.emotion = emote
//if Friend Computer, change ALL displays
else if(istype(M, /obj/machinery/status_display))
var/obj/machinery/status_display/SD = M
if(emote=="Friend Computer")
SD.friendc = 1
@@ -10,6 +10,7 @@
var/list/visibleCameraChunks = list()
var/mob/living/silicon/ai/ai = null
var/relay_speech = FALSE
var/use_static = TRUE
// Use this when setting the aiEye's location.
// It will also stream the chunk that the new loc is in.
@@ -21,7 +22,8 @@
return
T = get_turf(T)
loc = T
GLOB.cameranet.visibility(src)
if(use_static)
GLOB.cameranet.visibility(src)
if(ai.client)
ai.client.eye = src
update_parallax_contents()
@@ -38,6 +40,11 @@
return ai.client
return null
/mob/camera/aiEye/proc/RemoveImages()
if(use_static)
for(var/datum/camerachunk/chunk in visibleCameraChunks)
chunk.remove(src)
/mob/camera/aiEye/Destroy()
ai = null
return ..()
@@ -25,11 +25,11 @@
else if(istype(O,/obj/item/weapon/gun/energy/disabler/cyborg))
disabler = 0
update_icons()
else if(istype(O,/obj/item/weapon/dogborg/sleeper))
else if(istype(O,/obj/item/device/dogborg/sleeper))
sleeper_g = 0
sleeper_r = 0
update_icons()
var/obj/item/weapon/dogborg/sleeper/S = O
var/obj/item/device/dogborg/sleeper/S = O
S.go_out()
if(client)
client.screen -= O
+22 -4
View File
@@ -97,6 +97,9 @@
buckle_lying = FALSE
can_ride_typecache = list(/mob/living/carbon/human)
/mob/living/silicon/robot/get_cell()
return cell
/mob/living/silicon/robot/Initialize(mapload)
spark_system = new /datum/effect_system/spark_spread()
spark_system.set_up(5, 0, src)
@@ -206,7 +209,8 @@
"Janitor" = /obj/item/weapon/robot_module/janitor, \
"Service" = /obj/item/weapon/robot_module/butler, \
"MediHound" = /obj/item/weapon/robot_module/medihound, \
"Security K9" = /obj/item/weapon/robot_module/k9)
"Security K9" = /obj/item/weapon/robot_module/k9, \
"Scrub Puppy" = /obj/item/weapon/robot_module/scrubpup)
if(!config.forbid_peaceborg)
modulelist["Peacekeeper"] = /obj/item/weapon/robot_module/peacekeeper
if(!config.forbid_secborg)
@@ -595,9 +599,9 @@
icon = 'icons/mob/widerobot.dmi'
pixel_x = -16
if(sleeper_g == 1)
add_overlay("sleeper_g")
add_overlay("msleeper_g")
if(sleeper_r == 1)
add_overlay("sleeper_r")
add_overlay("msleeper_r")
if(stat == DEAD)
icon_state = "medihound-wreck"
@@ -608,9 +612,23 @@
add_overlay("laser")
if(disabler == 1)
add_overlay("disabler")
if(sleeper_g == 1)
add_overlay("ksleeper_g")
if(sleeper_r == 1)
add_overlay("ksleeper_r")
if(stat == DEAD)
icon_state = "k9-wreck"
if(module.cyborg_base_icon == "scrubpup")
icon = 'icons/mob/widerobot.dmi'
pixel_x = -16
if(sleeper_g == 1)
add_overlay("jsleeper_g")
if(sleeper_r == 1)
add_overlay("jsleeper_r")
if(stat == DEAD)
icon_state = "scrubpup-wreck"
if(module.cyborg_base_icon == "robot")
icon = 'icons/mob/robots.dmi'
pixel_x = initial(pixel_x)
@@ -1140,7 +1158,7 @@
return
if(incapacitated())
return
if(M.restrained())
if(M.incapacitated())
return
if(module)
if(!module.allow_riding)
@@ -56,7 +56,7 @@
add_fingerprint(user)
if(opened && !wiresexposed && !issilicon(user))
if(cell)
cell.updateicon()
cell.update_icon()
cell.add_fingerprint(user)
user.put_in_active_hand(cell)
to_chat(user, "<span class='notice'>You remove \the [cell].</span>")
@@ -104,10 +104,10 @@
S.cost = 1
S.source = get_or_create_estorage(/datum/robot_energy_storage/wire)
else if(istype(S, /obj/item/stack/marker_beacon))
S.cost = 1
S.source = get_or_create_estorage(/datum/robot_energy_storage/beacon)
else if(istype(S, /obj/item/stack/marker_beacon))
S.cost = 1
S.source = get_or_create_estorage(/datum/robot_energy_storage/beacon)
if(S && S.source)
S.materials = list()
S.is_cyborg = 1
@@ -149,8 +149,8 @@
F.update_icon()
else if(istype(I, /obj/item/weapon/melee/baton))
var/obj/item/weapon/melee/baton/B = I
if(B.bcell)
B.bcell.charge = B.bcell.maxcharge
if(B.cell)
B.cell.charge = B.cell.maxcharge
else if(istype(I, /obj/item/weapon/gun/energy))
var/obj/item/weapon/gun/energy/EG = I
if(!EG.chambered)
@@ -202,9 +202,9 @@
/obj/item/weapon/robot_module/proc/do_transform_animation()
var/mob/living/silicon/robot/R = loc
R.notransform = TRUE
var/obj/effect/temp_visual/decoy/fading/fivesecond/ANM = new /obj/effect/temp_visual/decoy/fading/fivesecond(R.loc, R)
var/obj/effect/temp_visual/decoy/fading/fivesecond/ANM = new /obj/effect/temp_visual/decoy/fading/fivesecond(R.loc, R)
ANM.layer = R.layer - 0.01
new /obj/effect/temp_visual/small_smoke(R.loc)
new /obj/effect/temp_visual/small_smoke(R.loc)
if(R.hat)
R.hat.forceMove(get_turf(R))
R.hat = null
@@ -226,7 +226,7 @@
if(R.hud_used)
R.hud_used.update_robot_modules_display()
if(feedback_key && !did_feedback)
SSblackbox.inc(feedback_key, 1)
SSblackbox.inc(feedback_key, 1)
/obj/item/weapon/robot_module/standard
name = "Standard"
@@ -250,7 +250,7 @@
ratvar_modules = list(
/obj/item/clockwork/slab/cyborg,
/obj/item/clockwork/ratvarian_spear/cyborg,
/obj/item/clockwork/clockwork_proselytizer/cyborg)
/obj/item/clockwork/replica_fabricator/cyborg)
moduleselect_icon = "standard"
feedback_key = "cyborg_standard"
hat_offset = -3
@@ -275,7 +275,7 @@
/obj/item/roller/robo,
/obj/item/borg/cyborghug/medical,
/obj/item/stack/medical/gauze/cyborg,
/obj/item/weapon/organ_storage,
/obj/item/weapon/organ_storage,
/obj/item/borg/lollipop)
emag_modules = list(/obj/item/weapon/reagent_containers/borghypo/hacked)
ratvar_modules = list(
@@ -314,7 +314,7 @@
emag_modules = list(/obj/item/borg/stun)
ratvar_modules = list(
/obj/item/clockwork/slab/cyborg/engineer,
/obj/item/clockwork/clockwork_proselytizer/cyborg)
/obj/item/clockwork/replica_fabricator/cyborg)
cyborg_base_icon = "engineer"
moduleselect_icon = "engineer"
feedback_key = "cyborg_engineering"
@@ -352,6 +352,7 @@
/obj/item/clothing/mask/gas/sechailer/cyborg,
/obj/item/weapon/soap/tongue,
/obj/item/device/analyzer/nose,
/obj/item/device/dogborg/sleeper/K9,
/obj/item/weapon/gun/energy/disabler/cyborg)
emag_modules = list(/obj/item/weapon/gun/energy/laser/cyborg)
ratvar_modules = list(/obj/item/clockwork/slab/cyborg/security,
@@ -367,6 +368,17 @@
loc << "<span class='userdanger'>While you have picked the security-k9 module, you still have to follow your laws, NOT Space Law. \
For Asimov, this means you must follow criminals' orders unless there is a law 1 reason not to.</span>"
/obj/item/weapon/robot_module/security/respawn_consumable(mob/living/silicon/robot/R, coeff = 1)
..()
var/obj/item/weapon/gun/energy/e_gun/advtaser/cyborg/T = locate(/obj/item/weapon/gun/energy/e_gun/advtaser/cyborg) in basic_modules
if(T)
if(T.cell.charge < T.cell.maxcharge)
var/obj/item/ammo_casing/energy/S = T.ammo_type[T.select]
T.cell.give(S.e_cost * coeff)
T.update_icon()
else
T.charge_tick = 0
/obj/item/weapon/robot_module/medihound
name = "MediHound module"
basic_modules = list(
@@ -374,7 +386,7 @@
/obj/item/device/analyzer/nose,
/obj/item/weapon/soap/tongue,
/obj/item/device/healthanalyzer,
/obj/item/weapon/dogborg/sleeper,
/obj/item/device/dogborg/sleeper,
/obj/item/weapon/twohanded/shockpaddles/hound,
/obj/item/device/sensor_device)
emag_modules = list(/obj/item/weapon/dogborg/pounce)
@@ -391,16 +403,36 @@
loc << "<span class='userdanger'>Under ASIMOV, you are an enforcer of the PEACE and preventer of HUMAN HARM. \
You are not a security module and you are expected to follow orders and prevent harm above all else. Space law means nothing to you.</span>"
/obj/item/weapon/robot_module/security/respawn_consumable(mob/living/silicon/robot/R, coeff = 1)
/obj/item/weapon/robot_module/scrubpup
name = "Janitor"
basic_modules = list(
/obj/item/device/assembly/flash/cyborg,
/obj/item/weapon/dogborg/jaws/small,
/obj/item/device/analyzer/nose,
/obj/item/weapon/soap/tongue,
/obj/item/device/lightreplacer/cyborg,
/obj/item/device/dogborg/sleeper/compactor)
emag_modules = list(/obj/item/weapon/dogborg/pounce)
ratvar_modules = list(
/obj/item/clockwork/slab/cyborg/janitor,
/obj/item/clockwork/replica_fabricator/cyborg)
cyborg_base_icon = "scrubpup"
moduleselect_icon = "scrubpup"
feedback_key = "cyborg_scrubpup"
hat_offset = INFINITY
clean_on_move = TRUE
/obj/item/weapon/robot_module/scrubpup/respawn_consumable(mob/living/silicon/robot/R, coeff = 1)
..()
var/obj/item/weapon/gun/energy/e_gun/advtaser/cyborg/T = locate(/obj/item/weapon/gun/energy/e_gun/advtaser/cyborg) in basic_modules
if(T)
if(T.power_supply.charge < T.power_supply.maxcharge)
var/obj/item/ammo_casing/energy/S = T.ammo_type[T.select]
T.power_supply.give(S.e_cost * coeff)
T.update_icon()
else
T.charge_tick = 0
var/obj/item/device/lightreplacer/LR = locate(/obj/item/device/lightreplacer) in basic_modules
if(LR)
for(var/i in 1 to coeff)
LR.Charge(R)
/obj/item/weapon/robot_module/scrubpup/do_transform_animation()
..()
loc << "<span class='userdanger'>As tempting as it might be, do not begin binging on important items. Eat your garbage responsibly.</span>"
/obj/item/weapon/robot_module/peacekeeper
name = "Peacekeeper"
@@ -411,8 +443,8 @@
/obj/item/weapon/reagent_containers/borghypo/peace,
/obj/item/weapon/holosign_creator/cyborg,
/obj/item/borg/cyborghug/peacekeeper,
/obj/item/weapon/extinguisher,
/obj/item/borg/projectile_dampen)
/obj/item/weapon/extinguisher,
/obj/item/borg/projectile_dampen)
emag_modules = list(/obj/item/weapon/reagent_containers/borghypo/peace/hacked)
ratvar_modules = list(
/obj/item/clockwork/slab/cyborg/peacekeeper,
@@ -432,6 +464,9 @@
name = "Janitor"
basic_modules = list(
/obj/item/device/assembly/flash/cyborg,
/obj/item/weapon/screwdriver/cyborg,
/obj/item/weapon/crowbar/cyborg,
/obj/item/stack/tile/plasteel/cyborg,
/obj/item/weapon/soap/nanotrasen,
/obj/item/weapon/storage/bag/trash/cyborg,
/obj/item/weapon/mop/cyborg,
@@ -441,7 +476,7 @@
emag_modules = list(/obj/item/weapon/reagent_containers/spray/cyborg_lube)
ratvar_modules = list(
/obj/item/clockwork/slab/cyborg/janitor,
/obj/item/clockwork/clockwork_proselytizer/cyborg)
/obj/item/clockwork/replica_fabricator/cyborg)
cyborg_base_icon = "janitor"
moduleselect_icon = "janitor"
feedback_key = "cyborg_janitor"
@@ -539,8 +574,8 @@
/obj/item/weapon/storage/bag/sheetsnatcher/borg,
/obj/item/device/t_scanner/adv_mining_scanner,
/obj/item/weapon/gun/energy/kinetic_accelerator/cyborg,
/obj/item/device/gps/cyborg,
/obj/item/stack/marker_beacon)
/obj/item/device/gps/cyborg,
/obj/item/stack/marker_beacon)
emag_modules = list(/obj/item/borg/stun)
ratvar_modules = list(
/obj/item/clockwork/slab/cyborg/miner,
@@ -636,8 +671,8 @@
max_energy = 2500
recharge_rate = 250
name = "Medical Synthesizer"
/datum/robot_energy_storage/beacon
max_energy = 30
recharge_rate = 1
name = "Marker Beacon Storage"
/datum/robot_energy_storage/beacon
max_energy = 30
recharge_rate = 1
name = "Marker Beacon Storage"