diff --git a/code/WorkInProgress/Yinadele/Supermatter.dm b/code/WorkInProgress/Yinadele/Supermatter.dm index 39759ff494..aba28a7d5b 100644 --- a/code/WorkInProgress/Yinadele/Supermatter.dm +++ b/code/WorkInProgress/Yinadele/Supermatter.dm @@ -202,6 +202,9 @@ /obj/machinery/power/supermatter/attack_robot(mob/user as mob) return attack_hand(user) +/obj/machinery/power/supermatter/attack_ai(mob/user as mob) + user << "You attempt to interface with the control circuits but find they are not connected to your network. Maybe in a future firmware update." + /obj/machinery/power/supermatter/attack_hand(mob/user as mob) user.visible_message("\The [user] reaches out and touches \the [src] inducing a resonance... \his body starts to glow and catch flame before flashing into ash.",\ diff --git a/code/WorkInProgress/kilakk/fax.dm b/code/WorkInProgress/kilakk/fax.dm index 76bcc0baa4..0d8f4cdde1 100644 --- a/code/WorkInProgress/kilakk/fax.dm +++ b/code/WorkInProgress/kilakk/fax.dm @@ -109,10 +109,13 @@ var/list/alldepartments = list("Central Command") if(href_list["remove"]) if(tofax) - tofax.loc = usr.loc - usr.put_in_hands(tofax) - usr << "You take the paper out of \the [src]." - tofax = null + if(!ishuman(usr)) + usr << "You can't do it." + else + tofax.loc = usr.loc + usr.put_in_hands(tofax) + usr << "You take the paper out of \the [src]." + tofax = null if(href_list["scan"]) if (scan) diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 4ca8f9f5d7..ed054ae6c8 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -276,37 +276,79 @@ C << "You are not wearing a mask." return 1 else - if(istype(C.l_hand, /obj/item/weapon/tank)) - C << "You are now running on internals from the [C.l_hand] on your left hand." - C.internal = C.l_hand - else if(istype(C.r_hand, /obj/item/weapon/tank)) - C << "You are now running on internals from the [C.r_hand] on your right hand." - C.internal = C.r_hand - else if(ishuman(C)) + var/list/nicename = null + var/list/tankcheck = null + var/breathes = "oxygen" //default, we'll check later + var/list/contents = list() + + if(ishuman(C)) var/mob/living/carbon/human/H = C - if(istype(H.s_store, /obj/item/weapon/tank)) - H << "You are now running on internals from the [H.s_store] on your [H.wear_suit]." - H.internal = H.s_store - else if(istype(H.belt, /obj/item/weapon/tank)) - H << "You are now running on internals from the [H.belt] on your belt." - H.internal = H.belt - else if(istype(H.l_store, /obj/item/weapon/tank)) - H << "You are now running on internals from the [H.l_store] in your left pocket." - H.internal = H.l_store - else if(istype(H.r_store, /obj/item/weapon/tank)) - H << "You are now running on internals from the [H.r_store] in your right pocket." - H.internal = H.r_store + breathes = H.species.breath_type + nicename = list ("suit", "back", "belt", "right hand", "left hand", "left pocket", "right pocket") + tankcheck = list (H.s_store, C.back, H.belt, C.r_hand, C.l_hand, H.l_store, H.r_store) - //Seperate so CO2 jetpacks are a little less cumbersome. - if(!C.internal && istype(C.back, /obj/item/weapon/tank)) - C << "You are now running on internals from the [C.back] on your back." - C.internal = C.back + else + nicename = list("Right Hand", "Left Hand", "Back") + tankcheck = list(C.r_hand, C.l_hand, C.back) + + for(var/i=1, i bestcontents) + best = i + bestcontents = contents[i] + + + //We've determined the best container now we set it as our internals + + if(best) + C << "You are now running on internals from [tankcheck[best]] on your [nicename[best]]." + C.internal = tankcheck[best] + + if(C.internal) if(C.internals) C.internals.icon_state = "internal1" else - C << "You don't have an oxygen tank." + C << "You don't have a[breathes=="oxygen" ? "n oxygen" : addtext(" ",breathes)] tank." if("act_intent") usr.a_intent_change("right") if("help") diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 1d5f210dd3..d8b8521150 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -255,6 +255,8 @@ Release Pressure: - [time2text(world.timeofday,"hh:mm")] \ref[src] ([x],[y],[z]) || [src] [message]
" //ADMINVERBS -/client/proc/investigate_show( subject in list("hrefs","notes","singulo") ) +/client/proc/investigate_show( subject in list("hrefs","notes","singulo","telesci") ) set name = "Investigate" set category = "Admin" if(!holder) return switch(subject) - if("singulo") //general one-round-only stuff + if("singulo", "telesci") //general one-round-only stuff var/F = investigate_subject2file(subject) if(!F) src << "Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed." diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index f192e080c0..759ce23fc3 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -453,6 +453,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp src << "You may only spawn again as a mouse more than [mouse_respawn_time] minutes after your death. You have [timedifference_text] left." return + var/response = alert(src, "Are you -sure- you want to become a mouse?","Are you sure you want to squeek?","Squeek!","Nope!") + if(response != "Squeek!") return //Hit the wrong key...again. + + //find a viable mouse candidate var/mob/living/simple_animal/mouse/host var/obj/machinery/atmospherics/unary/vent_pump/vent_found diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 3bd5348318..53633d5db0 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -875,8 +875,8 @@ obj/item/weapon/organ/head/New(loc, mob/living/carbon/human/H) H.regenerate_icons() - H.stat = 2 - H.death() + brainmob.stat = 2 + brainmob.death() obj/item/weapon/organ/head/proc/transfer_identity(var/mob/living/carbon/human/H)//Same deal as the regular brain proc. Used for human-->head brainmob = new(src) diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 379377072b..1c491c126d 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -61,7 +61,7 @@ if(href_list["remove"]) var/obj/item/P = locate(href_list["remove"]) - if(P) + if(P && P.loc == src) P.loc = usr.loc usr.put_in_hands(P) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 599d251723..bb3bbcdb3d 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -800,7 +800,8 @@ if(!can_use(usr, 1)) return src.add_fingerprint(usr) - usr.set_machine(src) + if(usingUI) // If we set their machine and they're not using the UI, it'll cause the UI to pop up. + usr.set_machine(src) if (href_list["apcwires"]) var/t1 = text2num(href_list["apcwires"]) if (!( istype(usr.get_active_hand(), /obj/item/weapon/wirecutters) )) diff --git a/code/modules/projectiles/targeting.dm b/code/modules/projectiles/targeting.dm index b8905e1ae2..06f25a7e18 100644 --- a/code/modules/projectiles/targeting.dm +++ b/code/modules/projectiles/targeting.dm @@ -269,6 +269,7 @@ client/proc/add_gun_icons() screen += usr.gun_run_icon client/proc/remove_gun_icons() + if(isnull(usr)) return 1 // Runtime prevention on N00k agents spawning with SMG screen -= usr.item_use_icon screen -= usr.gun_move_icon if (target_can_move) diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm b/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm index 0030e31b21..a0762ff51e 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm @@ -114,6 +114,11 @@ var/list/valid_secondary_effect_types = list(\ #define TRIGGER_NITRO 12 /obj/machinery/artifact/process() + + var/turf/L = loc + if(isnull(L) || !istype(L)) // We're inside a container or on null turf, either way stop processing effects + return + if(my_effect) my_effect.process() if(secondary_effect) diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm index 85232a4106..06f968b5f1 100644 --- a/code/modules/telesci/telesci_computer.dm +++ b/code/modules/telesci/telesci_computer.dm @@ -84,6 +84,8 @@ interact(user) /obj/machinery/computer/telescience/interact(mob/user) + user.machine = src + in_use = 1 var/t = "
[temp_msg]

" t += "
Set Bearing" @@ -301,9 +303,10 @@ temp_msg = "NOTICE:
Bluespace crystals ejected." updateDialog() + return 1 /obj/machinery/computer/telescience/proc/recalibrate() teles_left = rand(30, 40) angle_off = rand(-25, 25) power_off = rand(-4, 0) - rotation_off = rand(-10, 10) \ No newline at end of file + rotation_off = rand(-10, 10) diff --git a/html/changelog.html b/html/changelog.html index 8fb358b3ba..dc1cb5fe67 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -35,10 +35,7 @@ Header Section
- - - Code: Abi79, Aryn, Cael_Aislinn, Ccomp5950,Chinsky, cib, CompactNinja, DopeGhoti, Erthilo, Hawk_v3, Head, Ispil, Lexusjjss, Melonstorm, Miniature, Mloc, NerdyBoy1104, SkyMarshal, Snapshot, Spectre, Strumpetplaya, Sunfall, Tastyfish, Uristqwerty
- + Code: Abi79, Aryn, Cael_Aislinn,Ccomp5950 ,Chinsky, cib, CompactNinja, DopeGhoti, Erthilo, Hawk_v3, Head, Ispil, Lexusjjss, Melonstorm, Miniature, Mloc, NerdyBoy1104, SkyMarshal, Snapshot, Spectre, Strumpetplaya, Sunfall, Tastyfish, Uristqwerty
Sprites: Apple_Master, Arcalane, Chinsky, CompactNinja, Deus Dactyl, Erthilo, Flashkirby, Miniature, Searif, Xenone, faux
Sounds: Aryn
Thanks To: /tg/ station, Goonstation, Animus Station, Daedalus, and original Spacestation 13 devs. Skibiliano for the IRC bot. @@ -60,7 +57,6 @@ should be listed in the changelog upon commit though. Thanks. --> -

24 November 2013

Yinadele updated:

@@ -79,10 +75,22 @@ should be listed in the changelog upon commit though. Thanks. -->
  • Fixed areas in medbay to have fully functional APC sectors.
  • Girders are now lasable.
  • Please wait warmly, new features planned for next merge!
  • - -
    + +
    +

    23 November 2013

    +

    Ccomp5950 updated:

    +
      +
    • Players are now no longer able to commit suicide with a lasertag gun, and will feel silly for doing so.
    • +
    • Ghosts hit with the cult book shall now actually become visible.
    • +
    • The powercells spawned with Exosuits will now properly be named to not confuse bearded roboticists.
    • +
    • Blindfolded players will now no longer require eye surgery to repair their sight, removing the blindfold will be sufficient.
    • +
    • Atmospheric Technicians will now have access to Exterior airlocks.
    • +
    +
    + +

    29 October 2013

    Cael_Aislinn updated:

      @@ -92,6 +100,8 @@ should be listed in the changelog upon commit though. Thanks. -->
    + +

    06 Derptomber 2013

    Chinsky updated:

      @@ -110,7 +120,6 @@ should be listed in the changelog upon commit though. Thanks. -->
    • Return of dreaded side effects. They now manifest well after their cause disappears, so curing them should be possible without them reappearing immediately. They also lost last stage damaging effects.
    -

    September 24th, 2013

    @@ -1030,4 +1039,4 @@ Credits Section

    Some icons by Yusuke Kamiyamane. All rights reserved. Licensed under a Creative Commons Attribution 3.0 License.

    - + \ No newline at end of file