diff --git a/baystation12.dme b/baystation12.dme index b1e334041d9..6229a35ff13 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -872,7 +872,6 @@ #include "code\modules\clothing\spacesuits\rig\modules\computer.dm" #include "code\modules\clothing\spacesuits\rig\modules\modules.dm" #include "code\modules\clothing\spacesuits\rig\modules\ninja.dm" -#include "code\modules\clothing\spacesuits\rig\modules\rig_weapons.dm" #include "code\modules\clothing\spacesuits\rig\modules\utility.dm" #include "code\modules\clothing\spacesuits\rig\modules\vision.dm" #include "code\modules\clothing\spacesuits\rig\suits\alien.dm" @@ -1329,6 +1328,7 @@ #include "code\modules\projectiles\ammunition\bullets.dm" #include "code\modules\projectiles\guns\alien.dm" #include "code\modules\projectiles\guns\energy.dm" +#include "code\modules\projectiles\guns\launcher.dm" #include "code\modules\projectiles\guns\projectile.dm" #include "code\modules\projectiles\guns\energy\laser.dm" #include "code\modules\projectiles\guns\energy\nuclear.dm" @@ -1336,14 +1336,17 @@ #include "code\modules\projectiles\guns\energy\special.dm" #include "code\modules\projectiles\guns\energy\stun.dm" #include "code\modules\projectiles\guns\energy\temperature.dm" +#include "code\modules\projectiles\guns\launcher\crossbow.dm" +#include "code\modules\projectiles\guns\launcher\grenade_launcher.dm" +#include "code\modules\projectiles\guns\launcher\pneumatic.dm" +#include "code\modules\projectiles\guns\launcher\rocket.dm" +#include "code\modules\projectiles\guns\launcher\syringe_gun.dm" #include "code\modules\projectiles\guns\projectile\automatic.dm" -#include "code\modules\projectiles\guns\projectile\crossbow.dm" -#include "code\modules\projectiles\guns\projectile\launcher.dm" +#include "code\modules\projectiles\guns\projectile\dartgun.dm" #include "code\modules\projectiles\guns\projectile\pistol.dm" -#include "code\modules\projectiles\guns\projectile\pneumatic.dm" #include "code\modules\projectiles\guns\projectile\revolver.dm" -#include "code\modules\projectiles\guns\projectile\rocket.dm" #include "code\modules\projectiles\guns\projectile\shotgun.dm" +#include "code\modules\projectiles\guns\projectile\sniper.dm" #include "code\modules\projectiles\projectile\animate.dm" #include "code\modules\projectiles\projectile\beams.dm" #include "code\modules\projectiles\projectile\bullets.dm" @@ -1360,11 +1363,8 @@ #include "code\modules\reagents\Chemistry-Reagents-Antidepressants.dm" #include "code\modules\reagents\Chemistry-Reagents.dm" #include "code\modules\reagents\Chemistry-Recipes.dm" -#include "code\modules\reagents\dartgun.dm" -#include "code\modules\reagents\grenade_launcher.dm" #include "code\modules\reagents\reagent_containers.dm" #include "code\modules\reagents\reagent_dispenser.dm" -#include "code\modules\reagents\syringe_gun.dm" #include "code\modules\reagents\reagent_containers\blood_pack.dm" #include "code\modules\reagents\reagent_containers\borghydro.dm" #include "code\modules\reagents\reagent_containers\dropper.dm" diff --git a/baystation12.int b/baystation12.int index b82874fded5..1939a7e9ecc 100644 --- a/baystation12.int +++ b/baystation12.int @@ -1,6 +1,11 @@ // BEGIN_INTERNALS /* MAP_ICON_TYPE: 0 +WINDOW: code\ATMOSPHERICS\components\binary_devices\pump.dm;code\ATMOSPHERICS\components\binary_devices\circulator.dm;code\modules\power\generator.dm;code\ATMOSPHERICS\components\unary\heat_exchanger.dm;code\ATMOSPHERICS\components\unary\vent_pump.dm;maps\exodus-1.dmm +LAST_COMPILE_VERSION: 501.1217 +DIR: code code\ATMOSPHERICS code\ATMOSPHERICS\components code\ATMOSPHERICS\components\binary_devices code\ATMOSPHERICS\components\unary code\game code\game\machinery\doors code\game\objects code\game\objects\items code\game\objects\items\weapons code\modules code\modules\power maps +FILE: maps\exodus-1.dmm +LAST_COMPILE_TIME: 1424008581 AUTO_FILE_DIR: OFF */ // END_INTERNALS diff --git a/code/ATMOSPHERICS/components/binary_devices/circulator.dm b/code/ATMOSPHERICS/components/binary_devices/circulator.dm index cb9ecfbdc58..a4b720302b2 100644 --- a/code/ATMOSPHERICS/components/binary_devices/circulator.dm +++ b/code/ATMOSPHERICS/components/binary_devices/circulator.dm @@ -1,37 +1,50 @@ //node1, air1, network1 correspond to input //node2, air2, network2 correspond to output +#define ADIABATIC_EXPONENT 0.667 //Actually adiabatic exponent - 1. + /obj/machinery/atmospherics/binary/circulator - name = "circulator/heat exchanger" - desc = "A gas circulator pump and heat exchanger." + name = "circulator" + desc = "A gas circulator turbine and heat exchanger." icon = 'icons/obj/pipes.dmi' icon_state = "circ-off" anchored = 0 + var/kinetic_efficiency = 0.04 //combined kinetic and kinetic-to-electric efficiency + var/volume_ratio = 0.2 + var/recent_moles_transferred = 0 var/last_heat_capacity = 0 var/last_temperature = 0 var/last_pressure_delta = 0 var/last_worldtime_transfer = 0 + var/last_stored_energy_transferred = 0 + var/volume_capacity_used = 0 + var/stored_energy = 0 density = 1 /obj/machinery/atmospherics/binary/circulator/New() ..() - desc = initial(desc) + " Its outlet port is to the [dir2text(dir)]." + desc = initial(desc) + " Its outlet port is to the [dir2text(dir)]." + air1.volume = 400 /obj/machinery/atmospherics/binary/circulator/proc/return_transfer_air() var/datum/gas_mixture/removed - if(anchored && !(stat&BROKEN) ) + if(anchored && !(stat&BROKEN) && network1) var/input_starting_pressure = air1.return_pressure() var/output_starting_pressure = air2.return_pressure() - last_pressure_delta = max(input_starting_pressure - output_starting_pressure + 10, 0) + last_pressure_delta = max(input_starting_pressure - output_starting_pressure - 5, 0) - //only circulate air if there is a pressure difference (plus 10 kPa to represent friction in the machine) - if(air1.temperature > 0 && last_pressure_delta > 0) + //only circulate air if there is a pressure difference (plus 5kPa kinetic, 10kPa static friction) + if(air1.temperature > 0 && last_pressure_delta > 5) //Calculate necessary moles to transfer using PV = nRT - recent_moles_transferred = last_pressure_delta*air2.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) + recent_moles_transferred = (last_pressure_delta*network1.volume/(air1.temperature * R_IDEAL_GAS_EQUATION))/3 //uses the volume of the whole network, not just itself + volume_capacity_used = min( (last_pressure_delta*network1.volume/3)/(input_starting_pressure*air1.volume) , 1) //how much of the gas in the input air volume is consumed + + //Calculate energy generated from kinetic turbine + stored_energy += 1/ADIABATIC_EXPONENT * min(last_pressure_delta * network1.volume , input_starting_pressure*air1.volume) * (1 - volume_ratio**ADIABATIC_EXPONENT) * kinetic_efficiency //Actually transfer the gas removed = air1.remove(recent_moles_transferred) @@ -40,8 +53,7 @@ last_temperature = removed.temperature //Update the gas networks. - if(network1) - network1.update = 1 + network1.update = 1 last_worldtime_transfer = world.time else @@ -50,6 +62,11 @@ update_icon() return removed +/obj/machinery/atmospherics/binary/circulator/proc/return_stored_energy() + last_stored_energy_transferred = stored_energy + stored_energy = 0 + return last_stored_energy_transferred + /obj/machinery/atmospherics/binary/circulator/process() ..() @@ -72,8 +89,11 @@ /obj/machinery/atmospherics/binary/circulator/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/wrench)) + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) anchored = !anchored - user << "\blue You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor." + user.visible_message("[user.name] [anchored ? "secures" : "unsecures"] the bolts holding [src.name] to the floor.", \ + "You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor.", \ + "You hear a ratchet") if(anchored) if(dir & (NORTH|SOUTH)) diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index ed7290b00f3..4961d22e797 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -89,7 +89,7 @@ /obj/machinery/atmospherics/unary/vent_pump/engine name = "Engine Core Vent" power_channel = ENVIRON - power_rating = 15000 //15 kW ~ 20 HP + power_rating = 30000 //15 kW ~ 20 HP /obj/machinery/atmospherics/unary/vent_pump/engine/New() ..() @@ -183,11 +183,11 @@ //JESUS FUCK. THERE ARE LITERALLY 250 OF YOU MOTHERFUCKERS ON ZLEVEL ONE AND YOU DO THIS SHIT EVERY TICK WHEN VERY OFTEN THERE IS NO REASON TO if(pump_direction && pressure_checks == PRESSURE_CHECK_EXTERNAL && controller_iteration > 10) //99% of all vents - //Fucking hibernate because you ain't doing shit. + //Fucking hibernate because you ain't doing shit. hibernate = 1 spawn(rand(100,200)) //hibernate for 10 or 20 seconds randomly - hibernate = 0 - + hibernate = 0 + if (power_draw >= 0) last_power_draw = power_draw diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index c14976bb782..27f5f98aa44 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -329,14 +329,25 @@ proc/TextPreview(var/string,var/len=40) //This means that it doesn't just remove < and > and call it a day. //Also limit the size of the input, if specified. /proc/strip_html_properly(var/input, var/max_length = MAX_MESSAGE_LEN) + if(!input) + return var/opentag = 1 //These store the position of < and > respectively. var/closetag = 1 while(1) opentag = findtext(input, "<") closetag = findtext(input, ">") - if(!closetag || !opentag) + if(closetag && opentag) + if(closetag < opentag) + input = copytext(input, (closetag + 1)) + else + input = copytext(input, 1, opentag) + copytext(input, (closetag + 1)) + else if(closetag || opentag) + if(opentag) + input = copytext(input, 1, opentag) + else + input = copytext(input, (closetag + 1)) + else break - input = copytext(input, 1, opentag) + copytext(input, (closetag + 1)) if(max_length) input = copytext(input,1,max_length) return sanitize(input) diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm index 65924284b51..0081fbe6b52 100644 --- a/code/_onclick/hud/monkey.dm +++ b/code/_onclick/hud/monkey.dm @@ -226,7 +226,7 @@ if (mymob.client.gun_mode) // If in aim mode, correct the sprite mymob.gun_setting_icon.set_dir(2) for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons - if (G.target) + if (G.aim_targets) mymob.item_use_icon = new /obj/screen/gun/item(null) if (mymob.client.target_can_click) mymob.item_use_icon.set_dir(1) diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index 644b8113765..2738cf3a7d6 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -157,7 +157,7 @@ var/obj/screen/robot_inventory if (mymob.client.gun_mode) // If in aim mode, correct the sprite mymob.gun_setting_icon.set_dir(2) for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons - if (G.target) + if (G.aim_targets) mymob.item_use_icon = new /obj/screen/gun/item(null) if (mymob.client.target_can_click) mymob.item_use_icon.set_dir(1) diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 03be981c125..e8a514e64f9 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -56,7 +56,7 @@ icon_state = "bike_horn" item_state = "bike_horn" throwforce = 3 - w_class = 1.0 + w_class = 2 throw_speed = 3 throw_range = 15 attack_verb = list("HONKED") diff --git a/code/defines/procs/announce.dm b/code/defines/procs/announce.dm index b74f7a1c78f..d3aef96c45d 100644 --- a/code/defines/procs/announce.dm +++ b/code/defines/procs/announce.dm @@ -36,7 +36,7 @@ var/tmp/message_title = new_title ? new_title : title var/tmp/message_sound = new_sound ? sound(new_sound) : sound - message = html_encode(message) + message = trim_strip_html_properly(message) message_title = html_encode(message_title) Message(message, message_title) diff --git a/code/game/gamemodes/factions.dm b/code/game/gamemodes/factions.dm index 1aaa70e2a54..47c8586f6e1 100644 --- a/code/game/gamemodes/factions.dm +++ b/code/game/gamemodes/factions.dm @@ -119,7 +119,7 @@ operative_notes = "We'd like to remind our operatives to keep it professional. You are not here to have a good time, you are here to accomplish your objectives. These vile communists must be stopped at all costs. You may collaborate with any friends of the Syndicate coalition, but keep an eye on any of those Tiger punks if they do show up. You are completely free to accomplish your objectives any way you see fit." uplink_contents = {"Highly Visible and Dangerous Weapons; -/obj/item/weapon/gun/projectile:6:Revolver; +/obj/item/weapon/gun/projectile/revolver:6:Revolver; /obj/item/ammo_magazine/a357:2:Ammo-357; /obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow; /obj/item/weapon/melee/energy/sword:4:Energy Sword; diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 3f0f8cdd64b..8ad2d722880 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -40,7 +40,7 @@ new/datum/uplink_item(/obj/item/weapon/gun/energy/crossbow, 5, "Energy Crossbow", "XB"), new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/g9mm, 5, "Silenced 9mm", "S9"), new/datum/uplink_item(/obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser, 6, "Exosuit Rigged Laser", "RL"), - new/datum/uplink_item(/obj/item/weapon/gun/projectile, 6, "Revolver", "RE"), + new/datum/uplink_item(/obj/item/weapon/gun/projectile/revolver, 6, "Revolver", "RE"), new/datum/uplink_item(/obj/item/weapon/storage/box/syndicate, 10, "Mercenary Bundle", "BU") ), "Stealthy and Inconspicuous Weapons" = list( diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm index ccce7f9bff6..1e16da590b3 100644 --- a/code/game/gamemodes/wizard/rightandwrong.dm +++ b/code/game/gamemodes/wizard/rightandwrong.dm @@ -26,7 +26,7 @@ if("revolver") new /obj/item/weapon/gun/projectile(get_turf(H)) if("detective") - new /obj/item/weapon/gun/projectile/detective(get_turf(H)) + new /obj/item/weapon/gun/projectile/revolver/detective(get_turf(H)) if("smg") new /obj/item/weapon/gun/projectile/automatic/c20r(get_turf(H)) if("nuclear") @@ -49,7 +49,7 @@ if("combatshotgun") new /obj/item/weapon/gun/projectile/shotgun/pump/combat(get_turf(H)) if("mateba") - new /obj/item/weapon/gun/projectile/mateba(get_turf(H)) + new /obj/item/weapon/gun/projectile/revolver/mateba(get_turf(H)) if("smg") new /obj/item/weapon/gun/projectile/automatic(get_turf(H)) if("uzi") diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm index f13c3dc634a..38989d29057 100644 --- a/code/game/machinery/autolathe_datums.dm +++ b/code/game/machinery/autolathe_datums.dm @@ -201,6 +201,11 @@ path = /obj/item/weapon/reagent_containers/syringe category = "Medical" +/datum/autolathe/recipe/syringegun_ammo + name = "syringe" + path = /obj/item/weapon/syringe_cartridge + category = "Arms and Ammunition" + /datum/autolathe/recipe/shotgun_blanks name = "ammunition (shotgun, blank)" path = /obj/item/ammo_casing/shotgun/blank @@ -217,13 +222,13 @@ category = "Arms and Ammunition" /datum/autolathe/recipe/magazine_rubber - name = "ammunition (rubber)" - path = /obj/item/ammo_magazine/c45r + name = "ammunition (.45, rubber)" + path = /obj/item/ammo_magazine/c45m/rubber category = "Arms and Ammunition" /datum/autolathe/recipe/magazine_flash - name = "ammunition (flash)" - path = /obj/item/ammo_magazine/c45f + name = "ammunition (.45, flash)" + path = /obj/item/ammo_magazine/c45m/flash category = "Arms and Ammunition" /datum/autolathe/recipe/consolescreen @@ -294,6 +299,24 @@ hidden = 1 category = "Arms and Ammunition" +/datum/autolathe/recipe/magazine_stetchkin + name = "ammunition (9mm)" + path = /obj/item/ammo_magazine/mc9mm + hidden = 1 + category = "Arms and Ammunition" + +/datum/autolathe/recipe/magazine_stetchkin_flash + name = "ammunition (9mm, flash)" + path = /obj/item/ammo_magazine/mc9mm/flash + hidden = 1 + category = "Arms and Ammunition" + +/datum/autolathe/recipe/magazine_c20r + name = "ammunition (12mm)" + path = /obj/item/ammo_magazine/a12mm + hidden = 1 + category = "Arms and Ammunition" + /datum/autolathe/recipe/shotgun name = "ammunition (slug, shotgun)" path = /obj/item/ammo_casing/shotgun @@ -306,6 +329,12 @@ hidden = 1 category = "Arms and Ammunition" +/datum/autolathe/recipe/stunshell + name = "ammunition (stun cartridge, shotgun)" + path = /obj/item/ammo_casing/shotgun/stunshell + hidden = 1 + category = "Arms and Ammunition" + /datum/autolathe/recipe/rcd name = "rapid construction device" path = /obj/item/weapon/rcd diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index 24e29e28397..639da55bf5b 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -34,10 +34,10 @@ var/obj/item/weapon/gun/energy/taser/G = new /obj/item/weapon/gun/energy/taser(Tsec) G.power_supply.charge = 0 else if(lasercolor == "b") - var/obj/item/weapon/gun/energy/laser/bluetag/G = new /obj/item/weapon/gun/energy/laser/bluetag(Tsec) + var/obj/item/weapon/gun/energy/lasertag/blue/G = new (Tsec) G.power_supply.charge = 0 else if(lasercolor == "r") - var/obj/item/weapon/gun/energy/laser/redtag/G = new /obj/item/weapon/gun/energy/laser/redtag(Tsec) + var/obj/item/weapon/gun/energy/lasertag/red/G = new (Tsec) G.power_supply.charge = 0 if (prob(50)) new /obj/item/robot_parts/l_leg(Tsec) @@ -137,11 +137,11 @@ if(7) switch(lasercolor) if("b") - if( !istype(W, /obj/item/weapon/gun/energy/laser/bluetag) ) + if( !istype(W, /obj/item/weapon/gun/energy/lasertag/blue) ) return name = "bluetag ED-209 assembly" if("r") - if( !istype(W, /obj/item/weapon/gun/energy/laser/redtag) ) + if( !istype(W, /obj/item/weapon/gun/energy/lasertag/red) ) return name = "redtag ED-209 assembly" if("") diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 65a40289d00..a83f59d03fd 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -455,7 +455,7 @@ return /obj/machinery/bot/medbot/bullet_act(var/obj/item/projectile/Proj) - if(Proj.flag == "taser") + if(Proj.taser_effect) src.stunned = min(stunned+10,20) ..() diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index 1dcc02fbb91..6aa43c1b390 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -702,10 +702,10 @@ Auto Patrol: []"}, switch(lasercolor) if("b") target_suit = /obj/item/clothing/suit/redtag - target_weapon = /obj/item/weapon/gun/energy/laser/redtag + target_weapon = /obj/item/weapon/gun/energy/lasertag/red if("r") target_suit = /obj/item/clothing/suit/bluetag - target_weapon = /obj/item/weapon/gun/energy/laser/bluetag + target_weapon = /obj/item/weapon/gun/energy/lasertag/blue if((istype(perp.r_hand, target_weapon)) || (istype(perp.l_hand, target_weapon))) threat += 4 diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index f18d906383e..a8403bbede2 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -110,7 +110,7 @@ if(message_cooldown) usr << "Please allow at least one minute to pass between announcements" return - var/input = stripped_input(usr, "Please write a message to announce to the station crew.", "Priority Announcement") + var/input = input(usr, "Please write a message to announce to the station crew.", "Priority Announcement") if(!input || !(usr in view(1,src))) return crew_announcement.Announce(input) diff --git a/code/game/machinery/computer3/computers/communications.dm b/code/game/machinery/computer3/computers/communications.dm index bb268ba0c0d..527a2e2c5ae 100644 --- a/code/game/machinery/computer3/computers/communications.dm +++ b/code/game/machinery/computer3/computers/communications.dm @@ -115,7 +115,7 @@ if(message_cooldown) usr << "Please allow at least one minute to pass between announcements" return - var/input = stripped_input(usr, "Please write a message to announce to the station crew.", "Priority Announcement") + var/input = input(usr, "Please write a message to announce to the station crew.", "Priority Announcement") if(!input || !interactable()) return crew_announcement.Announce(input) diff --git a/code/game/machinery/portable_tag_turret.dm b/code/game/machinery/portable_tag_turret.dm index 13f7032aa3a..c9c2331e6df 100644 --- a/code/game/machinery/portable_tag_turret.dm +++ b/code/game/machinery/portable_tag_turret.dm @@ -5,13 +5,13 @@ /obj/machinery/porta_turret/tag // Reasonable defaults, in case someone manually spawns us var/lasercolor = "r" //Something to do with lasertag turrets, blame Sieve for not adding a comment. - installation = /obj/item/weapon/gun/energy/laser/redtag + installation = /obj/item/weapon/gun/energy/lasertag/red /obj/machinery/porta_turret/tag/red /obj/machinery/porta_turret/tag/blue lasercolor = "b" - installation = /obj/item/weapon/gun/energy/laser/bluetag + installation = /obj/item/weapon/gun/energy/lasertag/blue /obj/machinery/porta_turret/tag/New() ..() @@ -19,8 +19,8 @@ /obj/machinery/porta_turret/tag/weapon_setup(var/obj/item/weapon/gun/energy/E) switch(E.type) - if(/obj/item/weapon/gun/energy/laser/bluetag) - eprojectile = /obj/item/weapon/gun/energy/laser/bluetag + if(/obj/item/weapon/gun/energy/lasertag/blue) + eprojectile = /obj/item/weapon/gun/energy/lasertag/blue lasercolor = "b" req_access = list(access_maint_tunnels, access_theatre) check_arrest = 0 @@ -30,8 +30,8 @@ check_anomalies = 0 shot_delay = 30 - if(/obj/item/weapon/gun/energy/laser/redtag) - eprojectile = /obj/item/weapon/gun/energy/laser/redtag + if(/obj/item/weapon/gun/energy/lasertag/red) + eprojectile = /obj/item/weapon/gun/energy/lasertag/red lasercolor = "r" req_access = list(access_maint_tunnels, access_theatre) check_arrest = 0 @@ -86,13 +86,13 @@ ..() if(lasercolor == "b" && disabled == 0) - if(istype(Proj, /obj/item/weapon/gun/energy/laser/redtag)) + if(istype(Proj, /obj/item/weapon/gun/energy/lasertag/red)) disabled = 1 del(Proj) // qdel sleep(100) disabled = 0 if(lasercolor == "r" && disabled == 0) - if(istype(Proj, /obj/item/weapon/gun/energy/laser/bluetag)) + if(istype(Proj, /obj/item/weapon/gun/energy/lasertag/blue)) disabled = 1 del(Proj) // qdel sleep(100) @@ -110,10 +110,10 @@ switch(lasercolor) if("b") target_suit = /obj/item/clothing/suit/redtag - target_weapon = /obj/item/weapon/gun/energy/laser/redtag + target_weapon = /obj/item/weapon/gun/energy/lasertag/red if("r") target_suit = /obj/item/clothing/suit/bluetag - target_weapon = /obj/item/weapon/gun/energy/laser/bluetag + target_weapon = /obj/item/weapon/gun/energy/lasertag/blue if(target_suit)//Lasertag turrets target the opposing team, how great is that? -Sieve diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index c531e53f963..a2dda1e4006 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -733,7 +733,7 @@ gun_charge = E.power_supply.charge //the gun's charge is stored in gun_charge user << "You add [I] to the turret." - if(istype(installation, /obj/item/weapon/gun/energy/laser/bluetag) || istype(installation, /obj/item/weapon/gun/energy/laser/redtag)) + if(istype(installation, /obj/item/weapon/gun/energy/lasertag/blue) || istype(installation, /obj/item/weapon/gun/energy/lasertag/red)) target_type = /obj/machinery/porta_turret/tag else target_type = /obj/machinery/porta_turret diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm index cdb3645c62d..d7e64c1ece9 100644 --- a/code/game/mecha/combat/marauder.dm +++ b/code/game/mecha/combat/marauder.dm @@ -151,6 +151,7 @@ smoke_ready = 1 return +//TODO replace this with zoom code that doesn't increase peripherial vision /obj/mecha/combat/marauder/verb/zoom() set category = "Exosuit Interface" set name = "Zoom" diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index 5b71a34ec63..8338e2caa7e 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -585,7 +585,7 @@ chassis.visible_message("The [chassis.name] armor deflects the projectile") chassis.log_append_to_last("Armor saved.") else - chassis.take_damage(round(Proj.damage*src.damage_coeff),Proj.flag) + chassis.take_damage(round(Proj.damage*src.damage_coeff),Proj.check_armour) chassis.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) Proj.on_hit(chassis) set_ready_state(0) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 47905507000..f57e2e046d2 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -487,7 +487,7 @@ /obj/mecha/bullet_act(var/obj/item/projectile/Proj) //wrapper - src.log_message("Hit by projectile. Type: [Proj.name]([Proj.flag]).",1) + src.log_message("Hit by projectile. Type: [Proj.name]([Proj.check_armour]).",1) call((proc_res["dynbulletdamage"]||src), "dynbulletdamage")(Proj) //calls equipment ..() return @@ -506,10 +506,10 @@ var/ignore_threshold if(istype(Proj, /obj/item/projectile/beam/pulse)) ignore_threshold = 1 - src.take_damage(Proj.damage, Proj.flag) + src.take_damage(Proj.damage, Proj.check_armour) if(prob(25)) spark_system.start() src.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT),ignore_threshold) - + //AP projectiles have a chance to cause additional damage if(Proj.penetrating) var/distance = get_dist(Proj.starting, get_turf(loc)) @@ -520,9 +520,9 @@ hit_occupant = 0 else src.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT), 1) - + Proj.penetrating-- - + if(prob(15)) break //give a chance to exit early diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 1e3cb7547ab..63447c5168a 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -141,7 +141,6 @@ if(isliving(src.loc)) return user.next_move = max(user.next_move+2,world.time + 2) - add_fingerprint(user) user.put_in_active_hand(src) if(src.loc == user) src.pickup(user) @@ -638,8 +637,8 @@ For zooming with scope or binoculars. This is called from modules/mob/mob_movement.dm if you move you will be zoomed out modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. */ - -/obj/item/proc/zoom(var/tileoffset = 11,var/viewsize = 12) //tileoffset is client view offset in the direction the user is facing. viewsize is how far out this thing zooms. 7 is normal view +//Looking through a scope or binoculars should /not/ improve your periphereal vision. Still, increase viewsize a tiny bit so that sniping isn't as restricted to NSEW +/obj/item/proc/zoom(var/tileoffset = 14,var/viewsize = 9) //tileoffset is client view offset in the direction the user is facing. viewsize is how far out this thing zooms. 7 is normal view var/devicename @@ -686,14 +685,6 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. usr.visible_message("[usr] peers through the [zoomdevicename ? "[zoomdevicename] of the [src.name]" : "[src.name]"].") - /* - if(istype(usr,/mob/living/carbon/human/)) - var/mob/living/carbon/human/H = usr - usr.visible_message("[usr] holds [devicename] up to [H.get_visible_gender() == MALE ? "his" : H.get_visible_gender() == FEMALE ? "her" : "their"] eyes.") - else - usr.visible_message("[usr] holds [devicename] up to its eyes.") - */ - else usr.client.view = world.view if(!usr.hud_used.hud_shown) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index f9d3e356ce6..9bc40c779d8 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -121,7 +121,7 @@ usr << "There's no mounting point for the module!" return 0 - var/obj/item/weapon/gun/energy/taser/cyborg/T = locate() in R.module + var/obj/item/weapon/gun/energy/taser/mounted/cyborg/T = locate() in R.module if(!T) T = locate() in R.module.contents if(!T) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 5ee4532e77a..1ccca84b77b 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -140,7 +140,7 @@ icon_state = "revolver" item_state = "gun" flags = CONDUCT - slot_flags = SLOT_BELT + slot_flags = SLOT_BELT|SLOT_HOLSTER w_class = 3.0 matter = list("glass" = 10,"metal" = 10) diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index a332f6fa924..bda28f83b1b 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -21,6 +21,7 @@ B.health -= damage B.update_icon() + new/obj/effect/effect/sparks(src.loc) new/obj/effect/effect/smoke/illumination(src.loc, brightness=15) del(src) return diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index f64473ba549..f026313034a 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -75,10 +75,10 @@ /obj/item/weapon/book/manual/supermatter_engine - name = "Supermatter Engine User's Guide" + name = "Supermatter Engine Operating Manual" icon_state = "bookSupermatter" - author = "Waleed Asad" - title = "Supermatter Engine User's Guide" + author = "Nanotrasen Central Engineering Division" + title = "Supermatter Engine Operating Manual" /obj/item/weapon/book/manual/supermatter_engine/New() ..() @@ -94,95 +94,56 @@
+