mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 00:29:02 +01:00
[MIRROR] Regular CTF no longer has wounding (#2652)
* Regular CTF no longer has wounding (#56093) 🆑 coiax tweak: Regular Capture-The-Flag players can no longer be wounded. Simulated participants in the Medieval Shuttle can still be violently murdered with wounds however. /🆑 CTF is very fast paced, and if you've taken damage without your shield, you are nearly dead most of the time. However, if you do survive, you're supposed to slowly heal, but wounds are untreatable on the battlefield. People still being able to be bloodily stabbed in the Medieval Shuttle is definitely a feature. - Aliens (xenomorphs) are still immune to wounds, but that immunity is now done with a trait, rather than a typecheck. * Regular CTF no longer has wounding Co-authored-by: coiax <jack@billbuddy.co.uk>
This commit is contained in:
@@ -171,6 +171,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
|
||||
#define TRAIT_NOLIMBDISABLE "no_limb_disable"
|
||||
#define TRAIT_EASILY_WOUNDED "easy_limb_wound"
|
||||
#define TRAIT_HARDLY_WOUNDED "hard_limb_wound"
|
||||
#define TRAIT_NEVER_WOUNDED "never_wounded"
|
||||
#define TRAIT_TOXINLOVER "toxinlover"
|
||||
#define TRAIT_NOBREATH "no_breath"
|
||||
#define TRAIT_ANTIMAGIC "anti_magic"
|
||||
|
||||
@@ -64,6 +64,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
|
||||
"TRAIT_NOLIMBDISABLE" = TRAIT_NOLIMBDISABLE,
|
||||
"TRAIT_EASILY_WOUNDED" = TRAIT_EASILY_WOUNDED,
|
||||
"TRAIT_HARDLY_WOUNDED" = TRAIT_HARDLY_WOUNDED,
|
||||
"TRAIT_NEVER_WOUNDED" = TRAIT_NEVER_WOUNDED,
|
||||
"TRAIT_TOXINLOVER" = TRAIT_TOXINLOVER,
|
||||
"TRAIT_NOBREATH" = TRAIT_NOBREATH,
|
||||
"TRAIT_ANTIMAGIC" = TRAIT_ANTIMAGIC,
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
* * smited- If this is a smite, we don't care about this wound for stat tracking purposes (not yet implemented)
|
||||
*/
|
||||
/datum/wound/proc/apply_wound(obj/item/bodypart/L, silent = FALSE, datum/wound/old_wound = null, smited = FALSE)
|
||||
if(!istype(L) || !L.owner || !(L.body_zone in viable_zones) || isalien(L.owner) || !L.is_organic_limb())
|
||||
if(!istype(L) || !L.owner || !(L.body_zone in viable_zones) || !L.is_organic_limb() || HAS_TRAIT(L.owner, TRAIT_NEVER_WOUNDED))
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -186,6 +186,9 @@
|
||||
var/instagib_gear = /datum/outfit/ctf/instagib
|
||||
var/ammo_type = /obj/effect/ctf/ammo
|
||||
|
||||
// Fast paced gameplay, no real time for burn infections.
|
||||
var/player_traits = list(TRAIT_NEVER_WOUNDED)
|
||||
|
||||
var/list/dead_barricades = list()
|
||||
|
||||
var/static/arena_reset = FALSE
|
||||
@@ -322,6 +325,8 @@
|
||||
M.faction += team
|
||||
M.equipOutfit(chosen_class)
|
||||
RegisterSignal(M, COMSIG_PARENT_QDELETING, .proc/ctf_qdelled_player) //just in case CTF has some map hazards (read: chasms). bit shorter than dust
|
||||
for(var/trait in player_traits)
|
||||
ADD_TRAIT(M, trait, CAPTURE_THE_FLAG_TRAIT)
|
||||
spawned_mobs[M] = chosen_class
|
||||
team_members |= new_team_member.ckey
|
||||
return M //used in medisim.dm
|
||||
|
||||
@@ -32,6 +32,8 @@
|
||||
|
||||
create_internal_organs()
|
||||
|
||||
ADD_TRAIT(src, TRAIT_NEVER_WOUNDED, ROUNDSTART_TRAIT)
|
||||
|
||||
. = ..()
|
||||
|
||||
/mob/living/carbon/alien/create_internal_organs()
|
||||
|
||||
@@ -11,6 +11,9 @@
|
||||
|
||||
/obj/machinery/capture_the_flag/medisim/Initialize(mapload)
|
||||
. = ..()
|
||||
// Ensure that the historical simulation is extra bloody.
|
||||
player_traits -= TRAIT_NEVER_WOUNDED
|
||||
|
||||
start_ctf() //both machines initialize, so both will call start_ctf instead of toggle_id_ctf calling it for both, twice.
|
||||
|
||||
/obj/machinery/capture_the_flag/medisim/victory()
|
||||
|
||||
@@ -404,6 +404,9 @@
|
||||
* * bare_wound_bonus- The bare_wound_bonus of an attack
|
||||
*/
|
||||
/obj/item/bodypart/proc/check_wounding(woundtype, damage, wound_bonus, bare_wound_bonus)
|
||||
if(HAS_TRAIT(owner, TRAIT_NEVER_WOUNDED))
|
||||
return
|
||||
|
||||
// note that these are fed into an exponent, so these are magnified
|
||||
if(HAS_TRAIT(owner, TRAIT_EASILY_WOUNDED))
|
||||
damage *= 1.5
|
||||
|
||||
Reference in New Issue
Block a user