Fixes pointblank shots being able to miss. (#14486)

This commit is contained in:
Matt Atlas
2022-07-26 16:37:59 +02:00
committed by GitHub
parent e89cb728cb
commit fac12639cd
4 changed files with 46 additions and 3 deletions
@@ -355,7 +355,7 @@ emp_act
if (O.throw_source)
var/distance = get_dist(O.throw_source, loc)
miss_chance = 15 * (distance - 2)
zone = get_zone_with_miss_chance(zone, src, miss_chance, ranged_attack=1)
zone = get_zone_with_miss_chance(zone, src, miss_chance, 1)
if(zone && O.thrower != src)
var/shield_check = check_shields(throw_damage, O, thrower, zone, "[O]")
+3 -1
View File
@@ -314,7 +314,7 @@ var/list/global/organ_rel_size = list(
// Emulates targetting a specific body part, and miss chances
// May return null if missed
// miss_chance_mod may be negative.
/proc/get_zone_with_miss_chance(zone, var/mob/target, var/miss_chance_mod = 0, var/ranged_attack=0)
/proc/get_zone_with_miss_chance(zone, var/mob/target, var/miss_chance_mod = 0, var/ranged_attack=0, var/point_blank = FALSE)
zone = check_zone(zone)
if(!ranged_attack)
@@ -325,6 +325,8 @@ var/list/global/organ_rel_size = list(
for(var/obj/item/grab/G in target.grabbed_by)
if(G.state >= GRAB_AGGRESSIVE)
return zone
if(point_blank)
return zone //Point blank shots don't miss.
var/miss_chance = 10
if (zone in base_miss_chance)
+1 -1
View File
@@ -193,7 +193,7 @@
//roll to-hit
miss_modifier = max(15*(distance-1) - round(25*accuracy) + miss_modifier, 0)
hit_zone = get_zone_with_miss_chance(def_zone, target_mob, miss_modifier, ranged_attack=(distance > 1 || original != target_mob)) //if the projectile hits a target we weren't originally aiming at then retain the chance to miss
hit_zone = get_zone_with_miss_chance(def_zone, target_mob, miss_modifier, (distance > 1 || original != target_mob), point_blank) //if the projectile hits a target we weren't originally aiming at then retain the chance to miss
var/result = PROJECTILE_FORCE_MISS
if(hit_zone)
+41
View File
@@ -0,0 +1,41 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
# balance
# admin
# backend
# security
# refactor
#################################
# Your name.
author: MattAtlas
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- bugfix: "Pointblank shots no longer have a chance to miss."