fixes xenomorphs not being in combat mode (#12193)
* ok * Update combat.dm
This commit is contained in:
@@ -35,9 +35,9 @@
|
|||||||
/// Default combat flags for those affected by ((stamina combat))
|
/// Default combat flags for those affected by ((stamina combat))
|
||||||
#define COMBAT_FLAGS_DEFAULT NONE
|
#define COMBAT_FLAGS_DEFAULT NONE
|
||||||
/// Default combat flags for everyone else (so literally everyone but humans)
|
/// Default combat flags for everyone else (so literally everyone but humans)
|
||||||
#define COMBAT_FLAGS_STAMSYSTEM_EXEMPT (COMBAT_FLAG_SPRINT_ACTIVE | COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_SPRINT_TOGGLED | COMBAT_FLAG_COMBAT_TOGGLED)
|
#define COMBAT_FLAGS_STAMSYSTEM_EXEMPT (COMBAT_FLAG_SPRINT_ACTIVE | COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_SPRINT_TOGGLED | COMBAT_FLAG_COMBAT_TOGGLED | COMBAT_FLAG_SPRINT_FORCED | COMBAT_FLAG_COMBAT_FORCED)
|
||||||
/// Default combat flags for those only affected by sprint (so just silicons)
|
/// Default combat flags for those only affected by sprint (so just silicons)
|
||||||
#define COMBAT_FLAGS_STAMEXEMPT_YESSPRINT (COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_COMBAT_TOGGLED)
|
#define COMBAT_FLAGS_STAMEXEMPT_YESSPRINT (COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_COMBAT_TOGGLED | COMBAT_FLAG_COMBAT_FORCED)
|
||||||
|
|
||||||
/// The user wants combat mode on
|
/// The user wants combat mode on
|
||||||
#define COMBAT_FLAG_COMBAT_TOGGLED (1<<0)
|
#define COMBAT_FLAG_COMBAT_TOGGLED (1<<0)
|
||||||
@@ -57,6 +57,10 @@
|
|||||||
#define COMBAT_FLAG_INTENTIONALLY_RESTING (1<<7)
|
#define COMBAT_FLAG_INTENTIONALLY_RESTING (1<<7)
|
||||||
/// Currently stamcritted but not as violently
|
/// Currently stamcritted but not as violently
|
||||||
#define COMBAT_FLAG_SOFT_STAMCRIT (1<<8)
|
#define COMBAT_FLAG_SOFT_STAMCRIT (1<<8)
|
||||||
|
/// Force combat mode on at all times, overrides everything including combat disable traits.
|
||||||
|
#define COMBAT_FLAG_COMBAT_FORCED (1<<9)
|
||||||
|
/// Force sprint mode on at all times, overrides everything including sprint disable traits.
|
||||||
|
#define COMBAT_FLAG_SPRINT_FORCED (1<<10)
|
||||||
|
|
||||||
// Helpers for getting someone's stamcrit state. Cast to living.
|
// Helpers for getting someone's stamcrit state. Cast to living.
|
||||||
#define NOT_STAMCRIT 0
|
#define NOT_STAMCRIT 0
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
update_combat_mode_icon()
|
update_combat_mode_icon()
|
||||||
|
|
||||||
/mob/living/proc/disable_combat_mode(silent = TRUE, was_forced = FALSE, visible = FALSE, update_icon = TRUE)
|
/mob/living/proc/disable_combat_mode(silent = TRUE, was_forced = FALSE, visible = FALSE, update_icon = TRUE)
|
||||||
if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE))
|
if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) || (combat_flags & COMBAT_FLAG_COMBAT_FORCED))
|
||||||
return
|
return
|
||||||
DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_ACTIVE)
|
DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_ACTIVE)
|
||||||
SEND_SIGNAL(src, COMSIG_LIVING_COMBAT_DISABLED, was_forced)
|
SEND_SIGNAL(src, COMSIG_LIVING_COMBAT_DISABLED, was_forced)
|
||||||
@@ -60,6 +60,8 @@
|
|||||||
/mob/living/proc/disable_intentional_combat_mode(silent = TRUE, visible = FALSE)
|
/mob/living/proc/disable_intentional_combat_mode(silent = TRUE, visible = FALSE)
|
||||||
if(!(combat_flags & COMBAT_FLAG_COMBAT_TOGGLED) && !(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE))
|
if(!(combat_flags & COMBAT_FLAG_COMBAT_TOGGLED) && !(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE))
|
||||||
return
|
return
|
||||||
|
if(combat_flags & COMBAT_FLAG_COMBAT_FORCED)
|
||||||
|
return
|
||||||
DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_TOGGLED)
|
DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_TOGGLED)
|
||||||
if(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)
|
if(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)
|
||||||
disable_combat_mode(silent, FALSE, visible, FALSE)
|
disable_combat_mode(silent, FALSE, visible, FALSE)
|
||||||
@@ -71,6 +73,9 @@
|
|||||||
/mob/living/proc/user_toggle_intentional_combat_mode(visible = TRUE)
|
/mob/living/proc/user_toggle_intentional_combat_mode(visible = TRUE)
|
||||||
var/old = (combat_flags & COMBAT_FLAG_COMBAT_TOGGLED)
|
var/old = (combat_flags & COMBAT_FLAG_COMBAT_TOGGLED)
|
||||||
if(old)
|
if(old)
|
||||||
|
if(combat_flags & COMBAT_FLAG_COMBAT_FORCED)
|
||||||
|
to_chat(src, "<span class='warning'>You are unable to relax your muscles.</span>")
|
||||||
|
return
|
||||||
disable_intentional_combat_mode()
|
disable_intentional_combat_mode()
|
||||||
playsound_local(src, 'sound/misc/ui_toggleoff.ogg', 50, FALSE, pressure_affected = FALSE) //Slightly modified version of the above!
|
playsound_local(src, 'sound/misc/ui_toggleoff.ogg', 50, FALSE, pressure_affected = FALSE) //Slightly modified version of the above!
|
||||||
else if(CAN_TOGGLE_COMBAT_MODE(src))
|
else if(CAN_TOGGLE_COMBAT_MODE(src))
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
update_sprint_icon()
|
update_sprint_icon()
|
||||||
|
|
||||||
/mob/living/proc/disable_sprint_mode(update_icon = TRUE)
|
/mob/living/proc/disable_sprint_mode(update_icon = TRUE)
|
||||||
if(!(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE))
|
if(!(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) || (combat_flags & COMBAT_FLAG_SPRINT_FORCED))
|
||||||
return
|
return
|
||||||
DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_ACTIVE)
|
DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_ACTIVE)
|
||||||
if(update_icon)
|
if(update_icon)
|
||||||
@@ -51,6 +51,8 @@
|
|||||||
/mob/living/proc/disable_intentional_sprint_mode()
|
/mob/living/proc/disable_intentional_sprint_mode()
|
||||||
if(!(combat_flags & COMBAT_FLAG_SPRINT_TOGGLED) && !(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE))
|
if(!(combat_flags & COMBAT_FLAG_SPRINT_TOGGLED) && !(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE))
|
||||||
return
|
return
|
||||||
|
if(combat_flags & COMBAT_FLAG_SPRINT_FORCED)
|
||||||
|
return
|
||||||
DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_TOGGLED)
|
DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_TOGGLED)
|
||||||
if(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)
|
if(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)
|
||||||
disable_sprint_mode(FALSE)
|
disable_sprint_mode(FALSE)
|
||||||
@@ -59,6 +61,9 @@
|
|||||||
/mob/living/proc/user_toggle_intentional_sprint_mode()
|
/mob/living/proc/user_toggle_intentional_sprint_mode()
|
||||||
var/old = (combat_flags & COMBAT_FLAG_SPRINT_TOGGLED)
|
var/old = (combat_flags & COMBAT_FLAG_SPRINT_TOGGLED)
|
||||||
if(old)
|
if(old)
|
||||||
|
if(combat_flags & COMBAT_FLAG_SPRINT_FORCED)
|
||||||
|
to_chat(src, "<span class='warning'>You are unable to stop sprinting!</span>")
|
||||||
|
return
|
||||||
disable_intentional_sprint_mode()
|
disable_intentional_sprint_mode()
|
||||||
if((m_intent == MOVE_INTENT_RUN) && CHECK_ALL_MOBILITY(src, MOBILITY_STAND|MOBILITY_MOVE))
|
if((m_intent == MOVE_INTENT_RUN) && CHECK_ALL_MOBILITY(src, MOBILITY_STAND|MOBILITY_MOVE))
|
||||||
playsound_local(src, 'sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE)
|
playsound_local(src, 'sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||||
|
|||||||
Reference in New Issue
Block a user