From 5e9735fbac76c1a7a1ae429a94ed9117c07ebf1d Mon Sep 17 00:00:00 2001 From: Cadyn Date: Thu, 4 Feb 2021 23:31:13 -0800 Subject: [PATCH] Touching up everything. --- .../projectiles/guns/energy/laser_ch.dm | 21 ++++++++- .../guns/magnetic/magnetic_railgun_ch.dm | 20 ++++++++- .../guns/projectile/zz_ballistics_ch.dm | 44 ++++++++++++++++++- .../modules/projectiles/guns/projectile_ch.dm | 8 ++++ 4 files changed, 90 insertions(+), 3 deletions(-) diff --git a/code/modules/projectiles/guns/energy/laser_ch.dm b/code/modules/projectiles/guns/energy/laser_ch.dm index 02dc2e0da5..949f3d8350 100644 --- a/code/modules/projectiles/guns/energy/laser_ch.dm +++ b/code/modules/projectiles/guns/energy/laser_ch.dm @@ -1,11 +1,28 @@ /obj/item/weapon/gun/energy/laser icon = 'icons/obj/64x32guns_ch.dmi' icon_state = "lcarbine" - name = "NT LC-525" + name = "NT LC-525 Laser Rifle" desc = "A relatively new, mass produced Nanotrasen laser carbine designed to kill with concentrated energy blasts. Just like the G40E, it has two firemodes, standard, and suppressive, which fires more efficent but weaker beams." icon_expected_width = 64 var/is64x32 = TRUE var/is64x32_override = FALSE + var/is_picked_up = FALSE + +/obj/item/weapon/gun/energy/laser/equipped() + . = ..() + is_picked_up = TRUE + update_transform() + +/obj/item/weapon/gun/energy/laser/pickup() + . = ..() + is_picked_up = TRUE + update_transform() + +/obj/item/weapon/gun/energy/laser/dropped() + . = ..() + if(!istype(loc,/mob/living)) + is_picked_up = FALSE + update_transform() /obj/item/weapon/gun/energy/laser/Initialize() . = ..() @@ -21,6 +38,8 @@ /obj/item/weapon/gun/energy/laser/update_transform() . = ..() if(is64x32) + if(is_picked_up) + transform = transform.Turn(-45) transform = transform.Translate(-16,0) /obj/item/weapon/gun/energy/laser/empty diff --git a/code/modules/projectiles/guns/magnetic/magnetic_railgun_ch.dm b/code/modules/projectiles/guns/magnetic/magnetic_railgun_ch.dm index 3a9308eaf3..fa3eb3cd85 100644 --- a/code/modules/projectiles/guns/magnetic/magnetic_railgun_ch.dm +++ b/code/modules/projectiles/guns/magnetic/magnetic_railgun_ch.dm @@ -7,6 +7,22 @@ icon_expected_width = 64 var/is64x32 = TRUE var/is64x32_override = FALSE + var/is_picked_up = FALSE + +/obj/item/weapon/gun/magnetic/railgun/equipped() + . = ..() + is_picked_up = TRUE + update_transform() + +/obj/item/weapon/gun/magnetic/railgun/pickup() + . = ..() + is_picked_up = TRUE + update_transform() + +/obj/item/weapon/gun/magnetic/railgun/dropped() + . = ..() + is_picked_up = FALSE + update_transform() /obj/item/weapon/gun/magnetic/railgun/Initialize() . = ..() @@ -22,4 +38,6 @@ /obj/item/weapon/gun/magnetic/railgun/update_transform() . = ..() if(is64x32) - transform = transform.Translate(-16,0) \ No newline at end of file + if(is_picked_up) + transform = transform.Turn(-45) + transform = transform.Translate(-16,0) diff --git a/code/modules/projectiles/guns/projectile/zz_ballistics_ch.dm b/code/modules/projectiles/guns/projectile/zz_ballistics_ch.dm index 60ca5af48c..24dd56166d 100644 --- a/code/modules/projectiles/guns/projectile/zz_ballistics_ch.dm +++ b/code/modules/projectiles/guns/projectile/zz_ballistics_ch.dm @@ -67,6 +67,8 @@ icon_expected_height = 32 icon_expected_width = 64 firemodes = list() + var/is_picked_up = FALSE + var/is_long = TRUE /obj/item/weapon/gun/projectile/automatic/serdy/Initialize() . = ..() @@ -74,8 +76,25 @@ /obj/item/weapon/gun/projectile/automatic/serdy/update_transform() . = ..() + if(is_picked_up && is_long) + transform = transform.Turn(-45) transform = transform.Translate(-16,0) +/obj/item/weapon/gun/projectile/automatic/serdy/equipped() + . = ..() + is_picked_up = TRUE + update_transform() + +/obj/item/weapon/gun/projectile/automatic/serdy/pickup() + . = ..() + is_picked_up = TRUE + update_transform() + +/obj/item/weapon/gun/projectile/automatic/serdy/dropped() + . = ..() + is_picked_up = FALSE + update_transform() + /obj/item/weapon/gun/projectile/automatic/serdy/update_icon() . = ..() if(load_method == MAGAZINE) @@ -119,6 +138,7 @@ load_method = MAGAZINE auto_loading_type = CLOSED_BOLT | LOCK_MANUAL_LOCK muzzle_velocity = 680 + is_long = FALSE /obj/item/weapon/gun/projectile/automatic/serdy/akm name = "AKM" @@ -220,7 +240,7 @@ caliber = "10x24mm caseless" magazine_type = /obj/item/ammo_magazine/m41 allowed_magazines = list(/obj/item/ammo_magazine/m41) - icon_state="m41ab" + icon_state="m41b" projectile_type = /obj/item/projectile/bullet/rifle/a10x24 firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null), @@ -520,6 +540,7 @@ ) load_method = MAGAZINE muzzle_velocity = 400 + is_long = FALSE /obj/item/weapon/gun/projectile/automatic/serdy/vityaz name = "WKHM 'Vityaz'" @@ -537,6 +558,7 @@ load_method = MAGAZINE auto_loading_type = CLOSED_BOLT | LOCK_OPEN_EMPTY | LOCK_SLAPPABLE muzzle_velocity = 430 + is_long = FALSE //LMGs @@ -575,6 +597,7 @@ bolt_release = "slide release" auto_loading_type = CLOSED_BOLT | LOCK_OPEN_EMPTY muzzle_velocity = 405 + is_long = FALSE /obj/item/weapon/gun/projectile/automatic/serdy/ssp4/silenced name = "WKHM SSP4-S" @@ -903,6 +926,7 @@ sound_ejectchamber = 'sound/weapons/ballistics/rifle_ejectchamber.ogg' sound_eject = 'sound/weapons/ballistics/rifle_eject.ogg' sound_chamber = 'sound/weapons/ballistics/rifle_chamber.ogg' + only_open_load = TRUE /obj/item/weapon/gun/projectile/revolvingrifle manual_chamber = FALSE @@ -920,15 +944,33 @@ icon_expected_width = 64 pump_animation = "winchester-pump" var/is64x32 = TRUE + var/is_picked_up = FALSE /obj/item/weapon/gun/projectile/shotgun/pump/Initialize() . = ..() if(is64x32) update_transform() +/obj/item/weapon/gun/projectile/shotgun/pump/equipped() + . = ..() + is_picked_up = TRUE + update_transform() + +/obj/item/weapon/gun/projectile/shotgun/pump/pickup() + . = ..() + is_picked_up = TRUE + update_transform() + +/obj/item/weapon/gun/projectile/shotgun/pump/dropped() + . = ..() + is_picked_up = FALSE + update_transform() + /obj/item/weapon/gun/projectile/shotgun/pump/update_transform() . = ..() if(is64x32) + if(is_picked_up) + transform = transform.Turn(-45) transform = transform.Translate(-16,0) /obj/item/weapon/gun/projectile/shotgun/pump/combat diff --git a/code/modules/projectiles/guns/projectile_ch.dm b/code/modules/projectiles/guns/projectile_ch.dm index 15927a8690..b372f9debc 100644 --- a/code/modules/projectiles/guns/projectile_ch.dm +++ b/code/modules/projectiles/guns/projectile_ch.dm @@ -85,6 +85,7 @@ /obj/item/weapon/gun/projectile/proc/bolt_handle(mob/user) var/previous_chambered = chambered var/result = bolt_toggle(TRUE) + update_icon() if(!result) to_chat(user,"Nothing happens.") else @@ -421,11 +422,18 @@ else if(CHECK_BITFIELD(auto_loading_type,CLOSED_BOLT) && bolt_open) to_chat(user,"This is a closed bolt gun! You need to close the bolt before firing it!") return 0 + else if(bolt_open) + to_chat(user,"This is a manual action gun, the bolt or chamber must be closed before firing it!") + return 0 else return 1 else return 1 +/obj/item/weapon/gun/projectile/unload_ammo(mob/user, var/allow_dump=1) + if(manual_chamber && only_open_load && !bolt_open) + to_chat(user,"You must open the bolt to load or unload this gun!") + /obj/item/weapon/gun/projectile/handle_click_empty(mob/user) if (user) user.visible_message("*click click*", "*click*")