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\dispel.dm"
|
||||||
#include "code\game\gamemodes\technomancer\spells\energy_siphon.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\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\illusion.dm"
|
||||||
#include "code\game\gamemodes\technomancer\spells\instability_tap.dm"
|
#include "code\game\gamemodes\technomancer\spells\instability_tap.dm"
|
||||||
#include "code\game\gamemodes\technomancer\spells\mark_recall.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
|
if(!C.prefs) //This is to avoid null.toggles runtime error while still initialyzing players preferences
|
||||||
return
|
return
|
||||||
if(C.prefs.toggles & CHAT_DEBUGLOGS)
|
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")
|
send_gelf_log(short_message = text, long_message = "[time_stamp()]: [text]", level = level, category = "DEBUG")
|
||||||
|
|
||||||
/// Logging for loading and caching assets
|
/// 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].", \
|
"<b>[user.name]</b> unbuckles [MA.name].", \
|
||||||
SPAN_NOTICE("You were unbuckled from [src] by [user.name]."),\
|
SPAN_NOTICE("You were unbuckled from [src] by [user.name]."),\
|
||||||
SPAN_NOTICE("You hear metal clanking."))
|
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
|
else
|
||||||
MA.visible_message(\
|
MA.visible_message(\
|
||||||
"<b>[MA.name]</b> unbuckles themselves.",\
|
"<b>[MA.name]</b> unbuckles themselves.",\
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
program_key_icon_state = "teal_key"
|
program_key_icon_state = "teal_key"
|
||||||
extended_desc = "This program connects to life signs monitoring system to provide basic information on crew health."
|
extended_desc = "This program connects to life signs monitoring system to provide basic information on crew health."
|
||||||
required_access_run = access_medical
|
required_access_run = access_medical
|
||||||
required_access_download = access_cmo
|
required_access_download = access_medical
|
||||||
requires_ntnet = TRUE
|
requires_ntnet = TRUE
|
||||||
network_destination = "crew lifesigns monitoring system"
|
network_destination = "crew lifesigns monitoring system"
|
||||||
size = 11
|
size = 11
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
else if(psionic_rank == PSI_RANK_HARMONIOUS)
|
else if(psionic_rank == PSI_RANK_HARMONIOUS)
|
||||||
aura_color = "#64c464"
|
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)
|
switch(psionic_rank)
|
||||||
if(PSI_RANK_HARMONIOUS)
|
if(PSI_RANK_HARMONIOUS)
|
||||||
psi_points = PSI_POINTS_HARMONIOUS
|
psi_points = PSI_POINTS_HARMONIOUS
|
||||||
@@ -37,11 +37,13 @@
|
|||||||
psi_points = PSI_POINTS_APEX
|
psi_points = PSI_POINTS_APEX
|
||||||
if(PSI_RANK_LIMITLESS)
|
if(PSI_RANK_LIMITLESS)
|
||||||
psi_points = PSI_POINTS_LIMITLESS
|
psi_points = PSI_POINTS_LIMITLESS
|
||||||
|
else
|
||||||
|
psi_points = 0
|
||||||
/// We had special abilities unique to our level, so get rid of 'em.
|
/// We had special abilities unique to our level, so get rid of 'em.
|
||||||
if(last_psionic_rank > PSI_RANK_HARMONIOUS)
|
if(last_psionic_rank > PSI_RANK_HARMONIOUS)
|
||||||
wipe_user_abilities()
|
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
|
psi_points = 0
|
||||||
wipe_user_abilities()
|
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