BeeStation-Hornet icon indicating copy to clipboard operation
BeeStation-Hornet copied to clipboard

Overhaul Xenoarchaeology

Open DrDuckedGoose opened this issue 10 months ago • 75 comments

For those looking, this is also attached to the old wiki page- https://wiki.beestation13.com/view/User:Racc-Off/new_artifacts

About The Pull Request

Commit Often :trollface:

Code

Rewrites the majority of xenoarchaeology code, vastly improving the old systems & implementations. The old code was pretty shit, and had quite a few bugs. These changes improve the majority of code, fixing most of the bugs I'm aware of.

Design

Improves multiple designs and interactions, generally introducing more depth to the shared systems. Overall improves how xenoarchaeology works in terms of department-to-department interaction, and how it functions within science. Previous pain points discussed by players have been addressed and handled in ways that integrate with improving the overall design & flow of artsci.

TODO

Finish relevant playtest todos:

  • [x] Pearl trait initialization, to be or not to be
  • [ ] Science reward values
  • [x] Tracker trait incompatibilities

For me

  • [x] vary twin weights
  • [x] Improve weights and conductivity to be more distinct
  • [x] Add more trait hints
  • [x] Add ability to negative-check traits in labeler
  • [x] Add searching to labeler

Why It's Good For The Game

Improves almost every facet of the artifact experience, for players & coders alike

Testing Photographs and Procedure

Screenshots&Videos

image image image image image image image image image image

Changelog

:cl: remove: Remove artifact pad tweak: Improve artifact code tweak: Reroute artifacts through cargo, adjusts artifact console add: Add plethora of artifact traits add: Add system for custom & player made artifacts add: Add structures to deduce artifacts add: Add structure to 'stabilize' artifacts add: Add item to track artifacts add: Stickers! add: Sticker Gambling /:cl:

DrDuckedGoose avatar Apr 19 '24 09:04 DrDuckedGoose

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar Apr 19 '24 09:04 github-actions[bot]

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar Apr 21 '24 13:04 github-actions[bot]

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar May 04 '24 09:05 github-actions[bot]

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar May 08 '24 09:05 github-actions[bot]

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar May 10 '24 08:05 github-actions[bot]

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar May 11 '24 10:05 github-actions[bot]

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar May 18 '24 11:05 github-actions[bot]

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar May 28 '24 19:05 github-actions[bot]

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar Jun 12 '24 00:06 github-actions[bot]

I will testmerge this once we get bleeding merged.

PowerfulBacon avatar Jun 18 '24 09:06 PowerfulBacon

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar Jun 25 '24 08:06 github-actions[bot]

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar Jun 25 '24 17:06 github-actions[bot]

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar Jun 29 '24 23:06 github-actions[bot]

TM failed. check #coding discord

EvilDragonfiend avatar Jul 03 '24 03:07 EvilDragonfiend

515 changed switch statement stuff to throw more errors about stuff; here's those errors:

code\modules\xenoarchaeology\tools\console\xenoarchaeology_console.dm:186:error: to: range in switch must be from low to high number
code\modules\xenoarchaeology\tools\console\xenoarchaeology_console.dm:188:error: to: range in switch must be from low to high number

HowToLoLu avatar Jul 03 '24 03:07 HowToLoLu

[18:08:22] Runtime in code/modules/xenoarchaeology/traits/traits.dm, line 237: Division by zero [18:10:54] Runtime in code/modules/xenoarchaeology/traits/traits.dm, line 225: Division by zero

EvilDragonfiend avatar Jul 05 '24 18:07 EvilDragonfiend

While i still haven't experienced it much first hand(yet) i've noticed a few things some of them were pointed at you on discord. Like the nuke disk image they sent you, the shield arc, etcetera but in regards to the stickers, which are very cool!, i think you should be able to examine them when they're on someone or not having them be animated, we ran into some issues when some people had a C4-sticker(unsure how they're actually obtained) and they planted it on themselves and others, the sprite of the C4 is already big and since it was animated we didn't had an IC way to know(no examine, no nothing) that it was a sticker, we only ended up knowing once we arrested them and they confessed it was a sticker, which IC is.. kinda weird to justify if there's not enough tools to do so, since that thing was animated and everything, so in order to not break any immersion i consider this should be adressed!

I'll be trying it first hand soon, it looks fun from what i saw!

Fronsis avatar Jul 07 '24 07:07 Fronsis

I'm okay with most of this. The only addition / change I'd make is making stickers appear when you examine the thing they're on. You can mouse over them and see their name, and examine them too, when they're on someone, but it can be hard to aim it when someone is moving.

DrDuckedGoose avatar Jul 07 '24 09:07 DrDuckedGoose

is there a failsafe for selling an artefact after trapping a person into one?

EvilDragonfiend avatar Jul 07 '24 16:07 EvilDragonfiend

image

EvilDragonfiend avatar Jul 08 '24 03:07 EvilDragonfiend

haunted trait should add artifact to poi list

EvilDragonfiend avatar Jul 10 '24 16:07 EvilDragonfiend

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar Jul 10 '24 18:07 github-actions[bot]

de-TM by merge conflict

EvilDragonfiend avatar Jul 10 '24 22:07 EvilDragonfiend

image

EvilDragonfiend avatar Jul 11 '24 00:07 EvilDragonfiend

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar Jul 11 '24 19:07 github-actions[bot]

also, you might know the bug where a beam is directed to north-east. That's because it's targeting a mob that is sent to null-space by artifact trait disappearing. In this case, a beam should be directed to a turf where they disappeared. but I guess this will not be easy to fix because beam code sucks. just be aware of that..

EvilDragonfiend avatar Jul 14 '24 06:07 EvilDragonfiend

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar Jul 14 '24 12:07 github-actions[bot]

Once the 2 critical bugs have been fixed with the effects, I'll base the next review mainly on observations from in-game. If there are some points of code that you could improve with better variable names, less nesting, or just in general clearer code then that would significantly help with the review process

PowerfulBacon avatar Jul 15 '24 22:07 PowerfulBacon

Clarifying my change request:

Let's assume that we have 100 materials. We don't want to make these x100

	var/list/xenoa_bluespace_traits
	var/list/xenoa_plasma_traits
	var/list/xenoa_uranium_traits
	var/list/xenoa_bananium_traits
	var/list/xenoa_pearl_traits

So, if we make a material datum list var/list/xenoa_material_datums, then make the list as...

xenoa_material_datums = list(
		/datum/xenomat/bluespace = [0x00000] Material Bluespace Datum,
		/datum/xenomat/plasma = [0x00001] Material Plasma Datum,
		/datum/xenomat/uranium = [0x00002] Material Uranium Datum,
		/datum/xenomat/pearl = [0x00003] Material Pearl Datum,
		/datum/xenomat/debug = [0x00004] Material Debug Datum)

we can take the material from the subsystem

/proc/foo()
	 // NO
	var/datum/xenomat/artifact_type = new /datum/xenomat/bluespace()
	var/list/focus_traits = SSxenoarchaeology.xenoa_activators & artifact_type.get_trait_list()

	// YES
	var/datum/xenomat/artifact_type = SSxenoarch.get_material(/datum/xenomat/bluespace) 
	var/list/focus_traits = xmat.get_activator_traits() 

EvilDragonfiend avatar Jul 16 '24 03:07 EvilDragonfiend

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar Jul 16 '24 12:07 github-actions[bot]