mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 12:41:09 +01:00
Moves revolution code of out of flash code, fixes April Fool conversion forcesay never working in any cirumstances (#74411)
## About The Pull Request
- Signallizes head revolutionary flash conversion code, moving it out of
core flash code.
- Removes "tacticool" flashing from head revs, but they can still
convert from any direction
- Fixes April Fools "You son of a bitch! I'm in" force say never
working.
- Revs are muted on conversion so they couldn't talk.
- Fixed by only muting revs on non-holidays
- Cultists are unconscious on conversion so they couldn't talk
- Fixed by only unconscious-ing cultists on non-holidays
- Brainwash victims are more often than not unconscious / asleep so they
couldn't talk
- Just left this one.
- Reduced the chance of them occurring and limits it to April Fools only
- A 1% chance of the force says ocurring means they will happen pretty
much once a week, given multiple rev / cult rounds happen every week and
on average like, 20 people are converted. A little absurd, it's good
that it never worked?
## Why It's Good For The Game
Antag code in core item code is bad
It's funny this meme has existed for like 2, 3 years now? No one's
tested it, it's never worked
## Changelog
🆑 Melbert
refactor: Removes Rev code from core flash code
fix: Getting converted on April Fools now triggers the meme force say as
always intended
del: The meme force say can no longer trigger on any day (it didn't work
before anyways)
/🆑
This commit is contained in:
@@ -1,13 +1,5 @@
|
||||
#define CONFUSION_STACK_MAX_MULTIPLIER 2
|
||||
|
||||
|
||||
/// No deviation at all. Flashed from the front or front-left/front-right. Alternatively, flashed in direct view.
|
||||
#define DEVIATION_NONE 0
|
||||
/// Partial deviation. Flashed from the side. Alternatively, flashed out the corner of your eyes.
|
||||
#define DEVIATION_PARTIAL 1
|
||||
/// Full deviation. Flashed from directly behind or behind-left/behind-rack. Not flashed at all.
|
||||
#define DEVIATION_FULL 2
|
||||
|
||||
/obj/item/assembly/flash
|
||||
name = "flash"
|
||||
desc = "A powerful and versatile flashbulb device, with applications ranging from disorienting attackers to acting as visual receptors in robot production."
|
||||
@@ -156,25 +148,26 @@
|
||||
|
||||
var/deviation = calculate_deviation(flashed, user || src)
|
||||
|
||||
var/datum/antagonist/rev/head/converter = user?.mind?.has_antag_datum(/datum/antagonist/rev/head)
|
||||
if(user)
|
||||
var/sigreturn = SEND_SIGNAL(user, COMSIG_MOB_FLASHED_CARBON, flashed, src, deviation)
|
||||
if(sigreturn & STOP_FLASH)
|
||||
return
|
||||
|
||||
if(sigreturn & DEVIATION_OVERRIDE_FULL)
|
||||
deviation = DEVIATION_FULL
|
||||
else if(sigreturn & DEVIATION_OVERRIDE_PARTIAL)
|
||||
deviation = DEVIATION_PARTIAL
|
||||
else if(sigreturn & DEVIATION_OVERRIDE_NONE)
|
||||
deviation = DEVIATION_NONE
|
||||
|
||||
//If you face away from someone they shouldnt notice any effects.
|
||||
if(deviation == DEVIATION_FULL && !converter)
|
||||
if(deviation == DEVIATION_FULL)
|
||||
return
|
||||
|
||||
if(targeted)
|
||||
if(flashed.flash_act(1, 1))
|
||||
flashed.set_confusion_if_lower(confusion_duration * CONFUSION_STACK_MAX_MULTIPLIER)
|
||||
// Special check for if we're a revhead. Special cases to attempt conversion.
|
||||
if(converter)
|
||||
// Did we try to flash them from behind?
|
||||
if(deviation == DEVIATION_FULL)
|
||||
// Headrevs can use a tacticool leaning technique so that they don't have to worry about facing for their conversions.
|
||||
to_chat(user, span_notice("You use the tacticool tier, lean over the shoulder technique to blind [flashed] with a flash!"))
|
||||
deviation = DEVIATION_PARTIAL
|
||||
// Convert them. Terribly.
|
||||
terrible_conversion_proc(flashed, user)
|
||||
visible_message(span_danger("[user] blinds [flashed] with the flash!"), span_userdanger("[user] blinds you with the flash!"))
|
||||
visible_message(span_danger("[user] blinds [flashed] with the flash!"), span_userdanger("[user] blinds you with the flash!"))
|
||||
//easy way to make sure that you can only long stun someone who is facing in your direction
|
||||
flashed.adjustStaminaLoss(rand(80, 120) * (1 - (deviation * 0.5)))
|
||||
flashed.Paralyze(rand(25, 50) * (1 - (deviation * 0.5)))
|
||||
@@ -277,34 +270,6 @@
|
||||
return
|
||||
AOE_flash()
|
||||
|
||||
/**
|
||||
* Converts the victim to revs
|
||||
*
|
||||
* Arguments:
|
||||
* * victim - Victim
|
||||
* * aggressor - Attacker
|
||||
*/
|
||||
/obj/item/assembly/flash/proc/terrible_conversion_proc(mob/living/carbon/victim, mob/aggressor)
|
||||
if(!istype(victim) || victim.stat == DEAD)
|
||||
return
|
||||
if(!aggressor.mind)
|
||||
return
|
||||
if(!victim.client)
|
||||
to_chat(aggressor, span_warning("This mind is so vacant that it is not susceptible to influence!"))
|
||||
return
|
||||
if(victim.stat != CONSCIOUS)
|
||||
to_chat(aggressor, span_warning("They must be conscious before you can convert [victim.p_them()]!"))
|
||||
return
|
||||
//If this proc fires the mob must be a revhead
|
||||
var/datum/antagonist/rev/head/converter = aggressor.mind.has_antag_datum(/datum/antagonist/rev/head)
|
||||
if(converter.add_revolutionary(victim.mind))
|
||||
if(prob(1) || check_holidays(APRIL_FOOLS))
|
||||
victim.say("You son of a bitch! I'm in.", forced = "That son of a bitch! They're in.")
|
||||
times_used -- //Flashes less likely to burn out for headrevs when used for conversion
|
||||
else
|
||||
to_chat(aggressor, span_warning("This mind seems resistant to the flash!"))
|
||||
|
||||
|
||||
/obj/item/assembly/flash/cyborg
|
||||
|
||||
/obj/item/assembly/flash/cyborg/attack(mob/living/M, mob/user)
|
||||
@@ -415,6 +380,3 @@
|
||||
M.adjust_pacifism(4 SECONDS)
|
||||
|
||||
#undef CONFUSION_STACK_MAX_MULTIPLIER
|
||||
#undef DEVIATION_NONE
|
||||
#undef DEVIATION_PARTIAL
|
||||
#undef DEVIATION_FULL
|
||||
|
||||
Reference in New Issue
Block a user