mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-29 07:59:01 +01:00
A lot of bugfixes. (#20358)
- bugfix: "Fixed PDAs not being automatically updated by the Force Change Name admin action." - bugfix: "Announcements from non-Horizon ships drifting into hazards no longer spawn observer chat. You will only get the announcements if you are on the same z-level. The Horizon will still send its announcements globally." - bugfix: "Offships no longer send newscaster announcements." - bugfix: "Fixed ling stings not working. Again." - bugfix: "The robotics core console no longer reverts into a normal R&D console when disassembled and reassembled." - bugfix: "The robotics core console now has its own circuit that can be made through R&D." - bugfix: "Fixed the message that simple mobs print when they step on a trap." - bugfix: "Fixed the foam sword sprite." - bugfix: "Fixed damaged wall overlays." - bugfix: "Fixed the INDRA field getting messed up by pointing at it." - bugfix: "Apple pies now count for the pie bounty." - bugfix: "Changeling chameleon claws no longer spawn in the warehouse." - bugfix: "Admin click-drag to possess has been fixed." - bugfix: "Added a minimum damage threshold to delimb, in order to stops ridiculously small damage from taking off limbs. The threshold is the organ's max damage divided by 3." - bugfix: "The Pull psionic ability no longer pulls anchored objects." Fixes #17739 Fixes #17369 Fixes #19535 Fixes #19166 Fixes #20184 Fixes #20165 Fixes #20164 Fixes #20117 Fixes #19961 Fixes #20231 Fixes #20277 Fixes #20346 --------- Co-authored-by: Matt Atlas <liermattia@gmail.com>
This commit is contained in:
+16
-10
@@ -264,27 +264,33 @@ Proc for attack log creation, because really why not
|
||||
|
||||
//update our pda and id if we have them on our person
|
||||
var/list/searching = GetAllContents()
|
||||
var/search_id = 1
|
||||
var/search_pda = 1
|
||||
var/search_id = TRUE
|
||||
var/search_pda = TRUE
|
||||
|
||||
for(var/A in searching)
|
||||
if( search_id && istype(A,/obj/item/card/id) )
|
||||
if(search_id && istype(A, /obj/item/card/id) )
|
||||
var/obj/item/card/id/ID = A
|
||||
if(ID.registered_name == oldname)
|
||||
ID.registered_name = newname
|
||||
ID.name = "[newname]'s ID Card ([ID.assignment])"
|
||||
if(!search_pda) break
|
||||
search_id = 0
|
||||
search_id = FALSE
|
||||
|
||||
else if(search_pda && istype(A,/obj/item/modular_computer))
|
||||
if(!search_pda)
|
||||
break
|
||||
|
||||
else if(search_pda && istype(A, /obj/item/modular_computer))
|
||||
var/obj/item/modular_computer/PDA = A
|
||||
if(!PDA.registered_id)
|
||||
continue
|
||||
if(PDA.registered_id.name == oldname)
|
||||
|
||||
if(PDA.registered_id.registered_name == oldname)
|
||||
PDA.name = "PDA-[newname] ([PDA.registered_id.assignment])"
|
||||
if(!search_id) break
|
||||
search_pda = 0
|
||||
return 1
|
||||
search_pda = FALSE
|
||||
|
||||
if(!search_id)
|
||||
break
|
||||
|
||||
return TRUE
|
||||
|
||||
// Generalised helper proc for letting mobs rename themselves
|
||||
/mob/proc/rename_self(var/role, var/allow_numbers=0)
|
||||
|
||||
@@ -47,15 +47,17 @@
|
||||
if(isnewplayer(M))
|
||||
continue
|
||||
|
||||
if(isghost(M) || (!isdeaf(M) && (GET_Z(M) in (zlevels | SSatlas.current_map.admin_levels))))
|
||||
// Due to spam, only print announcements if the ghost is in the matching z-level, OR if it's a Horizon message.
|
||||
if(isghost(M) || (!isdeaf(M) && ((GET_Z(M) in zlevels) || zlevels == SSatlas.current_map.contact_levels)))
|
||||
var/turf/T = get_turf(M)
|
||||
if(T)
|
||||
to_chat(M, msg)
|
||||
if(message_sound && !isdeaf(M) && (M.client?.prefs.sfx_toggles & ASFX_VOX))
|
||||
sound_to(M, message_sound)
|
||||
if(do_newscast)
|
||||
|
||||
if(do_newscast && zlevels == SSatlas.current_map.contact_levels)
|
||||
NewsCast(message, message_title)
|
||||
if(do_print)
|
||||
if(do_print && zlevels == SSatlas.current_map.contact_levels)
|
||||
post_comm_message(message_title, message)
|
||||
Log(message, message_title)
|
||||
|
||||
|
||||
@@ -864,3 +864,11 @@
|
||||
|
||||
//is Moved(old_loc, direction, TRUE, momentum_change = FALSE) in tg
|
||||
Moved(old_loc, direction, TRUE)
|
||||
|
||||
/**
|
||||
* Adds the red drop-shadow filter when pointed to by a mob.
|
||||
* Override if the atom doesn't play nice with filters.
|
||||
*/
|
||||
/atom/movable/proc/add_point_filter()
|
||||
add_filter("pointglow", 1, list(type = "drop_shadow", x = 0, y = -1, offset = 1, size = 1, color = "#F00"))
|
||||
addtimer(CALLBACK(src, PROC_REF(remove_filter), "pointglow"), 2 SECONDS)
|
||||
|
||||
@@ -239,7 +239,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E
|
||||
hairGradient = newGradient
|
||||
//Helper for stingcode
|
||||
|
||||
/mob/proc/sting_can_reach(mob/M as mob, sting_range = 1)
|
||||
/mob/proc/sting_can_reach(mob/M, sting_range = 1)
|
||||
if(M.loc == src.loc)
|
||||
return TRUE //target and source are in the same thing
|
||||
var/target_distance = get_dist(src, M)
|
||||
@@ -250,7 +250,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E
|
||||
to_chat(src, SPAN_WARNING("We cannot reach \the [M] with a sting!"))
|
||||
return FALSE //One is inside, the other is outside something.
|
||||
// Maximum queued turfs set to 25; I don't *think* anything raises sting_range above 2, but if it does the 25 may need raising
|
||||
if(!AStar(src.loc, M.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, max_nodes=25, max_node_depth=sting_range)) //If we can't find a path, fail
|
||||
if(!AStar(get_turf(src), get_turf(M), /turf/proc/AdjacentTurfsRanged, /turf/proc/Distance, max_nodes = 25, max_node_depth = sting_range)) //If we can't find a path, fail
|
||||
to_chat(src, SPAN_WARNING("We cannot find a path to sting \the [M] by!"))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -1313,7 +1313,7 @@
|
||||
/obj/item/toy/cultsword
|
||||
name = "foam sword"
|
||||
desc = "An arcane weapon wielded by the followers of the hit Saturday morning cartoon \"King Nursee and the Acolytes of Heroism\"."
|
||||
icon = 'icons/obj/sword.dmi'
|
||||
icon = 'icons/obj/sword_64.dmi'
|
||||
icon_state = "cultblade"
|
||||
item_state = "cultblade"
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
|
||||
@@ -6,17 +6,6 @@
|
||||
name = T_BOARD("R&D control console")
|
||||
build_path = /obj/machinery/computer/rdconsole/core
|
||||
|
||||
/obj/item/circuitboard/rdconsole/attackby(obj/item/attacking_item, mob/user)
|
||||
if(attacking_item.isscrewdriver())
|
||||
user.visible_message(SPAN_NOTICE("\The [user] adjusts the jumper on \the [src]'s access protocol pins."),
|
||||
SPAN_NOTICE("You adjust the jumper on the access protocol pins."))
|
||||
|
||||
if(src.build_path == /obj/machinery/computer/rdconsole/core)
|
||||
src.name = T_BOARD("RD Console - Robotics")
|
||||
src.build_path = /obj/machinery/computer/rdconsole/robotics
|
||||
to_chat(user, SPAN_NOTICE("Access protocols set to robotics."))
|
||||
else
|
||||
src.name = T_BOARD("RD Console")
|
||||
src.build_path = /obj/machinery/computer/rdconsole/core
|
||||
to_chat(user, SPAN_NOTICE("Access protocols set to default."))
|
||||
return
|
||||
/obj/item/circuitboard/robotics_console
|
||||
name = T_BOARD("robotics control console")
|
||||
build_path = /obj/machinery/computer/rdconsole/robotics
|
||||
|
||||
@@ -265,7 +265,7 @@
|
||||
|
||||
//Give a simple message and return if it's not a human
|
||||
if(!ishuman(L))
|
||||
L.visible_message(SPAN_DANGER("You step on \the [src]!"))
|
||||
L.visible_message(SPAN_DANGER("[L] steps on \the [src]!"))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/human = L
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
damage_image = damage_overlays[overlay]
|
||||
overlays_to_add += damage_image
|
||||
|
||||
AddOverlays(overlays_to_add, ATOM_ICON_CACHE_PROTECTED)
|
||||
AddOverlays(overlays_to_add)
|
||||
UNSETEMPTY(reinforcement_images)
|
||||
QUEUE_SMOOTH(src)
|
||||
if(smoothing_flags & SMOOTH_UNDERLAYS)
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
/obj/item/reagent_containers/food/snacks/plump_pie,
|
||||
/obj/item/reagent_containers/food/snacks/xemeatpie,
|
||||
/obj/item/reagent_containers/food/snacks/cherrypie,
|
||||
/obj/item/reagent_containers/food/snacks/applepie,
|
||||
/obj/item/reagent_containers/food/snacks/chocolate_rikazu,
|
||||
/obj/item/reagent_containers/food/snacks/fruit_rikazu,
|
||||
/obj/item/reagent_containers/food/snacks/meat_rikazu,
|
||||
|
||||
@@ -213,7 +213,8 @@ STOCK_ITEM_COMMON(gloves, 3.3)
|
||||
/obj/item/clothing/gloves/fluff,
|
||||
/obj/item/clothing/gloves/swat/bst,
|
||||
/obj/item/clothing/gloves/powerfist,
|
||||
/obj/item/clothing/gloves/claws
|
||||
/obj/item/clothing/gloves/claws,
|
||||
/obj/item/clothing/gloves/chameleon/changeling
|
||||
)
|
||||
exclusion += typesof(/obj/item/clothing/gloves/rig)
|
||||
exclusion += typesof(/obj/item/clothing/gloves/lightrig)
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
universal_speak = 1
|
||||
incorporeal_move = INCORPOREAL_GHOST
|
||||
mob_thinks = FALSE
|
||||
interaction_flags_atom = INTERACT_ATOM_MOUSEDROP_IGNORE_CHECKS
|
||||
|
||||
/// If the ghost can re-enter their corpse.
|
||||
var/can_reenter_corpse
|
||||
|
||||
@@ -430,9 +430,8 @@
|
||||
addtimer(CALLBACK(src, PROC_REF(end_pointing_effect), pointing_effect), 2 SECONDS)
|
||||
else if(!invisibility)
|
||||
var/atom/movable/M = pointing_at
|
||||
M.add_filter("pointglow", 1, list(type = "drop_shadow", x = 0, y = -1, offset = 1, size = 1, color = "#F00"))
|
||||
addtimer(CALLBACK(M, TYPE_PROC_REF(/atom/movable, remove_filter), "pointglow"), 2 SECONDS)
|
||||
pointing_at.handle_pointed_at(src)
|
||||
M.add_point_filter()
|
||||
M.handle_pointed_at(src)
|
||||
SEND_SIGNAL(src, COMSIG_MOB_POINT, pointing_at)
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -420,7 +420,7 @@
|
||||
if(spillover > 0)
|
||||
burn = max(burn - spillover, 0)
|
||||
|
||||
handle_limb_gibbing(used_weapon, brute_dam, burn_dam)
|
||||
handle_limb_gibbing(used_weapon, brute, burn)
|
||||
|
||||
if(brute_dam + brute > min_broken_damage && prob(brute_dam + brute * (1 + blunt)))
|
||||
if(blunt || brute > FRACTURE_AND_TENDON_DAM_THRESHOLD)
|
||||
@@ -513,7 +513,6 @@
|
||||
//If limb took enough damage, try to cut or tear it off
|
||||
if(owner && loc == owner && !is_stump())
|
||||
if((limb_flags & ORGAN_CAN_AMPUTATE))
|
||||
|
||||
if((brute_dam + burn_dam) >= (max_damage * GLOB.config.organ_health_multiplier))
|
||||
|
||||
var/edge_eligible = FALSE
|
||||
|
||||
@@ -588,6 +588,9 @@
|
||||
AddEnergy(hitting_projectile.damage)
|
||||
update_icon()
|
||||
|
||||
/obj/effect/fusion_em_field/add_point_filter()
|
||||
return
|
||||
|
||||
/particles/fusion
|
||||
width = 500
|
||||
height = 500
|
||||
|
||||
@@ -44,3 +44,6 @@
|
||||
if(mover?.movement_type & PHASING)
|
||||
return TRUE
|
||||
return ismob(mover)
|
||||
|
||||
/obj/effect/fusion_particle_catcher/add_point_filter()
|
||||
return
|
||||
|
||||
@@ -27,10 +27,14 @@
|
||||
var/atom/movable/AM = hit_atom
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(isobj(hit_atom) && w_class < WEIGHT_CLASS_GIGANTIC)
|
||||
var/obj/object = hit_atom
|
||||
if(object.anchored)
|
||||
to_chat(user, SPAN_WARNING("That object is bolted down!"))
|
||||
return
|
||||
if(length(get_line(hit_atom, user)))
|
||||
if(H.put_in_any_hand_if_possible(hit_atom))
|
||||
return
|
||||
user.visible_message(SPAN_WARNING("[user] extends [user.get_pronoun("his")] hand at [hit_atom]and pulls!"), SPAN_WARNING("You mimic pulling at [hit_atom]!"))
|
||||
user.visible_message(SPAN_WARNING("[user] extends [user.get_pronoun("his")] hand at [hit_atom] and pulls!"), SPAN_WARNING("You mimic pulling at [hit_atom]!"))
|
||||
if(ismob(hit_atom))
|
||||
to_chat(hit_atom, SPAN_WARNING("A psychic force pulls you!"))
|
||||
AM.throw_at(user, 10, 7)
|
||||
|
||||
@@ -23,6 +23,11 @@
|
||||
req_tech = list(TECH_DATA = 4)
|
||||
build_path = /obj/item/circuitboard/rdconsole
|
||||
|
||||
/datum/design/circuit/computer/robotics_console
|
||||
name = "Robotics Core Console"
|
||||
req_tech = list(TECH_DATA = 4)
|
||||
build_path = /obj/item/circuitboard/robotics_console
|
||||
|
||||
/datum/design/circuit/computer/comm_monitor
|
||||
name = "Telecommunications Monitoring Console"
|
||||
req_tech = list(TECH_DATA = 3)
|
||||
|
||||
@@ -874,6 +874,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
id = 1
|
||||
req_access = list(ACCESS_ROBOTICS)
|
||||
allow_analyzer = FALSE
|
||||
circuit = /obj/item/circuitboard/robotics_console
|
||||
|
||||
/obj/machinery/computer/rdconsole/core
|
||||
name = "core R&D console"
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
################################
|
||||
# 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
|
||||
# - (fixes bugs)
|
||||
# wip
|
||||
# - (work in progress)
|
||||
# qol
|
||||
# - (quality of life)
|
||||
# soundadd
|
||||
# - (adds a sound)
|
||||
# sounddel
|
||||
# - (removes a sound)
|
||||
# rscadd
|
||||
# - (adds a feature)
|
||||
# rscdel
|
||||
# - (removes a feature)
|
||||
# imageadd
|
||||
# - (adds an image or sprite)
|
||||
# imagedel
|
||||
# - (removes an image or sprite)
|
||||
# spellcheck
|
||||
# - (fixes spelling or grammar)
|
||||
# experiment
|
||||
# - (experimental change)
|
||||
# balance
|
||||
# - (balance changes)
|
||||
# code_imp
|
||||
# - (misc internal code change)
|
||||
# refactor
|
||||
# - (refactors code)
|
||||
# config
|
||||
# - (makes a change to the config files)
|
||||
# admin
|
||||
# - (makes changes to administrator tools)
|
||||
# server
|
||||
# - (miscellaneous changes to server)
|
||||
#################################
|
||||
|
||||
# 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, this gets changed to [] after reading. Just remove the brackets when you add new shit.
|
||||
# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
|
||||
changes:
|
||||
- bugfix: "Fixed PDAs not being automatically updated by the Force Change Name admin action."
|
||||
- bugfix: "Announcements from non-Horizon ships drifting into hazards no longer spawn observer chat. You will only get the announcements if you are on the same z-level. The Horizon will still send its announcements globally."
|
||||
- bugfix: "Offships no longer send newscaster announcements."
|
||||
- bugfix: "Fixed ling stings not working. Again."
|
||||
- bugfix: "The robotics core console no longer reverts into a normal R&D console when disassembled and reassembled."
|
||||
- bugfix: "The robotics core console now has its own circuit that can be made through R&D."
|
||||
- bugfix: "Fixed the message that simple mobs print when they step on a trap."
|
||||
- bugfix: "Fixed the foam sword sprite."
|
||||
- bugfix: "Fixed damaged wall overlays."
|
||||
- bugfix: "Fixed the INDRA field getting messed up by pointing at it."
|
||||
- bugfix: "Apple pies now count for the pie bounty."
|
||||
- bugfix: "Changeling chameleon claws no longer spawn in the warehouse."
|
||||
- bugfix: "Admin click-drag to possess has been fixed."
|
||||
- bugfix: "Fixed the minimum damage threshold to delimb. Limbs won't be cut off or gibbed by very small amounts of damage anymore."
|
||||
- bugfix: "The Pull psionic ability no longer pulls anchored objects."
|
||||
Reference in New Issue
Block a user