Merge remote-tracking branch 'upstream/dev-freeze' into dev

This commit is contained in:
PsiOmega
2015-02-26 08:22:25 +01:00
97 changed files with 1252 additions and 1109 deletions
+2 -3
View File
@@ -64,10 +64,9 @@
/datum/alarm_handler/proc/on_alarm_change(var/datum/alarm/alarm, var/was_raised)
for(var/obj/machinery/camera/C in alarm.cameras())
if(was_raised)
C.network.Add(category)
invalidateCameraCache()
C.add_network(category)
else
C.network.Remove(category)
C.remove_network(category)
notify_listeners(alarm, was_raised)
/datum/alarm_handler/proc/get_alarm_severity_for_origin(var/atom/origin)
+1 -1
View File
@@ -120,7 +120,7 @@
Topic(href, href_list)
..()
if(..()) return 1
if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=infra")
onclose(usr, "infra")
+1 -1
View File
@@ -129,7 +129,7 @@
Topic(href, href_list)
..()
if(..()) return 1
if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=prox")
onclose(usr, "prox")
+1 -1
View File
@@ -70,7 +70,7 @@
Topic(href, href_list)
..()
if(..()) return 1
if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=radio")
+1 -1
View File
@@ -83,7 +83,7 @@
Topic(href, href_list)
..()
if(..()) return 1
if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=timer")
onclose(usr, "timer")
@@ -32,7 +32,7 @@
icon_action_button = "[icon_state]"
camera = new /obj/machinery/camera(src)
camera.network = camera_networks
camera.replace_networks(camera_networks)
cameranet.removeCamera(camera)
camera.c_tag = user.name
user << "\blue User scanned as [camera.c_tag]. Camera activated."
+1 -1
View File
@@ -264,7 +264,7 @@
/obj/item/clothing/suit/storage/vest/officer
name = "officer armor vest"
desc = "A simple kevlar plate carrier beloning to Nanotrasen. This one has a security holobadge clipped to the chest."
desc = "A simple kevlar plate carrier belonging to Nanotrasen. This one has a security holobadge clipped to the chest."
icon_state = "officervest_nobadge"
item_state = "officervest_nobadge"
icon_badge = "officervest_badge"
@@ -19,6 +19,7 @@
user.drop_from_inventory(holstered)
holstered.loc = src
holstered.add_fingerprint(user)
w_class = max(w_class, holstered.w_class)
user.visible_message("<span class='notice'>[user] holsters \the [holstered].</span>", "<span class='notice'>You holster \the [holstered].</span>")
/obj/item/clothing/accessory/holster/proc/unholster(mob/user as mob)
@@ -41,6 +42,7 @@
user.put_in_hands(holstered)
holstered.add_fingerprint(user)
holstered = null
w_class = initial(w_class)
/obj/item/clothing/accessory/holster/attack_hand(mob/user as mob)
if (has_suit) //if we are part of a suit
@@ -76,11 +76,11 @@
/obj/item/clothing/accessory/storage/knifeharness/New()
..()
hold.max_combined_w_class = 4
hold.can_hold = list("/obj/item/weapon/hatchet/unathiknife",\
"/obj/item/weapon/kitchen/utensil/knife",\
"/obj/item/weapon/kitchen/utensil/pknife",\
"/obj/item/weapon/kitchenknife",\
"/obj/item/weapon/kitchenknife/ritual")
hold.can_hold = list(/obj/item/weapon/hatchet/unathiknife,\
/obj/item/weapon/kitchen/utensil/knife,\
/obj/item/weapon/kitchen/utensil/pknife,\
/obj/item/weapon/kitchenknife,\
/obj/item/weapon/kitchenknife/ritual)
new /obj/item/weapon/hatchet/unathiknife(hold)
new /obj/item/weapon/hatchet/unathiknife(hold)
@@ -213,6 +213,7 @@
onclose(user,"fscanner")
/obj/machinery/computer/forensic_scanning/Topic(href,href_list)
if(..()) return 1
switch(href_list["operation"])
if("login")
var/mob/M = usr
+2 -2
View File
@@ -11,8 +11,8 @@
var/description_fluff = null //Green text about the atom's fluff, if any exists.
var/description_antag = null //Malicious red text, for the antags.
/atom/examine(mob/user)
..()
/atom/examine(mob/user, var/distance = -1, var/infix = "", var/suffix = "")
. = ..()
user.description_holders["info"] = get_description_info()
user.description_holders["fluff"] = get_description_fluff()
if(user.mind && user.mind.special_role || isobserver(user)) //Runtime prevention, as ghosts don't have minds.
+1 -1
View File
@@ -342,7 +342,7 @@ var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/ite
/obj/item/weapon/storage/toolbox/syndicate, /obj/item/weapon/aiModule,\
/obj/item/device/radio/headset/syndicate, /obj/item/weapon/plastique,\
/obj/item/device/powersink, /obj/item/weapon/storage/box/syndie_kit,\
/obj/item/toy/syndicateballoon, /obj/item/weapon/gun/energy/laser/captain,\
/obj/item/toy/syndicateballoon, /obj/item/weapon/gun/energy/captain,\
/obj/item/weapon/hand_tele, /obj/item/weapon/rcd, /obj/item/weapon/tank/jetpack,\
/obj/item/clothing/under/rank/captain, /obj/item/device/aicard,\
/obj/item/clothing/shoes/magboots, /obj/item/blueprints, /obj/item/weapon/disk/nuclear,\
+1 -1
View File
@@ -106,7 +106,7 @@ var/global/list/holodeck_programs = list(
/obj/machinery/computer/HolodeckControl/Topic(href, href_list)
if(..())
return
return 1
if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.set_machine(src)
+1 -1
View File
@@ -67,7 +67,7 @@
/obj/machinery/mineral/processing_unit_console/Topic(href, href_list)
if(..())
return
return 1
usr.set_machine(src)
src.add_fingerprint(usr)
+1 -1
View File
@@ -43,7 +43,7 @@
/obj/machinery/mineral/stacking_unit_console/Topic(href, href_list)
if(..())
return
return 1
if(href_list["change_stack"])
var/choice = input("What would you like to set the stack amount to?") as null|anything in list(1,5,10,20,50)
+1 -1
View File
@@ -116,7 +116,7 @@
/obj/machinery/mineral/mint/Topic(href, href_list)
if(..())
return
return 1
usr.set_machine(src)
src.add_fingerprint(usr)
if(processing==1)
+1 -1
View File
@@ -62,7 +62,7 @@
/obj/item/weapon/moneybag/Topic(href, href_list)
if(..())
return
return 1
usr.set_machine(src)
src.add_fingerprint(usr)
if(href_list["remove"])
@@ -64,7 +64,7 @@
if(istype(w_uniform,/obj/item/clothing/under))
var/obj/item/clothing/under/U = w_uniform
if(U.accessories.len)
tie_msg += " with [lowertext(english_list(U.accessories))]"
tie_msg += ". Attached to it is [lowertext(english_list(U.accessories))]"
if(w_uniform.blood_DNA)
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[w_uniform] [w_uniform.gender==PLURAL?"some":"a"] [(w_uniform.blood_color != "#030303") ? "blood" : "oil"]-stained [w_uniform.name][tie_msg]!</span>\n"
@@ -31,7 +31,7 @@
add_language("Drone Talk", 1)
if(camera && "Robots" in camera.network)
camera.network.Add("Engineering")
camera.add_network("Engineering")
//They are unable to be upgraded, so let's give them a bit of a better battery.
cell.maxcharge = 10000
@@ -287,5 +287,7 @@
return
/mob/living/silicon/robot/drone/add_robot_verbs()
src.verbs |= robot_verbs_subsystems
/mob/living/silicon/robot/drone/remove_robot_verbs()
src.verbs -= robot_verbs_subsystems
@@ -125,7 +125,7 @@ var/list/robot_verbs_default = list(
if(!scrambledcodes && !camera)
camera = new /obj/machinery/camera(src)
camera.c_tag = real_name
camera.network = list("SS13","Robots")
camera.replace_networks(list("SS13","Robots"))
if(wires.IsIndexCut(BORG_WIRE_CAMERA))
camera.status = 0
@@ -275,7 +275,7 @@ var/list/robot_verbs_default = list(
module = new /obj/item/weapon/robot_module/miner(src)
module.channels = list("Supply" = 1)
if(camera && "Robots" in camera.network)
camera.network.Add("MINE")
camera.add_network("MINE")
module_sprites["Basic"] = "Miner_old"
module_sprites["Advanced Droid"] = "droid-miner"
module_sprites["Treadhead"] = "Miner"
@@ -285,7 +285,7 @@ var/list/robot_verbs_default = list(
module = new /obj/item/weapon/robot_module/crisis(src)
module.channels = list("Medical" = 1)
if(camera && "Robots" in camera.network)
camera.network.Add("Medical")
camera.add_network("Medical")
module_sprites["Basic"] = "Medbot"
module_sprites["Standard"] = "surgeon"
module_sprites["Advanced Droid"] = "droid-medical"
@@ -296,7 +296,7 @@ var/list/robot_verbs_default = list(
module = new /obj/item/weapon/robot_module/surgeon(src)
module.channels = list("Medical" = 1)
if(camera && "Robots" in camera.network)
camera.network.Add("Medical")
camera.add_network("Medical")
module_sprites["Basic"] = "Medbot"
module_sprites["Standard"] = "surgeon"
@@ -318,7 +318,7 @@ var/list/robot_verbs_default = list(
module = new /obj/item/weapon/robot_module/engineering(src)
module.channels = list("Engineering" = 1)
if(camera && "Robots" in camera.network)
camera.network.Add("Engineering")
camera.add_network("Engineering")
module_sprites["Basic"] = "Engineering"
module_sprites["Antique"] = "engineerrobot"
module_sprites["Landmate"] = "landmate"
@@ -329,7 +329,7 @@ var/list/robot_verbs_default = list(
module = new /obj/item/weapon/robot_module/construction(src)
module.channels = list("Engineering" = 1)
if(camera && "Robots" in camera.network)
camera.network.Add("Engineering")
camera.add_network("Engineering")
module_sprites["Basic"] = "Engineering"
module_sprites["Antique"] = "engineerrobot"
module_sprites["Landmate"] = "landmate"
@@ -1142,7 +1142,7 @@ var/list/robot_verbs_default = list(
scrambledcodes = 1
//Disconnect it's camera so it's not so easily tracked.
if(src.camera)
src.camera.network = list()
src.camera.clear_all_networks()
cameranet.removeCamera(src.camera)
@@ -323,11 +323,13 @@
if(next_alarm_notice && (world.time > next_alarm_notice))
next_alarm_notice = 0
var/alarm_raised = 0
for(var/datum/alarm_handler/AH in queued_alarms)
var/list/alarms = queued_alarms[AH]
var/reported = 0
for(var/datum/alarm/A in alarms)
if(alarms[A] == 1)
alarm_raised = 1
if(!reported)
reported = 1
src << "<span class='warning'>--- [AH.category] Detected ---</span>"
@@ -343,6 +345,9 @@
src << "<span class='notice'>--- [AH.category] Cleared ---</span>"
src << "\The [A.alarm_name()]."
if(alarm_raised)
src << "<A HREF=?src=\ref[src];showalerts=1>\[Show Alerts\]</A>"
for(var/datum/alarm_handler/AH in queued_alarms)
var/list/alarms = queued_alarms[AH]
alarms.Cut()
@@ -194,7 +194,7 @@
radio = new /obj/item/device/radio/borg(src)
camera = new /obj/machinery/camera(src)
camera.c_tag = "Spiderbot-[real_name]"
camera.network = list("SS13")
camera.replace_networks(list("SS13"))
..()
@@ -59,7 +59,7 @@
/obj/machinery/computer/engines/Topic(href, href_list)
if(..())
return
return 1
if(href_list["state"])
state = href_list["state"]
+1 -1
View File
@@ -110,7 +110,7 @@
/obj/machinery/computer/helm/Topic(href, href_list)
if(..())
return
return 1
if (!linked)
return
@@ -113,7 +113,7 @@
/obj/machinery/computer/shuttle_control/explore/Topic(href, href_list)
if(..())
return
return 1
usr.set_machine(src)
src.add_fingerprint(usr)
+1 -1
View File
@@ -109,7 +109,7 @@
initial_ammo = 0
/obj/item/ammo_magazine/a556
name = "magazine (5.56)"
name = "magazine (5.56mm)"
icon_state = "5.56"
origin_tech = "combat=2"
mag_type = MAGAZINE
+13 -5
View File
@@ -6,12 +6,11 @@
fire_sound = 'sound/weapons/Laser.ogg'
slot_flags = SLOT_BELT|SLOT_BACK
w_class = 3
force = 10 //it has a stock, might as well give some kind of perk over the egun
force = 10
matter = list("metal" = 2000)
origin_tech = "combat=3;magnets=2"
projectile_type = /obj/item/projectile/beam
charge_cost = 75
fire_delay = 1
fire_delay = 1 //rapid fire
/obj/item/weapon/gun/energy/laser/mounted
self_recharge = 1
@@ -22,21 +21,29 @@
desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice."
projectile_type = /obj/item/projectile/beam/practice
obj/item/weapon/gun/energy/laser/retro
obj/item/weapon/gun/energy/retro
name = "retro laser"
icon_state = "retro"
desc = "An older model of the basic lasergun, no longer used by Nanotrasen's security or military forces. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws."
fire_sound = 'sound/weapons/Laser.ogg'
slot_flags = SLOT_BELT
w_class = 3
projectile_type = /obj/item/projectile/beam
fire_delay = 10
/obj/item/weapon/gun/energy/captain
name = "antique laser gun"
icon_state = "caplaser"
desc = "This is an antique laser gun. All craftsmanship is of the highest quality. It is decorated with assistant leather and chrome. The object menaces with spikes of energy. On the item is an image of Space Station 13. The station is exploding."
force = 5
fire_sound = 'sound/weapons/Laser.ogg'
slot_flags = SLOT_BELT
w_class = 3
projectile_type = /obj/item/projectile/beam
origin_tech = null
charge_cost = 200 //to compensate a bit for self-recharging
self_recharge = 1
/obj/item/weapon/gun/energy/lasercannon
name = "laser cannon"
desc = "With the laser cannon, the lasing medium is enclosed in a tube lined with uranium-235 and subjected to high neutron flux in a nuclear reactor core. This incredible technology may help YOU achieve high excitation rates with small laser volumes!"
@@ -62,6 +69,7 @@ obj/item/weapon/gun/energy/laser/retro
origin_tech = "combat=5;materials=3;magnets=2;syndicate=2"
projectile_type = /obj/item/projectile/beam/xray
charge_cost = 50
fire_delay = 1
/obj/item/weapon/gun/energy/sniperrifle
name = "\improper L.W.A.P. sniper rifle"
@@ -42,7 +42,7 @@
/obj/item/weapon/gun/energy/temperature/Topic(href, href_list)
if (..())
return
return 1
usr.set_machine(src)
src.add_fingerprint(usr)
@@ -1,6 +1,6 @@
/obj/item/weapon/gun/launcher/grenade
name = "grenade launcher"
desc = "A bulky pump-action grenade launcher. Holds up to 5 grenades in a revolving magazine."
desc = "A bulky pump-action grenade launcher. Holds up to 6 grenades in a revolving magazine."
icon_state = "riotgun"
item_state = "riotgun"
w_class = 4
@@ -14,7 +14,7 @@
var/obj/item/weapon/grenade/chambered
var/list/grenades = new/list()
var/max_grenades = 4 //holds this + one in the chamber
var/max_grenades = 5 //holds this + one in the chamber
matter = list("metal" = 2000)
//revolves the magazine, allowing players to choose between multiple grenade types
@@ -42,30 +42,36 @@
if(chambered)
user << "\A [chambered] is chambered."
/obj/item/weapon/gun/launcher/grenade/proc/load(obj/item/weapon/grenade/G, mob/user)
if(grenades.len >= max_grenades)
user << "<span class='warning'>[src] is full.</span>"
return
user.remove_from_mob(G)
G.loc = src
grenades.Insert(1, G) //add to the head of the list, so that it is loaded on the next pump
user.visible_message("[user] inserts \a [G] into [src].", "<span class='notice'>You insert \a [G] into [src].</span>")
/obj/item/weapon/gun/launcher/grenade/proc/unload(mob/user)
if(grenades.len)
var/obj/item/weapon/grenade/G = grenades[grenades.len]
grenades.len--
user.put_in_hands(G)
user.visible_message("[user] removes \a [G] from [src].", "<span class='notice'>You remove \a [G] from [src].</span>")
else
user << "<span class='warning'>[src] is empty.</span>"
/obj/item/weapon/gun/launcher/grenade/attack_self(mob/user)
pump(user)
/obj/item/weapon/gun/launcher/grenade/attackby(obj/item/I, mob/user)
if((istype(I, /obj/item/weapon/grenade)))
if(grenades.len >= max_grenades)
user << "<span class='warning'>[src] is full.</span>"
return
user.remove_from_mob(I)
I.loc = src
grenades.Insert(1, I) //add to the head of the list, so that it is loaded on the next pump
user.visible_message("[user] inserts \a [I] into [src].", "<span class='notice'>You insert \a [I] into [src].</span>")
load(I, user)
else
..()
/obj/item/weapon/gun/launcher/grenade/attack_hand(mob/user)
if(user.get_inactive_hand() == src)
if(grenades.len)
var/obj/item/weapon/grenade/G = grenades[grenades.len]
grenades.len--
user.put_in_hands(G)
user.visible_message("[user] removes \a [G] from [src].", "<span class='notice'>You remove \a [G] from [src].</span>")
else
user << "<span class='warning'>[src] is empty.</span>"
unload(user)
else
..()
@@ -79,3 +85,32 @@
message_admins("[key_name_admin(user)] fired a grenade ([chambered.name]) from a grenade launcher ([src.name]).")
log_game("[key_name_admin(user)] used a grenade ([chambered.name]).")
chambered = null
//Underslung grenade launcher to be used with the Z8
/obj/item/weapon/gun/launcher/grenade/underslung
name = "underslung grenade launcher"
desc = "Not much more than a tube and a firing mechanism, this grenade launcher is designed to be fitted to a rifle."
w_class = 3
force = 5
max_grenades = 0
/obj/item/weapon/gun/launcher/grenade/underslung/attack_self()
return
//load and unload directly into chambered
/obj/item/weapon/gun/launcher/grenade/underslung/load(obj/item/weapon/grenade/G, mob/user)
if(chambered)
user << "<span class='warning'>[src] is already loaded.</span>"
return
user.remove_from_mob(G)
G.loc = src
chambered = G
user.visible_message("[user] load \a [G] into [src].", "<span class='notice'>You load \a [G] into [src].</span>")
/obj/item/weapon/gun/launcher/grenade/underslung/unload(mob/user)
if(chambered)
user.put_in_hands(chambered)
user.visible_message("[user] removes \a [chambered] from [src].", "<span class='notice'>You remove \a [chambered] from [src].</span>")
chambered = null
else
user << "<span class='warning'>[src] is empty.</span>"
@@ -47,6 +47,23 @@
icon_state = "c20r"
return
/obj/item/weapon/gun/projectile/automatic/sts35
name = "\improper STS-35 automatic rifle"
desc = "A durable, rugged looking automatic weapon of a make popular on the frontier worlds. Uses 7.62mm rounds. It is unmarked."
icon_state = "arifle"
item_state = "shotgun"
w_class = 4
force = 10
caliber = "a762"
origin_tech = "combat=6;materials=1;syndicate=4"
slot_flags = SLOT_BACK
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/c762
/obj/item/weapon/gun/projectile/automatic/sts35/update_icon()
..()
icon_state = (ammo_magazine)? "arifle-0" : "arifle"
/obj/item/weapon/gun/projectile/automatic/wt550
name = "\improper W-T 550 Saber"
desc = "A cheap, mass produced Ward-Takahashi PDW. Uses 9mm rounds."
@@ -70,7 +87,7 @@
/obj/item/weapon/gun/projectile/automatic/z8
name = "\improper Z8 Bulldog"
desc = "An older model bullpup carbine, made by the now defunct Zendai Foundries. Uses armor piercing 5.56mm rounds. Makes you feel like a space marine when you hold it."
desc = "An older model bullpup carbine, made by the now defunct Zendai Foundries. Uses armor piercing 5.56mm rounds and has an underslung grenade launcher. Makes you feel like a space marine when you hold it."
icon_state = "carbine"
item_state = "shotgun"
w_class = 4
@@ -82,6 +99,37 @@
slot_flags = SLOT_BACK
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/a556
auto_eject = 1
auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg'
var/use_launcher = 0
var/obj/item/weapon/gun/launcher/grenade/underslung/launcher
/obj/item/weapon/gun/projectile/automatic/z8/New()
..()
launcher = new(src)
/obj/item/weapon/gun/projectile/automatic/z8/attack_self(mob/user)
use_launcher = !use_launcher
user << "<span class='notice'>You switch to [use_launcher? "\the [launcher]" : "firing normally"].</span>"
/obj/item/weapon/gun/projectile/automatic/z8/attackby(obj/item/I, mob/user)
if((istype(I, /obj/item/weapon/grenade)))
launcher.load(I, user)
else
..()
/obj/item/weapon/gun/projectile/automatic/z8/attack_hand(mob/user)
if(user.get_inactive_hand() == src && use_launcher)
launcher.unload(user)
else
..()
/obj/item/weapon/gun/projectile/automatic/z8/Fire(atom/target, mob/living/user, params, pointblank=0, reflex=0)
if(use_launcher)
launcher.Fire(target, user, params, pointblank, reflex)
else
..()
/obj/item/weapon/gun/projectile/automatic/z8/update_icon()
..()
@@ -91,22 +139,12 @@
icon_state = "carbine"
return
/obj/item/weapon/gun/projectile/automatic/sts35
name = "\improper STS-35 automatic rifle"
desc = "A durable, rugged looking automatic weapon of a make popular on the frontier. Uses 7.62mm rounds. It is unmarked."
icon_state = "assltrifle"
item_state = "shotgun"
w_class = 4
force = 10
caliber = "a762"
origin_tech = "combat=6;materials=1;syndicate=4"
slot_flags = SLOT_BACK
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/c762
/obj/item/weapon/gun/projectile/automatic/sts35/update_icon()
/obj/item/weapon/gun/projectile/automatic/z8/examine(mob/user)
..()
icon_state = (ammo_magazine)? "assltrifle" : "assltrifle-noclip"
if(launcher.chambered)
user << "\The [launcher] has \a [launcher.chambered] loaded."
else
user << "\The [launcher] is empty."
/obj/item/weapon/gun/projectile/automatic/l6_saw
name = "\improper L6 SAW"
@@ -165,6 +165,7 @@
return 0
/obj/item/weapon/gun/projectile/dartgun/Topic(href, href_list)
if(..()) return 1
src.add_fingerprint(usr)
if(href_list["stop_mix"])
var/index = text2num(href_list["stop_mix"])
@@ -7,11 +7,6 @@
origin_tech = "combat=2;materials=2"
load_method = MAGAZINE
/obj/item/weapon/gun/projectile/colt/flash
name = "\improper Colt M1911 signal pistol"
desc = "A cheap Martian knock-off of a Colt M1911. Uses .45 signal flash rounds."
magazine_type = /obj/item/ammo_magazine/c45m/flash
/obj/item/weapon/gun/projectile/colt/detective
desc = "A cheap Martian knock-off of a Colt M1911. Uses less-than-lethal .45 rounds."
magazine_type = /obj/item/ammo_magazine/c45m/rubber
@@ -35,14 +30,18 @@
return 1
/obj/item/weapon/gun/projectile/sec
desc = "A Nanotrasen designed sidearm, found pretty much everywhere humans are. Uses less-than-lethal .45 rounds."
desc = "A NanoTrasen designed sidearm, found pretty much everywhere humans are. Uses less-than-lethal .45 rounds."
name = "\improper NT Mk58"
icon_state = "secguncomp"
magazine_type = /obj/item/ammo_magazine/c45m/rubber
caliber = ".45"
origin_tech = "combat=3;materials=2"
origin_tech = "combat=2;materials=2"
load_method = MAGAZINE
/obj/item/weapon/gun/projectile/sec/flash
name = "\improper NT Mk58 signal pistol"
desc = "A NanoTrasen designed sidearm, found pretty much everywhere humans are. Uses .45 signal flash rounds."
magazine_type = /obj/item/ammo_magazine/c45m/flash
/obj/item/weapon/gun/projectile/sec/wood
desc = "A Nanotrasen designed sidearm, this one has a sweet wooden grip. Uses less-than-lethal .45 rounds."
@@ -43,7 +43,7 @@
name = "combat shotgun"
icon_state = "cshotgun"
origin_tech = "combat=5;materials=2"
max_shells = 8
max_shells = 7 //match the ammo box capacity, also it can hold a round in the chamber anyways, for a total of 8.
ammo_type = /obj/item/ammo_casing/shotgun
@@ -19,7 +19,7 @@
mob_passthrough_check = 1
else
mob_passthrough_check = 0
..()
return ..()
/obj/item/projectile/bullet/can_embed()
//prevent embedding if the projectile is passing through the mob
@@ -43,10 +43,10 @@
var/chance = 0
if(istype(A, /turf/simulated/wall))
var/turf/simulated/wall/W = A
chance = round(damage/W.damage_cap*250)
chance = round(damage/W.damage_cap*180)
else if(istype(A, /obj/machinery/door))
var/obj/machinery/door/D = A
chance = round(damage/D.maxhealth*150)
chance = round(damage/D.maxhealth*180)
else if(istype(A, /obj/structure/girder) || istype(A, /obj/structure/cultgirder))
chance = 100
else if(istype(A, /obj/machinery) || istype(A, /obj/structure))
@@ -141,7 +141,7 @@
penetrating = 1
/obj/item/projectile/bullet/rifle/a145
damage = 60
damage = 80
stun = 3
weaken = 3
penetrating = 5
+1 -1
View File
@@ -162,7 +162,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
/obj/machinery/computer/rdconsole/Topic(href, href_list)
if(..())
return
return 1
add_fingerprint(usr)
+1 -1
View File
@@ -205,7 +205,7 @@
/obj/machinery/computer/rdservercontrol/Topic(href, href_list)
if(..())
return
return 1
add_fingerprint(usr)
usr.set_machine(src)
@@ -345,7 +345,7 @@
/obj/item/weapon/gun/energy/laser/practice/xenoarch,\
/obj/item/weapon/gun/energy/laser/xenoarch,\
/obj/item/weapon/gun/energy/xray/xenoarch,\
/obj/item/weapon/gun/energy/laser/captain/xenoarch)
/obj/item/weapon/gun/energy/captain/xenoarch)
if(spawn_type)
var/obj/item/weapon/gun/energy/new_gun = new spawn_type(src.loc)
new_item = new_gun
@@ -19,7 +19,7 @@
update_icon()
return
/obj/item/weapon/gun/energy/laser/captain/xenoarch
/obj/item/weapon/gun/energy/captain/xenoarch
icon = 'icons/obj/xenoarchaeology.dmi'
update_icon()
return
return
@@ -181,6 +181,7 @@ datum/genesequence
onclose(user, "reconstitutor")
/obj/machinery/computer/reconstitutor/animal/Topic(href, href_list)
if(..()) return 1
if(href_list["clone"])
var/sequence_num = text2num(href_list["sequence_num"])
var/datum/genesequence/cloned_genesequence = completed_genesequences[sequence_num]
@@ -201,10 +202,9 @@ datum/genesequence
pod1.biomass -= CLONE_BIOMASS
else
usr << "\red \icon[src] Unable to locate cloning pod!"
else
..()
/obj/machinery/computer/reconstitutor/Topic(href, href_list)
if(..()) return 1
if(href_list["insertpos"])
//world << "inserting gene for genesequence [href_list["insertgenome"]] at pos [text2num(href_list["insertpos"])]"
var/sequence_num = text2num(href_list["sequence_num"])
@@ -252,9 +252,6 @@ datum/genesequence
usr.unset_machine(src)
usr << browse(null, "window=reconstitutor")
else
..()
/obj/machinery/computer/reconstitutor/proc/scan_fossil(var/obj/item/weapon/fossil/scan_fossil)
//see whether we accept these kind of fossils
if(accepted_fossil_types.len && !accepted_fossil_types.Find(scan_fossil.type))
+1 -1
View File
@@ -43,7 +43,7 @@
ui.set_auto_update(1)
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/Topic(href, href_list)
if(..()) //I hate this "return 1 to indicate they are not allowed to use the controller" crap, but not sure how else to do it without being able to call machinery/Topic() directly.
if(..())
return 1
if("manual_arm")
+1 -1
View File
@@ -67,7 +67,7 @@
/obj/machinery/computer/shuttle_control/Topic(href, href_list)
if(..())
return
return 1
usr.set_machine(src)
src.add_fingerprint(usr)
+1 -1
View File
@@ -221,7 +221,7 @@
/obj/machinery/computer/shuttle_control/emergency/Topic(href, href_list)
if(..())
return
return 1
if(href_list["removeid"])
var/dna_hash = href_list["removeid"]
+1 -1
View File
@@ -78,7 +78,7 @@
/obj/machinery/computer/shuttle_control/multi/Topic(href, href_list)
if(..())
return
return 1
usr.set_machine(src)
src.add_fingerprint(usr)
+1 -1
View File
@@ -92,7 +92,7 @@
isolate()
/obj/machinery/computer/centrifuge/Topic(href, href_list)
if (..()) return 0
if (..()) return 1
var/mob/user = usr
var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main")
+1 -2
View File
@@ -80,7 +80,7 @@
/obj/machinery/computer/curer/Topic(href, href_list)
if(..())
return
return 1
usr.machine = src
if (href_list["antibody"])
@@ -91,7 +91,6 @@
src.add_fingerprint(usr)
src.updateUsrDialog()
return
/obj/machinery/computer/curer/proc/createcure(var/obj/item/weapon/reagent_containers/container)
+1 -1
View File
@@ -122,7 +122,7 @@
nanomanager.update_uis(src)
/obj/machinery/computer/diseasesplicer/Topic(href, href_list)
if(..()) return 0
if(..()) return 1
var/mob/user = usr
var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main")
+1 -1
View File
@@ -139,7 +139,7 @@
nanomanager.update_uis(src)
/obj/machinery/disease2/incubator/Topic(href, href_list)
if (..()) return 0
if (..()) return 1
var/mob/user = usr
var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main")
+1 -1
View File
@@ -120,7 +120,7 @@
update_icon()
/obj/machinery/disease2/isolator/Topic(href, href_list)
if (..()) return 0
if (..()) return 1
var/mob/user = usr
var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main")
+1 -1
View File
@@ -73,7 +73,7 @@
/obj/item/weapon/virusdish/Topic(href, href_list)
. = ..()
if(.) return
if(.) return 1
if(href_list["info"])
usr << browse(info, "window=info_\ref[src]")