# Xenoarcheology
- Refactor xenoarch completely
- Componentize finds, large and small, entirely
- Datumize anomaly effects
- Allow applying to both small finds and large finds
- Hopefully componentize the holder object to not require specific subtypes for this to work.
- Small find = item finds, not necessarily small in size
- Large find = structure/machine
- Fix the "anomaly batteries"
- Harvest particles from things to charge.
- Apply effect in a structured/targeted/controlled way.
- Small finds
- See exploration section - items that are useful but require unlocking/experimentation to use
- Aesthetic-only items
- Can have anomaly effects generated on it, regardless of what kind of item it is
- Rarity generation - functional items with anomaly effects are rarest, functional items OR anomaly items are middle of the road, aesthetic items are common
- Large finds
- Rarity generation like above
- Randomly roll special, functional machinery (should almost never be just something found on station)
- Always nearly indestructible
- Always has anomalous effects
- Can have more than two, "wired" up in complex, procedural ways.
- Scanner machines
- Scanner pads used to scan machinery
- The spectrometer-thingy is used to unlock/scan small items
- For **all but the most complicated, rare items, make the minigame very, very forgiving, or just skip it entirely**
- Let's be entirely honest NO ONE wants to play that crappy game on NanoUI. Fight me.
- Rarity
- Find rarity determined by Zlevel
- In general more common
- Radiation leakage more common but lesser
- **Rework radiation first** - small amounts of radiation will be trivial/ignored entirely, only when you stick around a radiation leakage for a while do you start getting hurt.
- Extra
- Need a good way to handle custom stuff - admin events hooking into these things would be amazing.
## Xenoarch Effect Plans
Uh Oh.
cast methods:
```ts
// hit single entity
/afflict_entity(atom/target, power, is_burst)
// optimized variation of geometry for single turf
/afflict_tile(turf/target, power, is_burst)
// list of turfs
/afflict_geometry(list/turf/turfs, power, is_burst)
// AOE automaton
/afflict_radius(turf/center, radius, power, is_burst)
```
cast systems
- power - quadratic power increase with higher power
- falloff - semi-quadratic power increase with lower falloff
- polarity - multi-polarity, decides how effects act; some polarities can even reverse or mutate effects. 1 to INFINITY.
effect types
- all effects have 'scaling' and 'polarity_awareness' considerations, with latter determining if inverting particle charge does anything
- *some* mob effects should generally have a 'sticky' factor so even non-permanent effects can stick for a short duration after being removed from the source particle of the effect.
- anything not localized, persistent, transmutating, etc, implicitly gets subtyped as "/regular", as they are context-free.
```ts
//* destructive automata *//
// ignites anything that burns exothermically with an ignition temperature at or below to temperature
/ignition(temperature)
// dynamic explosion with given power, falloff, resistance to blocking entities, and power to overwhelm rigid entities
/explosion(power, falloff, block_resistance, rigidity)
// damage nearby objects with given material flags (and objects without materials support if require_material is not set)
/integrity_shred(power, material_flags, require_material, affects_synths)
//* constructive automata *//
// shields from damage
/damage_shield(...)
// flatly deflects damage under a certain amount
/damage_deflect(...)
// shields from explosions, damping explosions with given power, at a given rigidity
/explosion_shield(power, rigidity)
// repair nearby objects with given material flags (and objects without materials support if require_material is not set)
/integrity_repair(power, material_flags, require_material, affects_synths)
//* ZAS manipulation *//
// add thermal energy to environment
/atmos_heat(...)
// remove thermal energy from environment
/atmos_cool(...)
// dynamic thermal adjustment from environment via algorithm
/atmos_thermal(...)
// scrub certain gases from the environment
/atmos_scrub(list/gas_ids, mol_boost, volume_static, volume_ratio)
// release gases into environment
/atmos_synth(list/gas_ids_and_amounts, temperature, volume_boost_ratio)
// literally just erase air
/atmos_siphon(mol_boost, volume_static, volume_ratio)
//* electronics disruption *//
// damaging ionic pulse
/machine_emp(power, affects_synths)
// disruption pulse with given ratio of non-dangerous effects to dangerous effects
/machine_hack(power, danger_ratio, affects_synths)
//* electronics modification *//
// modulate op speed of nearby machinery
/machine_chrono(multiplier, affects_synths)
// modulate vulnerability to disruption
/machine_failsafe(multiplier, affects_synths)
// modulate power usage
/machine_efficiency(multiplier, affects_synths)
// fixes errors
/machine_debugging(multiplier, affects_synths)
//* entity physics *//
// negate gravity entirely for things within
/float(force)
// decrease weight for things inside, including for living mob slowdown calcs
/weight_mitigation(mitigation)
// random movement
/inertial_shuffle(force)
// makes it harder to move
/inertial_halt(force)
// high gravity, slows & potentially crushes mobs
/gravity_crush(force)
// blocks physics
/forcefield(pass_flags, blocks_air)
//* space-time *//
// speeds up time
/temporal_haste(multiplier)
// slows down time
/temporal_slow(multiplier)
// full timestop
/timestop()
//* energy emissions *//
// normal radiation pulse; expensive, fully simulated.
/radiation_wave()
// z-level pulse; slightly less expensive, hilariously dangerous
/radiation_burst()
// light emission
/photonic_emission(color)
// light dampening
/photonic_vacuum()
//* living mob effects - machine / object effects can sometimes affect synths too. *//
// blood, antibody, etc regeneration, speeds up healing a slight bit too. if bad_stuff_as_well is set, this also affects viruses and infections.
/mitosis_acceleration(biology_flags, bad_stuff_as_well)
// opposite of mitosis_acceleration
/mitosis_disruption(biology_flags, bad_stuff_as_well)
// heals tissues of given biologies
/fleshmend(biology_flags)
// rends tissues of given biologies. if violent is set, burst will not be considered a gradual effect and can sever limbs.
/fleshrend(biology_flags, violent)
// helps purge toxins from organs
/tox_purge(biology_flags)
// helps purge **everything** from organs
/bio_purge(biology_flags)
// poisons people
/metabolic_disruption(biology_flags)
//* intelligent mob effects *//
// disrupt targeting & intelligence of given ai intelligence types
/disrupt_sapient(intelligence_flags)
// make sapient life better at aiming / intelligent tasks
/focus_sapient(intelligence_flags)
//* special - locality-contextual effects, TBD due to locality contexts being required. *//
// gravity - shifts entities towards/away
/localized/gravity(polarity, ...)
// teleportation - teleports entities chaotically
/localized/teleport_chaotic(...)
// teleportation - teleports entities towards/away
/localized/teleport_yank(...)
// teleportation - controllable, point to point
/localized/teleport_stable(...)
// attract towards location nearby ais of given ai intelligence types
/localized/provoke_sapient(intelligence_flags)
// repel from location
/localized/repel_sapient(intelligence_flags)
//* special - semi-permanent effects, TBD due to needing to have a way to limit effect amount *//
// soften object structure
// /persistent/material_soften() - need better materials science first
// densify object structure
// /persistent/material_densify() - need better materials science first
// harden object structure
// /persistent/material_harden() - need better materials science first
// hollow out object structure
// /persistent/material_hollowify() - need better materials science first
// make object structure less elastic
// /persistent/material_brittlify() - need better materials science first
// make object structure more elastic
// /persistent/material_elastify() - need better materials science first
// make object have higher overall hp
/persistent/object_toughen()
// make object have lower overall hp
/persistent/object_weaken()
// modify one's organs, whether internal or external, of given biologies
/persistent/organ_refactoring/*(biology_flags, ...)
/persistent/organ_refactoring/integrity
/persistent/organ_refactoring/efficiency
/persistent/organ_refactoring/control
/persistent/organ_refactoring/reliability
/persistent/organ_refactoring/physiology_modifier
/persistent/organ_refactoring/physiology_reset
// uh oh; the synth version of genetic injections
/persistent/organ_refactoring/synthetic_reformat
// Uh Oh! Fuck!
/persistent/genetic_scrambling()
// UH OH. FUCK.
/persistent/genetic_injection()
// might actually be bad for you if you have powers
/persistent/genetic_normalizing()
// makes genetics more stable
/persistent/genetic_stabilize()
// makes genetics more effective
/persistent/genetic_intensify()
// modify one's appearance; can modify genetics if genetic_propagation is set.
/persistent/appearance_refactoring/*(biology_flags, genetic_propagation, ...)
/persistent/appearance_refactoring/skin
/persistent/appearance_refactoring/marking
/persistent/appearance_refactoring/hair
/persistent/appearance_refactoring/shape
/persistent/appearance_refactoring/eyes
// we probably shouldn't use this actually
/persistent/appearance_refactoring/gender
// make something more compatible with xenoarch (DANGEROUS)
/persistent/anomalous_amplifier
// make some item operate faster
/persistent/item_overclock
// dynamically inject a component into something; used to create fucky-wucky tools, etc
/persistent/component_injection/*
//* special - transmutation effects *//
// cook food in some way
/transmutating/cook_food
```