From 735202d40902a662d6cb4aaedccb95984a16a428 Mon Sep 17 00:00:00 2001 From: ccomp5950 Date: Thu, 14 May 2015 21:07:36 -0400 Subject: [PATCH 01/12] Admin log fix: Something that really annoys ravensdale. [X] has shot [y] with a the bullet http://i.imgur.com/F54KjJ3.png --- code/modules/projectiles/projectile.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index f477deb25a..c87a5948f7 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -168,15 +168,15 @@ //admin logs if(!no_attack_log) if(istype(firer, /mob)) - target_mob.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [target_mob]/[target_mob.ckey] with a [src.type]" - firer.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [target_mob]/[target_mob.ckey] with a [src.type]" - msg_admin_attack("[firer] ([firer.ckey]) shot [target_mob] ([target_mob.ckey]) with a [src] (JMP)") //BS12 EDIT ALG + target_mob.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [target_mob]/[target_mob.ckey] with \a [src.type]" + firer.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [target_mob]/[target_mob.ckey] with \a [src.type]" + msg_admin_attack("[firer] ([firer.ckey]) shot [target_mob] ([target_mob.ckey]) with \a [src] (JMP)") //BS12 EDIT ALG else if(firer) - target_mob.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [target_mob]/[target_mob.ckey] with a [src]" + target_mob.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [target_mob]/[target_mob.ckey] with \a [src]" msg_admin_attack("UNKNOWN shot [target_mob] ([target_mob.ckey]) with a [src] (JMP)") //BS12 EDIT ALG else - target_mob.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [target_mob]/[target_mob.ckey] with a [src]" - msg_admin_attack("UNKNOWN shot [target_mob] ([target_mob.ckey]) with a [src] (JMP)") //BS12 EDIT ALG + target_mob.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [target_mob]/[target_mob.ckey] with \a [src]" + msg_admin_attack("UNKNOWN shot [target_mob] ([target_mob.ckey]) with \a [src] (JMP)") //BS12 EDIT ALG //sometimes bullet_act() will want the projectile to continue flying if (target_mob.bullet_act(src, def_zone) == -1) From ec376529979eec0c4bbd3d5071f45721302d7175 Mon Sep 17 00:00:00 2001 From: Techhead0 Date: Fri, 15 May 2015 13:34:46 -0400 Subject: [PATCH 02/12] Fixes #7999 --- code/modules/mob/living/carbon/brain/MMI.dm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index c4107f8119..f20807ab60 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -35,6 +35,7 @@ var/locked = 0 var/mob/living/carbon/brain/brainmob = null//The current occupant. + var/obj/item/organ/brain/brainobj = null //The current brain organ. var/mob/living/silicon/robot = null//Appears unused. var/obj/mecha = null//This does not appear to be used outside of reference in mecha.dm. @@ -61,7 +62,8 @@ living_mob_list += brainmob user.drop_item() - del(O) + brainobj = O + brainobj.loc = src name = "Man-Machine Interface: [brainmob.real_name]" icon_state = "mmi_full" @@ -92,7 +94,13 @@ user << "\red You upend the MMI, but the brain is clamped into place." else user << "\blue You upend the MMI, spilling the brain onto the floor." - var/obj/item/organ/brain/brain = new(user.loc) + var/obj/item/organ/brain/brain + if (brainobj) //Pull brain organ out of MMI. + brainobj.loc = user.loc + brain = brainobj + brainobj = null + else //Or make a new one if empty. + brain = new(user.loc) brainmob.container = null//Reset brainmob mmi var. brainmob.loc = brain//Throw mob into brain. living_mob_list -= brainmob//Get outta here From 19cc6df3916bb734bcd38095ad1582c4d90c3a95 Mon Sep 17 00:00:00 2001 From: ccomp5950 Date: Fri, 15 May 2015 17:07:07 -0400 Subject: [PATCH 03/12] Conversion to admin_attack_log() --- code/modules/projectiles/projectile.dm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index c87a5948f7..df27b19e86 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -168,15 +168,15 @@ //admin logs if(!no_attack_log) if(istype(firer, /mob)) - target_mob.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [target_mob]/[target_mob.ckey] with \a [src.type]" - firer.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [target_mob]/[target_mob.ckey] with \a [src.type]" - msg_admin_attack("[firer] ([firer.ckey]) shot [target_mob] ([target_mob.ckey]) with \a [src] (JMP)") //BS12 EDIT ALG - else if(firer) - target_mob.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [target_mob]/[target_mob.ckey] with \a [src]" - msg_admin_attack("UNKNOWN shot [target_mob] ([target_mob.ckey]) with a [src] (JMP)") //BS12 EDIT ALG + + var/attacker_message = "shot with \a [src.type]" + var/victim_message = "shot with \a [src.type]" + var/admin_message = "shot (\a [src.type])" + + admin_attack_log(firer, target_mob, attacker_message, victim_message, admin_message) else target_mob.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [target_mob]/[target_mob.ckey] with \a [src]" - msg_admin_attack("UNKNOWN shot [target_mob] ([target_mob.ckey]) with \a [src] (JMP)") //BS12 EDIT ALG + msg_admin_attack("UNKNOWN shot [target_mob] ([target_mob.ckey]) with \a [src] (JMP)") //sometimes bullet_act() will want the projectile to continue flying if (target_mob.bullet_act(src, def_zone) == -1) From 35e44ab8d9fadaa0391cd3ac7bd98f45d9e57659 Mon Sep 17 00:00:00 2001 From: Techhead0 Date: Fri, 15 May 2015 21:06:16 -0400 Subject: [PATCH 04/12] Invisible people can now be heard by visible_message Uses blind_message instead of letting the Ninja/whatever do things unseen. --- code/modules/mob/mob.dm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index f5172cfe96..637bc64303 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -47,12 +47,13 @@ /mob/visible_message(var/message, var/self_message, var/blind_message) for(var/mob/M in viewers(src)) - if(M.see_invisible < invisibility) - continue // Cannot view the invisible - var/msg = message if(self_message && M==src) - msg = self_message - M.show_message( msg, 1, blind_message, 2) + M.show_message(self_message, 1, blind_message, 2) + else if(M.see_invisible < invisibility) // Cannot view the invisible, but you can hear it. + if(blind_message) + M.show_message(blind_message, 2) + else + M.show_message(message, 1, blind_message, 2) // Show a message to all mobs in sight of this atom // Use for objects performing visible actions From 29609f7ec65465d2d87a9ce4289393e15772f02d Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 28 Apr 2015 13:17:43 -0400 Subject: [PATCH 05/12] Fixes #8985, ammo magazine examine grammar. --- code/modules/projectiles/ammunition.dm | 2 +- .../projectiles/guns/launcher/pneumatic.dm | 56 +++++++++---------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index d31ba64814..69262fe900 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -135,7 +135,7 @@ /obj/item/ammo_magazine/examine(mob/user) ..() - user << "There [(stored_ammo.len > 1)? "are" : "is"] [stored_ammo.len] round\s left!" + user << "There [(stored_ammo.len == 1)? "is" : "are"] [stored_ammo.len] round\s left!" //magazine icon state caching /var/global/list/magazine_icondata_keys = list() diff --git a/code/modules/projectiles/guns/launcher/pneumatic.dm b/code/modules/projectiles/guns/launcher/pneumatic.dm index 138c823f87..73cae076c9 100644 --- a/code/modules/projectiles/guns/launcher/pneumatic.dm +++ b/code/modules/projectiles/guns/launcher/pneumatic.dm @@ -14,17 +14,20 @@ var/max_w_class = 3 // Hopper intake size. var/max_combined_w_class = 20 // Total internal storage size. var/obj/item/weapon/tank/tank = null // Tank of gas for use in firing the cannon. - var/obj/item/weapon/storage/tank_container // Something to hold the tank item so we don't accidentally fire it. + + var/obj/item/weapon/storage/item_storage var/pressure_setting = 10 // Percentage of the gas in the tank used to fire the projectile. var/possible_pressure_amounts = list(5,10,20,25,50) // Possible pressure settings. - var/minimum_tank_pressure = 10 // Minimum pressure to fire the gun. var/force_divisor = 400 // Force equates to speed. Speed/5 equates to a damage multiplier for whoever you hit. // For reference, a fully pressurized oxy tank at 50% gas release firing a health // analyzer with a force_divisor of 10 hit with a damage multiplier of 3000+. /obj/item/weapon/gun/launcher/pneumatic/New() ..() - tank_container = new(src) - tank_container.tag = "gas_tank_holder" + item_storage = new(src) + item_storage.name = "hopper" + item_storage.max_w_class = max_w_class + item_storage.max_combined_w_class = max_combined_w_class + item_storage.use_sound = null /obj/item/weapon/gun/launcher/pneumatic/verb/set_pressure() //set amount of tank pressure. set name = "Set Valve Pressure" @@ -54,31 +57,19 @@ /obj/item/weapon/gun/launcher/pneumatic/attackby(obj/item/W as obj, mob/user as mob) if(!tank && istype(W,/obj/item/weapon/tank)) - user.drop_item() + user.drop_from_inventory(W, src) tank = W - tank.loc = src.tank_container user.visible_message("[user] jams [W] into [src]'s valve and twists it closed.","You jam [W] into [src]'s valve and twist it closed.") icon_state = "pneumatic-tank" item_state = "pneumatic-tank" user.update_icons() - else if(istype(W) && W.w_class <= max_w_class) - var/total_stored = 0 - for(var/obj/item/O in src.contents) - total_stored += O.w_class - if(total_stored + W.w_class <= max_combined_w_class) - user.drop_item(W) - W.loc = src - user << "You shove [W] into the hopper." - else - user << "That won't fit into the hopper - it's full." - return - else - user << "That won't fit into the hopper." + else if(istype(W) && item_storage.can_be_inserted(W)) + item_storage.handle_item_insertion(W) /obj/item/weapon/gun/launcher/pneumatic/attack_self(mob/user as mob) - if(contents.len > 0) - var/obj/item/removing = contents[contents.len] - removing.loc = get_turf(src) + if(item_storage.contents.len > 0) + var/obj/item/removing = item_storage.contents[item_storage.contents.len] + item_storage.remove_from_storage(removing, src.loc) user.put_in_hands(removing) user << "You remove [removing] from the hopper." else @@ -86,18 +77,27 @@ return /obj/item/weapon/gun/launcher/pneumatic/consume_next_projectile(mob/user=null) - if(!contents.len) + if(!item_storage.contents.len) return null if (!tank) user << "There is no gas tank in [src]!" return null - var/fire_pressure = (tank.air_contents.return_pressure()/100)*pressure_setting - if(fire_pressure < minimum_tank_pressure) + var/environment_pressure = 10 + var/turf/T = get_turf(src) + if(T) + var/datum/gas_mixture/environment = T.return_air() + if(environment) + environment_pressure = environment.return_pressure() + + var/fire_pressure = (tank.air_contents.return_pressure() - environment_pressure)*pressure_setting/100 + if(fire_pressure < 10) user << "There isn't enough gas in the tank to fire [src]." return null - return contents[1] + var/obj/item/launched = item_storage.contents[1] + item_storage.remove_from_storage(launched, src) + return launched /obj/item/weapon/gun/launcher/pneumatic/examine(mob/user) if(!..(user, 2)) @@ -149,7 +149,7 @@ /obj/item/weapon/cannonframe/attackby(obj/item/W as obj, mob/user as mob) if(istype(W,/obj/item/pipe)) if(buildstate == 0) - user.drop_item() + user.remove_from_mob(W) del(W) user << "\blue You secure the piping inside the frame." buildstate++ @@ -167,7 +167,7 @@ return else if(istype(W,/obj/item/device/transfer_valve)) if(buildstate == 4) - user.drop_item() + user.remove_from_mob(W) del(W) user << "\blue You install the transfer valve and connect it to the piping." buildstate++ From 65819302f31012ad5d36eaa70ce2af99de863aa1 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Fri, 15 May 2015 22:52:10 -0400 Subject: [PATCH 06/12] Fixes #8986, one less object verb --- .../projectiles/guns/launcher/pneumatic.dm | 53 +++++++++++-------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/code/modules/projectiles/guns/launcher/pneumatic.dm b/code/modules/projectiles/guns/launcher/pneumatic.dm index 73cae076c9..5cbf120c50 100644 --- a/code/modules/projectiles/guns/launcher/pneumatic.dm +++ b/code/modules/projectiles/guns/launcher/pneumatic.dm @@ -38,22 +38,36 @@ pressure_setting = N usr << "You dial the pressure valve to [pressure_setting]%." -/obj/item/weapon/gun/launcher/pneumatic/verb/eject_tank() //Remove the tank. - set name = "Eject Tank" - set category = "Object" - set src in range(0) +/obj/item/weapon/gun/launcher/pneumatic/proc/eject_tank(mob/user) //Remove the tank. + if(!tank) + user << "There's no tank in [src]." + return + + user << "You twist the valve and pop the tank out of [src]." + user.put_in_hands(tank) + tank = null + + icon_state = "pneumatic" + item_state = "pneumatic" + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_r_hand() + M.update_inv_l_hand() - if(tank) - usr << "You twist the valve and pop the tank out of [src]." - tank.loc = usr.loc - tank = null - icon_state = "pneumatic" - item_state = "pneumatic" - if (ismob(src.loc)) - var/mob/M = src.loc - M.update_icons() +/obj/item/weapon/gun/launcher/pneumatic/proc/unload_hopper(mob/user) + if(item_storage.contents.len > 0) + var/obj/item/removing = item_storage.contents[item_storage.contents.len] + item_storage.remove_from_storage(removing, src.loc) + user.put_in_hands(removing) + user << "You remove [removing] from the hopper." else - usr << "There's no tank in [src]." + user << "There is nothing to remove in \the [src]." + +/obj/item/weapon/gun/launcher/pneumatic/attack_hand(mob/user as mob) + if(user.get_inactive_hand() == src) + unload_hopper(user) + else + return ..() /obj/item/weapon/gun/launcher/pneumatic/attackby(obj/item/W as obj, mob/user as mob) if(!tank && istype(W,/obj/item/weapon/tank)) @@ -67,14 +81,7 @@ item_storage.handle_item_insertion(W) /obj/item/weapon/gun/launcher/pneumatic/attack_self(mob/user as mob) - if(item_storage.contents.len > 0) - var/obj/item/removing = item_storage.contents[item_storage.contents.len] - item_storage.remove_from_storage(removing, src.loc) - user.put_in_hands(removing) - user << "You remove [removing] from the hopper." - else - user << "There is nothing to remove in \the [src]." - return + eject_tank(user) /obj/item/weapon/gun/launcher/pneumatic/consume_next_projectile(mob/user=null) if(!item_storage.contents.len) @@ -90,7 +97,7 @@ if(environment) environment_pressure = environment.return_pressure() - var/fire_pressure = (tank.air_contents.return_pressure() - environment_pressure)*pressure_setting/100 + fire_pressure = (tank.air_contents.return_pressure() - environment_pressure)*pressure_setting/100 if(fire_pressure < 10) user << "There isn't enough gas in the tank to fire [src]." return null From 3e41d6ff6ee7fa237cd36ab77de4cff369978c31 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Fri, 15 May 2015 22:54:51 -0400 Subject: [PATCH 07/12] Fixes crossbow icon issue Fixes an issue with the crossbow icon that occurred when releasing the tension soon after starting to draw it back. --- .../projectiles/guns/launcher/crossbow.dm | 29 +++++++++++++------ .../projectiles/guns/launcher/pneumatic.dm | 25 +++++++++------- 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/code/modules/projectiles/guns/launcher/crossbow.dm b/code/modules/projectiles/guns/launcher/crossbow.dm index 860169d7b2..b6d7aea8a4 100644 --- a/code/modules/projectiles/guns/launcher/crossbow.dm +++ b/code/modules/projectiles/guns/launcher/crossbow.dm @@ -74,8 +74,8 @@ /obj/item/weapon/gun/launcher/crossbow/handle_post_fire(mob/user, atom/target) bolt = null - icon_state = "crossbow" tension = 0 + update_icon() ..() /obj/item/weapon/gun/launcher/crossbow/attack_self(mob/living/user as mob) @@ -89,7 +89,7 @@ else user.visible_message("[user] relaxes the tension on [src]'s string.","You relax the tension on [src]'s string.") tension = 0 - icon_state = "crossbow" + update_icon() else draw(user) @@ -106,15 +106,19 @@ user.visible_message("[user] begins to draw back the string of [src].","You begin to draw back the string of [src].") tension = 1 - while(bolt && tension && current_user == user) + while(bolt && tension && loc == current_user) if(!do_after(user, 25)) //crossbow strings don't just magically pull back on their own. user.visible_message("[usr] stops drawing and relaxes the string of [src].","You stop drawing back and relax the string of [src].") tension = 0 - icon_state = "crossbow" + update_icon() + return + + //double check that the user hasn't removed the bolt in the meantime + if(!(bolt && tension && loc == current_user)) return tension++ - icon_state = "crossbow-drawn" + update_icon() if(tension >= max_tension) tension = max_tension @@ -132,11 +136,10 @@ /obj/item/weapon/gun/launcher/crossbow/attackby(obj/item/W as obj, mob/user as mob) if(!bolt) if (istype(W,/obj/item/weapon/arrow)) - user.drop_item() + user.drop_from_inventory(W, src) bolt = W - bolt.loc = src user.visible_message("[user] slides [bolt] into [src].","You slide [bolt] into [src].") - icon_state = "crossbow-nocked" + update_icon() return else if(istype(W,/obj/item/stack/rods)) var/obj/item/stack/rods/R = W @@ -144,7 +147,7 @@ bolt = new /obj/item/weapon/arrow/rod(src) bolt.fingerprintslast = src.fingerprintslast bolt.loc = src - icon_state = "crossbow-nocked" + update_icon() user.visible_message("[user] jams [bolt] into [src].","You jam [bolt] into [src].") superheat_rod(user) return @@ -182,6 +185,14 @@ bolt.icon_state = "metal-rod-superheated" cell.use(500) +/obj/item/weapon/gun/launcher/crossbow/update_icon() + if(tension > 1) + icon_state = "crossbow-drawn" + else if(bolt) + icon_state = "crossbow-nocked" + else + icon_state = "crossbow" + // Crossbow construction. /obj/item/weapon/crossbowframe diff --git a/code/modules/projectiles/guns/launcher/pneumatic.dm b/code/modules/projectiles/guns/launcher/pneumatic.dm index 5cbf120c50..e9b37c8db2 100644 --- a/code/modules/projectiles/guns/launcher/pneumatic.dm +++ b/code/modules/projectiles/guns/launcher/pneumatic.dm @@ -46,13 +46,7 @@ user << "You twist the valve and pop the tank out of [src]." user.put_in_hands(tank) tank = null - - icon_state = "pneumatic" - item_state = "pneumatic" - if (ismob(src.loc)) - var/mob/M = src.loc - M.update_inv_r_hand() - M.update_inv_l_hand() + update_icon() /obj/item/weapon/gun/launcher/pneumatic/proc/unload_hopper(mob/user) if(item_storage.contents.len > 0) @@ -74,9 +68,7 @@ user.drop_from_inventory(W, src) tank = W user.visible_message("[user] jams [W] into [src]'s valve and twists it closed.","You jam [W] into [src]'s valve and twist it closed.") - icon_state = "pneumatic-tank" - item_state = "pneumatic-tank" - user.update_icons() + update_icon() else if(istype(W) && item_storage.can_be_inserted(W)) item_storage.handle_item_insertion(W) @@ -131,6 +123,19 @@ if(T) T.assume_air(removed) ..() +/obj/item/weapon/gun/launcher/pneumatic/update_icon() + if(tank) + icon_state = "pneumatic-tank" + item_state = "pneumatic-tank" + else + icon_state = "pneumatic" + item_state = "pneumatic" + + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_r_hand() + M.update_inv_l_hand() + //Constructable pneumatic cannon. /obj/item/weapon/cannonframe From 5d620ff05b1b32d48a1221362e145173b178b4bf Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 16 May 2015 00:21:40 -0400 Subject: [PATCH 08/12] Span classes --- .../projectiles/guns/launcher/crossbow.dm | 22 +++++++++---------- .../projectiles/guns/launcher/pneumatic.dm | 14 ++++++------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/code/modules/projectiles/guns/launcher/crossbow.dm b/code/modules/projectiles/guns/launcher/crossbow.dm index b6d7aea8a4..4fb9d1b966 100644 --- a/code/modules/projectiles/guns/launcher/crossbow.dm +++ b/code/modules/projectiles/guns/launcher/crossbow.dm @@ -68,7 +68,7 @@ /obj/item/weapon/gun/launcher/crossbow/consume_next_projectile(mob/user=null) if(tension <= 0) - user << "\red \The [src] is not drawn back!" + user << "\The [src] is not drawn back!" return null return bolt @@ -220,11 +220,11 @@ if(buildstate == 0) var/obj/item/stack/rods/R = W if(R.use(3)) - user << "\blue You assemble a backbone of rods around the wooden stock." + user << "You assemble a backbone of rods around the wooden stock." buildstate++ update_icon() else - user << "\blue You need at least three rods to complete this task." + user << "You need at least three rods to complete this task." return else if(istype(W,/obj/item/weapon/weldingtool)) if(buildstate == 1) @@ -232,7 +232,7 @@ if(T.remove_fuel(0,user)) if(!src || !T.isOn()) return playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) - user << "\blue You weld the rods into place." + user << "You weld the rods into place." buildstate++ update_icon() return @@ -240,33 +240,33 @@ var/obj/item/stack/cable_coil/C = W if(buildstate == 2) if(C.use(5)) - user << "\blue You wire a crude cell mount into the top of the crossbow." + user << "You wire a crude cell mount into the top of the crossbow." buildstate++ update_icon() else - user << "\blue You need at least five segments of cable coil to complete this task." + user << "You need at least five segments of cable coil to complete this task." return else if(buildstate == 4) if(C.use(5)) - user << "\blue You string a steel cable across the crossbow's lath." + user << "You string a steel cable across the crossbow's lath." buildstate++ update_icon() else - user << "\blue You need at least five segments of cable coil to complete this task." + user << "You need at least five segments of cable coil to complete this task." return else if(istype(W,/obj/item/stack/sheet/mineral/plastic)) if(buildstate == 3) var/obj/item/stack/sheet/mineral/plastic/P = W if(P.use(3)) - user << "\blue You assemble and install a heavy plastic lath onto the crossbow." + user << "You assemble and install a heavy plastic lath onto the crossbow." buildstate++ update_icon() else - user << "\blue You need at least three plastic sheets to complete this task." + user << "You need at least three plastic sheets to complete this task." return else if(istype(W,/obj/item/weapon/screwdriver)) if(buildstate == 5) - user << "\blue You secure the crossbow's various parts." + user << "You secure the crossbow's various parts." new /obj/item/weapon/gun/launcher/crossbow(get_turf(src)) del(src) return diff --git a/code/modules/projectiles/guns/launcher/pneumatic.dm b/code/modules/projectiles/guns/launcher/pneumatic.dm index e9b37c8db2..d4ed3db4c2 100644 --- a/code/modules/projectiles/guns/launcher/pneumatic.dm +++ b/code/modules/projectiles/guns/launcher/pneumatic.dm @@ -163,7 +163,7 @@ if(buildstate == 0) user.remove_from_mob(W) del(W) - user << "\blue You secure the piping inside the frame." + user << "You secure the piping inside the frame." buildstate++ update_icon() return @@ -171,17 +171,17 @@ if(buildstate == 2) var/obj/item/stack/sheet/metal/M = W if(M.use(5)) - user << "\blue You assemble a chassis around the cannon frame." + user << "You assemble a chassis around the cannon frame." buildstate++ update_icon() else - user << "\blue You need at least five metal sheets to complete this task." + user << "You need at least five metal sheets to complete this task." return else if(istype(W,/obj/item/device/transfer_valve)) if(buildstate == 4) user.remove_from_mob(W) del(W) - user << "\blue You install the transfer valve and connect it to the piping." + user << "You install the transfer valve and connect it to the piping." buildstate++ update_icon() return @@ -191,7 +191,7 @@ if(T.remove_fuel(0,user)) if(!src || !T.isOn()) return playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) - user << "\blue You weld the pipe into place." + user << "You weld the pipe into place." buildstate++ update_icon() if(buildstate == 3) @@ -199,7 +199,7 @@ if(T.remove_fuel(0,user)) if(!src || !T.isOn()) return playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) - user << "\blue You weld the metal chassis together." + user << "You weld the metal chassis together." buildstate++ update_icon() if(buildstate == 5) @@ -207,7 +207,7 @@ if(T.remove_fuel(0,user)) if(!src || !T.isOn()) return playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) - user << "\blue You weld the valve into place." + user << "You weld the valve into place." new /obj/item/weapon/gun/launcher/pneumatic(get_turf(src)) del(src) return From d71a72713105413d20eba8c970ec5d8c29a14004 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 16 May 2015 00:32:44 -0400 Subject: [PATCH 09/12] remove_from_mob() considered harmful --- code/modules/projectiles/guns/launcher/pneumatic.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/projectiles/guns/launcher/pneumatic.dm b/code/modules/projectiles/guns/launcher/pneumatic.dm index d4ed3db4c2..a4f19adab4 100644 --- a/code/modules/projectiles/guns/launcher/pneumatic.dm +++ b/code/modules/projectiles/guns/launcher/pneumatic.dm @@ -161,7 +161,7 @@ /obj/item/weapon/cannonframe/attackby(obj/item/W as obj, mob/user as mob) if(istype(W,/obj/item/pipe)) if(buildstate == 0) - user.remove_from_mob(W) + user.drop_from_inventory(W) del(W) user << "You secure the piping inside the frame." buildstate++ @@ -179,7 +179,7 @@ return else if(istype(W,/obj/item/device/transfer_valve)) if(buildstate == 4) - user.remove_from_mob(W) + user.drop_from_inventory(W) del(W) user << "You install the transfer valve and connect it to the piping." buildstate++ From 137c77c19dc802f912b4a9c8d124bc1c5b357159 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Sat, 16 May 2015 10:48:59 +0100 Subject: [PATCH 10/12] Typo fix --- code/modules/hydroponics/trays/tray_tools.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/hydroponics/trays/tray_tools.dm b/code/modules/hydroponics/trays/tray_tools.dm index da6c996ac9..500ab1c1ff 100644 --- a/code/modules/hydroponics/trays/tray_tools.dm +++ b/code/modules/hydroponics/trays/tray_tools.dm @@ -169,7 +169,7 @@ switch(grown_seed.get_trait(TRAIT_CARNIVOROUS)) if(1) - dat += "
It is carniovorous and will eat tray pests for sustenance." + dat += "
It is carnivorous and will eat tray pests for sustenance." if(2) dat += "
It is carnivorous and poses a significant threat to living things around it." From b636b3d9d299121c5a40760027e62d9875ba64ff Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sat, 16 May 2015 22:38:28 +0200 Subject: [PATCH 11/12] Changelog update. --- html/changelog.html | 10 ++++++++++ html/changelogs/.all_changelog.yml | 12 ++++++++++++ html/changelogs/GinjaNinja32_new_tables.yml | 5 ----- html/changelogs/HarpyEagle-tailanim.yml | 4 ---- 4 files changed, 22 insertions(+), 9 deletions(-) delete mode 100644 html/changelogs/GinjaNinja32_new_tables.yml delete mode 100644 html/changelogs/HarpyEagle-tailanim.yml diff --git a/html/changelog.html b/html/changelog.html index 227e839d13..83d87d57b3 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,16 @@ -->
+

