mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-30 08:29:57 +01:00
Psionics Rework: Kyoushiki Murasaki (#16951)
* Your unbeatable smile wrecks the media We wanna know your secret, so mysterious * Even the things she lacks end up in her area Such a perfect liar, you are * Miss ingenious, godly idol! (You're my savior, you're my saving grace) * So, what'd you eat today? What's your favorite book? * And if you wanna go to play, where are you gonna go? I haven't eaten at all * That's a secret No matter what you ask * She's elusive, evasive * So nonchalant Yet still shining bright; * Her secret: out of sight, as if visible, has the taste of honey There is none, none, none of this * And also none, none, none of that What type of guy do you like? * Who is your partner? Come on, answer me * "I don't understand what falling in love with someone else is like" (Hey! Hey!) I cannot tell what is true from what is a lie (Hey! Hey! Hey! Hey!) * And yet again, someone falls for such words (Hey! Hey! Hey! Hey!) Gently lulled into love * Drawing everyone's eyes You are the perfect, ultimate idol * Never to appear again A reincarnation of Venus * With that smile, with that "I love you" You captivate everyone * Even if those eyes, those words, are false They make up a perfect love (Ai) * Yeah, yeah, that girl stands out, exceptional We were extras from the beginning * BS that acted as adornments for the star's leading role Everything we've accomplished is thanks to her — no! * How impudent How could envy and jealousy not exist? * examine * This isn't some made-up drama for appearances So I cannot forgive * You're not perfect, I cannot forgive you I cannot forgive myself * I cannot accept any version of you other than the one stronger than everyone else * Everybody trusts and worships The very strongest, most invincible idol * Weaknesses and whatnot are not to be found Carrying the morning star within * Showing any weakness is no good, no good (Hey! Hey!) Don't let them see anything that they don't want to know (Hey! Hey! Hey! Hey!) * Anything but being one-of-a-kind is a definite no, no (Hey! Hey! Hey! Hey!) That is the real love (Hey!) * can commune fixes * can commune rename * fix is psi blocked * fixes agian * My signature smile that fires up the media The only secret that I shall keep is this: * My career was built upon fake "I love you"s This is love, in my own way * Even the flowing sweats are beautiful Aqua These eyelids that hid the Ruby within * Sing, dance, flutter, I am Maria — Right, lying is the most exquisite form of love * I have never been loved by anyone Nor have I loved anyone else * That such lies of mine will become true someday I trust in it * Someday, surely, I will have it all in hand I am such a greedy idol * Because I wish to love everybody properly in a life-sized way I shall lie today as well (Hey! Hey! Hey! Hey!) * a * b * c * d * And yet, still, (Hey! Hey!) I have been unable to tell you, and you, alone (Hey! Hey! Hey! Hey!) * jesus christ * Update code/controllers/subsystems/processing/psi.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/controllers/subsystems/processing/psi.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/controllers/subsystems/processing/psi.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/game/gamemodes/technomancer/spell_objs.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/mob/living/carbon/human/human.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/mob/living/carbon/human/human_helpers.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/organs/organ_external.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/abilities/assay.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/abilities/command.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/abilities/emotional_suggestion.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/abilities/grip.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/abilities/grip.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/abilities/mend.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/abilities/mend.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/abilities/mend.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/abilities/psi_search.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/abilities/shockwave.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/abilities/shockwave.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/abilities/singularity.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/abilities/time_stop.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/events/mini_spasm.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/interface/ui_hub.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/interface/ui_hub.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/interface/ui_hub.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/interface/ui_hub.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/interface/ui_hub.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * Update code/modules/psionics/interface/ui_hub.dm Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> * cl update --------- Co-authored-by: Matt Atlas <liermattia@gmail.com> Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
This commit is contained in:
co-authored by
Fluffy
Matt Atlas
parent
a894c77990
commit
d9b79db97b
@@ -23,12 +23,9 @@
|
||||
/mob/living/carbon/proc/breathe(var/volume_needed = BREATH_VOLUME)
|
||||
if(species && (species.flags & NO_BREATHE))
|
||||
return
|
||||
var/datum/changeling/changeling = get_antag_datum(MODE_CHANGELING)
|
||||
if(changeling?.space_adapted)
|
||||
if(HAS_TRAIT(src, TRAIT_PRESSURE_IMMUNITY))
|
||||
return
|
||||
if(changeling?.no_breathing)
|
||||
return
|
||||
|
||||
|
||||
volume_needed *= (species?.breath_vol_mul || 1)
|
||||
|
||||
var/datum/gas_mixture/breath = null
|
||||
|
||||
@@ -1485,6 +1485,9 @@
|
||||
|
||||
species.set_default_tail(src)
|
||||
|
||||
if(species.psi_deaf || HAS_FLAG(species.flags, IS_MECHANICAL) || HAS_FLAG(species.flags, NO_SCAN))
|
||||
ADD_TRAIT(src, TRAIT_PSIONICALLY_DEAF, INNATE_TRAIT)
|
||||
|
||||
if(client)
|
||||
client.init_verbs()
|
||||
|
||||
|
||||
@@ -185,7 +185,7 @@
|
||||
|
||||
return O
|
||||
|
||||
/mob/living/carbon/human/proc/awaken_psi_basic(var/source, var/allow_latency = TRUE)
|
||||
/mob/living/carbon/human/proc/awaken_psi_basic(var/source)
|
||||
var/static/list/psi_operancy_messages = list(
|
||||
"There's something in your skull!",
|
||||
"Something is eating your thoughts!",
|
||||
@@ -197,13 +197,10 @@
|
||||
)
|
||||
to_chat(src, SPAN_DANGER("An indescribable, brain-tearing sound hisses from [source], and you collapse in a seizure!"))
|
||||
seizure()
|
||||
var/new_latencies = rand(2,4)
|
||||
var/list/faculties = list(PSI_COERCION, PSI_REDACTION, PSI_ENERGISTICS, PSI_PSYCHOKINESIS)
|
||||
for(var/i = 1 to new_latencies)
|
||||
custom_pain(SPAN_DANGER("<font size = 3>[pick(psi_operancy_messages)]</font>"), 25)
|
||||
set_psi_rank(pick_n_take(faculties), allow_latency ? PSI_RANK_LATENT : PSI_RANK_OPERANT) // if set to latent, it spikes anywhere from OPERANT to PARAMOUNT
|
||||
sleep(30)
|
||||
addtimer(CALLBACK(psi, TYPE_PROC_REF(/datum/psi_complexus, check_latency_trigger), 100, source, TRUE), 4.5 SECONDS)
|
||||
custom_pain(SPAN_DANGER(FONT_LARGE("[pick(psi_operancy_messages)]")), 25)
|
||||
set_psi_rank(PSI_RANK_HARMONIOUS)
|
||||
sleep(30)
|
||||
addtimer(CALLBACK(psi, TYPE_PROC_REF(/datum/psi_complexus, check_psionic_trigger), 100, source, TRUE), 4.5 SECONDS)
|
||||
|
||||
/mob/living/carbon/human/get_resist_power()
|
||||
return species.resist_mod
|
||||
@@ -349,8 +346,7 @@
|
||||
/mob/living/carbon/human/proc/pressure_resistant()
|
||||
if(HAS_FLAG(mutations, COLD_RESISTANCE))
|
||||
return TRUE
|
||||
var/datum/changeling/changeling = get_antag_datum(MODE_CHANGELING)
|
||||
if(changeling?.space_adapted)
|
||||
if(HAS_TRAIT(src, TRAIT_PRESSURE_IMMUNITY))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -418,7 +414,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/get_tail_accessory()
|
||||
var/obj/item/organ/external/groin/G = organs_by_name[BP_GROIN]
|
||||
if(!G)
|
||||
if(!istype(G))
|
||||
return
|
||||
if(!G.tail_storage)
|
||||
return
|
||||
|
||||
@@ -239,14 +239,16 @@
|
||||
|
||||
|
||||
// Simple mobs cannot use Skrellepathy
|
||||
/mob/proc/can_commune()
|
||||
/mob/proc/has_psionics()
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/human/can_commune()
|
||||
/mob/living/carbon/human/has_psionics()
|
||||
if(HAS_TRAIT(src, TRAIT_PSIONICALLY_DEAF))
|
||||
return FALSE
|
||||
if(psi)
|
||||
return TRUE
|
||||
else
|
||||
return species ? species.can_commune() : FALSE
|
||||
return species ? species.has_psionics() : FALSE
|
||||
|
||||
/mob/living/carbon/human/proc/commune()
|
||||
set category = "Abilities"
|
||||
@@ -322,14 +324,14 @@
|
||||
to_chat(M,"<span class='notice'>[src] telepathically says to [target]:</span> [text]")
|
||||
|
||||
var/mob/living/carbon/human/H = target
|
||||
if (target.can_commune())
|
||||
if (target.has_psionics())
|
||||
to_chat(H,"<span class='psychic'>You instinctively sense [src] sending their thoughts into your mind, hearing:</span> [text]")
|
||||
else if(prob(25) && (target.mind && target.mind.assigned_role=="Chaplain"))
|
||||
to_chat(H,"<span class='changeling'>You sense [src]'s thoughts enter your mind, whispering quietly:</span> [text]")
|
||||
else
|
||||
to_chat(H,"<span class='alium'>You feel pressure behind your eyes as alien thoughts enter your mind:</span> [text]")
|
||||
if(istype(H))
|
||||
if (target.can_commune())
|
||||
if (target.has_psionics())
|
||||
return
|
||||
if(prob(10) && !(H.species.flags & NO_BLOOD))
|
||||
to_chat(H,"<span class='warning'>Your nose begins to bleed...</span>")
|
||||
|
||||
@@ -295,6 +295,13 @@
|
||||
|
||||
var/use_alt_hair_layer = FALSE
|
||||
|
||||
/// Species psionics. FALSE for no psionics. Otherwise, set to the PSI_RANK define you want.
|
||||
var/has_psionics = FALSE
|
||||
/// Number of psi points in character creation.
|
||||
var/character_creation_psi_points = 0
|
||||
/// Is this species psionically deaf?
|
||||
var/psi_deaf = FALSE
|
||||
|
||||
/datum/species/proc/get_eyes(var/mob/living/carbon/human/H)
|
||||
return
|
||||
|
||||
@@ -470,6 +477,8 @@
|
||||
if(!H.client || !H.client.prefs || !H.client.prefs.gender)
|
||||
H.gender = pick(default_genders)
|
||||
H.pronouns = H.gender
|
||||
if(has_psionics)
|
||||
H.set_psi_rank(has_psionics)
|
||||
|
||||
/datum/species/proc/handle_death(var/mob/living/carbon/human/H, var/gibbed = 0) //Handles any species-specific death events (such as dionaea nymph spawns).
|
||||
return
|
||||
@@ -739,11 +748,8 @@
|
||||
/datum/species/proc/get_digestion_product()
|
||||
return /singleton/reagent/nutriment
|
||||
|
||||
/datum/species/proc/can_commune()
|
||||
return FALSE
|
||||
|
||||
/datum/species/proc/has_psi_potential()
|
||||
return TRUE
|
||||
/datum/species/proc/has_psionics()
|
||||
return has_psionics
|
||||
|
||||
/datum/species/proc/handle_despawn()
|
||||
return
|
||||
|
||||
@@ -129,6 +129,7 @@
|
||||
)
|
||||
|
||||
alterable_internal_organs = list()
|
||||
psi_deaf = TRUE
|
||||
|
||||
/datum/species/diona/can_understand(var/mob/other)
|
||||
var/mob/living/carbon/alien/diona/D = other
|
||||
@@ -184,9 +185,6 @@
|
||||
if(SB)
|
||||
SB.handle_item_insertion(new /obj/item/device/flashlight/survival(get_turf(H)), TRUE)
|
||||
|
||||
/datum/species/diona/has_psi_potential()
|
||||
return FALSE
|
||||
|
||||
/datum/species/diona/is_naturally_insulated()
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -98,6 +98,8 @@ var/global/list/golem_types = list(SPECIES_GOLEM_COAL,
|
||||
|
||||
hud_type = /datum/hud_data/construct
|
||||
|
||||
psi_deaf = TRUE
|
||||
|
||||
var/turn_into_materials = TRUE //the golem will turn into materials upon its death
|
||||
var/golem_designation = "Coal" //used in the creation of the name
|
||||
|
||||
@@ -124,9 +126,6 @@ var/global/list/golem_types = list(SPECIES_GOLEM_COAL,
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/species/golem/has_psi_potential()
|
||||
return FALSE
|
||||
|
||||
/datum/species/golem/iron
|
||||
name = SPECIES_GOLEM_IRON
|
||||
name_plural = "iron golems"
|
||||
|
||||
@@ -143,6 +143,7 @@
|
||||
var/move_charge_factor = 1
|
||||
|
||||
use_alt_hair_layer = TRUE
|
||||
psi_deaf = TRUE
|
||||
|
||||
/datum/species/machine/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
. = ..()
|
||||
@@ -373,9 +374,6 @@
|
||||
. = ..()
|
||||
check_tag(H, H.client)
|
||||
|
||||
/datum/species/machine/has_psi_potential()
|
||||
return FALSE
|
||||
|
||||
/datum/species/machine/handle_death_check(var/mob/living/carbon/human/H)
|
||||
if(H.get_total_health() <= config.health_threshold_dead)
|
||||
return TRUE
|
||||
|
||||
@@ -107,6 +107,9 @@
|
||||
|
||||
alterable_internal_organs = list(BP_HEART, BP_EYES, BP_LUNGS, BP_LIVER, BP_KIDNEYS, BP_STOMACH)
|
||||
|
||||
has_psionics = PSI_RANK_SENSITIVE
|
||||
character_creation_psi_points = 4
|
||||
|
||||
/datum/species/skrell/handle_trail(var/mob/living/carbon/human/H, var/turf/T)
|
||||
var/list/trail_info = ..()
|
||||
if(!length(trail_info) && !H.shoes)
|
||||
@@ -117,10 +120,6 @@
|
||||
|
||||
return trail_info
|
||||
|
||||
/datum/species/skrell/handle_post_spawn(mob/living/carbon/human/H)
|
||||
..()
|
||||
H.set_psi_rank(PSI_COERCION, PSI_RANK_OPERANT)
|
||||
|
||||
/datum/species/skrell/handle_strip(var/mob/user, var/mob/living/carbon/human/H, var/action)
|
||||
switch(action)
|
||||
if("headtail")
|
||||
@@ -142,6 +141,3 @@
|
||||
|
||||
/datum/species/skrell/can_breathe_water()
|
||||
return TRUE
|
||||
|
||||
/datum/species/skrell/can_commune()
|
||||
return TRUE
|
||||
|
||||
@@ -141,6 +141,7 @@
|
||||
|
||||
|
||||
alterable_internal_organs = list(BP_HEART, BP_EYES, BP_LUNGS, BP_STOMACH, BP_APPENDIX)
|
||||
psi_deaf = TRUE
|
||||
|
||||
/datum/species/bug/before_equip(var/mob/living/carbon/human/H)
|
||||
. = ..()
|
||||
@@ -158,9 +159,6 @@
|
||||
H.gender = NEUTER
|
||||
return ..()
|
||||
|
||||
/datum/species/bug/has_psi_potential()
|
||||
return FALSE
|
||||
|
||||
/datum/species/bug/is_naturally_insulated()
|
||||
return TRUE
|
||||
|
||||
@@ -168,3 +166,4 @@
|
||||
if(I.w_class <= ITEMSIZE_SMALL)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -18,6 +18,10 @@
|
||||
var/natural_armor = GetComponent(/datum/component/armor)
|
||||
if(natural_armor)
|
||||
. += natural_armor
|
||||
if(psi)
|
||||
var/armor = psi.GetComponent(/datum/component/armor/psionic)
|
||||
if(armor)
|
||||
. += armor
|
||||
|
||||
/mob/living/bullet_act(var/obj/item/projectile/P, var/def_zone, var/used_weapon = null)
|
||||
|
||||
@@ -247,7 +251,7 @@
|
||||
|
||||
// End BS12 momentum-transfer code.
|
||||
|
||||
/mob/living/attack_generic(var/mob/user, var/damage, var/attack_message, var/armor_penetration, var/attack_flags)
|
||||
/mob/living/attack_generic(var/mob/user, var/damage, var/attack_message, var/armor_penetration, var/attack_flags, var/damage_type = DAMAGE_BRUTE)
|
||||
if(!damage)
|
||||
return
|
||||
|
||||
@@ -257,7 +261,7 @@
|
||||
src.visible_message("<span class='danger'>[user] has [attack_message] [src]!</span>")
|
||||
user.do_attack_animation(src)
|
||||
|
||||
apply_damage(damage, DAMAGE_BRUTE, user.zone_sel?.selecting, armor_pen = armor_penetration, damage_flags = attack_flags)
|
||||
apply_damage(damage, damage_type, user.zone_sel?.selecting, armor_pen = armor_penetration, damage_flags = attack_flags)
|
||||
updatehealth()
|
||||
|
||||
return TRUE
|
||||
|
||||
@@ -453,8 +453,8 @@
|
||||
if(chemicals < 150)
|
||||
to_chat(src, SPAN_WARNING("You don't have enough chemicals!"))
|
||||
return
|
||||
if(!host.species.has_psi_potential())
|
||||
to_chat(src, SPAN_WARNING("\The [host] lacks a zona bovinidae to psionically enlighten! How disturbing..."))
|
||||
if(host.species.psi_deaf)
|
||||
to_chat(src, SPAN_WARNING("\The [host] lacks a zona bovinae to psionically enlighten! How disturbing..."))
|
||||
if(host.psi)
|
||||
to_chat(src, SPAN_WARNING("Your host is already psionically active!"))
|
||||
return
|
||||
@@ -481,13 +481,14 @@
|
||||
return
|
||||
|
||||
to_chat(src, SPAN_NOTICE("You succeed in interfacing with the host's zona bovinae, this will be a painful process for them."))
|
||||
host.awaken_psi_basic("something in your head", FALSE)
|
||||
host.awaken_psi_basic("something in your head")
|
||||
host.psi.psi_points = 3 /// You don't get a lot at the start.
|
||||
host.add_language(LANGUAGE_TCB) // if we don't have TCB, give them TCB | this allows monkey borers to RP
|
||||
|
||||
/mob/living/simple_animal/borer/verb/advance_faculty()
|
||||
/mob/living/simple_animal/borer/verb/advance_psionics()
|
||||
set category = "Abilities"
|
||||
set name = "Advance Psionic Faculty (75)"
|
||||
set desc = "Advance one of your host's psionic faculties by one step."
|
||||
set name = "Advance Psionics (75)"
|
||||
set desc = "Advance your host's psionic capability by one step."
|
||||
|
||||
if(!host)
|
||||
to_chat(src, SPAN_NOTICE("You are not inside a host body."))
|
||||
@@ -507,18 +508,8 @@
|
||||
to_chat(src, SPAN_WARNING("\The [host]'s mind is shielded against your powers."))
|
||||
return
|
||||
|
||||
var/list/faculties = list(capitalize(PSI_COERCION), capitalize(PSI_REDACTION), capitalize(PSI_ENERGISTICS), capitalize(PSI_PSYCHOKINESIS))
|
||||
var/selected_faculty = input(src, "Choose a faculty to upgrade.") as null|anything in faculties
|
||||
if(!selected_faculty)
|
||||
return
|
||||
selected_faculty = lowertext(selected_faculty)
|
||||
var/max_rank = islesserform(host) ? PSI_RANK_OPERANT : PSI_RANK_MASTER
|
||||
if(host.psi.get_rank(selected_faculty) >= max_rank)
|
||||
to_chat(src, SPAN_NOTICE("This faculty has already been pushed to the max potential you can achieve!"))
|
||||
return
|
||||
|
||||
var/faculty_time = 10 SECONDS
|
||||
if(!start_ability(host, faculty_time))
|
||||
var/upgrade_time = 10 SECONDS
|
||||
if(!start_ability(host, upgrade_time))
|
||||
to_chat(src, SPAN_WARNING("You're busy doing something else, complete that task first."))
|
||||
return
|
||||
|
||||
@@ -526,19 +517,16 @@
|
||||
to_chat(src, SPAN_NOTICE("You probe your tendrils deep within your host's zona bovinae, seeking to upgrade their abilities."))
|
||||
to_chat(host, SPAN_WARNING("You feel a burning, tingling sensation at the back of your head..."))
|
||||
|
||||
addtimer(CALLBACK(src, PROC_REF(faculty_upgrade), selected_faculty), faculty_time)
|
||||
addtimer(CALLBACK(src, PROC_REF(upgrade_rank)), upgrade_time)
|
||||
|
||||
/mob/living/simple_animal/borer/proc/faculty_upgrade(var/selected_faculty)
|
||||
/mob/living/simple_animal/borer/proc/upgrade_rank()
|
||||
if(!host)
|
||||
return
|
||||
|
||||
var/host_psi_rank = host.psi.get_rank(selected_faculty)
|
||||
var/next_rank = host_psi_rank > PSI_RANK_BLUNT ? host_psi_rank + 1 : PSI_RANK_OPERANT
|
||||
host.psi.set_rank(selected_faculty, next_rank)
|
||||
host.psi.update(TRUE)
|
||||
to_chat(src, SPAN_NOTICE("You successfully manage to upgrade your host to [psychic_ranks_to_strings[host.psi.ranks[selected_faculty]]] [selected_faculty]."))
|
||||
host.psi.psi_points++
|
||||
to_chat(src, SPAN_NOTICE("You successfully manage to expand your living host's control over their Zona Bovinae. They know have an extra psionic point to spend."))
|
||||
to_chat(host, SPAN_GOOD("A breeze of fresh air washes over your mind, you feel powerful!"))
|
||||
to_chat(host, SPAN_NOTICE("You have been psionically enlightened. You are now a [psychic_ranks_to_strings[host.psi.ranks[selected_faculty]]] in the [selected_faculty] faculty."))
|
||||
to_chat(host, SPAN_NOTICE("Your control over the Nlom has expanded. You now have an extra psionic point to spend in the Point Shop."))
|
||||
|
||||
/mob/living/simple_animal/borer/verb/host_health_scan()
|
||||
set category = "Abilities"
|
||||
|
||||
@@ -214,7 +214,7 @@
|
||||
var/atom/target
|
||||
if(isliving(target_mob))
|
||||
var/mob/living/L = target_mob
|
||||
on_attack_mob(L, L.attack_generic(src, rand(melee_damage_lower, melee_damage_upper), attacktext, armor_penetration, attack_flags))
|
||||
on_attack_mob(L, L.attack_generic(src, rand(melee_damage_lower, melee_damage_upper), attacktext, armor_penetration, attack_flags, damage_type))
|
||||
target = L
|
||||
else if(istype(target_mob, /obj/machinery/bot))
|
||||
var/obj/machinery/bot/B = target_mob
|
||||
|
||||
@@ -14,6 +14,9 @@
|
||||
mob_swap_flags = MONKEY|SLIME|SIMPLE_ANIMAL
|
||||
mob_push_flags = MONKEY|SLIME|SIMPLE_ANIMAL
|
||||
|
||||
/// The type of damage this mob deals.
|
||||
var/damage_type = DAMAGE_BRUTE
|
||||
|
||||
var/show_stat_health = 1 //does the percentage health show in the stat panel for the mob
|
||||
|
||||
var/icon_living = ""
|
||||
@@ -538,7 +541,7 @@
|
||||
simple_harm_attack(user)
|
||||
|
||||
/mob/living/simple_animal/proc/simple_harm_attack(var/mob/living/user)
|
||||
apply_damage(harm_intent_damage, DAMAGE_BRUTE, used_weapon = "Attack by [user.name]")
|
||||
apply_damage(harm_intent_damage, damage_type, used_weapon = "Attack by [user.name]")
|
||||
user.visible_message(SPAN_WARNING("<b>\The [user]</b> [response_harm] \the [src]!"), SPAN_WARNING("You [response_harm] \the [src]!"))
|
||||
user.do_attack_animation(src, FIST_ATTACK_ANIMATION)
|
||||
poke(TRUE)
|
||||
|
||||
@@ -348,11 +348,6 @@
|
||||
if(!affecting)
|
||||
return
|
||||
|
||||
if(ishuman(user) && affecting == M)
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.check_psi_grab(src))
|
||||
return
|
||||
|
||||
if(world.time < (last_action + 20))
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user