From ee66c32bd06199d7adb9fd960db098aa49086c2b Mon Sep 17 00:00:00 2001 From: "petethegoat@gmail.com" Date: Fri, 16 Nov 2012 18:52:41 +0000 Subject: [PATCH] Updated the L6. Fixes issue 1095. L6 Icons bugged after reload git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5089 316c924e-a436-60f5-8080-3fe189b3f50e --- code/modules/projectiles/ammunition/boxes.dm | 4 +- .../projectiles/guns/projectile/automatic.dm | 129 ++++++------------ icons/obj/gun.dmi | Bin 45553 -> 45554 bytes 3 files changed, 45 insertions(+), 88 deletions(-) diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index 6bc9821ad8a..5cd6c3bac50 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -95,7 +95,7 @@ /obj/item/ammo_magazine/a762 name = "magazine (a762)" - icon_state = "a762-50" + icon_state = "a762" origin_tech = "combat=2" ammo_type = "/obj/item/ammo_casing/a762" max_ammo = 50 @@ -103,7 +103,7 @@ /obj/item/ammo_magazine/a762/empty name = "magazine (a762)" - icon_state = "a762-0" + icon_state = "a762" ammo_type = "/obj/item/ammo_casing/a762" max_ammo = 0 multiple_sprites = 1 \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index dda1535f96f..330eb2fbe7c 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -1,7 +1,7 @@ /obj/item/weapon/gun/projectile/automatic //Hopefully someone will find a way to make these fire in bursts or something. --Superxpdude - name = "Submachine Gun" + name = "submachine gun" desc = "A lightweight, fast firing gun. Uses 9mm rounds." - icon_state = "saber" + icon_state = "saber" //ugly w_class = 3.0 max_shells = 18 caliber = "9mm" @@ -11,7 +11,7 @@ /obj/item/weapon/gun/projectile/automatic/mini_uzi - name = "Mini-Uzi" + name = "mini-uzi" desc = "A lightweight, fast firing gun, for when you want someone dead. Uses .45 rounds." icon_state = "mini-uzi" w_class = 3.0 @@ -23,7 +23,7 @@ /obj/item/weapon/gun/projectile/automatic/c20r - name = "C-20r SMG" + name = "\improper C-20r SMG" desc = "A lightweight, fast firing gun, for when you REALLY need someone dead. Uses 12mm rounds. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp" icon_state = "c20r" item_state = "c20r" @@ -62,114 +62,72 @@ - - - /obj/item/weapon/gun/projectile/automatic/l6_saw - name = "L6 SAW" - w_class = 4 + name = "\improper L6 SAW" desc = "A rather traditionally made light machine gun with a pleasantly lacquered wooden pistol grip. Has 'Aussec Armoury- 2531' engraved on the reciever" - icon_state = "l4closed100" + icon_state = "l6closed100" item_state = "l6closedmag" + w_class = 4 max_shells = 50 caliber = "a762" origin_tech = "combat=5;materials=1;syndicate=2" ammo_type = "/obj/item/ammo_casing/a762" fire_sound = 'sound/weapons/Gunshot_smg.ogg' load_method = 2 - //recoil = 1 + recoil = 1 var/cover_open = 0 var/mag_inserted = 1 + attack_self(mob/user as mob) - if(!cover_open && mag_inserted) - cover_open = 1 - icon_state = "l4open[round(((loaded.len)*2),25)]" - item_state = "l6openmag" - usr << "You open the [src]'s cover, allowing you to swap magazines." - else if(cover_open && mag_inserted) - cover_open = 0 - icon_state = "l4closed[round(((loaded.len)*2),25)]" - item_state = "l6closedmag" - usr << "You close the [src]'s cover." - else if(!cover_open && !mag_inserted) - cover_open = 1 - icon_state = "l4opennomag" - item_state = "l6opennomag" - usr << "You open the [src]'s cover, allowing you to swap magazines." - else if(cover_open && !mag_inserted) - cover_open = 0 - icon_state = "l4closednomag" - item_state = "l6closednomag" - usr << "You close the [src]'s cover." - update_icon() //another update_icon() thing here, I know it's repeated in afterattack() but this one also takes into account cover_open - if(!cover_open) - icon_state = "l4closed[round(((loaded.len)*2),25)]" - item_state = "l6closedmag" - else - icon_state = "l4open[round(((loaded.len)*2),25)]" - item_state = "l6openmag" - //update_inv_l_hand() - //update_inv_r_hand() + cover_open = !cover_open + user << "You [cover_open ? "open" : "close"] [src]'s cover." + update_icon() + + + update_icon() + icon_state = "l6[cover_open ? "open" : "closed"][mag_inserted ? round(loaded.len, 25) : "-empty"]" + afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) //what I tried to do here is just add a check to see if the cover is open or not and add an icon_state change because I can't figure out how c-20rs do it with overlays if(cover_open) - usr << "The SAW cover is open! Close it before firing!" + user << "[src]'s cover is open! Close it before firing!" else ..() - if(!cover_open && mag_inserted) - icon_state = "l4closed[round(((loaded.len)*2),25)]" - item_state = "l6closedmag" - else if(!cover_open && !mag_inserted) - icon_state = "l4closednomag" - item_state = "l6nomag" - //update_inv_l_hand() - //update_inv_r_hand() + update_icon() - /obj/item/weapon/gun/projectile/automatic/l6_saw/verb/remove_magazine() - set category = "Object" - set name = "Remove SAW magazine." - set src in view(1) - var/mob/M = usr - if(usr.canmove && !usr.stat && !usr.restrained() && !M.paralysis && ! M.stunned) - if(!cover_open) - usr << "The [src]'s cover is closed! You can't remove the magazine!" - else if (!cover_open && !mag_inserted) - usr << "The [src]'s cover is open but there's no magazine for you to remove!" - else if (cover_open && mag_inserted) - drop_mag() - loaded = list() - mag_inserted = 0 - icon_state = "l4opennomag" - item_state = "l6opennomag" - usr << "You remove the magazine from the [src]!" - //update_inv_l_hand() - //update_inv_r_hand() - - /obj/item/weapon/gun/projectile/automatic/l6_saw/proc/drop_mag() - empty_mag = new /obj/item/ammo_magazine/a762(src) - empty_mag.stored_ammo = loaded - empty_mag.icon_state = "a762-[round((loaded.len),10)]" - //desc = "There are [loaded] shells left!" - empty_mag.loc = get_turf(src.loc) - empty_mag = null + attack_hand(mob/user as mob) + if(loc != user) + ..() + return //let them pick it up + if(!cover_open) + user << "[src]'s cover is closed! You can't remove the magazine!" + else if (cover_open && mag_inserted) + //drop the mag + empty_mag = new /obj/item/ammo_magazine/a762(src) + empty_mag.stored_ammo = loaded + empty_mag.icon_state = "a762-[round(loaded.len, 10)]" + empty_mag.desc = "There are [loaded.len] shells left!" + empty_mag.loc = get_turf(src.loc) + user.put_in_hands(empty_mag) + empty_mag = null + mag_inserted = 0 + loaded = list() + update_icon() + user << "You remove the magazine from [src]." /obj/item/weapon/gun/projectile/automatic/l6_saw/attackby(var/obj/item/A as obj, mob/user as mob) if(!cover_open) - usr << "The [src]'s cover is closed! You can't insert a new mag!" + user << "The [src]'s cover is closed! You can't insert a new mag!" else if (cover_open && mag_inserted) - usr << "The [src] already has a magazine inserted!" + user << "The [src] already has a magazine inserted!" else if (cover_open && !mag_inserted) mag_inserted = 1 - usr << "You insert the magazine!" - icon_state = "l4openmag[round(((loaded.len)*2),25)]" - item_state = "l6openmag" + user << "You insert the magazine!" update_icon() - ..() - //update_inv_l_hand() something pete suggested. Dunno if this is a proc already defined way up in the obj/ thing - //update_inv_r_hand() or if it's something I have to define myself + ..() /* The thing I found with guns in ss13 is that they don't seem to simulate the rounds in the magazine in the gun. @@ -177,5 +135,4 @@ However, it looks like subsequent guns that use removable magazines don't take that into account and just get around simulating a removable magazine by adding the casings into the loaded list and spawning an empty magazine when the gun is out of rounds. Which means you can't eject magazines with rounds in them. The below is a very - rough and poor attempt at making that happen. -Ausops */ - + rough and poor attempt at making that happen. -Ausops */ \ No newline at end of file diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index 974a8dfce2bbe34a21d0e45ed9902111c6de3da7..cc96ed334b73dc9d94153b0affcc824932bed65b 100644 GIT binary patch delta 1251 zcmV<91RVSE;{x*I0+1ws!+KO$bVOxyV{&P5bZKvH004NLotaB-+d2@1*Y>Xv+O1TG z@+0lSn~M||StKZMH+NUi(pVx)i2@%<)L-9)C`*p4^0-JA3Gi{OGjli`(VwG#zW@95 z5QaXN&Ie&mDUyh&DZ&l()(4_{=P3F^g|3Jq6|N z;@x~%9$d!Kn5A>8Kuy@QKy?QcaLj-LE*#LX7q-)!no3!Jq`~JXSfHTcZw<`$9ETq> zOnUGLhYXV^P4sK|xZGcD$C$<0wY@LP7ySlDSaKm8V9A?sfF;Mm0sistWEYT)O|gRv?-4QUCNU{lkz0cqdXaIQP=&uU-eeeLcJbl zXU6R0=tJaxlK4XEr{_)@55KbrQk0dw9bq>{c!>SaY<*3IaCI=iHugVr30j0d|3(IC z_Kk&&TuPOn!xUq?=!Y;?g}s@7+e^iZ+uYZM!d+#)l*kTateo& zGNplkyi9Q*|2yj;y27jkG%9R?3A+?HU7UcfyWb=fAZJ1Yd798b0VXt7T3$*D&mKLO z^E!NQ-=pDf$5@*D4-Ba3Ph*KoTZP$l7dC!>&eAX>RHMZSP%(f=t_K#V;(!A77*N1> z1A6Cuq$yqVqW)`%14m8i8k~IQB?h-nnuTI~xRK1_kISF|!%2hGrFGIEMQNQhNJUyF z4OEWJ#K0L~;57hr}pk*x!6ugLZVZm!n;O z9QrC%fH$<3pHAwOSG+01UG0iSX1WOujf@i>ni(fNG&D|lB#TGs$np{f0gavn)Oixn zJ3O$B~gT7@iFx5Q>ea~KintghL+(|0UJ3+EQqK-81upV=T86?W0eBnqHNBCH-l0R|;*S zeZ)3*N6i}={yu{xSt_h}r66g!0peM1NT(Qhg@pxwo`jUJz>|;?7I+d;A_Ctv?;!{c20Y=r<~^YLUGpBuU1 zp=LOw53V3wJ-BkXEmyc~b61k&eYB6Z@nX>p{<&c<1<`h3lj=H|PtVL^7PI)u(qmBW zF5WGd6~SdJjaj<13e3siSR0mqCe;KC6Ndm*3a)YQspy8GdfKRwS zh&DVo^V4?A!adCuh>Hg-!P?}&LfzN1NSpE~(4{;HG$~I4J<5~e7IoRbhgEMit<>vb zab_$|jv+*UA&IY~etzzx@%X!lAVpQ%>k)QSgooJwEY>$v3fBY!k2VlrH{6IPh+i2icHqL@GAh$9| ze%v-m7d(r0F^gHeyRzq!4w=aE#VWvLo&>z>NnlHOlBH>4$*i=RIWJm~xL@Liz<-xa zBP6v2l|MVI@pO`#hW}}rx&{LoI8YLA{wb0%403xbJ z7Em>!fT|I_K~*@YhgtW%rwf0_4nSAWt(ID8P)yO3N!r;n`#0 z3f_e8?FTg6?HEgw|A7HD{b?+5Y3neX?!v}@FIXCegle@o0xCuj$@RzrRUA>k9wQ3) zZbWaqk2IBQU(|mcap0(_T#J*>yu#qlNwZRn4>yuo{BapHU^r=zx^zw&q$r(}2B}Er zq=Cw@of$X-3|wTXPBP#IGfQ>C!tXQ#mtkD^HKoW>o#Yq>c1VmuhW+h_HE2gidpX*F z#i6fK1$aYi`SGZZMa|nP+|@2q{Z(D&>msM)6{$Q`B9ycZ-(B;!{> z8)sp8jkBn@##vNa<18wyaTd7Y>$L(@Zx<$1Dqhmc{pP&k=7m&-AV-WW(#JiD91R{t zP8*NnL9q))nX8VV*M@5% Mh2rJFv+x80trkgTRsaA1