Merge remote-tracking branch 'upstream/master' into spook

This commit is contained in:
Archie
2022-04-20 01:50:11 -03:00
972 changed files with 120336 additions and 129341 deletions
@@ -160,3 +160,36 @@
usr.forceMove(get_turf(src))
usr.visible_message("<span class='warning'>[user] climbed over \the [src]!</span>")
/obj/structure/railing/handrail
name = "handrail"
desc = "A waist high handrail, perhaps you could climb over it."
icon = 'hyperstation/icons/obj/railings.dmi'
icon_modifier = "hand_"
icon_state = "hand_railing0"
max_integrity = 100
/obj/structure/railing/handrail/update_icon(var/UpdateNeighgors = 1)
NeighborsCheck(UpdateNeighgors)
overlays.Cut()
if (!check || !anchored)//|| !anchored
icon_state = "[icon_modifier]railing0"
else
icon_state = "[icon_modifier]railing1"
if (check & 32)
overlays += image ('hyperstation/icons/obj/railings.dmi', src, "[icon_modifier]corneroverlay")
if ((check & 16) || !(check & 32) || (check & 64))
overlays += image ('hyperstation/icons/obj/railings.dmi', src, "[icon_modifier]frontoverlay_l")
if (!(check & 2) || (check & 1) || (check & 4))
overlays += image ('hyperstation/icons/obj/railings.dmi', src, "[icon_modifier]frontoverlay_r")
if(check & 4)
switch (src.dir)
if (NORTH)
overlays += image ('hyperstation/icons/obj/railings.dmi', src, "[icon_modifier]mcorneroverlay", pixel_x = 32)
if (SOUTH)
overlays += image ('hyperstation/icons/obj/railings.dmi', src, "[icon_modifier]mcorneroverlay", pixel_x = -32)
if (EAST)
overlays += image ('hyperstation/icons/obj/railings.dmi', src, "[icon_modifier]mcorneroverlay", pixel_y = -32)
if (WEST)
overlays += image ('hyperstation/icons/obj/railings.dmi', src, "[icon_modifier]mcorneroverlay", pixel_y = 32)
+65
View File
@@ -0,0 +1,65 @@
#define REGENERATION_DELAY 60 // After taking damage, how long it takes for automatic regeneration to begin for megacarps (ty robustin!)
/mob/living/simple_animal/hostile/crystal
name = "pellucyte"
desc = "A floating crystal with orbiting smaller crystals."
icon = 'hyperstation/icons/mob/crystal.dmi'
icon_state = "crystal"
icon_living = "crystal"
icon_dead = "crystal"
mob_biotypes = MOB_BEAST
speak_chance = 0
turns_per_move = 10
response_help = "touches"
response_disarm = "gently pushes aside"
response_harm = "hits"
emote_taunt = list("sings")
taunt_chance = 20
speed = 0
maxHealth = 40
health = 40
spacewalk = TRUE
harm_intent_damage = 8
obj_damage = 50
melee_damage_lower = 15
melee_damage_upper = 15
attacktext = "slams"
attack_sound = 'sound/creatures/crystal_hit.ogg'
speak_emote = list("sings")
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
maxbodytemp = 3500
faction = list("carp")
movement_type = FLYING
pressure_resistance = 500
gold_core_spawnable = HOSTILE_SPAWN
var/regen_cooldown = 0 //Used for how long it takes before a healing will take place default in 60 seconds
var/regen_amount = 1 //How much is healed pre regen cooldown
del_on_death = TRUE
pixel_x = -8
/mob/living/simple_animal/hostile/crystal/Life()
. = ..()
if(regen_amount && regen_cooldown < world.time)
heal_overall_damage(regen_amount)
if(stat)
return
if(prob(15))
playsound(src, 'sound/creatures/crystal_idle.ogg', 100)
/mob/living/simple_animal/hostile/crystal/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
. = ..()
if(regen_amount)
regen_cooldown = world.time + REGENERATION_DELAY
/mob/living/simple_animal/hostile/crystal/AttackingTarget()
. = ..()
if(. && ishuman(target))
var/mob/living/carbon/human/H = target
H.adjustStaminaLoss(8)
/mob/living/simple_animal/hostile/crystal/Destroy()
playsound(src, 'sound/creatures/crystal_death.ogg', 100)
new /obj/effect/decal/cleanable/glass(src.loc)
return ..()
@@ -25,6 +25,9 @@
dat += "<a href='byond://?src=[REF(src)];container=1'>Fill container</A>"
dat += "(Use a container in your hand to collect your seminal fluid.)<BR>"
dat += "<a href='byond://?src=[REF(src)];climaxself=1'>Climax on self</A>"
dat += "(Stimulate a sexual organ to climax onto yourself.)<BR>"
var/mob/living/carbon/human/C = usr
if(C && C.w_uniform || C.wear_suit) //if they are wearing cloths
dat += "<a href='byond://?src=[REF(src)];clothesplosion=1'>Explode out of clothes</A>"
@@ -160,6 +163,14 @@
to_chat(usr, "<span class='warning'>You aren't aroused enough for that! </span>")
return
if(href_list["climaxself"])
if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
H.climaxself()
return
else
to_chat(usr, "<span class='warning'>You aren't aroused enough for that! </span>")
return
if(href_list["climax"])
if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
H.climaxalone(FALSE)
@@ -340,17 +351,14 @@ obj/screen/arousal/proc/kiss()
/mob/living/carbon/human/proc/kisstarget(mob/living/L)
src << browse(null, "window=arousal") //closes the arousal window, if its open, mainly to stop spam
if(isliving(L)) //is your target living? Living people can resist your advances if they want to via moving.
if(iscarbon(L))
src.visible_message("<span class='notice'>[src] is about to kiss [L]!</span>", \
"<span class='notice'>You're attempting to kiss [L]!</span>", \
"<span class='notice'>You're attempting to kiss with something!</span>")
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "kissed", /datum/mood_event/kiss) //how cute, affection is nice.
//Well done you kissed it/them!
L.adjustPainLoss(-5, 0) //mommas kisses always stop alittle pain..
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "kissed", /datum/mood_event/kiss) //how cute, affection is nice.
src.visible_message("<span class='notice'>[src] kisses [L]!</span>", \
"<span class='notice'>You kiss [L]!</span>", \
"<span class='notice'>You kiss something!</span>")
/mob/living/carbon/human/proc/climaxalone()
//we dont need hands to climax alone, its hands free!
var/obj/item/organ/genital/picked_organ
@@ -503,4 +511,29 @@ obj/screen/arousal/proc/kiss()
cut_overlay(mutable_appearance('hyperstation/icons/effects/cumoverlay.dmi', "cum_large"))
if(cum_splatter_icon)
cut_overlay(cum_splatter_icon)
return TRUE
return TRUE
/mob/living/carbon/human/proc/climaxself()
if(restrained(TRUE))
to_chat(src, "<span class='warning'>You can't do that while restrained!</span>")
return
var/free_hands = get_num_arms()
if(!free_hands)
to_chat(src, "<span class='warning'>You need at least one free arm.</span>")
return
for(var/helditem in held_items)
if(isobj(helditem))
free_hands--
if(free_hands <= 0)
to_chat(src, "<span class='warning'>You're holding too many things.</span>")
return
//We got hands, let's pick an organ
var/obj/item/organ/genital/picked_organ
picked_organ = pick_masturbate_genitals()
if(picked_organ)
src << browse(null, "window=arousal") //closes the window
mob_masturbate(picked_organ, cover = TRUE)
return
else //They either lack organs that can masturbate, or they didn't pick one.
to_chat(src, "<span class='warning'>You cannot climax without choosing genitals.</span>")
return
@@ -326,7 +326,7 @@
Most stable colonies, stations, civilizations, planets, or anywhere on the spectrum is often backed by the firm hand of Kinaris- underneath one rule: \
Be Radiant."
history = ""
work = "Weave-research, conversion, and colony management"
work = "Weave-research, conversion, uplifting, and colony management"
headquarters = "Holy City of Radiant Hearth, Myril"
motto = "Be Radiant"
@@ -361,6 +361,7 @@
"Salis Major orbit",
"a megastructure at Kappa Andromedae",
"Radiant Hearth",
"a dockyard at Procella, Tremora",
"sector command at Vivida Laetus",
"a dissonant tear at RR Lyra",
"a city-station at Kappa Andromedae",
@@ -384,7 +385,7 @@
Dzar works side-by-side with Kinaris, where Radiant Technology is their reward in return for high-grade metals."
history = ""
work = "metalsmithing, mining, and material research"
headquarters = "the hollow-world of Salis Major"
headquarters = "the hollow-world of Salis Primary A-4"
motto = "in virtue we trust"
ship_prefixes = list("DZ" = "hauling", "DZ" = "cargo", "DZA" = "asset security")
@@ -414,6 +415,7 @@
"a ringworld at Incandesce Seconda",
"Salis Major orbit",
"a megastructure at Kappa Andromedae",
"a dockyard at Procella, Tremora",
"the rings of Layenia",
"Dzar metalworking at Loto",
"a metalworking site at Salis Major",
@@ -449,9 +451,61 @@
concerns peacefully through vigilance."
history = ""
work = "contracted policework"
headquarters = "Incandesce Seconda"
headquarters = "the ringworld of Incandesce Primara"
motto = "secure the people, save the future"
ship_prefixes = list("ZCO" = "transportation", "ZC" = "patrol")
autogenerate_destination_names = TRUE
autogenerate_destination_names = TRUE
//Thanks Hellcelot for this one!
/datum/lore/organization/titanceramics
name = "Titan Piezoelectrics and Ceramics"
short_name = "Titan Ceramics"
desc = "Titan Ceramics was the primary source of prominent electrical power on Tremora for it's lifespan, with extravagent materials and unique ceramic mixes that supported \
incredibly efficient production of energy in bulk. Not only did they provide energy for a once-struggling civilization, they brought upon artistic desire and talent for those \
who would seek their ceramics. Value in energy is equal to value in art in their eyes, with only the finest materials and expertly-tested conditions to meet the quality of \
their work. Despite the overwhelming size difference of the housing species, value is still sought from both sides, resulting in multi-size accomodations for their ceramics. \
When cheap yet efficient power is required without the Weave, Titan Ceramics is there."
history = ""
work = "Production of power-efficient piezoelectric ceramics and craft"
headquarters = "The Storm Capitol of Procella, Tremora"
motto = ""
ship_prefixes = list("TC" = "transportation", "TCF" = "freight", "TCR" = "research")
ship_names = list(
"Noki",
"Moyai",
"Megalodon",
"Mako",
"Minnow",
"Tsunami",
"North Star",
"Tempest",
"Eye of the Storm",
"Aquarius",
"Marinia",
"Thalassus",
"Stormwind"
)
autogenerate_destination_names = TRUE
/datum/lore/organization/syntech
name = "Synergized Technology"
short_name = "SynTech"
desc = "Synergized Technology- commonly known as SynTech- is a company which leads the complex solutions in any galaxy's biggest problem: accomodating for the size of life. \
As civilization grew more welcoming to different ideals and lifestyles, it became more difficult and disasterous to deal with the extreme size difference from one alien \
species to the other. Not only did this spark an incredible amount of regulations from AzureGov, but Kinaris's interest was piqued to keep peace over all; and that included \
accomodating for any species, whether or not they stood above a mountain, or below an ant hill. The high demand of multi-size rights and technology was driven into SynTech's \
hands, where they would provide and assist in regulating consistent and meaningful products to ease interaction from one to the next. Not only do they supply incredibly \
advanced, highly-regulated technology, they also help in consistent planning and regulation in most cities to keep traffic from most differently-sized species without \
havoc. Without SynTech, galaxies would look like a fairly bland place, where one size rules above all."
history = ""
work = "Production and selling of size-altering technology, as well as accomodating the planning of infrastructure to support many sizes."
headquarters = "The City-Planet of Jovias, Nembus"
motto = "Modern solutions, big and small"
ship_prefixes = list("SYT" = "transportation", "SYTF" = "freight", "XSYT" = "scaler", "SYT-I" = "constructor")
autogenerate_destination_names = TRUE
@@ -0,0 +1,11 @@
/datum/gear/syntech/ring
name = "Normalizer Ring"
category = SLOT_GLOVES
path = /obj/item/clothing/gloves/ring/syntech
cost = 6
/datum/gear/syntech/band
name = "Normalizer Band"
category = SLOT_GLOVES
path = /obj/item/clothing/gloves/ring/syntech/band
cost = 6
@@ -0,0 +1,17 @@
/datum/gear/syntech/pendant
name = "Normalizer Pendant"
category = SLOT_NECK
path = /obj/item/clothing/neck/syntech
cost = 6
/datum/gear/syntech/choker
name = "Normalizer Choker"
category = SLOT_NECK
path = /obj/item/clothing/neck/syntech/choker
cost = 6
/datum/gear/syntech/collar
name = "Normalizer Collar"
category = SLOT_NECK
path = /obj/item/clothing/neck/syntech/collar
cost = 6
@@ -0,0 +1,115 @@
//Clothing vars and procs
/obj/item/clothing
var/normalize_size = RESIZE_NORMAL //This number is used as the "normal" height people will be given when wearing one of these accessories
var/natural_size = null //The value of the wearer's body_size var in prefs. Unused for now.
var/recorded_size = null //the user's height prior to equipping
//For applying a normalization
/obj/item/clothing/proc/normalize_mob_size(mob/living/carbon/human/H)
if(H.normalized) //First we make a check to see if they're already normalized, from wearing another article of SynTech jewelry
to_chat(H, "<span class='warning'>This accessory buzzes, being overwritten by another.</span>")
playsound(H, 'sound/machines/buzz-sigh.ogg', 50, 1)
return
recorded_size = H.get_effective_size() //If not, grab their current size
playsound(H, 'sound/effects/magic.ogg', 50, 1)
flash_lighting_fx(3, 3, LIGHT_COLOR_PURPLE)
H.visible_message("<span class='warning'>A flash of purple light engulfs [H], before they change to normal!</span>","<span class='notice'>You feel warm for a moment, before everything scales to your size...</span>")
H.resize(normalize_size) //Then apply the size
H.normalized = TRUE //And set normalization
//For removing a normalization, and reverting back to normal
/obj/item/clothing/proc/denormalize_mob_size(mob/living/carbon/human/H)
if(H.normalized) //sanity check
playsound(H,'sound/weapons/emitter2.ogg', 50, 1)
flash_lighting_fx(3, 3, LIGHT_COLOR_YELLOW)
H.visible_message("<span class='warning'>Golden light engulfs [H], and they shoot back to their default height!</span>","<span class='notice'>Energy rushes through your body, and you return to normal.</span>")
H.resize(recorded_size)
H.normalized = FALSE
//For storing normalization on mobs
/mob/living
var/normalized = FALSE
//normalized is a check for instances where more than one accessory of jewelry is worn. For all intensive purposes, only the first worn accessory stores the user's size. \
//Anything else is just extra.
//Clothing below. Code could be compressed more, but until I make jewelry slots, this will do. -Dahl
//GLOVE SLOT ITEMS...
//SynTech ring
/obj/item/clothing/gloves/ring/syntech
name = "normalizer ring"
desc = "An expensive, shimmering SynTech ring gilded with golden Kinaris markings. It will 'normalize' the size of the user to a specified height approved for work-conditions, as long as it is equipped. The artificial violet gem inside twinkles ominously."
icon = 'hyperstation/icons/obj/clothing/sizeaccessories.dmi'
icon_state = "ring"
item_state = "sring" //No use in a unique sprite since it's just one pixel
w_class = WEIGHT_CLASS_TINY
body_parts_covered = 0
transfer_prints = TRUE
strip_delay = 40
//These are already defined under the parent ring, but I wanna leave em here for reference purposes
//For glove slots
/obj/item/clothing/gloves/ring/syntech/equipped(mob/living/user, slot)
if(ishuman(user))
var/mob/living/carbon/human/human_target = user
if(slot == SLOT_GLOVES)
if(human_target.custom_body_size)
normalize_mob_size(human_target)
/obj/item/clothing/gloves/ring/syntech/dropped(mob/living/user, slot)
if(ishuman(user))
var/mob/living/carbon/human/human_target = user
if(human_target.normalized)
denormalize_mob_size(human_target)
//SynTech Wristband
/obj/item/clothing/gloves/ring/syntech/band
name = "normalizer wristband"
desc = "An expensive technological wristband cast in SynTech purples with shimmering Kinaris golds. It will 'normalize' the size of the user to a specified height for approved work-conditions, as long as it is equipped. There is a small screen buzzing with information."
icon_state = "wristband"
item_state = "syntechband"
//NECK SLOT ITEMS...
//Syntech Pendant
/obj/item/clothing/neck/syntech
name = "normalizer pendant"
desc = "A vibrant violet jewel cast in silvery-gold metals, sporting the elegance of Kinaris with SynTech prowess. It will 'normalize' the size of the user to a specified height for approved work-conditions, as long as it is equipped. The artificial violet gem inside twinkles ominously."
icon = 'hyperstation/icons/obj/clothing/sizeaccessories.dmi'
icon_state = "pendant"
item_state = "pendant"
//For neck items
/obj/item/clothing/neck/syntech/equipped(mob/living/user, slot)
if(ishuman(user))
var/mob/living/carbon/human/human_target = user
if(slot == SLOT_NECK)
if(human_target.custom_body_size)
normalize_mob_size(human_target)
/obj/item/clothing/neck/syntech/dropped(mob/living/user, slot)
if(ishuman(user))
var/mob/living/carbon/human/human_target = user
if(human_target.normalized)
denormalize_mob_size(human_target)
//Syntech Choker
/obj/item/clothing/neck/syntech/choker
name = "normalizer choker"
desc = "A sleek, tight-fitting choker embezzled with silver to gold, adorned with vibrant purple studs; combined technology of Kinaris and SynTech. It will 'normalize' the size of the user to a specified height for approved work-conditions, as long as it is equipped. There is a small screen buzzing with information."
icon_state = "choker"
item_state = "collar"
//Syntech Collar
/obj/item/clothing/neck/syntech/collar
name = "normalizer collar"
desc = "A cute pet collar, technologically designed with vibrant purples and smooth silvers. There is a small gem bordered by gold at the front, reading 'SYNTECH' engraved within the metal. It will 'normalize' the size of the user to a specified height for approved work-conditions, as long as it is equipped. The artificial violet gem inside twinkles ominously."
icon_state = "collar"
item_state = "collar"
@@ -0,0 +1,34 @@
/datum/round_event_control/crystalloid_entities
name = "Crystal Invasion"
typepath = /datum/round_event/crystalloid_entities
weight = 10 //decreased weight from 15 to 10
min_players = 2 //increased min players from 2 to 5 to reduce chances of half the crew dying in a carp breach
earliest_start = 10 MINUTES
max_occurrences = 2
/datum/round_event/crystalloid_entities
announceWhen = 3
startWhen = 50
/datum/round_event/crystalloid_entities/setup()
startWhen = rand(40, 60)
/datum/round_event/crystalloid_entities/announce(fake)
if(prob(70))
priority_announce("Unknown inorganic entities have been detected near [station_name()], please stand-by.", "Lifesign Alert", 'sound/ai/crystal.ogg')
else
priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak
for(var/obj/machinery/computer/communications/C in GLOB.machines)
if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z))
var/obj/item/paper/P = new(C.loc)
P.name = "Crystalloid entities"
P.info = "Unknown inorganic entities have been detected near [station_name()], you may wish to break out arms."
P.update_icon()
/datum/round_event/crystalloid_entities/start()
for(var/obj/effect/landmark/carpspawn/C in GLOB.landmarks_list)
if(prob(60)) //dont spawn them EVERYWHERE, they are tougher than carps.
new /mob/living/simple_animal/hostile/crystal(C.loc)
@@ -0,0 +1,477 @@
/*
from modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm:
/datum/sprite_accessory
var/extra = FALSE
var/extra_color_src = MUTCOLORS2 //The color source for the extra overlay.
var/extra2 = FALSE
var/extra_icon = 'modular_citadel/icons/mob/mam_tails.dmi'
var/extra2_icon = 'modular_citadel/icons/mob/mam_tails.dmi'
var/extra2_color_src = MUTCOLORS3
var/list/ckeys_allowed
we use the "citadel" versions of mutant/species parts, which usually (but not always)
begins with "mam_" somewhere. stuff that's built for only humans/lizards in other parts
of the code are from TG, don't use those.
keep everything in alphabetical order, please!
*/
// TODO: code it so that we don't have to type in "icon = 'hyperstation/icons/mob/etc'"
// manually for hyperstation parts
/*
SNOUTS
==========================================================
*/
/datum/sprite_accessory/mam_snouts/bigmandible // sarcoph @ hyperstation, march 2022
name = "Big Mandibles (Hyper)"
icon_state = "bigmandible"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_snouts/proboscis // sarcoph @ hyperstation, march 2022
name = "Proboscis (Hyper)"
icon_state = "proboscis"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_snouts/rhinobeetle // sarcoph @ hyperstation, march 2022
name = "Rhino Beetle (Hyper)"
icon_state = "rhinobeetle"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_snouts/scarab // sarcoph @ hyperstation, march 2022
name = "Scarab Beetle (Hyper)"
icon_state = "scarab"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_snouts/smallmandible // sarcoph @ hyperstation, march 2022
name = "Small Mandibles (Hyper)"
icon_state = "smallmandible"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_snouts/spider // sarcoph @ hyperstation, march 2022
name = "Spider (Hyper)"
icon_state = "spider"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_snouts/tarantula // sarcoph @ hyperstation, march 2022
name = "Tarantula (Hyper)"
icon_state = "tarantula"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_snouts/easterndragon
name = "Eastern Dragon (Hyper)"
icon_state = "easterndw"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/datum/sprite_accessory/mam_snouts/feasterndragon
name = "Eastern Dragon (Top) (Hyper)"
icon_state = "feasterndw"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/datum/sprite_accessory/mam_snouts/easterndragonnowhiskers
name = "Eastern Dragon - No Whiskers (Hyper)"
icon_state = "easterndnw"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/datum/sprite_accessory/mam_snouts/feasterndragonnowhiskers
name = "Eastern Dragon - No Whiskers (Top) (Hyper)"
icon_state = "feasterndnw"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/datum/sprite_accessory/mam_snouts/fchemlight
name = "RadDog (Top) (Hyper)"
icon_state = "fchemlight"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/datum/sprite_accessory/mam_snouts/chemlight
name = "RadDog (Hyper)"
icon_state = "chemlight"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/*
EARS
==========================================================
*/
/datum/sprite_accessory/mam_ears/faceant // sarcoph @ hyperstation, march 2022
name = "Face Antennae (Hyper)"
icon_state = "faceant"
icon = 'hyperstation/icons/mob/char_ears.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_ears/faceant2 // sarcoph @ hyperstation, march 2022
name = "Face Antennae 2 (Hyper)"
icon_state = "faceant2"
icon = 'hyperstation/icons/mob/char_ears.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_ears/moth
name = "Moth Antennae (Hyper)"
icon_state = "moth"
icon = 'hyperstation/icons/mob/char_ears.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_ears/plumeant // sarcoph @ hyperstation, march 2022
name = "Plume Antennae (Hyper)"
icon_state = "plumeant"
icon = 'hyperstation/icons/mob/char_ears.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_ears/roundant // sarcoph @ hyperstation, march 2022
name = "Round Antennae (Hyper)"
icon_state = "roundant"
icon = 'hyperstation/icons/mob/char_ears.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_ears/thinant // sarcoph @ hyperstation, march 2022
name = "Thin Antennae (Hyper)"
icon_state = "thinant"
icon = 'hyperstation/icons/mob/char_ears.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_ears/easterndragon
name = "Eastern Dragon (Hyper)"
icon_state = "easternd"
icon = 'hyperstation/icons/mob/char_ears.dmi'
/datum/sprite_accessory/mam_ears/chemlight
name = "RadDog (Hyper)"
icon_state = "chemlight"
icon = 'hyperstation/icons/mob/char_ears.dmi'
/*
WINGS
==========================================================
*/
/datum/sprite_accessory/deco_wings/beetle // sarcoph @ hyperstation, march 2022
name = "Beetle (Hyper)"
icon_state = "beetle"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/moth_wings/beetle
name = "Beetle (Hyper)"
icon_state = "beetle"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/deco_wings/beetle2 // sarcoph @ hyperstation, march 2022
name = "Beetle - 2-toned (Hyper)"
icon_state = "beetle2"
icon = 'hyperstation/icons/mob/char_wings.dmi'
color_src = MATRIXED
/datum/sprite_accessory/moth_wings/beetle2
name = "Beetle - 2-toned (Hyper)"
icon_state = "beetle2"
icon = 'hyperstation/icons/mob/char_wings.dmi'
color_src = MATRIXED
/datum/sprite_accessory/deco_wings/insect // sarcoph @ hyperstation, march 2022
name = "Insect (Hyper)"
icon_state = "insect"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/moth_wings/insect
name = "Insect (Hyper)"
icon_state = "insect"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/deco_wings/minibat // sarcoph @ hyperstation, march 2022
name = "Mini Bat (Hyper)"
icon_state = "minibat"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/deco_wings/minifeather // sarcoph @ hyperstation, march 2022
name = "Mini Feather (Hyper)"
icon_state = "minifeather"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/deco_wings/tinybat // sarcoph @ hyperstation, march 2022
name = "Tiny Bat (Hyper)"
icon_state = "tinybat"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/deco_wings/tinyfeather // sarcoph @ hyperstation, march 2022
name = "Tiny Feather (Hyper)"
icon_state = "tinyfeather"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/*
TAILS + ANIMATED TAILS
==========================================================
*/
/datum/sprite_accessory/mam_tails/bee // sarcoph @ hyperstation, march 2022
name = "Bee (Hyper)"
icon_state = "bee"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_tails_animated/bee
name = "Bee (Hyper)"
icon_state = "bee"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_tails/bee2 // sarcoph @ hyperstation, march 2022
name = "Bee w/ Stinger (Hyper)"
icon_state = "bee2"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_tails_animated/bee2
name = "Bee w/ Stinger (Hyper)"
icon_state = "bee2"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
// "fan" bird tail, short
/datum/sprite_accessory/mam_tails/shorthawk // sarcoph @ hyperstation, jan 2022
name = "Hawk - Short (Hyper)"
icon_state = "shorthawk"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails_animated/shorthawk
name = "Hawk - Short (Hyper)"
icon_state = "shorthawk"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails/insect // sarcoph @ hyperstation, march 2022
name = "Insect (Hyper)"
icon_state = "insect"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_tails_animated/insect
name = "Insect (Hyper)"
icon_state = "insect"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_tails/bug2tone // sarcoph @ hyperstation, march 2022
name = "Insect - 2-tone (Hyper)"
icon_state = "bug2tone"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_tails_animated/bug2tone
name = "Insect - 2-tone (Hyper)"
icon_state = "bug2tone"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
// "narrow" bird tail, long
/datum/sprite_accessory/mam_tails/longpigeon // sarcoph @ hyperstation, jan 2022
name = "Pigeon - Long (Hyper)"
icon_state = "longpigeon"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails_animated/longpigeon
name = "Pigeon - Long (Hyper)"
icon_state = "longpigeon"
icon = 'hyperstation/icons/mob/char_tails.dmi'
// "narrow" bird tail, short
/datum/sprite_accessory/mam_tails/shortpigeon // sarcoph @ hyperstation, jan 2022
name = "Pigeon - Short (Hyper)"
icon_state = "shortpigeon"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails_animated/shortpigeon
name = "Pigeon - Short (Hyper)"
icon_state = "shortpigeon"
icon = 'hyperstation/icons/mob/char_tails.dmi'
// "forked" bird tail, long
/datum/sprite_accessory/mam_tails/swallow // sarcoph @ hyperstation, jan 2022
name = "Swallow (Hyper)"
icon_state = "swallow"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails_animated/swallow
name = "Swallow (Hyper)"
icon_state = "swallow"
icon = 'hyperstation/icons/mob/char_tails.dmi'
// forked bird tail, long; special stripe markings
/datum/sprite_accessory/mam_tails/swallowstriped // sarcoph @ hyperstation, jan 2022
name = "Swallow - Striped (Hyper)"
icon_state = "swallowstriped"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails_animated/swallowstriped
name = "Swallow - Striped (Hyper)"
icon_state = "swallowstriped"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails/easterndragon //Pulled base from Virgo, seriously love the server and love you guys, stay lovely.
name = "Eastern Dragon (Hyper)"
icon_state = "easternd"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails_animated/easterndragon
name = "Eastern Dragon (Hyper)"
icon_state = "easternd"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails/chemlight
name = "RadDog (Hyper)"
icon_state = "chemlight"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails_animated/chemlight
name = "RadDog (Hyper)"
icon_state = "chemlight"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/*
BODY MARKINGS
==========================================================
*/
/*
from modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm:
/datum/sprite_accessory/mam_body_markings
extra = FALSE
extra2 = FALSE
color_src = MATRIXED
gender_specific = 0
icon = 'modular_citadel/icons/mob/mam_markings.dmi'
recommended_species = list("mammal", "xeno", "slimeperson", "podweak", "avian", "aquatic")
*/
/datum/sprite_accessory/mam_body_markings/bee // sarcoph @ hyperstation, march 2022
name = "Bee (Hyper)"
icon_state = "bee"
icon = 'hyperstation/icons/mob/char_markings.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_body_markings/bee_fluff // sarcoph @ hyperstation, march 2022
name = "Bee - Fluffy (Hyper)"
icon_state = "bee_fluff"
icon = 'hyperstation/icons/mob/char_markings.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_body_markings/bug3tone // sarcoph @ hyperstation, march 2022
name = "Beetle - 3-tone (Hyper)"
icon_state = "bug3tone"
icon = 'hyperstation/icons/mob/char_markings.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_body_markings/moth // sarcoph @ hyperstation, jan 2022
name = "Moth (Hyper)"
icon_state = "moth"
icon = 'hyperstation/icons/mob/char_markings.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_body_markings/empty
name = "None (Hyper)"
icon_state = "empty"
recommended_species = list("podweak", /*"mammal",*/ "avian", "aquatic", "insect", "xeno", "synthliz", "slimeperson")
// mammals are cursed to no empty markings until they get their heads fixed.
/datum/sprite_accessory/mam_body_markings/pigeon // sarcoph @ hyperstation, jan 2022
name = "Pigeon (Hyper)"
icon_state = "pigeon"
icon = 'hyperstation/icons/mob/char_markings.dmi'
recommended_species = list("avian")
/datum/sprite_accessory/mam_body_markings/shrike // sarcoph @ hyperstation, jan 2022
name = "Shrike (Hyper)"
icon_state = "shrike"
icon = 'hyperstation/icons/mob/char_markings.dmi'
recommended_species = list("avian")
/datum/sprite_accessory/mam_body_markings/easterndragon
name = "Eastern Dragon (Hyper)"
icon_state = "easternd"
icon = 'hyperstation/icons/mob/char_markings.dmi'
//doged was here
/datum/sprite_accessory/mam_body_markings/chemlight
name = "RadDog (Hyper)"
icon_state = "chemlight"
icon = 'hyperstation/icons/mob/char_markings.dmi'
/*
TAUR BODIES
==========================================================
*/
/*
from modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm:
/datum/sprite_accessory/taur
icon = 'modular_citadel/icons/mob/mam_taur.dmi'
extra_icon = 'modular_citadel/icons/mob/mam_taur.dmi'
extra = TRUE
extra2_icon = 'modular_citadel/icons/mob/mam_taur.dmi'
extra2 = TRUE
center = TRUE
dimension_x = 64
var/taur_mode = NOT_TAURIC
color_src = MATRIXED
recommended_species = list("human", "lizard", "insect", "mammal", "xeno", "jelly", "slimeperson", "podweak", "avian", "aquatic")
*/
/datum/sprite_accessory/taur/chemnaga //Chemlight experimental sprites for future spriting
name = "RadDog Naga (Hyper)"
icon_state = "chemnaga"
taur_mode = SNEK_TAURIC
ckeys_allowed = list("chemlight")
/datum/sprite_accessory/taur/chemlight
name = "RadDog Taur (Hyper)"
icon_state = "chemlight"
taur_mode = PAW_TAURIC
ckeys_allowed = list("chemlight")
/*
HAIRSTYLES
==========================================================
*/
/*
from code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm:
/datum/sprite_accessory/hair
icon = 'icons/mob/human_face.dmi' // default icon for all hairs
// please make sure they're sorted alphabetically and, where needed, categorized
// try to capitalize the names please~
// try to spell
// you do not need to define _s or _l sub-states, game automatically does this for you
*/
/datum/sprite_accessory/hair/aviancrest
name = "Avian Crest (Hyper)"
icon_state = "hair_aviancrest"
icon = 'hyperstation/icons/mob/char_hair.dmi'
/datum/sprite_accessory/hair/curtains
name = "Curtains (Hyper)"
icon_state = "hair_curtains"
/datum/sprite_accessory/hair/mommy
name = "Hairfre (Hyper)"
icon_state = "hair_hairfre"
/datum/sprite_accessory/hair/sidehair
name = "Side Hair (Hyper)"
icon_state = "hair_tailhair2"
/datum/sprite_accessory/hair/hsglamour
name = "Glamour (Hyper)"
icon_state = "hair_glamourh"
/datum/sprite_accessory/hair/emoh
name = "Emo (Hyper)"
icon_state = "hair_emoh"
@@ -0,0 +1,122 @@
/mob/living/carbon
var/total_pain = 0
var/pain_effect = 0
var/pain_cooldown = 0 //for defibs/surgry!
//pain
/mob/living/carbon/adjustPainLoss(amount, updating_health = TRUE, forced = FALSE, affected_zone = BODY_ZONE_CHEST)
if(!forced && (status_flags & GODMODE))
return FALSE
apply_damage(amount > 0 ? amount : amount, PAIN, affected_zone)
return amount
/mob/living/carbon/handle_status_effects()
..()
handle_pain()
/mob/living/carbon/proc/handle_pain()
var/pain_amount = 0
pain_effect += 1
if (pain_cooldown)
pain_cooldown -= 1
pain_effect = 0 //ignore pain for now, you got adrenaline running through your body.
//build up pain in the system from all your limbs and natrually heal pain if its attached to a live body.
for(var/obj/item/bodypart/BP in bodyparts)
pain_amount += BP.pain_dam
var/pain_target = (BP.brute_dam + BP.burn_dam)*0.8
//natural healing of pain, capped at current damage * 0.8, if the pain is lower, slowly bring up the pain. this will let people "get used, to it."
if (BP.pain_dam > (pain_target))
BP.pain_dam -= 1 //bring down to the pain_level.
else
BP.pain_dam += 1 //slowly bring pain back, from pain killers.
//just make sure its zero'd
if (BP.pain_dam < 0)
BP.pain_dam = 0
continue //dont need to do the rest, your fine.
if (BP.pain_dam && pain_effect > 5 && (stat == 0))
var pain_level = (round(BP.pain_dam / 10))
switch(pain_level) //for every 10 points of damage minor -> major
if(1)//start at 10 just so it doesnt get annoying with micro damage
to_chat(src, "<span class='warning'>You feel minor pain in your [BP.name].</span>")
if(2)
to_chat(src, "<span class='warning'>You feel pain in your [BP.name].</span>")
if(3)
to_chat(src, "<span class='warning'>You feel severe pain in your [BP.name].</span>")
if(4 to 99)
to_chat(src, "<span class='warning'>You feel overwhelming pain in your [BP.name].</span>")
jitteriness += 2
stuttering += 2
total_pain = pain_amount
//handle onscreen alert
if (pain_effect > 5)
switch(total_pain)
if(-100 to 25)
clear_alert("pain")
if(25 to 69)
throw_alert("pain", /obj/screen/alert/pain)
if(70 to 99)
throw_alert("pain", /obj/screen/alert/painmajor)
if(100 to 999)
throw_alert("pain", /obj/screen/alert/painshock)
if (pain_effect > 5)
pain_effect = 0 //reset the timer 5 seconds.
if(stat == 0) //awake, not dead or asleep
//status effects for pain..
var/mob/living/H = src
if (total_pain > 50 && total_pain < 80)
if(HAS_TRAIT(H, TRAIT_MASO)) //just because your into it doesnt give you a advantage..
to_chat(src, "<span class='love'>You love this pain, it excites you...</span>")
H.adjustArousalLoss(6)
else
to_chat(src, "<span class='warning'>You cant handle the pain...</span>")
if(prob(20))
emote("scream")
do_jitter_animation() //basic shake.
stuttering += 3 //stutter words, your in pain bro.
if (total_pain > 80) //your in trouble. fainting..
if(HAS_TRAIT(H, TRAIT_MASO))
to_chat(src, "<span class='love'>You love this intense pain, it excites you...</span>")
H.adjustArousalLoss(12)
else
to_chat(src, "<span class='big warning'>You cant handle the intense pain...</span>")
if(prob(20)) //chance of fainting..
visible_message("<span class='danger'>[src] collapses!</span>")
Unconscious(100)
jitteriness += 3 //shake
stuttering += 3 //stutter words
//if they are asleep, this wont trigger.
if (total_pain > 110 && stat == 0) //taking 77 all damage at once from full health, will put you into shock and kill you. This cant be achived with chip damage (or fist fights), because youll die before you reach this pain level.
if(prob(50))
emote("scream")//scream
to_chat(src, "<span class='big warning'>You give into the pain...</span>")
visible_message("<span class='danger'>[src] goes into neurogenic shock!</span>")
Unconscious(200)
if (can_heartattack()) //check if they can
set_heartattack(1) //heart stopped!
//HS Pain heal
/mob/living/carbon/adjustPainLoss(amount, updating_health = TRUE, forced = FALSE)
if (!forced && amount < 0 && HAS_TRAIT(src,TRAIT_NONATURALHEAL))
return FALSE
if(!forced && (status_flags & GODMODE))
return FALSE
//all attached limbs get pain damage
for(var/X in bodyparts)
var/obj/item/bodypart/BP = X
BP.pain_dam += amount
return amount
@@ -0,0 +1,23 @@
/*
This is a pre-destroyed nuclear reactor for the sake of mapping special fluff stuff.
Not actually a reactor, just uses the icon and irradiates the surrounding area a bit.
Nowhere else to really put this.
*/
/obj/structure/fluff/destroyed_nuclear_reactor
name = "Destroyed Nuclear Reactor"
desc = "What in the hell happened here?"
icon = 'hyperstation/icons/obj/machinery/rbmk.dmi'
icon_state = "reactor_slagged"
pixel_x = -32
pixel_y = -32
density = FALSE
anchored = TRUE
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | FREEZE_PROOF
light_color = LIGHT_COLOR_CYAN
dir = 8 //Less headache inducing :))
/obj/structure/fluff/destroyed_nuclear_reactor/Initialize()
. = ..()
set_light(3)
AddComponent(/datum/component/radioactive, 15000 , src)
@@ -607,10 +607,10 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful
. = ..()
ui_interact(user)
/obj/machinery/computer/reactor/control_rods/ui_interact(mob/user, ui_key, datum/tgui/ui, force_open, datum/tgui/master_ui, datum/ui_state/state)
/obj/machinery/computer/reactor/control_rods/ui_interact(mob/user, ui_key, datum/tgui/ui, force_open, datum/tgui/master_ui, datum/tgui_state/state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "rbmkcontrolrods", name, 300, 300, master_ui, state)
ui = new(user, src, ui_key, "RbmkControlRods", name, 300, 300, master_ui, state)
ui.open()
/obj/machinery/computer/reactor/control_rods/ui_act(action, params)
@@ -648,7 +648,7 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful
. = ..()
ui_interact(user)
/obj/machinery/computer/reactor/stats/ui_interact(mob/user, ui_key, datum/tgui/ui, force_open, datum/tgui/master_ui, datum/ui_state/state)
/obj/machinery/computer/reactor/stats/ui_interact(mob/user, ui_key, datum/tgui/ui, force_open, datum/tgui/master_ui, datum/tgui_state/state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "RbmkStats", name, 350, 500, master_ui, state)
@@ -803,7 +803,7 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful
transfer_access = ACCESS_CONSTRUCTION
network_destination = "rbmk monitoring system"
size = 2
tgui_id = "ntosrbmkstats"
tgui_id = "NtosRbmkStats"
ui_x = 350
ui_y = 550
var/active = TRUE //Easy process throttle
+6 -6
View File
@@ -6,7 +6,7 @@
//The suit itself
/obj/item/clothing/under/syclothing
name = "SYTech Nanoweave suit"
name = "SynTech Nanoweave suit"
desc = "A leading-grade suit developed by SYTech, with an internal dampening field to lessen accidents at micro scales. This one seems to be more skimpy and developed for bedroom-play, though."
icon = 'hyperstation/icons/obj/clothing/uniforms.dmi'
icon_state = "syclothing"
@@ -61,7 +61,7 @@
//The cap
/obj/item/clothing/head/sycap
name = "SYTech Nanoweave cap"
name = "SynTech Nanoweave cap"
desc = "A piece of clothing for a SYTech suit, allowing for extended control and breathability at micro scales via amplified hardlight respiration. This one seems to be modeled like a dominatrix cap, however."
icon = 'hyperstation/icons/obj/clothing/head.dmi'
icon_state = "sycap"
@@ -112,7 +112,7 @@
//The visor
/obj/item/clothing/glasses/hud/toggle/syvisor
name = "SYTech Analysis Visor"
name = "SynTech Analysis Visor"
desc = "A high-tech visor developed for SYTech suits, for helping internal processes lead augment decisions. This one looks like a pair of darkened sunglasses."
icon = 'hyperstation/icons/obj/clothing/glasses.dmi'
icon_state = "syvisor"
@@ -161,7 +161,7 @@
//Shoes
/obj/item/clothing/shoes/syshoes
name = "SYTech Nanoweave platform heels"
name = "SynTech Nanoweave platform heels"
desc = "A complimentary piece of SYTech apparel for gravity-altering applications. It even allows you to walk up walls! This pair takes on the appearance of skimpy, thigh-high latex boots with stilletos."
icon_state = "syshoes"
item_state = "syshoes"
@@ -174,7 +174,7 @@
//Gloves
/obj/item/clothing/gloves/sygloves
name = "SYTech Nanoweave sleeves"
name = "SynTech Nanoweave sleeves"
desc = "A pair of enhanced sleeves, developed by SYTech. These allow remote and psionic levels of manipulation to the electrical currents inside living beings, or objects. Use with caution!"
icon_state = "sygloves"
item_state = "sygloves"
@@ -186,4 +186,4 @@
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
strip_delay = 120
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
mutantrace_variation = NO_MUTANTRACE_VARIATION
mutantrace_variation = NO_MUTANTRACE_VARIATION
+314
View File
@@ -0,0 +1,314 @@
/obj/item/book/lorebooks
icon = 'icons/obj/library.dmi'
due_date = 0 // Game time in 1/10th seconds
unique = TRUE // FALSE - Normal book, TRUE - Should not be treated as normal book, unable to be copied, unable to be modified
/obj/item/book/lorebooks/welcome_to_kinaris
name = "Welcome to Kinaris!"
icon_state = "bookwelcometokinaris"
desc = "A humanitarian guide to Andromeda."
author = "V. Kinaris"
title = "Welcome to Kinaris!"
dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
h2 {font-size: 15px; margin: 15px 0px 5px;}
li {margin: 2px 0px 2px 15px;}
ul {list-style: none; margin: 5px; padding: 0px;}
ol {margin: 5px; padding: 0px 15px;}
</style>
</head>
<body>
<h3 style="text-align: center;">Welcome to Kinaris!</h3>
<h2 style="text-align: center;">A humanitarian guide to Andromeda</h2>
<hr>
Hello reader! If your eyes find themselves upon this datapad, then youre surely interested in finding out what your new employers are all about. If not, Kinaris would highly recommend a thorough read regardless; Azurean culture tends to be a shock for outsiders!
<p>
<h2>Table of Contents...</h2>
<ol>
<li>Kinaris; Who Are We?
<li>Andromeda and the Current Era
<li>Others Under Kinaris
<li>About Layenia Station
</ol>
<p>
<hr>
<h1><u>Chapter 1</u></h1>
<h2>Kinaris, Who Are We?</h2>
<p>
There are many misconceptions and illusions regarding Kinaris and what we are all about. This of course is coming with no surprise, thanks to our heavily-regulated uplifting guidelines and processes. Kinaris (otherwise known as Kinaris Colonization and Conversion LLC) is not what can be defined as a company or organization; we do not require the 9-5 wage-slave worklife that is requested from many capitalistic-leaning organizations in places such as the Milky Way. We are a firm believer that happiness and self-worth is as important as being part of a bigger picture in this Universe. Nobody asked to be born, but every soul has an opportunity to thrive. Such is the way of a progressive, forward-thinking power like us.
<p>
Every soul should have a taste of comfort and happiness, be it in the mindscape of neurological implants, or in the warm breeze of a familiar home. Nobody should be robbed of their desires as long as it leads to happiness for everyone involved. Life should lead to a fulfilling sense of accomplishment after discovering a true passion- this is reflected true for every soul under our wing. Be it a synthetic being manufactured for a reason, or a born individual who grew up looking at the stars. At the end of it all, we are one and the same. To live and to thrive.
<p>
The technological elegance and prowess we at Kinaris possess is equally important as it is fickle. We live in an age where death is long behind us; starvation and the crushing weight of reality itself can be washed away with an implant, or the golden towers of our civilization. But this means no room for breeding irresponsibility and disrespecting our reason in the Universe in the first place. To live is to die, to flourish is to wither. There is a forbidden fruit in this mindset we can land ourselves in; that of immortality and escaping the inevitable end of everything. This fruit leads to arrogance and a blind lack of care for the balance of the greater good. The truth of the matter is you cannot have your greatest achievements without wallowing in failure. We live our greatest lives for our inevitable death. This is Radiance.
<p>
As such, we have witnessed the greater illusions that developing civilizations like Humanity surround themselves in. Where death is simply another part of everyday life, and to be born again into a hysteria that asks more labor from their living cells ad infinitum. This is a blatant disrespect of our Radiance, but more on this concept later. Know vehemently that while Kinaris can save you from your death in the blink of an eye, that day were done with this Universe comes for us all. We never forget our reason for this reality in the first place.
<p>
<hr>
<h1><u>Chapter 2</u></h1>
<h2>Andromeda and the Current Era</h2>
<p>
The chances are, youre probably a long way away from home if youre reading this datapad. The greater galaxy of Andromeda is an incredibly complex place compared to other galaxies; and even if youre a newly-uplifted species who has been brought to safety only-recently, we know the stresses and struggles that this may bring. Know that you are not alone in this, and Kinaris solely lives for bringing everyone to an even playing field.
<p>
Andromeda as a whole lives in a state of high peace and tranquility. The teachings of Radiance and steady Uplifting have brought upon a level-headed sense of understanding from one civilization to the next. Coexistence is the key to a Utopian society, which is something we all strive for. When you live without respect for those who share the stars with you, you will only fall flat on your face in an endeavor to chase one light of many. This applies even more vehemently for those civilizations who are warring with themselves. Know words prior to violence.
<p>
Approximately 90% of the galaxy is under complete Kinaris control, be it from colonies and worlds who wish independence, or those who depend on us for resources and aid. Andromedas history was not a quiet and relaxed one however; the streaks of distant war and conflict bear from star to star, be it from one torn megastructure to ripped-apart dyson spheres. Our teachings are to be gentle, but not all species were raised and born equally. War was once a flame we were quick to snuff out, as our technological advances outpace many by the thousands of years.
<p>
As of the current encryption of this datapad, the current date is 9E80C, which approximately translates to 4/4/2561 in Milky-Way-approved calendars. Kinariss regulatory Era-Cycle calendar supports the vagueness of one star to the next; be it a common binary, or the endless wandering of a rogue planet. The Era and Cycle is the same for everyone across the galaxy, with their own local orbits and patterns added on top. For example, while it is universally the 80th Cycle of the 9th Era, it may be the Fourth of April in sol time on top. A cycle tends to be one complete orbit of the two primary Binary Stars in Radiant Hearth, while an Era usually is a realized event of unprecedented advancement. The current Era is known sometimes as The Era of the Wing, where intergalactic travel has become near-instantaneous due to progressions in Radiant Technology.
<p>
Shortly after the birth of this Era, humanity and the Milky Way were discovered. Not only that, but their cultures, other species, and general society beneath their control. This was an exciting time to bring new mindsets to the table. Primarily at the forefront, we found what they classified as a “Megacorporation” known as “Nanotrasen”. To put it lightly, their abhorrent misuse of technologies for the sake of profit and lack of rights for the very lives they carelessly endanger put us at odds immediately. Complete uplifting and conversion of people under Nanotrasen has yet to happen, but after a peace-talk gone into a full-blown propaganda-fueled attack, we have decided to step out of the Milky Way entirely, and lock our borders to them. It is not unusual for us at Kinaris to wait for a civilization to mature, and humanity is one of many on that list.
<p>
Despite this, there are a few locations across the Andromeda that allow access from the Milky Way. Thankfully, they have a much lower technological understanding than we do, so getting from one galaxy to the next is nigh-impossible for them. As it is now, this is completely under our control.
<p>
<hr>
<h1><u>Chapter 3</u></h1>
<h2>Others Under Kinaris</h2>
<p>
While this datapad has certainly fed you a lot of information on Kinaris, know that not everything is just about us, as per our priority of coexistence. Below are some of our primary partners and civilizations that we refer to quite frequently. You may even see them around Layenia!
<p>
<h1><u>Dzar Underworks</u></h1>
<p>
<b>Homeworld:</b> Salis Primary A-4
<br>
<b>Home Star:</b> Salis Major
<br>
<b>Primary Species:</b> Vitruvian
<br>
<b>Primary Language:</b> Natrul
<br>
<b>Primary Work:</b> Metalsmithing, mining, and material research
<br>
<b>Motto:</b> In virtue we trust
<p>
<i>“Dzar Underworks is a conglomerate of metalworking companies underneath the intergalactic umbrella of Kinaris, formed firstly in opposition of Radiance in the past, and an ally now. They possess the unique engram of smithing highly-sophisticated metals and impossible materials from patented forges, which is kept secret by shareholders at Dzar. The unique way Dzar is able to manufacture metals has left them uncontested against many other companies, leading them to a divine- if not pricey- hold on anyone who is interested in making high-grade vessels, colonies, megastructures, or plain-old appliances. Dzar works side-by-side with Kinaris, where Radiant Technology is their reward in return for high-grade metals.”</i>
<p>-
<p>
<h1><u>The Azurean Government</u></h1>
<p>
<b>Homeworld:</b> KNCS Jul Ryynthal, Myril Majoris orbit
<br>
<b>Home Star:</b> Dissona / Radia (binary)
<br>
<b>Primary Species:</b> Hyenidae
<br>
<b>Primary Language:</b> Fornaux
<br>
<b>Primary Work:</b> governing and representing anthro species intergalactically
<br>
<b>Motto:</b> No soul left behind
<p>
<i>“The Azurean Government (also known as AzureGov, or Azurean Govern) is the leading spearhead into peace and tranquility within Andromeda when Kinaris has its back turned; despite their criticisms. It governs and loosely controls the various organizations currently operating around Andromeda, but its not secret their power is limited in comparison to the other powers in the galaxy. Despite this, their operations in ensuring that the representation of anthromorphs and other sentient creatures can be seen in a better light to lesser civilizations such as humanity, given that the correct pacts can be agreed upon.”</i>
<p>-
<p>
<h1><u>Zao Security and Protection</u></h1>
<p>
<b>Homeworld:</b> the Ringworld of Incandesce Primara
<br>
<b>Home Star:</b> Incandesce Seconda
<br>
<b>Primary Species:</b> Primaris Unit
<br>
<b>Primary Language:</b> Binary
<br>
<b>Primary Work:</b> Contracted Policework
<br>
<b>Motto:</b> Secure the people, save the future
<p>
<i>“ZaoCorp is a vigilant workhorse of stabilizing colonies with quick, effective, and calm policework. Their strict neurological pursuit of hiring only the most fair and level-headed individuals leads them to establish peace among any colonies theyre contracted at, making for an effective police force. Not only do they hire the best of the best through genetic selection and splicing, they also manufacture bleeding-edge Nuovo-fabric exosuits, threaded to a casual and calm trench coat adorned in a blue and beige. This makes for an approachable, fair, and just visage that is capable of nonlethal apprehension where necessary. Trust is always locked in the hands of Zao; stifling any concerns peacefully through vigilance.”</i>
<p>-
<p>
<h1><u>Synergized Technology</u></h1>
<p>
<b>Homeworld:</b> the City-Planet of Jovias
<br>
<b>Home Star:</b> Nembus
<br>
<b>Primary Species:</b> Anthromorph
<br>
<b>Primary Language:</b> Fornaux
<br>
<b>Primary Work:</b> Production and selling of size-altering technology, including infrastructure
<br>
<b>Motto:</b> Modern solutions, big and small
<p>
<i>“Synergized Technology- commonly known as SynTech- is a company which leads the complex solutions in any galaxys biggest problem: accommodating for the size of life. As civilizations grew more welcoming to different ideals and lifestyles, it became more difficult and disastrous to deal with extreme size differences from one alien species to the other. Not only did this spark an incredible amount of regulations from AzureGov, but Kinariss interest was piqued to keep peace over all; and that included accommodating for any species, whether or not they stood over a mountain, or below an ant hill. The high demand of multi-size rights and technology was driven into SynTechs hands, where they would provide and assist in regulating consistent and meaningful products to ease interaction from one to the next. Not only do they supply incredibly advanced, highly-regulated technology, they also help in consistent planning and moderation in most cities to keep traffic from most differently-sized species without havoc. Without SynTech, galaxies would look like a fairly bland place, where one size rules above all.”</i>
<p>-
<p>
<h1><u>Titan Piezoelectrics and Ceramics</u></h1>
<p>
<b>Homeworld:</b> Tremora
<br>
<b>Home Star:</b> Titawin
<br>
<b>Primary Species:</b> Megalithian
<br>
<b>Primary Language:</b> Aquarian
<br>
<b>Primary Work:</b> Production of power-efficient piezoelectric ceramics and craft
<br>
<b>Motto:</b> n/a
<p>
<i>“Titan Ceramics was the primary source of prominent electrical power on Tremora for its lifespan, with extravagant materials and unique ceramic mixes that supported incredibly efficient production of energy in bulk. Not only did they provide energy for a once-struggling civilization, they brought upon artistic desire and talent for those who would seek their ceramics. Value in energy is equal to value in art in their eyes, with only the finest materials and expertly-tested conditions to meet the quality of their work. Despite the overwhelming size difference of the housing species, value is still sought from both sides, resulting in multi-size accommodations for their ceramics. When cheap yet efficient power is required without the Weave, Titan Ceramics is there.”</i>
<p>-
<p>
<hr>
<h1><u>Chapter 4</u></h1>
<h2>About Layenia Station</h2>
<p>
After reading this far in, it may become apparent that Layenia does not reflect the values of Kinaris in many ways. From the technological progress to the surroundings, it may seem like Layenia Station is far behind its time. And thats an entirely correct notion, all thanks to the standards of Kinaris Uplifting.
<p>
As it stands right now, Layenia Station uses a fabricated Engram to replicate that of its former employers and owners. The star was previously given to humanity prior to the first attempt at Uplifting, but it was taken back shortly after things went south, and given open borders to the Milky Way. The Engram in particular mimics a lot of Nanotrasen-esque technology, which makes Layenia Station one of the most low-tech Kinaris stations to exist out there to date!
<p>
When it comes down to standards of Uplifting, change is one thing that many species cannot deal with easily. As such, the golden standard of Uplifting is to start from the technology they know, and slowly introduce new concepts and realizations after time. Layenia Station is currently in its early phases of conversion, but in time, it too will reach heightened technological elegance like the rest of the galaxy.
<p>
If you wish to learn more about Engrams, please locate a datapad on the subject!
<p>
<hr>
</body>
</html>
"}
/obj/item/book/lorebooks/layenia_crystals
name = "Layenia Crystal Cycles"
icon_state = "booklayeniacrystals"
desc = "Curious about all those crystals you see on Layenia? Wait no further, this datapad contains all public information so far!"
author = "W. Ryyn-Kinar"
title = "Layenia Crystal Cycles"
dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
h2 {font-size: 15px; margin: 15px 0px 5px;}
li {margin: 2px 0px 2px 15px;}
ul {list-style: none; margin: 5px; padding: 0px;}
ol {margin: 5px; padding: 0px 15px;}
</style>
</head>
<body>
<h3 style="text-align: center;">Layenia Crystal Cycles</h3>
<hr>
Layenia is a prominent interest in recent times for the likes of Azurean civilizations. While the concepts of negative mass and spacetime-altering properties are nothing new for Kinaris R&D, Layenia holds a special key for Weave-integrated technology. If you are familiar with The Weave, then you may know why Layenian Crystals (also referred to as lattice crystals) are such a focal point. If not, this datapad may prove useful to you.
<p>
<h2>Table of Contents...</h2>
<ol>
<li>Creation of Crystals
<li>Crystal Purities
<li>Floating Islands
<li>Floating Island Cycles
<li>Speculation
</ol>
<p>
<hr>
<h1><u>Chapter 1</u></h1>
<h2>Creation of Crystals</h2>
<p>
On the outside, a Layenian crystal seems to be nothing special short of a blue geode if broken open; more often sharply squared off with fine tips. Layenian crystals resemble that of volcanic geodes; where empty space in basaltic lava flow is often filled up with deposits of material carried by groundwater. In Layenia, a similar process happens with the intense heat and pressure of the inner planet boiling away trace gaseous minerals in the atmosphere into a Weave-infused shell of what can only be defined as Weave-basalt. Further infusion with Weave energy will make Layenian crystals.
<p>
We do not fully understand just how The Weave manages to manifest itself so strongly within the deeper reaches of Layenia, as we have only seen the effects on our side of the dimension as Layenian crystals. What we do know is that the crystals- despite occupying multidimensional space- seem to lean more towards our reality despite the majority of its shell being born in another.
<p>
<hr>
<h1><u>Chapter 2</u></h1>
<h2>Crystal Purities</h2>
<p>
How you can decipher the purity of Weave-basalt is relatively simple without prodding at the Weave itself; just look at its color and shape. Incomplete infusions with Weave energy will leave the basalt-esque rock not porous and filled, with a reddish-iron hue occupying its coloration. The rock in question will be rough, made up of multiple mineral deposits, and does not react with acid; much similar to other gaseo-igneous rocks of its family. However, more purely-infused with Weave energy will cause drastic change to the crystals structure once it solidifies itself between two dimensions. Compared to the coarse status of its impurity version, a refined Layenian crystal will lack a portion of excess mineral deposits, where it is theorized that energy from the Weave can freely bounce between the two dimensions across its glassy surface. The crystalline structure will be leaning more towards a reflective-cobalt, shining towards ultramarine in most lights. Most obvious of all, its negative mass will correlate directly with how pure it is; this contributes to its floating properties within Layenia. If it is too pure however, it will start to resonate with the Weave. We will get back to that later.
<p>
<hr>
<h1><u>Chapter 3</u></h1>
<h2>Floating Islands</h2>
<p>
As masses of crystals are born within Layenia all with varying purities, they will become attracted to each other due to innate Weave energy manifesting as a gravitational tug. This causes them to conglomerate together with an electrified fusion process via Weave, keeping trace amounts of crystalline dust and minerals extremely minimal, as they cling to one another. A completely pure crystal will accelerate itself away from any point of mass and gravity, which prompts the crystal to float up through Layenias atmosphere. However, as it accumulates impurities in the form of Weave-basalt, its ability to accelerate and keep its distance from gravitational sources gets reduced, until the mass inevitably finds a stable point amidst the clouds. This is how most floating islands are formed within Layenia.
<p>
<hr>
<h1><u>Chapter 4</u></h1>
<h2>Floating Island Cycles</h2>
<p>
As the constant influx of more varying purities of crystals flows from the inner atmosphere to the upper, this leads to inevitable island collisions, which advances the stages of floating islands in their life cycles. As islands crash into one another, they release immense bursts of Weave energy as electricity-- their rocks fusing together like metal would weld. Sometimes floating islands crash into one another with enough velocity to outright explode, forgoing island merging altogether. If one does merge however, they will ascend or descend in the atmosphere where it can stabilize again with its new mass. If it goes too low and accumulates too much impure Weave-basalt, the pressure will crush and split the island apart, giving it a new opportunity to repeat the cycle anew.
<p>
However, if the island has an extremely-high ratio of Layenian crystals to Weave-basalt, the floating island/mass will accelerate through the atmosphere and even leave it altogether, flinging itself far into space as a result. Sometimes the rocks donate to Layenias local ring system, however they sometimes come crashing back down as a meteor after gaining mass from dust and rock within the ring itself. This only occurs if a Layenian crystal accelerates at a steady rate, the unlucky few of crystals may undergo a process of Weave resonance, where their acceleration only speeds up through the atmosphere as its fought by less drag in its rise through density. If the mass accelerates above ~150kph, the pure crystals will start to resonate and ring out in the natural frequency of the Weave- producing an ear-splitting metallic hum for those who are not Attuned as they vibrate intensely. As the mass speeds up, the crystals will begin to build up Weave energy, glowing brighter in unison with the louder ringing that the rock resonates in. Left unchecked, this will lead the mass to a critical point, where it will promptly detonate in a swathe of Weave energy, piercing the clouds with a golden light that superheats anything caught within its wake. Its theorized that this is the ultimate end of Layenia crystals, where the Radiance itself harvests the energy.
<p>
<br>
<h1><u>Chapter 5</u></h1>
<h2>Speculation</h2>
<p>
While Layenian crystals have been discovered elsewhere in the universe, their frequency and abundance was extremely lackluster; never before have they been found in such quantity as they have in Layenia, which led to them being renamed into Layenian crystals in the first place. While Layenia is carefully monitored by Kinaris, we cannot help but speculate just why the Radiance chose to pick this specific planet to manifest its Weave energy so prominently, as well as why it wanted gravity-altering crystals, of all things. Speculation has it that the Radiance uses the crystals as an anchor on our reality to see and feel it, to experience and memorize it in crystalline form, as it does with the living flesh of people in Attunement. When a crystal finally detonates for the last time, we cannot help but think that the Radiance does this to extract every bit of information about our dimensional plane as it can. While no confirmations have been made on any of this, it is a likely explanation approved by Valarie Kinaris herself, who is a prominent speaker for Radiance and Attuned alike.
<p>
<hr>
</body>
</html>
"}
/obj/item/book/lorebooks/engrams
name = "The Engram: Securing Your Technology"
icon_state = "bookengrams"
desc = "Ever wondered why technology seems locked in some places, or more modular in others? Learn about the Engram with this crash-course datapad!"
author = "P. LYNN"
title = "The Engram: Securing Your Technology"
dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
h2 {font-size: 15px; margin: 15px 0px 5px;}
li {margin: 2px 0px 2px 15px;}
ul {list-style: none; margin: 5px; padding: 0px;}
ol {margin: 5px; padding: 0px 15px;}
</style>
</head>
<body>
<h3 style="text-align: center;">The Engram</h3>
<h2 style="text-align: center;">Securing Your Technology</h2>
<hr>
Have you ever looked at your workplace surroundings and wondered why it feels so modular? Ever wondered why you can't just get a screwdriver and pick apart your local armory weapons, and rebuild them? Or perhaps you're wondering why certain items simply refuse to go together? This is all thanks to the Andromeda-class Patented Engram System (APES), which is capable of modifying the physical manifestation of technology, as if it were a blueprint! This datapad will cover the basics of what an Engram actually is, and what it does for those involved.
<p>
<h2>Table of Contents...</h2>
<ol>
<li>The Engram; What Is It?
<li>Why Are Engrams Made?
<li>Why Are Engrams Necessary?
<li>Engrams Used Today
</ol>
<p>
<hr>
<h1><u>Chapter 1</u></h1>
<h2>The Engram; What Is It?</h2>
<p>
In the Eight Era of the Seventh Cycle, technology has flourished beyond the means of standard Euclidian definitions. Weave-integrated processing in conjunction with infused metals are often the specular highlight of focus for most folk willing to learn how our galaxy operates, but that is often just the tip of the iceberg for the standing Azurean scholar. Far beyond the point of quantum and bluespace, technologies had started to become too complex for any single organization to keep track of, even with the help of multidimensional-threaded computing. Thus, a standardized solution was needed: The Engram.
<p>
An Engram is more often than not an umbrella of technologies, secured beneath a data-chit for usage within a colony, region of space, or entire sector. Most brands of Engrams tend to consist of a Weave-altercated core with a deactivated shell, for usage into a type of infusion engine. Depending on the power plugged into it, it's range of influence can span very little, or very far! Most high-end Engrams tend to be galaxy-wide, and service as a focal point for editing the material blueprint of anything in real time.
<p>
The Engram itself serves the whole purpose of ensuring that a technology can become easy to contain, should it's complexity become numbing to even the most bright of minds. As a result, this can also "lock down" or change features of the technology, should it be required and programmed correctly, which is more often than not the case for companies who wish to ensure that their technologies can be distributed without illegal modifications-- after all, an Engram can be controlled only by it's main chit, so technology can be revoked or changed on the fly without any needs for recalling and redistribution!
<p>
<hr>
<h1><u>Chapter 2</u></h1>
<h2>Why Are Engrams Made?</h2>
<p>
As stated in the chapter before, Engrams were made out of the necessity of simplifying relentlessly-complex technologies, but they suffice much more purpose than just ease of access. When an Engram is successfully applied to a technology or a branch of such, it effectively can alter the material blueprint of said tech in realtime, should the correct commodoties be applied to it. This ease of updating manufactured goods in realtime can be applicable to simply updating software on one's computer, only with realtime hardware modification, for the sake of analogy. This means any issues can be ironed out post-distribution.
<p>
Not only that, but this effectively helps technology to be more free and easily accessible for those interested in purchasing. Shareholders can use and keep an Engram knowing full well that this allows their technology to be safe and secure, even if it does end up in the wrong hands! Engrams are often tied to a company's TOS, where breaking said terms can often revoke and restrain the usage of technology remotely. Even any attempts to modify technology without the correct permissions can all be result in failures, as Engrams effectively can turn technology into an encrypted blueprint in realtime-- meaning that you'll see little to no plaigiarized and ill-modified tech, without the correct permits from the user.
<p>
<hr>
<h1><u>Chapter 3</u></h1>
<h2>Why Are Engrams Necessary?</h2>
<p>
By this point in reading, it may seem obvious as to why Engrams can be necessary in this day and age, but many civilizations and societies can often reject and turn down the nature and ideals that an Engram can not only bring, but encourage as well. Many fears can be stricken across societies about how dangerous it is to put too much power in the hands of purchasable items, which is why regulation via the Azurean Engram Act of the Eighth Era was put in-place. To put it short without delving into the act's details, this allowed Engrams to be under government control and regulated to meet "humane" standards, as one would put it bluntly. This act is especially useful for any body-enhancing augments, especially for live-saving ones.
<p>
Not only for the safety of the people, Engrams can also suffice and serve the purpose of ensuring that standardized and regulated technology spread across regions as massive as an entire star cluster can be controlled and easily used, providing much more user access than a traditional tinkering mindset one may want. Of course, there is a value of wanting more skills to argue over, but that is not for this datapad.
<p>
<hr>
<h1><u>Chapter 4</u></h1>
<h2>Engrams Used Today</h2>
<p>
Engrams are used widely across the galaxy, from small startup companies to larger galactic-spanning mega-corporations like Kinaris and Dzar. Many companies patent all of their technology beneath their own Engrams, and Kinaris is prominent for mimicking technology of previous civilizations into an Engram for their conversion process; such is the example of the crew of Layenia Station at Hyperion. Just about everywhere you look in Andromeda can be using at least a dozen Engrams in day to day technologies. From things as small as coffee machines and booze dispensers, to even full-blown vessels and capital ships, Engrams can dictate the shape and function of many day-to-day things!
<p>
<hr>
</body>
</html>
"}