diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index d9cc65c0176..e0c2a2a7342 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -738,6 +738,36 @@ prices = list(/obj/item/weapon/storage/fancy/cigarettes = 60,/obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/lighter/random = 60, /obj/item/weapon/rollingpaperpack = 20) refill_canister = /obj/item/weapon/vending_refill/cigarette +/obj/machinery/vending/syndicigs + name = "Suspicious Cigarette Machine" + desc = "Smoke 'em if you've got 'em." + product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!" + product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs." + vend_delay = 34 + icon_state = "cigs" + products = list(/obj/item/weapon/storage/fancy/cigarettes/syndicate = 10,/obj/item/weapon/lighter/random = 5) + +/obj/machinery/vending/syndisnack + name = "Getmore Chocolate Corp" + desc = "A modified snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars" + product_slogans = "Try our new nougat bar!;Twice the calories for half the price!" + product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!" + icon_state = "snack" + products = list(/obj/item/weapon/reagent_containers/food/snacks/chips =6,/obj/item/weapon/reagent_containers/food/snacks/sosjerky = 6, + /obj/item/weapon/reagent_containers/food/snacks/syndicake = 6, /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 6) + refill_canister = /obj/item/weapon/vending_refill/snack + +/obj/machinery/vending/cola + name = "Robust Softdrinks" + desc = "A modified softdrink vendor provided by Robust Industries, LLC." + icon_state = "Cola_Machine" + product_slogans = "Robust Softdrinks: More robust than a toolbox to the head!" + product_ads = "Refreshing!;Hope you're thirsty!;Over 1 million drinks sold!;Thirsty? Why not cola?;Please, have a drink!;Drink up!;The best drinks in space." + products = list(/obj/item/weapon/reagent_containers/food/drinks/cans/cola = 10,/obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind = 10, + /obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb = 10,/obj/item/weapon/reagent_containers/food/drinks/cans/starkist = 10, + /obj/item/weapon/reagent_containers/food/drinks/cans/space_up = 10) + refill_canister = /obj/item/weapon/vending_refill/cola + /obj/machinery/vending/medical name = "NanoMed Plus" desc = "Medical drug dispenser." @@ -752,7 +782,6 @@ /obj/item/stack/medical/advanced/bruise_pack = 3, /obj/item/stack/medical/advanced/ointment = 3, /obj/item/stack/medical/splint = 2) contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/stox = 4,/obj/item/weapon/reagent_containers/pill/antitox = 6) - //This one's from bay12 /obj/machinery/vending/plasmaresearch name = "Toximate 3000" @@ -783,6 +812,16 @@ /obj/item/stack/medical/ointment =3,/obj/item/device/healthanalyzer = 3) contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3) +/obj/machinery/vending/wallmed1/syndicate + name = "SyndiMed Plus" + desc = "EVIL wall-mounted Medical Equipment dispenser." + icon_state = "syndimed" + icon_deny = "syndimed-deny" + product_ads = "Go end some lives!;The best stuff for your ship.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!" + req_access_txt = "150" + products = list(/obj/item/stack/medical/bruise_pack = 2,/obj/item/stack/medical/ointment = 2,/obj/item/weapon/reagent_containers/hypospray/autoinjector = 4,/obj/item/device/healthanalyzer = 1) + contraband = list(/obj/item/weapon/reagent_containers/syringe/antitoxin = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1) + /obj/machinery/vending/security name = "SecTech" desc = "A security equipment vendor" diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index d5ce9a990fe..06723250fa2 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -36,6 +36,7 @@ var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up var/canremove = 1 //Mostly for Ninja code at this point but basically will not allow the item to be removed if set to 0. /N + var/reflect_chance = 0 //This var dictates what % of a time an object will reflect an energy based weapon's shot var/armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) var/list/allowed = null //suit storage stuff. var/obj/item/device/uplink/hidden/hidden_uplink = null // All items can have an uplink hidden inside, just remember to add the triggers. @@ -557,6 +558,10 @@ /obj/item/proc/IsShield() return 0 +/obj/item/proc/IsReflect(var/def_zone) //This proc determines if and at what% an object will reflect energy projectiles if it's in l_hand,r_hand or wear_suit + if(prob(reflect_chance)) + return 1 + /obj/item/proc/get_loc_turf() var/atom/L = loc while(L && !istype(L, /turf/)) diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index ac63824ee10..1443ebdc671 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -30,10 +30,13 @@ return (BRUTELOSS|FIRELOSS) /obj/item/weapon/melee/energy/sword + var/hacked = 0 + var/blade_color color name = "energy sword" desc = "May the force be within you." icon_state = "sword0" + icon_override = 'icons/mob/in-hand/swords.dmi' force = 3.0 throwforce = 5.0 throw_speed = 1 diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 8f4a66a96d0..e3ea4d5481f 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -203,6 +203,17 @@ item_state = "Dpacket" +/obj/item/weapon/storage/fancy/cigarettes/syndicate + name = "\improper Syndicate Cigarettes" + desc = "A packet of six evil-looking cigarettes, A label on the packaging reads, \"Donk Co\"" + icon_state = "robustpacket" + item_state = "robustpacket" + +/obj/item/weapon/storage/fancy/cigarettes/syndicate/New() + ..() + var/new_name = pick("evil", "suspicious", "ominous", "donk-flavored", "robust", "sneaky") + name = "[new_name] cigarette packet" + /* * Vial Box */ diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index 1a017d8a207..1453206a726 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -24,7 +24,7 @@ return 0 /obj/item/weapon/melee/energy/sword/New() - _color = pick("red","blue","green","purple") + blade_color = pick("red","blue","green","purple") /obj/item/weapon/melee/energy/sword/attack_self(mob/living/user as mob) if ((M_CLUMSY in user.mutations) && prob(50)) @@ -36,7 +36,7 @@ if(istype(src,/obj/item/weapon/melee/energy/sword/pirate)) icon_state = "cutlass1" else - icon_state = "sword[_color]" + icon_state = "sword[blade_color]" w_class = 4 playsound(user, 'sound/weapons/saberon.ogg', 50, 1) hitsound = 'sound/weapons/blade1.ogg' @@ -67,9 +67,29 @@ user.adjustBrainLoss(10) else user << "You attach the ends of the two energy swords, making a single double-bladed weapon! You're cool." - new /obj/item/weapon/twohanded/dualsaber(user.loc) + var/obj/item/weapon/twohanded/dualsaber/newSaber = new /obj/item/weapon/twohanded/dualsaber(user.loc) + if(src.hacked) // That's right, we'll only check the "original" esword. + newSaber.hacked = 1 + newSaber.blade_color = "rainbow" del(W) del(src) + + else if(istype(W, /obj/item/device/multitool)) + if(hacked == 0) + hacked = 1 + blade_color = "rainbow" + user << "RNBW_ENGAGE" + + if(active) + icon_state = "swordrainbow" + // Updating overlays, copied from welder code. + // I tried calling attack_self twice, which looked cool, except it somehow didn't update the overlays!! + if(user.r_hand == src) + user.update_inv_r_hand(0) + else if(user.l_hand == src) + user.update_inv_l_hand(0) + else + user << "It's already fabulous!" /* * Classic Baton */ @@ -282,6 +302,7 @@ active = !active if (active) force = 10 + reflect_chance = 80 icon_state = "eshield[active]" w_class = 4 playsound(user, 'sound/weapons/saberon.ogg', 50, 1) @@ -290,6 +311,7 @@ force = 3 icon_state = "eshield[active]" w_class = 1 + reflect_chance = 0 playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) user << "\blue [src] can now be concealed." if(istype(user,/mob/living/carbon/human)) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index b070240b7af..c407144acba 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -191,6 +191,9 @@ obj/item/weapon/twohanded/ * Double-Bladed Energy Swords - Cheridan */ /obj/item/weapon/twohanded/dualsaber + var/hacked = 0 + var/blade_color + icon_override = 'icons/mob/in-hand/swords.dmi' icon_state = "dualsaber0" name = "double-bladed energy sword" desc = "Handle with care." @@ -210,20 +213,16 @@ obj/item/weapon/twohanded/ edge = 1 no_embed = 1 // Like with the single-handed esword, this shouldn't be embedding in people. -/* Here for when we can add items to left and right hands again, but currently this cannot be done due to the lack of in-hand icons for dual eswords aside from the green one. /obj/item/weapon/twohanded/dualsaber/New() - item_color = pick("red", "blue", "green", "purple") + blade_color = pick("red", "blue", "green", "purple") /obj/item/weapon/twohanded/dualsaber/update_icon() if(wielded) - icon_state = "dualsaber[item_color][wielded]" + icon_state = "dualsaber[blade_color][wielded]" + reflect_chance = 80 else icon_state = "dualsaber0" -*/ - -/obj/item/weapon/twohanded/dualsaber/update_icon() - icon_state = "dualsaber[wielded]" - return + reflect_chance = 0 /obj/item/weapon/twohanded/dualsaber/attack(target as mob, mob/living/user as mob) ..() @@ -245,11 +244,19 @@ obj/item/weapon/twohanded/ /obj/item/weapon/twohanded/dualsaber/green New() - color = "green" + blade_color = "green" /obj/item/weapon/twohanded/dualsaber/red New() - color = "red" + blade_color = "red" + +/obj/item/weapon/twohanded/dualsaber/purple + New() + blade_color = "purple" + +/obj/item/weapon/twohanded/dualsaber/blue + New() + blade_color = "blue" /obj/item/weapon/twohanded/dualsaber/unwield() ..() @@ -259,6 +266,18 @@ obj/item/weapon/twohanded/ ..() hitsound = 'sound/weapons/blade1.ogg' +/obj/item/weapon/twohanded/dualsaber/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if(istype(W, /obj/item/device/multitool)) + if(hacked == 0) + hacked = 1 + user << "2XRNBW_ENGAGE" + blade_color = "rainbow" + update_icon() + else + user << "It's starting to look like a triple rainbow - no, nevermind." + + //spears /obj/item/weapon/twohanded/spear icon_state = "spearglass0" @@ -284,4 +303,199 @@ obj/item/weapon/twohanded/ /obj/item/weapon/twohanded/spear/kidan icon_state = "kidanspear0" name = "Kidan spear" - desc = "A spear brought over from the Kidan homeworld." \ No newline at end of file + desc = "A spear brought over from the Kidan homeworld." + + +// SINGULOHAMMER + +/obj/item/weapon/twohanded/singularityhammer + name = "singularity hammer" + desc = "The pinnacle of close combat technology, the hammer harnesses the power of a miniaturized singularity to deal crushing blows." + + icon_override = 'icons/mob/in-hand/swords.dmi' + icon_state = "mjollnir0" + flags = CONDUCT + slot_flags = SLOT_BACK + no_embed = 1 + force = 5 + force_unwielded = 5 + force_wielded = 20 + throwforce = 15 + throw_range = 1 + w_class = 5 + var/charged = 5 + origin_tech = "combat=5;bluespace=4" + + + +/obj/item/weapon/twohanded/singularityhammer/New() + ..() + processing_objects.Add(src) + + +/obj/item/weapon/twohanded/singularityhammer/Destroy() + processing_objects.Remove(src) + ..() + + +/obj/item/weapon/twohanded/singularityhammer/process() + if(charged < 5) + charged++ + return + +/obj/item/weapon/twohanded/singularityhammer/update_icon() //Currently only here to fuck with the on-mob icons. + icon_state = "mjollnir[wielded]" + return + + +/obj/item/weapon/twohanded/singularityhammer/proc/vortex(var/turf/pull as turf, mob/wielder as mob) + for(var/atom/X in orange(5,pull)) + if(istype(X, /atom/movable)) + if(X == wielder) continue + if((X) &&(!X:anchored) && (!istype(X,/mob/living/carbon/human))) + step_towards(X,pull) + step_towards(X,pull) + step_towards(X,pull) + else if(istype(X,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = X + if(istype(H.shoes,/obj/item/clothing/shoes/magboots)) + var/obj/item/clothing/shoes/magboots/M = H.shoes + if(M.magpulse) + continue + H.apply_effect(1, WEAKEN, 0) + step_towards(H,pull) + step_towards(H,pull) + step_towards(H,pull) + return + + + +/obj/item/weapon/twohanded/singularityhammer/afterattack(atom/A as mob|obj|turf|area, mob/user as mob, proximity) + if(!proximity) return + if(wielded) + if(charged == 5) + charged = 0 + if(istype(A, /mob/living/)) + var/mob/living/Z = A + Z.take_organ_damage(20,0) + playsound(user, 'sound/weapons/marauder.ogg', 50, 1) + var/turf/target = get_turf(A) + vortex(target,user) + + +/obj/item/weapon/twohanded/mjollnir + name = "Mjollnir" + desc = "A weapon worthy of a god, able to strike with the force of a lightning bolt. It crackles with barely contained energy." + icon_override = 'icons/mob/in-hand/swords.dmi' + icon_state = "mjollnir0" + flags = CONDUCT + slot_flags = SLOT_BACK + no_embed = 1 + force = 5 + force_unwielded = 5 + force_wielded = 20 + throwforce = 30 + throw_range = 7 + w_class = 5 + //var/charged = 5 + origin_tech = "combat=5;powerstorage=5" + +/obj/item/weapon/twohanded/mjollnir/proc/shock(mob/living/target as mob) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread() + s.set_up(5, 1, target.loc) + s.start() + target.take_organ_damage(0,30) + target.visible_message("[target.name] was shocked by the [src.name]!", \ + "You feel a powerful shock course through your body sending you flying!", \ + "You hear a heavy electrical crack.") + var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src))) + target.throw_at(throw_target, 200, 4) + return + + +/obj/item/weapon/twohanded/mjollnir/attack(mob/M as mob, mob/user as mob) + ..() + spawn(0) + if(wielded) + //if(charged == 5) + //charged = 0 + playsound(src.loc, "sparks", 50, 1) + if(istype(M, /mob/living)) + M.Stun(10) + shock(M) + + +/obj/item/weapon/twohanded/mjollnir/update_icon() //Currently only here to fuck with the on-mob icons. + icon_state = "mjollnir[wielded]" + return + + + +/obj/item/weapon/twohanded/knighthammer + name = "singuloth knight's hammer" + desc = "A hammer made of sturdy metal with a golden skull adorned with wings on either side of the head.
This weapon causes devastating damage to those it hits due to a power field sustained by a mini-singularity inside of the hammer." + + icon_override = 'icons/mob/in-hand/swords.dmi' + icon_state = "adrhammer0" + flags = CONDUCT + slot_flags = SLOT_BACK + no_embed = 1 + force = 5 + force_unwielded = 5 + force_wielded = 20 + throwforce = 15 + throw_range = 1 + w_class = 5 + var/charged = 5 + origin_tech = "combat=5;bluespace=4" + + + +/obj/item/weapon/twohanded/knighthammer/New() + ..() + processing_objects.Add(src) + + +/obj/item/weapon/twohanded/knighthammer/Destroy() + processing_objects.Remove(src) + ..() + + +/obj/item/weapon/twohanded/knighthammer/process() + if(charged < 5) + charged++ + return + +/obj/item/weapon/twohanded/knighthammer/update_icon() //Currently only here to fuck with the on-mob icons. + icon_state = "adrhammer[wielded]" + return + + +/obj/item/weapon/twohanded/knighthammer/afterattack(atom/A as mob|obj|turf|area, mob/user as mob, proximity) + if(!proximity) return + if(wielded) + if(charged == 5) + charged = 0 + if(istype(A, /mob/living/)) + var/mob/living/Z = A + if(Z.health < 1) + Z.visible_message("[Z.name] was blown to peices by the power of [src.name]!", \ + "You feel a powerful blow rip you apart!", \ + "You hear a heavy impact and the sound of ripping flesh!.") + Z.gib() + else + Z.take_organ_damage(0,30) + Z.visible_message("[Z.name] was sent flying by a blow from the [src.name]!", \ + "You feel a powerful blow connect with your body and send you flying!", \ + "You hear something heavy impact flesh!.") + var/atom/throw_target = get_edge_target_turf(Z, get_dir(src, get_step_away(Z, src))) + Z.throw_at(throw_target, 200, 4) + else if(istype(A, /turf/simulated/wall)) + var/turf/simulated/wall/Z = A + Z.ex_act(2) + charged = 3 + else if (istype(A, /obj/structure) || istype(A, /obj/mecha/)) + var/obj/Z = A + Z.ex_act(2) + charged = 3 + playsound(user, 'sound/weapons/marauder.ogg', 50, 1) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index c2fbc746027..2d58731f4f4 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -60,9 +60,17 @@ icon_state = "armor_reflec" item_state = "armor_reflec" blood_overlay_type = "armor" + reflect_chance = 40 armor = list(melee = 10, bullet = 10, laser = 80, energy = 50, bomb = 0, bio = 0, rad = 0) siemens_coefficient = 0 +/obj/item/clothing/suit/armor/laserproof/IsReflect(var/def_zone) + var/hit_reflect_chance = reflect_chance + if(!(def_zone in list("chest", "groin"))) //If not shot where ablative is covering you, you don't get the reflection bonus! + hit_reflect_chance = 0 + if (prob(hit_reflect_chance)) + return 1 + /obj/item/clothing/suit/armor/swat name = "swat suit" desc = "A heavily armored suit that protects against moderate damage. Used in special operations." diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 73b840d96c4..616a0d2ba1d 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -12,35 +12,31 @@ emp_act var/datum/organ/external/organ = get_organ(check_zone(def_zone)) + if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) + if(check_reflect(def_zone)) // Checks if you've passed a reflection% check + visible_message("The [P.name] gets reflected by [src]!", \ + "The [P.name] gets reflected by [src]!") + // Find a turf near or on the original location to bounce to + if(P.starting) + var/new_x = P.starting.x + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) + var/new_y = P.starting.y + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) + var/turf/curloc = get_turf(src) + + // redirect the projectile + P.original = locate(new_x, new_y, P.z) + P.starting = curloc + P.current = curloc + P.firer = src + P.yo = new_y - curloc.y + P.xo = new_x - curloc.x + + return -1 // complete projectile permutation + //Shields if(check_shields(P.damage, "the [P.name]")) P.on_hit(src, 2, def_zone) return 2 - //Laserproof armour - if(wear_suit && istype(wear_suit, /obj/item/clothing/suit/armor/laserproof)) - if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) - var/reflectchance = 40 - round(P.damage/3) - if(!(def_zone in list("chest", "groin"))) - reflectchance /= 2 - if(prob(reflectchance)) - visible_message("\red The [P.name] gets reflected by [src]'s [wear_suit.name]!") - - // Find a turf near or on the original location to bounce to - if(P.starting) - var/new_x = P.starting.x + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) - var/new_y = P.starting.y + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) - var/turf/curloc = get_turf(src) - - // redirect the projectile - P.original = locate(new_x, new_y, P.z) - P.starting = curloc - P.current = curloc - P.firer = src - P.yo = new_y - curloc.y - P.xo = new_x - curloc.x - - return -1 // complete projectile permutation //Shrapnel if (P.damage_type == BRUTE) @@ -138,6 +134,20 @@ emp_act return 1 return 0 +/mob/living/carbon/human/proc/check_reflect(var/def_zone) //Reflection checks for anything in your l_hand, r_hand, or wear_suit based on reflect_chance var of the object + if(wear_suit && istype(wear_suit, /obj/item/)) + var/obj/item/I = wear_suit + if(I.IsReflect(def_zone) == 1) + return 1 + if(l_hand && istype(l_hand, /obj/item/)) + var/obj/item/I = l_hand + if(I.IsReflect(def_zone) == 1) + return 1 + if(r_hand && istype(r_hand, /obj/item/)) + var/obj/item/I = r_hand + if(I.IsReflect(def_zone) == 1) + return 1 + return 0 /mob/living/carbon/human/proc/check_shields(var/damage = 0, var/attack_text = "the attack") if(l_hand && istype(l_hand, /obj/item/weapon))//Current base is the prob(50-d/3) diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 45461b7a69a..706ef2a2011 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -118,7 +118,8 @@ name = "\improper Bulldog shotgun" desc = "A compact, mag-fed semi-automatic shotgun for combat in narrow corridors. Compatible only with specialized magazines." icon_state = "bulldog" - item_state = "c20r" + item_state = "bulldog" + icon_override = 'icons/mob/in-hand/guns.dmi' w_class = 3.0 origin_tech = "combat=5;materials=4;syndicate=6" mag_type = "/obj/item/ammo_box/magazine/m12g" diff --git a/icons/mob/in-hand/guns.dmi b/icons/mob/in-hand/guns.dmi new file mode 100644 index 00000000000..8b4f0fa69cd Binary files /dev/null and b/icons/mob/in-hand/guns.dmi differ diff --git a/icons/mob/in-hand/swords.dmi b/icons/mob/in-hand/swords.dmi new file mode 100644 index 00000000000..7d5baa533f8 Binary files /dev/null and b/icons/mob/in-hand/swords.dmi differ diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi index 4aa7f8777e4..a2b7d416055 100644 Binary files a/icons/obj/cigarettes.dmi and b/icons/obj/cigarettes.dmi differ diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi index 9e6d161ed15..c8af6b5d248 100755 Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index daccc94a722..79e7b8cb110 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