Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions code/__DEFINES/movement.dm
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,15 @@
#define PASS_HIGH_OVER_ONLY (1<<15) // For atoms that require a high toss to go over it, should only really be using this for flags_can_pass_x vars
#define PASS_BUILDING_ONLY (1<<16) // For throwing stuff over walls (that lead to open ceilings)
#define PASS_CRUSHER_CHARGE (1<<17) // For crusher charge specifically
#define PASS_ACID_GRENADE (1<<18) // For praetorian grenade specifically

// Pass flag groups
#define PASS_OVER (PASS_OVER_THROW_ITEM|PASS_OVER_THROW_MOB|PASS_OVER_FIRE|PASS_OVER_ACID_SPRAY)
#define PASS_OVER (PASS_OVER_THROW_ITEM|PASS_OVER_THROW_MOB|PASS_OVER_FIRE|PASS_OVER_ACID_SPRAY|PASS_ACID_GRENADE)
#define PASS_HIGH_OVER (PASS_HIGH_OVER_ONLY|PASS_OVER)
#define PASS_BUILDING (PASS_HIGH_OVER|PASS_BUILDING_ONLY)
#define PASS_MOB_IS (PASS_MOB_IS_XENO|PASS_MOB_IS_HUMAN|PASS_MOB_IS_OTHER)
#define PASS_MOB_THRU (PASS_MOB_THRU_XENO|PASS_MOB_THRU_HUMAN|PASS_MOB_THRU_OTHER)
#define PASS_ALL (PASS_THROUGH|PASS_AROUND|PASS_OVER|PASS_UNDER|PASS_GLASS|PASS_MOB_IS|PASS_MOB_THRU|PASS_HIGH_OVER_ONLY|PASS_BUILDING_ONLY|PASS_TYPE_CRAWLER|PASS_CRUSHER_CHARGE)
#define PASS_ALL (PASS_THROUGH|PASS_AROUND|PASS_OVER|PASS_UNDER|PASS_GLASS|PASS_MOB_IS|PASS_MOB_THRU|PASS_HIGH_OVER_ONLY|PASS_BUILDING_ONLY|PASS_TYPE_CRAWLER|PASS_CRUSHER_CHARGE|PASS_ACID_GRENADE)

// Short-hand pass flags for very specific things
#define PASS_FLAGS_WEEDS (PASS_UNDER|PASS_MOB_THRU|PASS_OVER_ACID_SPRAY)
Expand Down
4 changes: 4 additions & 0 deletions code/_globalvars/bitfields.dm
Original file line number Diff line number Diff line change
Expand Up @@ -533,6 +533,7 @@ DEFINE_BITFIELD(flags_pass, list(
"PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY,
"PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY,
"PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE,
"PASS_ACID_GRENADE" = PASS_ACID_GRENADE,
))

DEFINE_BITFIELD(flags_can_pass_all, list(
Expand All @@ -554,6 +555,7 @@ DEFINE_BITFIELD(flags_can_pass_all, list(
"PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY,
"PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY,
"PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE,
"PASS_ACID_GRENADE" = PASS_ACID_GRENADE,
))

DEFINE_BITFIELD(flags_can_pass_front, list(
Expand All @@ -575,6 +577,7 @@ DEFINE_BITFIELD(flags_can_pass_front, list(
"PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY,
"PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY,
"PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE,
"PASS_ACID_GRENADE" = PASS_ACID_GRENADE,
))

DEFINE_BITFIELD(flags_can_pass_behind, list(
Expand All @@ -596,6 +599,7 @@ DEFINE_BITFIELD(flags_can_pass_behind, list(
"PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY,
"PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY,
"PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE,
"PASS_ACID_GRENADE" = PASS_ACID_GRENADE,
))

DEFINE_BITFIELD(sight, list(
Expand Down
8 changes: 4 additions & 4 deletions code/game/objects/structures/barricade/barricade.dm
Original file line number Diff line number Diff line change
Expand Up @@ -268,8 +268,8 @@
update_health(-50)
can_wire = FALSE
is_wired = TRUE
flags_can_pass_front_temp &= ~PASS_OVER_THROW_MOB
flags_can_pass_behind_temp &= ~PASS_OVER_THROW_MOB
flags_can_pass_front_temp &= ~(PASS_OVER_THROW_MOB|PASS_ACID_GRENADE)
flags_can_pass_behind_temp &= ~(PASS_OVER_THROW_MOB|PASS_ACID_GRENADE)
climbable = FALSE
update_icon()
return
Expand All @@ -289,8 +289,8 @@
update_health(50)
can_wire = TRUE
is_wired = FALSE
flags_can_pass_front_temp &= ~PASS_OVER_THROW_MOB
flags_can_pass_behind_temp &= ~PASS_OVER_THROW_MOB
flags_can_pass_front_temp |= PASS_OVER_THROW_MOB|PASS_ACID_GRENADE
flags_can_pass_behind_temp |= PASS_OVER_THROW_MOB|PASS_ACID_GRENADE
Comment on lines +292 to +293

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still funky IMO that temps will have only PASS_OVER_THROW_MOB

/obj/structure/barricade/initialize_pass_flags(datum/pass_flags_container/pass_flags)
..()
if(pass_flags)
pass_flags.flags_can_pass_all = NONE
pass_flags.flags_can_pass_front = NONE
pass_flags.flags_can_pass_behind = PASS_OVER^(PASS_OVER_ACID_SPRAY|PASS_OVER_THROW_MOB)
flags_can_pass_front_temp = PASS_OVER_THROW_MOB
flags_can_pass_behind_temp = PASS_OVER_THROW_MOB

But after unwiring the temps will have PASS_OVER_THROW_MOB|PASS_ACID_GRENADE but it ultimately doesn't change behavior because yes you have it in PASS_OVER

climbable = TRUE
update_icon()
new/obj/item/stack/barbed_wire( src.loc )
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@
plasma_cost = 80

var/activation_delay = 1 SECONDS
var/prime_delay = 1 SECONDS
var/prime_delay = 1.25 SECONDS

/datum/action/xeno_action/activable/prae_acid_ball/use_ability(atom/target_atom)
var/mob/living/carbon/xenomorph/acid_ball_user = owner
Expand Down Expand Up @@ -277,7 +277,7 @@
var/obj/item/explosive/grenade/xeno_acid_grenade/grenade = new /obj/item/explosive/grenade/xeno_acid_grenade
grenade.cause_data = create_cause_data(initial(acid_ball_user.caste_type), acid_ball_user)
grenade.forceMove(get_turf(acid_ball_user))
grenade.throw_atom(target_atom, 5, SPEED_SLOW, acid_ball_user, TRUE)
grenade.throw_atom(target_atom, 5, SPEED_AVERAGE, acid_ball_user, TRUE, launch_type = HIGH_LAUNCH, pass_flags = PASS_ACID_GRENADE)
addtimer(CALLBACK(grenade, TYPE_PROC_REF(/obj/item/explosive, prime)), prime_delay)

return ..()
Expand Down