mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 12:07:27 +01:00
Merge branch 'incremental_tg' r5067 into bs12_with_tgport
removed extraneous admin attack messages, temporarily disabled much moderator stuff (will be re-enabled in future updates) Conflicts: baystation12.dme code/__HELPERS/type2type.dm code/controllers/configuration.dm code/datums/datumvars.dm code/datums/helper_datums/getrev.dm code/defines/obj.dm code/game/gamemodes/events/black_hole.dm code/game/gamemodes/events/space_ninja.dm code/game/gamemodes/wizard/rightandwrong.dm code/game/jobs/job/captain.dm code/game/jobs/job/job.dm code/game/jobs/job_controller.dm code/game/machinery/bots/medbot.dm code/game/machinery/computer/card.dm code/game/machinery/telecomms/traffic_control.dm code/game/machinery/turrets.dm code/game/machinery/wishgranter.dm code/game/objects/items/blueprints.dm code/game/objects/items/devices/uplinks.dm code/game/objects/items/stacks/stack.dm code/game/objects/items/weapons/surgery_tools.dm code/game/turfs/turf.dm code/game/verbs/ooc.dm code/global.dm code/modules/admin/IsBanned.dm code/modules/admin/admin.dm code/modules/admin/admin_memo.dm code/modules/admin/admin_verbs.dm code/modules/admin/holder2.dm code/modules/admin/player_panel.dm code/modules/admin/verbs/adminpm.dm code/modules/admin/verbs/diagnostics.dm code/modules/assembly/igniter.dm code/modules/client/client defines.dm code/modules/client/client procs.dm code/modules/clothing/spacesuits/miscellaneous.dm code/modules/clothing/suits/armor.dm code/modules/clothing/suits/jobs.dm code/modules/mining/mine_turfs.dm code/modules/mob/living/carbon/human/say.dm code/modules/mob/living/carbon/human/update_icons.dm code/modules/mob/living/living.dm code/modules/mob/living/living_defense.dm code/modules/mob/living/silicon/robot/emote.dm code/modules/mob/living/silicon/robot/life.dm code/modules/mob/mob_cleanup.dm code/modules/mob/new_player/new_player.dm code/modules/mob/new_player/preferences.dm code/modules/paperwork/paper.dm code/modules/paperwork/photocopier.dm code/modules/projectiles/guns/projectile/automatic.dm code/modules/reagents/Chemistry-Machinery.dm code/setup.dm code/stylesheet.dm code/world.dm config/admins.txt config/config.txt html/changelog.html icons/mob/items_lefthand.dmi icons/mob/items_righthand.dmi icons/mob/suit.dmi icons/obj/clothing/suits.dmi icons/turf/areas.dmi Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
@@ -92,3 +92,18 @@
|
||||
icon_state = "75"
|
||||
ammo_type = "/obj/item/ammo_casing/a75"
|
||||
max_ammo = 0
|
||||
|
||||
/obj/item/ammo_magazine/a762
|
||||
name = "magazine (a762)"
|
||||
icon_state = "a762-50"
|
||||
origin_tech = "combat=2"
|
||||
ammo_type = "/obj/item/ammo_casing/a762"
|
||||
max_ammo = 50
|
||||
multiple_sprites = 1
|
||||
|
||||
/obj/item/ammo_magazine/a762/empty
|
||||
name = "magazine (a762)"
|
||||
icon_state = "a762-0"
|
||||
ammo_type = "/obj/item/ammo_casing/a762"
|
||||
max_ammo = 0
|
||||
multiple_sprites = 1
|
||||
@@ -88,4 +88,9 @@
|
||||
desc = "A dart for use in shotguns."
|
||||
icon_state = "dart"
|
||||
projectile_type = "/obj/item/projectile/energy/dart"
|
||||
m_amt = 12500
|
||||
m_amt = 12500
|
||||
|
||||
/obj/item/ammo_casing/a762
|
||||
desc = "A 7.62 bullet casing."
|
||||
caliber = "a762"
|
||||
projectile_type = "/obj/item/projectile/bullet"
|
||||
|
||||
@@ -63,3 +63,118 @@
|
||||
if(empty_mag)
|
||||
overlays += "c20r-[round(loaded.len,4)]"
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/l6_saw
|
||||
name = "L6 SAW"
|
||||
w_class = 4
|
||||
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"
|
||||
item_state = "l6closedmag"
|
||||
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
|
||||
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()
|
||||
|
||||
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!"
|
||||
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()
|
||||
|
||||
/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
|
||||
|
||||
|
||||
/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!"
|
||||
else if (cover_open && mag_inserted)
|
||||
usr << "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"
|
||||
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.
|
||||
Afaik, since projectile.dm features a revolver, this would make sense since the magazine is part of the gun.
|
||||
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 */
|
||||
|
||||
|
||||
@@ -82,25 +82,19 @@
|
||||
var/distance = get_dist(original,loc)
|
||||
def_zone = ran_zone(def_zone, 100-(5*distance)) //Lower accurancy/longer range tradeoff.
|
||||
if(silenced)
|
||||
M << "\red You've been shot in the [def_zone] by the [src.name]!"
|
||||
M << "\red You've been shot in the [parse_zone(def_zone)] by the [src.name]!"
|
||||
else
|
||||
visible_message("\red [A.name] is hit by the [src.name] in the [def_zone]!")//X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter
|
||||
visible_message("\red [A.name] is hit by the [src.name] in the [parse_zone(def_zone)]!")//X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter
|
||||
|
||||
if(istype(firer, /mob))
|
||||
M.attack_log += "\[[time_stamp()]\] <b>[firer]/[firer.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>[src.type]</b>"
|
||||
firer.attack_log += "\[[time_stamp()]\] <b>[firer]/[firer.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>[src.type]</b>"
|
||||
log_attack("<font color='red'>[firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src.type]</font>")
|
||||
|
||||
log_admin("ATTACK: [firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src.type]")
|
||||
msg_admin_attack("ATTACK: [firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src.type]") //BS12 EDIT ALG
|
||||
|
||||
else
|
||||
M.attack_log += "\[[time_stamp()]\] <b>UNKNOWN SUBJECT (No longer exists)</b> shot <b>[M]/[M.ckey]</b> with a <b>[src]</b>"
|
||||
log_attack("<font color='red'>UNKNOWN shot [M] ([M.ckey]) with a [src.type]</font>")
|
||||
|
||||
log_admin("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a [src]")
|
||||
msg_admin_attack("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a [src.type]") //BS12 EDIT ALG
|
||||
|
||||
spawn(0)
|
||||
if(A)
|
||||
var/permutation = A.bullet_act(src, def_zone) // searches for return value
|
||||
|
||||
@@ -43,4 +43,7 @@
|
||||
damage = 5
|
||||
stun = 10
|
||||
weaken = 10
|
||||
stutter = 10
|
||||
stutter = 10
|
||||
|
||||
/obj/item/projectile/bullet/a762
|
||||
damage = 25
|
||||
Reference in New Issue
Block a user