mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-21 23:52:12 +00:00
Fixes a few bugs. (#17048)
* Fixes a few bugs. * bodybag --------- Co-authored-by: Matt Atlas <liermattia@gmail.com>
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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, "<span class='debug'>DEBUG: [text]</span>")
|
||||
send_gelf_log(short_message = text, long_message = "[time_stamp()]: [text]", level = level, category = "DEBUG")
|
||||
|
||||
/// Logging for loading and caching assets
|
||||
|
||||
@@ -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)
|
||||
@@ -133,6 +133,11 @@
|
||||
"<b>[user.name]</b> 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(\
|
||||
"<b>[user]</b> unbuckles \the [MA] from [src].",\
|
||||
SPAN_NOTICE("You unbuckle \the [MA] from [src]."),\
|
||||
SPAN_NOTICE("You hear metal clanking."))
|
||||
else
|
||||
MA.visible_message(\
|
||||
"<b>[MA.name]</b> unbuckles themselves.",\
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
45
html/changelogs/mattatlas-cyberhex.yml
Normal file
45
html/changelogs/mattatlas-cyberhex.yml
Normal file
@@ -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."
|
||||
Reference in New Issue
Block a user