Skip to content

Commit

Permalink
[PORT] Changeling flammability stuff (#2390)
Browse files Browse the repository at this point in the history
* Changelings are (once again) weak to fire (#83953)

Being on fire will make the ling unable to use any ability that isn't
for getting out of danger or reviving themselves (Adrenals, Fakedeath,
Strained Muscles, Last Resort, Shriek, Defib Grasp and Biodegrade). And
no, there is no armblade nerf, it is fine as it is.

Changelings are really busted, as they are effectively immortal until
completely removed (which means finding a cremator/gibber/shuttle, and
by the time you get there most of the time they are already ready to
revive) which really limits counterplay. Goof and Jac's approach to
nerfing lings was a bit too much since it nerfed the armblade massively
as well, but I found that their approach about lings being weak to fire
was really good counterplay for lings (besides BZ (who even uses it?)).
We shouldnt just leave the guys that are almost immortal and spawn
multiple in a round with one single counterplay that relies on a
knowledge check.

:cl:
balance: Certain changeling abilities won't work while on fire.
/:cl:

* added flammability

---------

Co-authored-by: JackEnoff <[email protected]>
Co-authored-by: KnighTheThrasher <[email protected]>
  • Loading branch information
3 people authored Jun 24, 2024
1 parent fd3e4a0 commit d9a6ace
Show file tree
Hide file tree
Showing 9 changed files with 22 additions and 2 deletions.
5 changes: 5 additions & 0 deletions code/modules/antagonists/changeling/changeling_power.dm
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
var/ignores_fakedeath = FALSE
/// used by a few powers that toggle
var/active = FALSE
/// Does this ability stop working if you are burning?
var/disabled_by_fire = TRUE

/*
changeling code now relies on on_purchase to grant powers.
Expand Down Expand Up @@ -61,6 +63,9 @@ the same goes for Remove(). if you override Remove(), call parent or else your p
/datum/action/changeling/proc/try_to_sting(mob/living/user, mob/living/target)
if(!can_sting(user, target))
return FALSE
if(disabled_by_fire && user.fire_stacks && user.on_fire)
user.balloon_alert(user, "on fire!")
return FALSE
var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
if(sting_action(user, target))
sting_feedback(user, target)
Expand Down
1 change: 1 addition & 0 deletions code/modules/antagonists/changeling/powers/adrenaline.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
dna_cost = 2
req_human = TRUE
req_stat = UNCONSCIOUS
disabled_by_fire = FALSE

//Recover from stuns.
/datum/action/changeling/adrenaline/sting_action(mob/living/user)
Expand Down
1 change: 1 addition & 0 deletions code/modules/antagonists/changeling/powers/biodegrade.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
chemical_cost = 30 //High cost to prevent spam
dna_cost = 2
req_human = TRUE
disabled_by_fire = FALSE

/datum/action/changeling/biodegrade/sting_action(mob/living/carbon/human/user)
var/used = FALSE // only one form of shackles removed per use
Expand Down
1 change: 1 addition & 0 deletions code/modules/antagonists/changeling/powers/defib_grasp.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
while we are dead or in stasis. Will also stun cyborgs momentarily."
owner_has_control = FALSE
dna_cost = 0
disabled_by_fire = FALSE

/// Flags to pass to fully heal when we get zapped
var/heal_flags = HEAL_DAMAGE|HEAL_BODY|HEAL_STATUS|HEAL_CC_STATUS
Expand Down
1 change: 1 addition & 0 deletions code/modules/antagonists/changeling/powers/fakedeath.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
req_dna = 1
req_stat = DEAD
ignores_fakedeath = TRUE
disabled_by_fire = FALSE

/// How long it takes for revival to ready upon entering stasis.
/// The changeling can opt to stay in fakedeath for longer, though.
Expand Down
3 changes: 3 additions & 0 deletions code/modules/antagonists/changeling/powers/headcrab.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
chemical_cost = 20
dna_cost = 1
req_human = TRUE
req_stat = DEAD
ignores_fakedeath = TRUE
disabled_by_fire = FALSE

/datum/action/changeling/headcrab/sting_action(mob/living/user)
set waitfor = FALSE
Expand Down
9 changes: 7 additions & 2 deletions code/modules/antagonists/changeling/powers/mutations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@
sharpness = SHARP_EDGED
wound_bonus = -20
bare_wound_bonus = 20
resistance_flags = FLAMMABLE //MONKESTATION ADDITION
var/can_drop = FALSE
var/fake = FALSE

Expand Down Expand Up @@ -288,6 +289,7 @@
throw_range = 0
throw_speed = 0
can_hold_up = FALSE
resistance_flags = FLAMMABLE //MONKESTATION ADDITION

/obj/item/gun/magic/tentacle/Initialize(mapload, silent)
. = ..()
Expand Down Expand Up @@ -493,6 +495,7 @@
lefthand_file = 'icons/mob/inhands/antag/changeling_lefthand.dmi'
righthand_file = 'icons/mob/inhands/antag/changeling_righthand.dmi'
block_chance = 50
resistance_flags = FLAMMABLE //MONKESTATION ADDITION

var/remaining_uses //Set by the changeling ability.

Expand Down Expand Up @@ -542,6 +545,7 @@
flags_inv = HIDEJUMPSUIT
cold_protection = 0
heat_protection = 0
resistance_flags = FLAMMABLE //MONKESTATION ADDITION

/datum/armor/armor_changeling
melee = 40
Expand All @@ -550,7 +554,7 @@
energy = 50
bomb = 10
bio = 10
fire = 90
/*fire = 90*/ //MONKESTATION REMOVAL
acid = 90

/obj/item/clothing/suit/armor/changeling/Initialize(mapload)
Expand All @@ -567,6 +571,7 @@
item_flags = DROPDEL
armor_type = /datum/armor/helmet_changeling
flags_inv = HIDEEARS|HIDEHAIR|HIDEEYES|HIDEFACIALHAIR|HIDEFACE|HIDESNOUT
resistance_flags = FLAMMABLE //MONKESTATION ADDITION

/datum/armor/helmet_changeling
melee = 40
Expand All @@ -575,7 +580,7 @@
energy = 50
bomb = 10
bio = 10
fire = 90
/*fire = 90*/ //MONKESTATION REMOVAL
acid = 90

/obj/item/clothing/head/helmet/changeling/Initialize(mapload)
Expand Down
2 changes: 2 additions & 0 deletions code/modules/antagonists/changeling/powers/shriek.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
chemical_cost = 20
dna_cost = 1
req_human = TRUE
disabled_by_fire = FALSE

//A flashy ability, good for crowd control and sowing chaos.
/datum/action/changeling/resonant_shriek/sting_action(mob/user)
Expand Down Expand Up @@ -41,6 +42,7 @@
button_icon_state = "dissonant_shriek"
chemical_cost = 20
dna_cost = 1
disabled_by_fire = FALSE

/datum/action/changeling/dissonant_shriek/sting_action(mob/user)
..()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
req_human = TRUE
var/stacks = 0 //Increments every 5 seconds; damage increases over time
active = FALSE //Whether or not you are a hedgehog
disabled_by_fire = FALSE

/datum/action/changeling/strained_muscles/sting_action(mob/living/carbon/user)
..()
Expand Down

0 comments on commit d9a6ace

Please sign in to comment.