16 May 2015

+

GinjaNinja32 updated:

+
    +
  • Rewrote tables. To construct a table, use steel to make a table frame, then plate the frame with a material such as steel, gold, wood, etc. Hold a stack in your hand and drag it to the table to reinforce it. To deconstruct a table, use a screwdriver to remove the reinforcements (if present), then a wrench to remove the plating, and a wrench again to dismantle the frame. Use a welder to repair any damage. Use a carpet tile on a table to add felt, and a crowbar to remove it.
  • +
+

HarpyEagle updated:

+
    +
  • Adds tail animations for tajaran and unathi. Animations are controlled using emotes.
  • +
+

14 May 2015

PsiOmegaDelta updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 549c473270..baf01f2753 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -1779,3 +1779,15 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. with the shotgun. - bugfix: Portable air pumps now fill based on external/airtank pressure when pumping in. +2015-05-16: + GinjaNinja32: + - rscadd: Rewrote tables. To construct a table, use steel to make a table frame, + then plate the frame with a material such as steel, gold, wood, etc. Hold a + stack in your hand and drag it to the table to reinforce it. To deconstruct + a table, use a screwdriver to remove the reinforcements (if present), then a + wrench to remove the plating, and a wrench again to dismantle the frame. Use + a welder to repair any damage. Use a carpet tile on a table to add felt, and + a crowbar to remove it. + HarpyEagle: + - rscadd: Adds tail animations for tajaran and unathi. Animations are controlled + using emotes. diff --git a/html/changelogs/GinjaNinja32_new_tables.yml b/html/changelogs/GinjaNinja32_new_tables.yml deleted file mode 100644 index 5668126e2e..0000000000 --- a/html/changelogs/GinjaNinja32_new_tables.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: GinjaNinja32 -delete-after: True - -changes: - - rscadd: "Rewrote tables. To construct a table, use steel to make a table frame, then plate the frame with a material such as steel, gold, wood, etc. Hold a stack in your hand and drag it to the table to reinforce it. To deconstruct a table, use a screwdriver to remove the reinforcements (if present), then a wrench to remove the plating, and a wrench again to dismantle the frame. Use a welder to repair any damage. Use a carpet tile on a table to add felt, and a crowbar to remove it." diff --git a/html/changelogs/HarpyEagle-tailanim.yml b/html/changelogs/HarpyEagle-tailanim.yml deleted file mode 100644 index b3fdf054a3..0000000000 --- a/html/changelogs/HarpyEagle-tailanim.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: HarpyEagle -delete-after: True -changes: - - rscadd: "Adds tail animations for tajaran and unathi. Animations are controlled using emotes." From 8b39f9201a90987d0f01e64cbdf1ef0ae881220e Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sat, 16 May 2015 22:41:13 +0200 Subject: [PATCH 12/12] Compilation fixes. --- code/modules/projectiles/guns/launcher/pneumatic.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/projectiles/guns/launcher/pneumatic.dm b/code/modules/projectiles/guns/launcher/pneumatic.dm index 780626567e..d26750a36e 100644 --- a/code/modules/projectiles/guns/launcher/pneumatic.dm +++ b/code/modules/projectiles/guns/launcher/pneumatic.dm @@ -14,7 +14,7 @@ var/max_w_class = 3 // Hopper intake size. var/max_storage_space = 20 // Total internal storage size. var/obj/item/weapon/tank/tank = null // Tank of gas for use in firing the cannon. - + var/obj/item/weapon/storage/item_storage var/pressure_setting = 10 // Percentage of the gas in the tank used to fire the projectile. var/possible_pressure_amounts = list(5,10,20,25,50) // Possible pressure settings. @@ -26,7 +26,7 @@ item_storage = new(src) item_storage.name = "hopper" item_storage.max_w_class = max_w_class - item_storage.max_combined_w_class = max_combined_w_class + item_storage.max_storage_space = max_storage_space item_storage.use_sound = null /obj/item/weapon/gun/launcher/pneumatic/verb/set_pressure() //set amount of tank pressure. @@ -42,7 +42,7 @@ if(!tank) user << "There's no tank in [src]." return - + user << "You twist the valve and pop the tank out of [src]." user.put_in_hands(tank) tank = null @@ -82,13 +82,13 @@ user << "There is no gas tank in [src]!" return null - var/environment_pressure = 10 + var/environment_pressure = 10 var/turf/T = get_turf(src) if(T) var/datum/gas_mixture/environment = T.return_air() if(environment) environment_pressure = environment.return_pressure() - + fire_pressure = (tank.air_contents.return_pressure() - environment_pressure)*pressure_setting/100 if(fire_pressure < 10) user << "There isn't enough gas in the tank to fire [src]." @@ -118,7 +118,7 @@ if(tank) var/lost_gas_amount = tank.air_contents.total_moles*(pressure_setting/100) var/datum/gas_mixture/removed = tank.air_contents.remove(lost_gas_amount) - + var/turf/T = get_turf(src.loc) if(T) T.assume_air(removed) ..()