diff --git a/aurorastation.dme b/aurorastation.dme index 53831e2a939..c8110c9fc86 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -674,7 +674,6 @@ #include "code\game\gamemodes\technomancer\spells\dispel.dm" #include "code\game\gamemodes\technomancer\spells\energy_siphon.dm" #include "code\game\gamemodes\technomancer\spells\flame_tongue.dm" -#include "code\game\gamemodes\technomancer\spells\gambit.dm" #include "code\game\gamemodes\technomancer\spells\illusion.dm" #include "code\game\gamemodes\technomancer\spells\instability_tap.dm" #include "code\game\gamemodes\technomancer\spells\mark_recall.dm" diff --git a/code/_helpers/logging/debug.dm b/code/_helpers/logging/debug.dm index a3ff7e583a4..fd8919db583 100644 --- a/code/_helpers/logging/debug.dm +++ b/code/_helpers/logging/debug.dm @@ -14,7 +14,7 @@ if(!C.prefs) //This is to avoid null.toggles runtime error while still initialyzing players preferences return if(C.prefs.toggles & CHAT_DEBUGLOGS) - to_chat(C, "DEBUG: [text]") + to_chat(C, "DEBUG: [text]") send_gelf_log(short_message = text, long_message = "[time_stamp()]: [text]", level = level, category = "DEBUG") /// Logging for loading and caching assets diff --git a/code/game/gamemodes/technomancer/spells/gambit.dm b/code/game/gamemodes/technomancer/spells/gambit.dm deleted file mode 100644 index ea3a71eef10..00000000000 --- a/code/game/gamemodes/technomancer/spells/gambit.dm +++ /dev/null @@ -1,117 +0,0 @@ -/datum/technomancer/spell/gambit - name = "Gambit" - desc = "This function causes you to receive a random function, including those which you haven't purchased." -// enhancement_desc = "Makes results less random and more biased towards what the function thinks you need in your current situation." - enhancement_desc = "Instead of a purely random spell, it will give you a \"random\" spell." - spell_power_desc = "Makes certain rare functions possible to acquire via Gambit which cannot be obtained otherwise, if above 100%." - ability_icon_state = "tech_gambit" - cost = 50 - obj_path = /obj/item/spell/gambit - category = UTILITY_SPELLS - -/var/global/list/all_technomancer_gambit_spells = subtypesof(/obj/item/spell) - list( - /obj/item/spell/gambit, - /obj/item/spell/projectile, - /obj/item/spell/aura, - /obj/item/spell/insert, - /obj/item/spell/spawner, - /obj/item/spell/summon, - /obj/item/spell/modifier) - -/obj/item/spell/gambit - name = "gambit" - desc = "Do you feel lucky?" - icon_state = "gambit" - cast_methods = CAST_USE - aspect = ASPECT_UNSTABLE - -/obj/item/spell/gambit/on_use_cast(mob/living/carbon/human/user) - . = ..() - if(pay_energy(200)) - adjust_instability(3) - if(check_for_scepter()) - give_new_spell(biased_random_spell()) - else - give_new_spell(random_spell()) - qdel(src) - -/obj/item/spell/gambit/proc/give_new_spell(var/spell_type) - owner.drop_from_inventory(src, null) - owner.place_spell_in_hand(spell_type) - -// Gives a random spell. -/obj/item/spell/gambit/proc/random_spell() - var/list/potential_spells = all_technomancer_gambit_spells.Copy() - return pick(potential_spells) - -// Gives a "random" spell. -/obj/item/spell/gambit/proc/biased_random_spell() - var/list/potential_spells = list() - - // First the spell will concern itself with the health of the technomancer. - if(prob(owner.getBruteLoss() + owner.getBruteLoss() * 2)) // Having 20 brute means a 40% chance of being added to the pool. - if(!owner.isSynthetic()) - potential_spells |= /obj/item/spell/modifier/mend_life - else - potential_spells |= /obj/item/spell/modifier/mend_synthetic - - // Second, the spell will try to prepare the technomancer for threats. - var/hostile_mobs = 0 // Counts how many hostile mobs. Higher numbers make it more likely for AoE spells to be chosen. - - for(var/mob/living/L in view(owner)) - // Spiders, carp... bears. - if(istype(L, /mob/living/simple_animal)) - var/mob/living/simple_animal/SM = L - if(!is_ally(SM)) - hostile_mobs++ - if(SM.summoned || SM.supernatural) // Our creations might be trying to kill us. - potential_spells |= /obj/item/spell/abjuration - - // Always assume borgs are hostile. - if(istype(L, /mob/living/silicon/robot)) - if(!istype(L, /mob/living/silicon/robot/drone)) // Drones are okay, however. - hostile_mobs++ - potential_spells |= /obj/item/spell/projectile/ionic_bolt - - // Finally we get to humanoids. - if(istype(L, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = L - if(is_ally(H)) // Don't get scared by our apprentice. - continue - - for(var/obj/item/I in list(H.l_hand, H.r_hand)) - // Guns are scary. - if(istype(I, /obj/item/gun)) // Toy guns will count as well but oh well. - hostile_mobs++ - continue - // Strong melee weapons are scary as well. - else if(I.force >= 15) - hostile_mobs++ - continue - - if(hostile_mobs) - potential_spells |= /obj/item/spell/shield - potential_spells |= /obj/item/spell/reflect - potential_spells |= /obj/item/spell/targeting_matrix - potential_spells |= /obj/item/spell/warp_strike - - if(hostile_mobs >= 3) // Lots of baddies, give them AoE. - potential_spells |= /obj/item/spell/spawner/fire_blast - potential_spells |= /obj/item/spell/condensation - potential_spells |= /obj/item/spell/aura/frost - else - potential_spells |= /obj/item/spell/projectile/beam - potential_spells |= /obj/item/spell/projectile/overload - potential_spells |= /obj/item/spell/projectile/force_missile - potential_spells |= /obj/item/spell/projectile/lightning - - // Third priority is recharging the core. - if(core.energy / core.max_energy <= 0.5) - potential_spells |= /obj/item/spell/energy_siphon - potential_spells |= /obj/item/spell/instability_tap - - // Fallback method in case nothing gets added. - if(!potential_spells.len) - potential_spells = all_technomancer_gambit_spells.Copy() - - return pick(potential_spells) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index e936aa2a914..0d0a5c62c68 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -133,6 +133,11 @@ "[user.name] unbuckles [MA.name].", \ SPAN_NOTICE("You were unbuckled from [src] by [user.name]."),\ SPAN_NOTICE("You hear metal clanking.")) + else if(isliving(user) && isobj(MA)) + user.visible_message(\ + "[user] unbuckles \the [MA] from [src].",\ + SPAN_NOTICE("You unbuckle \the [MA] from [src]."),\ + SPAN_NOTICE("You hear metal clanking.")) else MA.visible_message(\ "[MA.name] unbuckles themselves.",\ diff --git a/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm b/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm index ac1c104602f..38dd31ba60a 100644 --- a/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm +++ b/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm @@ -5,7 +5,7 @@ program_key_icon_state = "teal_key" extended_desc = "This program connects to life signs monitoring system to provide basic information on crew health." required_access_run = access_medical - required_access_download = access_cmo + required_access_download = access_medical requires_ntnet = TRUE network_destination = "crew lifesigns monitoring system" size = 11 diff --git a/code/modules/psionics/complexus/complexus_process.dm b/code/modules/psionics/complexus/complexus_process.dm index 3cfa4250d5d..561d66404d1 100644 --- a/code/modules/psionics/complexus/complexus_process.dm +++ b/code/modules/psionics/complexus/complexus_process.dm @@ -29,7 +29,7 @@ else if(psionic_rank == PSI_RANK_HARMONIOUS) aura_color = "#64c464" - if(psionic_rank > PSI_RANK_SENSITIVE && last_psionic_rank < PSI_RANK_HARMONIOUS) + if(psionic_rank > PSI_RANK_SENSITIVE && (get_rank() != last_psionic_rank)) switch(psionic_rank) if(PSI_RANK_HARMONIOUS) psi_points = PSI_POINTS_HARMONIOUS @@ -37,11 +37,13 @@ psi_points = PSI_POINTS_APEX if(PSI_RANK_LIMITLESS) psi_points = PSI_POINTS_LIMITLESS + else + psi_points = 0 /// We had special abilities unique to our level, so get rid of 'em. if(last_psionic_rank > PSI_RANK_HARMONIOUS) wipe_user_abilities() - if(last_psionic_rank > PSI_RANK_SENSITIVE && psionic_rank < PSI_RANK_HARMONIOUS) + if(last_psionic_rank > PSI_RANK_SENSITIVE && psionic_rank < PSI_RANK_HARMONIOUS && (get_rank() != last_psionic_rank)) psi_points = 0 wipe_user_abilities() diff --git a/html/changelogs/mattatlas-cyberhex.yml b/html/changelogs/mattatlas-cyberhex.yml new file mode 100644 index 00000000000..32f3802b0bf --- /dev/null +++ b/html/changelogs/mattatlas-cyberhex.yml @@ -0,0 +1,45 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: MattAtlas + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Fixed debug logs not being tagged as debug in the chat." + - bugfix: "Fixed relogging giving you more psi-points." + - bugfix: "Fixed medborgs being unable to download suit sensors." + - rscdel: "Removed the Gambit technomancer spell as it was a hacky and now buggy implementation." + - bugfix: "Fixed roller bags unbuckling themselves."