From 596330247d62d8feb297aa2543728cda7693f452 Mon Sep 17 00:00:00 2001 From: Katherine Kiefer Date: Sun, 10 Aug 2025 20:41:05 +1000 Subject: [PATCH 1/2] aim assist --- code/modules/projectiles/guns/smartgun.dm | 153 ++++++++++++++++++++-- icons/effects/effects.dmi | Bin 290050 -> 290158 bytes 2 files changed, 142 insertions(+), 11 deletions(-) diff --git a/code/modules/projectiles/guns/smartgun.dm b/code/modules/projectiles/guns/smartgun.dm index 2f875cef364b..d324b913d9d0 100644 --- a/code/modules/projectiles/guns/smartgun.dm +++ b/code/modules/projectiles/guns/smartgun.dm @@ -101,6 +101,10 @@ var/recycletime = 120 var/cover_open = FALSE + var/lock_range = 2 + var/aim_assist = FALSE + var/image/autoshot_image + /obj/item/weapon/gun/smartgun/Initialize(mapload, ...) ammo_primary_def = GLOB.ammo_list[ammo_primary_def] //Gun initialize calls replace_ammo() so we need to set these first. ammo_secondary_def = GLOB.ammo_list[ammo_secondary_def] @@ -112,6 +116,11 @@ battery = new /obj/item/smartgun_battery(src) muzzle_flash = "muzzle_flash_blue" muzzle_flash_color = COLOR_MUZZLE_BLUE + autoshot_image = image('icons/effects/effects.dmi', null, "lock") + autoshot_image.layer = ABOVE_XENO_LAYER + autoshot_image.plane = GAME_PLANE + autoshot_image.appearance_flags = RESET_COLOR|RESET_ALPHA|RESET_TRANSFORM|KEEP_APART + autoshot_image.alpha = 190 . = ..() if(has_cover) desc += SPAN_INFO("\nAlt-click it to open the feed cover and allow for reloading.") @@ -294,6 +303,29 @@ else button.icon_state = "template" +/datum/action/item_action/smartgun/toggle_aim_assist/New(Target, obj/item/holder) + . = ..() + name = "Toggle Aim Assist" + + action_icon_state = "autofire" + button.name = name + button.overlays.Cut() + button.overlays += image('icons/mob/hud/actions.dmi', button, action_icon_state) + +/datum/action/item_action/smartgun/toggle_aim_assist/action_activate() + . = ..() + var/obj/item/weapon/gun/smartgun/smortgun = holder_item + smortgun.toggle_aim_assist(usr) + +/datum/action/item_action/smartgun/toggle_aim_assist/proc/update_icon() + if(!holder_item) + return + var/obj/item/weapon/gun/smartgun/smortgun = holder_item + if(smortgun.aim_assist) + button.icon_state = "template_on" + else + button.icon_state = "template" + /datum/action/item_action/smartgun/toggle_accuracy_improvement/New(Target, obj/item/holder) . = ..() name = "Toggle Accuracy Improvement" @@ -471,6 +503,9 @@ set_gun_config_values() /obj/item/weapon/gun/smartgun/Fire(atom/target, mob/living/user, params, reflex = 0, dual_wield) + if(aim_assist && !auto_fire) + target = get_assist_target(user, target) + if(!requires_battery) return ..() @@ -534,19 +569,58 @@ TAF.update_icon() auto_fire() +/obj/item/weapon/gun/smartgun/proc/toggle_aim_assist(mob/user, silent) + if(!silent) + to_chat(user, "[icon2html(src, user)] You [aim_assist ? "disable" : "enable"] \the [src]'s aim assist.") + balloon_alert(user, "aim assist [aim_assist? "disabled" : "enabled"]") + playsound(loc,'sound/machines/click.ogg', 25, 1) + + aim_assist = !aim_assist + + if(aim_assist) + enable_auto_aim(user) + else + disable_auto_aim(user) + +/obj/item/weapon/gun/smartgun/proc/enable_auto_aim(mob/user) + drain += 50 + START_PROCESSING(SSobj, src) + var/datum/action/item_action/smartgun/toggle_aim_assist/aim_assist_action = locate(/datum/action/item_action/smartgun/toggle_aim_assist) in actions + aim_assist_action.update_icon() + if(user) + unwield(user) + recalculate_attachment_bonuses() + +/obj/item/weapon/gun/smartgun/proc/disable_auto_aim(mob/user) + drain -= 50 + var/datum/action/item_action/smartgun/toggle_aim_assist/aim_assist_action = locate(/datum/action/item_action/smartgun/toggle_aim_assist) in actions + aim_assist_action.update_icon() + if(user) + unwield(user) + recalculate_attachment_bonuses() + +/obj/item/weapon/gun/smartgun/proc/reset_autoshot_image() + autoshot_image.loc = null + autoshot_image.pixel_x = 0 + autoshot_image.pixel_y = 0 + +/obj/item/weapon/gun/smartgun/proc/set_autoshot_image(mob/living/target) + autoshot_image.loc = target + autoshot_image.pixel_x = -target.pixel_x // -16 is counted by -(-16) + autoshot_image.pixel_y = -target.pixel_y + /obj/item/weapon/gun/smartgun/proc/auto_fire() if(auto_fire) drain += 150 - if(!motion_detector) - START_PROCESSING(SSobj, src) - if(!auto_fire) + START_PROCESSING(SSobj, src) + else drain -= 150 - if(!motion_detector) - STOP_PROCESSING(SSobj, src) /obj/item/weapon/gun/smartgun/process() - if(!auto_fire && !motion_detector) + if(!auto_fire && !motion_detector && !aim_assist) STOP_PROCESSING(SSobj, src) + if(aim_assist && last_fired + 1 SECONDS <= world.time) + reset_autoshot_image() if(auto_fire) auto_prefire() if(motion_detector) @@ -572,6 +646,56 @@ TAF.update_icon() auto_fire() +/obj/item/weapon/gun/smartgun/proc/get_assist_target(mob/living/user, target) + if(!aim_assist) + return target + + var/dist_unconscious = 9999 + var/dist_conscious = 9999 + + var/mob/living/unconscious_target = null + var/mob/living/conscious_target = null + for(var/mob/living/targetted_mob in range(lock_range, target) & oviewers(user.get_maximum_view_range(), user)) + if(targetted_mob.invisibility) + continue + if(HAS_TRAIT(targetted_mob, TRAIT_ABILITY_BURROWED)) + continue + if(targetted_mob.is_ventcrawling) + continue + if(targetted_mob.stat == DEAD) + continue // No dead or non living. + + if(iff_enabled && targetted_mob.get_target_lock(user.faction_group)) + continue + + var/dist = get_dist_sqrd(user, targetted_mob) + + if(targetted_mob.stat == UNCONSCIOUS && dist_unconscious > dist) + dist_unconscious = dist + unconscious_target = targetted_mob + else if(dist_conscious > dist) + dist_conscious = dist + conscious_target = targetted_mob + + if(conscious_target) + set_autoshot_image(conscious_target) + . = conscious_target + else if(unconscious_target) + set_autoshot_image(unconscious_target) + . = unconscious_target + else + . = target + reset_autoshot_image() + +/obj/item/weapon/gun/smartgun/wield(mob/living/user) + . = ..() + user.client.images |= autoshot_image + +/obj/item/weapon/gun/smartgun/unwield(mob/user) + . = ..() + user.client?.images -= autoshot_image + reset_autoshot_image() + /obj/item/weapon/gun/smartgun/proc/get_target(mob/living/user) var/list/conscious_targets = list() var/list/unconscious_targets = list() @@ -674,12 +798,9 @@ /obj/item/weapon/gun/smartgun/proc/motion_detector() if(motion_detector) drain += 15 - if(!auto_fire) - START_PROCESSING(SSobj, src) - if(!motion_detector) + START_PROCESSING(SSobj, src) + else drain -= 15 - if(!auto_fire) - STOP_PROCESSING(SSobj, src) //CO SMARTGUN /obj/item/weapon/gun/smartgun/co @@ -810,9 +931,19 @@ flags_gun_features = GUN_WY_RESTRICTED|GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY drum_cover_overlay = FALSE has_cover = FALSE + actions_types = list( + /datum/action/item_action/smartgun/toggle_accuracy_improvement, + /datum/action/item_action/smartgun/toggle_ammo_type, + /datum/action/item_action/smartgun/toggle_aim_assist, + /datum/action/item_action/smartgun/toggle_frontline_mode, + /datum/action/item_action/smartgun/toggle_lethal_mode, + /datum/action/item_action/smartgun/toggle_motion_detector, + /datum/action/item_action/smartgun/toggle_recoil_compensation, + ) /obj/item/weapon/gun/smartgun/l56a2/Initialize(mapload, ...) . = ..() + toggle_aim_assist(null, TRUE) MD.iff_signal = FACTION_PMC /obj/item/weapon/gun/smartgun/l56a2/elite diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 1bafa0f662bdcdf20b93ac42bc4914447ff02992..5da80718f5904dcebe6845a4a459a97879c0af48 100644 GIT binary patch delta 21929 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 NiP1&FQhjvz{{R@Hc&PvY delta 21820 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 z ze2g>i{27kZ-=2BwEw(5<;!mHt(DI$(hGWW&>-|m$9H&D_UgM6lmX3iW_0BGl^(1ST z`jAn?>t|m?am=j^1Z|GF`OueFRUj=0eLQ&oYftL1o=$|C0evX-w(WGs6Z~S}WGwho zy7&Czy7Y5IM7{3G-$${ckqfK)<{0sAlswXD--!M52j5Q0?4P2qN!Cx+lX7xsiU9!u zfBDW1$tfh~t6ukeRbLMcKRIbGQcZDp08tCiv{I&5Sw2F!zikC-JQN>a29B_flVDZ`u9NE<4Qm7Z-`*_Y7#5j}(f4-tI5m%suG={133F z(XY8WlY2r%{><`<=D#!fGV5=hm?D0s#7okp1a^Rms%m#yR{~#>?1_-wjRQiXlMXtq zJlA6*Av&E-#3~HaQa>xhb4;)PWk$E~@bH*zXn?`8s;fmSDk=(LUseKEfl8_?wJ4~_ z%gYY6pq{aa<_+Kd+$MF8VO%Z+r5^gf907PLRsB z00wf(%lDfXVb7gT1w*f45a^O%suDO8XcZN1t6`uwqfPV8Y(T-hE+}ZGl8H{j>+SkM z`UjqII~>uGW?eXbE)_hwyyH-%A?0HFHb5d|zk0Q+x`+$L846Q#pLh@x6Jtgn1Df3m z{Nk)L2mt|#wWVdMv_VXE1SmeW(MiGBma?Z!`#6q3zY)a!FsJ?got0HmQHcl**Da}p WCeNee;8;``?2ikV^^4Bq!u}6sh8gn! From 9ad22852783cd026191008a1ce7a1be6e2888047 Mon Sep 17 00:00:00 2001 From: Katherine Kiefer Date: Sun, 10 Aug 2025 20:43:41 +1000 Subject: [PATCH 2/2] no unwield --- code/modules/projectiles/guns/smartgun.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/modules/projectiles/guns/smartgun.dm b/code/modules/projectiles/guns/smartgun.dm index d324b913d9d0..d3e3356d9308 100644 --- a/code/modules/projectiles/guns/smartgun.dm +++ b/code/modules/projectiles/guns/smartgun.dm @@ -587,16 +587,12 @@ START_PROCESSING(SSobj, src) var/datum/action/item_action/smartgun/toggle_aim_assist/aim_assist_action = locate(/datum/action/item_action/smartgun/toggle_aim_assist) in actions aim_assist_action.update_icon() - if(user) - unwield(user) recalculate_attachment_bonuses() /obj/item/weapon/gun/smartgun/proc/disable_auto_aim(mob/user) drain -= 50 var/datum/action/item_action/smartgun/toggle_aim_assist/aim_assist_action = locate(/datum/action/item_action/smartgun/toggle_aim_assist) in actions aim_assist_action.update_icon() - if(user) - unwield(user) recalculate_attachment_bonuses() /obj/item/weapon/gun/smartgun/proc/reset_autoshot_image()