From 35aa1c45203894e0164d71d84e93907dec4bd7ad Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Mon, 15 Jun 2020 23:56:46 +0100 Subject: [PATCH] merge conflict fixes --- code/modules/projectiles/projectile.dm | 34 +++++++++++++++++--------- tgstation.dme | 15 ++---------- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 39e8b63e4b..808dcb09df 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -393,12 +393,24 @@ //Returns null if nothing at all was found. /obj/item/projectile/proc/check_ricochet(atom/A) - var/chance = ricochet_chance * A.ricochet_chance_mod - if(firer && HAS_TRAIT(firer, TRAIT_NICE_SHOT)) - chance += NICE_SHOT_RICOCHET_BONUS - if(prob(chance)) - return TRUE - return FALSE + if(ricochets > ricochets_max) //safety thing, we don't care about what the other thing says about this. + return FALSE + var/them = A.check_projectile_ricochet(src) + switch(them) + if(PROJECTILE_RICOCHET_PREVENT) + return FALSE + if(PROJECTILE_RICOCHET_FORCE) + return TRUE + if(PROJECTILE_RICOCHET_NO) + return FALSE + if(PROJECTILE_RICOCHET_YES) + var/chance = ricochet_chance * A.ricochet_chance_mod + if(firer && HAS_TRAIT(firer, TRAIT_NICE_SHOT)) + chance += NICE_SHOT_RICOCHET_BONUS + if(prob(chance)) + return TRUE + else + CRASH("Invalid return value for projectile ricochet check from [A].") /obj/item/projectile/proc/check_ricochet_flag(atom/A) if((flag in list("energy", "laser")) && (A.flags_ricochet & RICOCHET_SHINY)) @@ -562,7 +574,7 @@ * The proc to make the projectile go, using a simulated pixel movement line trace. * Note: deciseconds_equivalent is currently only used for homing, times is the number of times to move pixel_increment_amount. * Trajectory multiplier directly modifies the factor of pixel_increment_amount to go per time. - * It's complicated, so probably just don'ot mess with this unless you know what you're doing. + * It's complicated, so probably just don't mess with this unless you know what you're doing. */ /obj/item/projectile/proc/pixel_move(times, hitscanning = FALSE, deciseconds_equivalent = world.tick_lag, trajectory_multiplier = 1, allow_animation = TRUE) if(!loc || !trajectory) @@ -608,14 +620,14 @@ if(!--safety) CRASH("[type] took too long (allowed: [CEILING(pixel_increment_amount/world.icon_size,1)*2] moves) to get to its location.") step_towards(src, T) - if(QDELETED(src)) + if(QDELETED(src) || pixel_move_interrupted) // this doesn't take into account with pixel_move_interrupted the portion of the move cut off by any forcemoves, but we're opting to ignore that for now + // the reason is the entire point of moving to pixel speed rather than tile speed is smoothness, which will be crucial when pixel movement is done in the future + // reverting back to tile is more or less the only way of fixing this issue. return pixels_range_leftover += pixel_increment_amount if(pixels_range_leftover > world.icon_size) Range() - if(QDELETED(src) || pixel_move_interrupted) // this doesn't take into account with pixel_move_interrupted the portion of the move cut off by any forcemoves, but we're opting to ignore that for now - // the reason is the entire point of moving to pixel speed rather than tile speed is smoothness, which will be crucial when pixel movement is done in the future - // reverting back to tile is more or less the only way of fixing this issue. + if(QDELETED(src)) return pixels_range_leftover -= world.icon_size if(!hitscanning && !forcemoved) diff --git a/tgstation.dme b/tgstation.dme index ae27de2d30..4e8b060faf 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -48,6 +48,7 @@ #include "code\__DEFINES\events.dm" #include "code\__DEFINES\exports.dm" #include "code\__DEFINES\fantasy_affixes.dm" +#include "code\__DEFINES\flags.dm" #include "code\__DEFINES\food.dm" #include "code\__DEFINES\footsteps.dm" #include "code\__DEFINES\hud.dm" @@ -76,6 +77,7 @@ #include "code\__DEFINES\movespeed_modification.dm" #include "code\__DEFINES\nanites.dm" #include "code\__DEFINES\networks.dm" +#include "code\__DEFINES\obj_flags.dm" #include "code\__DEFINES\pinpointers.dm" #include "code\__DEFINES\pipe_construction.dm" #include "code\__DEFINES\pool.dm" @@ -83,7 +85,6 @@ #include "code\__DEFINES\preferences.dm" #include "code\__DEFINES\procpath.dm" #include "code\__DEFINES\profile.dm" -#include "code\__DEFINES\projectiles.dm" #include "code\__DEFINES\qdel.dm" #include "code\__DEFINES\radiation.dm" #include "code\__DEFINES\radio.dm" @@ -118,17 +119,10 @@ #include "code\__DEFINES\vv.dm" #include "code\__DEFINES\wall_dents.dm" #include "code\__DEFINES\wires.dm" -#include "code\__DEFINES\_flags\_flags.dm" -#include "code\__DEFINES\_flags\item_flags.dm" -#include "code\__DEFINES\_flags\obj_flags.dm" #include "code\__DEFINES\admin\keybindings.dm" -#include "code\__DEFINES\combat\attack_types.dm" -#include "code\__DEFINES\combat\block.dm" -#include "code\__DEFINES\combat\block_parry.dm" #include "code\__DEFINES\dcs\flags.dm" #include "code\__DEFINES\dcs\helpers.dm" #include "code\__DEFINES\dcs\signals.dm" -#include "code\__DEFINES\flags\do_after.dm" #include "code\__DEFINES\flags\shields.dm" #include "code\__DEFINES\mapping\maploader.dm" #include "code\__DEFINES\material\worth.dm" @@ -150,7 +144,6 @@ #include "code\__HELPERS\custom_holoforms.dm" #include "code\__HELPERS\dates.dm" #include "code\__HELPERS\dna.dm" -#include "code\__HELPERS\do_after.dm" #include "code\__HELPERS\donator_groupings.dm" #include "code\__HELPERS\files.dm" #include "code\__HELPERS\game.dm" @@ -2173,7 +2166,6 @@ #include "code\modules\keybindings\keybind\admin.dm" #include "code\modules\keybindings\keybind\carbon.dm" #include "code\modules\keybindings\keybind\client.dm" -#include "code\modules\keybindings\keybind\combat.dm" #include "code\modules\keybindings\keybind\emote.dm" #include "code\modules\keybindings\keybind\human.dm" #include "code\modules\keybindings\keybind\living.dm" @@ -2324,10 +2316,7 @@ #include "code\modules\mob\living\emote.dm" #include "code\modules\mob\living\life.dm" #include "code\modules\mob\living\living.dm" -#include "code\modules\mob\living\living_active_block.dm" -#include "code\modules\mob\living\living_active_parry.dm" #include "code\modules\mob\living\living_block.dm" -#include "code\modules\mob\living\living_blocking_parrying.dm" #include "code\modules\mob\living\living_defense.dm" #include "code\modules\mob\living\living_defines.dm" #include "code\modules\mob\living\living_mobility.dm"