Mindflayers v0.9, Playable Edition! (#26596)

* adds antaghud icon

* TGUI bundle build dont push changes i didnt stage challenge 2025 (IMPOSSIBLE)

* Adds organ repair passive

* Description fix

* Runs prettier

* Fixes desc 2

* Fix revert

* Remove vamp text

* Fix some CI + Partial refactor

* Fixes CI

* Fixes gamemodes I messed with

* Moves these procs over

* Description fix again

* Add back limit requiring drainees to have ckeys

* Adds terminator icon

* Update code/datums/status_effects/buffs.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Update code/modules/surgery/organs/augments_internal.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* Update code/modules/antagonists/mind_flayer/powers/flayer_stealth_powers.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* More lewv review

* Clamps the EMP severity

* Fixes "surveilance" typos

* The TODO is gone and can't hurt me anymore

* Update code/modules/antagonists/mind_flayer/flayer_datum.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* Update code/game/objects/items/weapons/pneumaticCannon.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* Update code/game/objects/items/weapons/stunbaton.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* More lewc reviews

* Update code/modules/antagonists/_common/antag_datum.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* Update code/modules/antagonists/_common/antag_datum.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* Update code/modules/antagonists/mind_flayer/flayer_datum.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* Update code/modules/antagonists/mind_flayer/flayer_datum.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* Update code/modules/antagonists/mind_flayer/flayer_datum.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* Update code/modules/antagonists/mind_flayer/flayer_datum.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* Update code/modules/antagonists/mind_flayer/flayer_power.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* Fixes some camera bug issues + lewc reviews

* Update code/modules/antagonists/mind_flayer/powers/flayer_passives.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* Update code/modules/antagonists/mind_flayer/flayer_power.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* Updates a comment and fixes whitespace

* Autodocs flayerprod

* Update code/modules/antagonists/mind_flayer/powers/flayer_mobility_powers.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* qdel things we dont need anymore + typing an argument of add_abillity

* Remove debug log

* Update code/modules/antagonists/mind_flayer/flayer_power.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* Slightly buffs, and fixes GC issues of tether

* I no longer feel i am a mindflayer

* Fixes formatting of greeting

* Better greeting

* Worlds shittiest sprite

* Don't need this TODO anymore

* Fixes double description

* Changes the wording on the borg laws

* and bundle too

* The cannon uses shrapnel now

* Initial style changes

* Ratios for brain damage

* Adds a chemical to test for flayerism

* Fixes the brain damage ratios

* Abilities are purchasable again

* Updates TGUI properly

* im sorry linter

* Steam smoke

* Hi bundle

* Re-abstracts this proc post syndi orgs

* Fixes gamemode logic post cling round removal

* I WONT FORGET IT THIS TIME

* Fix name of steam ability

* I'm a fool

* Fixes processed passives + removes debug message

* Fixes updating abilities inside UI

* Better description for quicksilver form

* First part lewc review

* Remove debug thingy

* Apply suggestions from code review

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Fixes defines + GCs weapon spells

* We don't need this

* Eyes GC properly

* Update code/modules/antagonists/mind_flayer/powers/flayer_mobility_powers.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* adds better logging to the assimilate

* Adds parenthesis

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>

* TGUI Bundle Rebuild

* Fixes and Reworks TGUI

* Cleaner JS and Fixes

* adds anti-snitching clause to borg laws

* changes the span for the borg messages

* No holoparasites

* Puts baton silence in line with glare

* Fixes total_swarms_gathered

* Nuke old trait

* Gun no longer not stuck

* Rejuv clears delayed knockdown

* Some weapon ability fixes

* Makes radio enable timers not counterintuitive

* Fixes beepsky runtimes

* Makes naming more consistent

* Adds one-click-antag

* Adds the mind flayer toggle (doesn't technically work)

* Adds flayers to check_antagonist

* Gives IDs to the status effects

* Also this one

* Makes retracting work again if it's in your offhand

* Fixes pacification tech levels

* Grapple is a weapon ability now, nullifcation retracts implants

* Fixed descriptions

* Adds some pizzaz to torque enhancer

* This actually needs to be like this

* Moves a helper proc over to a helper proc file

* Extra admin visibility

* Nukes the wacky flayer mob

* Makes silicon administrative access more sane

* Terminator form better description

* Makes rejuv set stamina to 0

* Various price increases

* AAAAAAAAAAAAA

* Better feedback + logging on cyborg subversion

* Swarm purchase display (temp fix)

* Makes mindflayer sounds more silent

* UI improvements

* Various mindflayer fixes

* Typo

* More fixes

* Fixes innates from being stupid

* Forgot to add this check earlier

* Oh this is how you add things to the protolathe

* Changes some description and upgrade messages

* Allows you to drain people beyond your limit

* Fixes some weapon upgrade issues

* Fix CI

* Fixes some draining issues

* More UI Tweaks and QoL

* Fixes most of the issues

* text

* Fixes

* Adds a radio jamming option to intruder

* Gives obfusciation to jammer ability

* Small passive cleanup

* Fixes Search and Adds Ability Stages to UI

* Adds freebie abilities

* Restructuring chain and adding blackbox

* Tgui polish

* Small fix for traceroute

* Fixes one click antag

* Increases EMP resistance cost

* Changes the pneumatic cannon into a shotgun

* Slightly lower static

* Fixed innate building rendering in upgrades

* Fixes icon and description

* Consistency

* Punctuation fix.

* Quick reboot + terminator form synergy

* Adds safety deleting

* Fix level for torque

* Fixes a bad bug

* Update code/game/gamemodes/objective.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Aaaaaaaaaaa

* Makes torque a martial art and some martial arts safeties

* Replaces vortex arm with barrier

* Fix paths

* Adds torque knockdown

* Part 1 lewc review

* HIIIII SQUIDWARD I'M IN YOUR BRANCH NOW

* Removes flak cannon

* Flayer respects mindshielding now on vamp+cling

* Fixes EMP resist

* More fixes

* DGL review

* Contra review

* Clean up weapon powers

* Various tweaks

* Borg hand slight improvements

* Parent call needs to be after this

* Fixes stuff

* Adds a new proc that is called when a spell is purchased

* NEW SPRITES WOOOO

* Traceroute update

* Slightly lower traceroute cost

* Formatting

* Oops

* Wow this could've been bad

* Overclock small buff

* Reduces cost of 1st level EMP immunity

* Lewc review

* TGUI Bundle Rebuild

* Fix barricades

* Lewc review

* Okay FINE qwerty I'll change this

* Traceroute thingy

* I am an idiot

* First part

* Lewc review

* Forgor  this one

* Last bits

* Update code/game/objects/items/control_wand.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Update code/modules/antagonists/mind_flayer/powers/flayer_mobility_powers.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Null

* Static-ness

* Update code/game/gamemodes/changeling/traitor_chan.dm

Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Update code/__DEFINES/mindflayer_defines.dm

Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Last bits

---------

Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com>
Co-authored-by: DGamerL <daan.lyklema@gmail.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com>
This commit is contained in:
BiancaWilkson
2024-10-30 18:35:29 +00:00
committed by GitHub
co-authored by Luc DGamerL DGamerL Burzah Qwertytoforty
parent c4521dc955
commit 036b8e0182
100 changed files with 3063 additions and 193 deletions
@@ -944,6 +944,10 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven
/mob/living/carbon/emp_act(severity)
..()
if(HAS_TRAIT(src, TRAIT_EMP_IMMUNE))
return
if(HAS_TRAIT(src, TRAIT_EMP_RESIST))
severity = clamp(severity, EMP_LIGHT, EMP_WEAKENED)
for(var/X in internal_organs)
var/obj/item/organ/internal/O = X
O.emp_act(severity)
@@ -1,7 +1,8 @@
/mob/living/carbon/update_stat(reason = "none given")
if(status_flags & GODMODE)
return
if(stat != DEAD)
if(stat != DEAD && !(status_flags & TERMINATOR_FORM))
if(health <= HEALTH_THRESHOLD_DEAD && check_death_method())
death()
create_debug_log("died of damage, trigger reason: [reason]")
@@ -26,8 +26,8 @@
if(dna.species && amount > 0)
if(use_brain_mod)
amount *= dna.species.brain_mod
sponge.damage = clamp(sponge.damage + amount, 0, 120)
if(sponge.damage >= 120)
sponge.damage = clamp(sponge.damage + amount, 0, sponge.max_damage)
if(sponge.damage >= sponge.max_damage)
death()
if(updating)
update_stat("adjustBrainLoss")
@@ -44,7 +44,7 @@
if(use_brain_mod)
amount *= dna.species.brain_mod
sponge.damage = clamp(amount, 0, 120)
if(sponge.damage >= 120)
if(sponge.damage >= sponge.max_damage)
death()
if(updating)
update_stat("setBrainLoss")
@@ -287,6 +287,10 @@ emp_act
/mob/living/carbon/human/emp_act(severity)
..()
if(HAS_TRAIT(src, TRAIT_EMP_IMMUNE))
return
if(HAS_TRAIT(src, TRAIT_EMP_RESIST))
severity = clamp(severity, EMP_LIGHT, EMP_WEAKENED)
for(var/X in bodyparts)
var/obj/item/organ/external/L = X
L.emp_act(severity)
@@ -42,6 +42,12 @@
if(life_tick == 1)
regenerate_icons() // Make sure the inventory updates
var/datum/antagonist/mindflayer/F = mind?.has_antag_datum(/datum/antagonist/mindflayer)
if(F)
F.handle_mindflayer()
if(life_tick == 1)
regenerate_icons()
if(player_ghosted > 0 && stat == CONSCIOUS && job && !restrained())
handle_ghosted()
if(player_logged > 0 && stat != DEAD && job)
@@ -605,17 +611,22 @@
if(status_flags & GODMODE)
return 0
if(status_flags & TERMINATOR_FORM)
return FALSE
var/guaranteed_death_threshold = health + (getOxyLoss() * 0.5) - (getFireLoss() * 0.67) - (getBruteLoss() * 0.67)
if(getBrainLoss() >= 120 || (guaranteed_death_threshold) <= -500)
var/obj/item/organ/internal/brain = get_int_organ(/obj/item/organ/internal/brain)
if(brain?.damage >= brain.max_damage || (guaranteed_death_threshold) <= -500)
death()
return
if(getBrainLoss() >= 100) // braindeath
if(check_brain_threshold(BRAIN_DAMAGE_RATIO_CRITICAL)) // braindeath
dna.species.handle_brain_death(src)
if(!check_death_method())
if(health <= HEALTH_THRESHOLD_DEAD)
// No need to get the fraction of the max brain damage here, because for it to matter, they'd probably be dead already
var/deathchance = min(99, ((getBrainLoss() / 5) + (health + (getOxyLoss() / -2))) * -0.1)
if(prob(deathchance))
death()
@@ -2053,3 +2053,10 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
. = ALPHA_VISIBLE
for(var/source in alpha_sources)
. = min(., alpha_sources[source])
/*
* Returns wether or not the brain is below the threshold
*/
/mob/living/carbon/human/proc/check_brain_threshold(threshold_level)
var/obj/item/organ/internal/brain/brain_organ = get_int_organ(/obj/item/organ/internal/brain)
return brain_organ.damage >= (brain_organ.max_damage * threshold_level)
@@ -53,9 +53,9 @@
return has_changer
if(mind)
var/datum/antagonist/changeling/cling = mind.has_antag_datum(/datum/antagonist/changeling)
if(cling?.mimicing)
return cling.mimicing
var/datum/antagonist/antagonist_status = mind.has_antag_datum(/datum/antagonist)
if(antagonist_status?.mimicking)
return antagonist_status.mimicking
if(GetSpecialVoice())
return GetSpecialVoice()
@@ -516,6 +516,14 @@
return FALSE
if(target != user && handle_harm_antag(user, target))
return FALSE
//Mind Flayer code
var/datum/antagonist/mindflayer/MF = user?.mind?.has_antag_datum(/datum/antagonist/mindflayer)
var/obj/item/organ/internal/brain/victims_brain = target.get_int_organ(/obj/item/organ/internal/brain) //In case someone's brain isn't in their head
if(MF && !MF.harvesting && user.zone_selected == victims_brain.parent_organ && target != user)
MF.handle_harvest(target)
add_attack_logs(user, target, "flayerdrain")
return
//End Mind Flayer Code
if(target.check_block())
target.visible_message("<span class='warning'>[target] blocks [user]'s attack!</span>")
return FALSE
@@ -720,6 +728,23 @@
attack_sound = 'sound/weapons/bite.ogg'
sharp = TRUE
animation_type = ATTACK_EFFECT_BITE
/*
* Returns a copy of the datum that called this. I know this is pretty dumb
*/
/datum/unarmed_attack/proc/copy_attack()
var/datum/unarmed_attack/copy = new /datum/unarmed_attack
copy.attack_verb = attack_verb
copy.damage = damage
copy.attack_sound = attack_sound
copy.miss_sound = miss_sound
copy.sharp = sharp
copy.animation_type = animation_type
return copy
/datum/unarmed_attack/claws/copy_attack()
var/datum/unarmed_attack/claws/copy = ..()
copy.has_been_sharpened = has_been_sharpened
return copy
/datum/species/proc/can_equip(obj/item/I, slot, disable_warning = FALSE, mob/living/carbon/human/H)
if(slot in no_equip)
@@ -115,3 +115,8 @@
var/last_taste_time
/// Stores a var of the last tast message we got. used so we don't spam people messages while they eat
var/last_taste_text
///If a creature gets to be super special and have extra range on their chat messages
var/extra_message_range = 0
/// A timer that, when going off, will enable all the mob's radios again
var/radio_enable_timer
+2
View File
@@ -237,6 +237,8 @@ GLOBAL_LIST_EMPTY(channel_to_radio_key)
var/list/listening = list()
var/list/listening_obj = list()
message_range += extra_message_range
if(T)
//make sure the air can transmit speech - speaker's side
var/datum/gas_mixture/environment = T.get_readonly_air()
+1 -1
View File
@@ -9,7 +9,7 @@
return FALSE
/mob/proc/death(gibbed)
SEND_SIGNAL(src, COMSIG_MOB_DEATH, gibbed)
SEND_SIGNAL(src, COMSIG_MOB_DEATH, gibbed, src)
return FALSE
/mob/proc/dust_animation()