<commit_before>//ayy lmao
#define NITROGEN_RETARDATION_FACTOR 4        //Higher == N2 slows reaction more
#define THERMAL_RELEASE_MODIFIER 40                //Higher == less heat released during reaction
#define PLASMA_RELEASE_MODIFIER 1500                //Higher == less plasma released by reaction
#define OXYGEN_RELEASE_MODIFIER 800        //Higher == less oxygen released at high temperature/power
#define REACTION_POWER_MODIFIER 1.1                //Higher == more overall power

//These would be what you would get at point blank, decreases with distance
#define DETONATION_RADS 200
#define DETONATION_HALLUCINATION 600

#define WARNING_DELAY 30 		//seconds between warnings.
//#define AUDIO_WARNING_DELAY 30



//#define WARNING_DELAY 30 		//seconds between warnings.

/obj/machinery/power/supermatter
	name = "Supermatter Crystal"
	desc = "A strangely translucent and iridescent crystal. <span class='danger'>You get headaches just from looking at it.</span>"
	icon = 'icons/obj/engine.dmi'
	icon_state = "darkmatter"
	density = 1
	anchored = 0
	l_color = "#ffcc00"

	var/max_luminosity = 8 // Now varies based on power.

	// What it's referred to in the alerts
	var/short_name = "Crystal"

	var/gasefficency = 0.25

	var/base_icon_state = "darkmatter"

	var/damage = 0
	var/exploding = 0
	var/damage_archived = 0
	var/warning_point = 100
	var/audio_warning_point=500
	var/emergency_point = 700
	var/explosion_point = 1000

	var/emergency_issued = 0

	var/explosion_power = 8

	var/lastwarning = 0                        // Time in 1/10th of seconds since the last sent warning
//	var/lastaudiowarning = 0

	var/power = 0
	var/max_power = 2000 // Used for lighting scaling.

	var/oxygen = 0				  // Moving this up here for easier debugging.

	//Temporary values so that we can optimize this
	//How much the bullets damage should be multiplied by when it is added to the internal variables
	var/config_bullet_energy = 2
	//How much of the power is left after processing is finished?
//        var/config_power_reduction_per_tick = 0.5
	//How much hallucination should it produce per unit of power?
	var/config_hallucination_power = 0.1

	var/obj/item/device/radio/radio

	// Monitoring shit
	var/frequency = 0
	var/id_tag

	//Add types to this list so it doesn't make a message or get desroyed by the Supermatter on touch.
	var/list/message_exclusions = list(/obj/effect/effect/sparks)

/*
	var/gasefficency = 0.125

	var/base_icon_state = "darkmatter_shard"

	var/damage = 0
	var/damage_archived = 0
	var/safe_alert = "Crystalline hyperstructure returning to safe operating levels."
	var/warning_point = 50
	var/warning_alert = "Danger! Crystal hyperstructure instability!"
	var/emergency_point = 500
	var/emergency_alert = "CRYSTAL DELAMINATION IMMINENT."
	var/explosion_point = 900

	var/emergency_issued = 0

	var/explosion_power = 8

	var/lastwarning = 0				// Time in 1/10th of seconds since the last sent warning
	var/power = 0

	var/oxygen = 0					// Moving this up here for easier debugging.

	//Temporary values so that we can optimize this
	//How much the bullets damage should be multiplied by when it is added to the internal variables
	var/config_bullet_energy = 2
	//How much of the power is left after processing is finished?
//	var/config_power_reduction_per_tick = 0.5
	//How much hallucination should it produce per unit of power?
	var/config_hallucination_power = 0.1

	var/obj/item/device/radio/radio
*/
	//for logging
	var/has_been_powered = 0
	var/has_reached_emergency = 0


/obj/machinery/power/supermatter/shard //Small subtype, less efficient and more sensitive, but less boom.
	name = "Supermatter Shard"
	short_name = "Shard"
	desc = "A strangely translucent and iridescent crystal that looks like it used to be part of a larger structure. <span class='warning'>You get headaches just from looking at it.</span>"
	icon_state = "darkmatter_shard"
	base_icon_state = "darkmatter_shard"

	warning_point = 50
	audio_warning_point=400
	emergency_point = 500
	explosion_point = 900

	gasefficency = 0.125

	explosion_power = 8 // WAS 3 - N3X

	max_luminosity = 5
	max_power=3000

/obj/machinery/power/supermatter/New()
	. = ..()
	radio = new (src)

	investigate_log("has been created.", "supermatter")


/obj/machinery/power/supermatter/Destroy()
	investigate_log("has been destroyed.", "supermatter")
	qdel(radio)
	. = ..()

/obj/machinery/power/supermatter/proc/explode()
		exploding = 1
		explosion(get_turf(src), explosion_power, explosion_power * 2, explosion_power * 3, explosion_power * 4, 1)
		new /turf/unsimulated/wall/supermatter(get_turf(src))
		SetUniversalState(/datum/universal_state/supermatter_cascade)
		qdel(src)

/obj/machinery/power/supermatter/shard/explode()
		explosion(get_turf(src), explosion_power, explosion_power * 2, explosion_power * 3, explosion_power * 4, 1)
		exploding = 1
		qdel(src)
		return


/obj/machinery/power/supermatter/shard/singularity_act()
	var/prints = ""
	if(src.fingerprintshidden)
		prints = ", all touchers : [list2params(src.fingerprintshidden)]"
	log_admin("New super singularity made by eating a SM crystal [prints]. Last touched by [src.fingerprintslast].")
	message_admins("New super singularity made by eating a SM crystal [prints]. Last touched by [src.fingerprintslast].")
	qdel(src)
	return 15000

/obj/machinery/power/supermatter/singularity_act()
	var/prints = ""
	if(src.fingerprintshidden)
		prints = ", all touchers : " + src.fingerprintshidden
	SetUniversalState(/datum/universal_state/supermatter_cascade)
	//S.expand(STAGE_SUPER, 1)
	log_admin("New super singularity made by eating a SM crystal [prints]. Last touched by [src.fingerprintslast].")
	message_admins("New super singularity made by eating a SM crystal [prints]. Last touched by [src.fingerprintslast].")
	qdel(src)
	return 20000

/obj/machinery/power/supermatter/process()
	var/turf/L = loc

	if(isnull(L))		// We have a null turf...something is wrong, stop processing this entity.
		return PROCESS_KILL

	if(!istype(L)) 	//We are in a crate or somewhere that isn't turf, if we return to turf resume processing but for now.
		return  //Yeah just stop.

	if(istype(L, /turf/space))	// Stop processing this stuff if we've been ejected.
		return


	var/stability = round((damage / explosion_point) * 100)


	if(damage > warning_point) // while the core is still damaged and it's still worth noting its status

	//	var/list/audio_sounds = list('sound/AI/supermatter_integrity_before.ogg')
	//	var/play_alert = 0
	//	var/audio_offset = 0
		if((world.timeofday - lastwarning) / 10 >= WARNING_DELAY)
			var/warning=""
			var/offset = 0

//			audio_sounds += vox_num2list(stability)
//			audio_sounds += list('sound/AI/supermatter_integrity_after.ogg')

			// Damage still low.
			if(damage >= damage_archived) // The damage is still going up
				warning = "Danger! [short_name] hyperstructure instability detected, now at [stability]%."
				offset=150

				if(damage > emergency_point)
					warning = "[uppertext(short_name)] INSTABILITY AT [stability]%. DELAMINATION IMMINENT - EVACUATE IMMEDIATELY."
					offset=0
//					audio_sounds += list('sound/AI/supermatter_delam.ogg')
					//audio_offset = 100
					if(!has_reached_emergency)
						investigate_log("has reached the emergency point for the first time.", "supermatter")
						message_admins("[src] has reached the emergency point <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>(JMP)</a>.")
						has_reached_emergency = 1
//				play_alert = (damage > audio_warning_point)
			else
				warning = "[short_name] hyperstructure returning to safe operating levels. Instability: [stability]%"
			//radio.say(warning, "Supermatter [short_name] Monitor")
			radio.talk_into(src, "[warning]")

			lastwarning = world.timeofday - offset

	//	if(play_alert && (world.timeofday - lastaudiowarning) / 10 >= AUDIO_WARNING_DELAY)
	//		for(var/sf in audio_sounds)
	//			var/sound/voice = sound(sf, wait = 1, channel = VOX_CHANNEL)
	//			voice.status = SOUND_STREAM
	//			world << voice
	//		lastaudiowarning = world.timeofday - audio_offset

		if(damage > explosion_point)
			for(var/mob/living/mob in living_mob_list)
				if(istype(mob, /mob/living/carbon/human))
					//Hilariously enough, running into a closet should make you get hit the hardest.
					var/mob/living/carbon/human/H = mob
					H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) )
				var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(mob, src) + 1) )
				mob.irradiate(rads)

			explode()


	//Ok, get the air from the turf
	var/datum/gas_mixture/env = L.return_air()

	//Remove gas from surrounding area
	var/datum/gas_mixture/removed = env.remove(gasefficency * env.total_moles())

	if(!removed || !removed.total_moles())
		damage += max((power-1600)/10, 0)
		power = min(power, 1600)
		return 1

	damage_archived = damage
	damage = max( damage + ( (removed.temperature - 800) / 150 ) , 0 )
	//Ok, 100% oxygen atmosphere = best reaction
	//Maxes out at 100% oxygen pressure
	oxygen = max(min((removed.oxygen - (removed.nitrogen * NITROGEN_RETARDATION_FACTOR)) / MOLES_CELLSTANDARD, 1), 0)

	var/temp_factor = 100

	if(oxygen > 0.8)
		// with a perfect gas mix, make the power less based on heat
		icon_state = "[base_icon_state]_glow"
	else
		// in normal mode, base the produced energy around the heat
		temp_factor = 60
		icon_state = base_icon_state

	power = max( (removed.temperature * temp_factor / T0C) * oxygen + power, 0) //Total laser power plus an overload

	//We've generated power, now let's transfer it to the collectors for storing/usage
	transfer_energy()

	var/device_energy = power * REACTION_POWER_MODIFIER

	//To figure out how much temperature to add each tick, consider that at one atmosphere's worth
	//of pure oxygen, with all four lasers firing at standard energy and no N2 present, at room temperature
	//that the device energy is around 2140. At that stage, we don't want too much heat to be put out
	//Since the core is effectively "cold"

	//Also keep in mind we are only adding this temperature to (efficiency)% of the one tile the rock
	//is on. An increase of 4*C @ 25% efficiency here results in an increase of 1*C / (#tilesincore) overall.
	removed.temperature += (device_energy / THERMAL_RELEASE_MODIFIER)

	removed.temperature = max(0, min(removed.temperature, 2500))

	//Calculate how much gas to release
	removed.toxins += max(device_energy / PLASMA_RELEASE_MODIFIER, 0)

	removed.oxygen += max((device_energy + removed.temperature - T0C) / OXYGEN_RELEASE_MODIFIER, 0)

//	removed.update_values()

	env.merge(removed)

	for(var/mob/living/carbon/human/l in view(src, min(7, round(power ** 0.25)))) // If they can see it without mesons on.  Bad on them.
		if(!istype(l.glasses, /obj/item/clothing/glasses/meson))
			l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1, get_dist(l, src)) ) ) )

	for(var/mob/living/l in range(src, round((power / 100) ** 0.25)))
		var/rads = (power / 10) * sqrt( 1 / max(get_dist(l, src),1) )
		l.irradiate(rads)

	power -= (power/500)**3


	SetLuminosity(Clamp(round(Clamp(power/max_power,0,1)*max_luminosity),0,max_luminosity))

	return 1


/obj/machinery/power/supermatter/bullet_act(var/obj/item/projectile/Proj)
	var/turf/L = loc
	if(!istype(L))		// We don't run process() when we are in space
		return 0	// This stops people from being able to really power up the supermatter
				// Then bring it inside to explode instantly upon landing on a valid turf.


	if(Proj.flag != "bullet")
		power += Proj.damage * config_bullet_energy
		if(!has_been_powered)
			investigate_log("has been powered for the first time.", "supermatter")
			message_admins("[src] has been powered for the first time <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>(JMP)</a>.")
			has_been_powered = 1<commit_msg>Tweak supermatter values<commit_after>//ayy lmao
#define NITROGEN_RETARDATION_FACTOR 4        //Higher == N2 slows reaction more
#define THERMAL_RELEASE_MODIFIER 40                //Higher == less heat released during reaction
#define PLASMA_RELEASE_MODIFIER 1000                //Higher == less plasma released by reaction
#define OXYGEN_RELEASE_MODIFIER 500        //Higher == less oxygen released at high temperature/power
#define REACTION_POWER_MODIFIER 1.1                //Higher == more overall power

//These would be what you would get at point blank, decreases with distance
#define DETONATION_RADS 200
#define DETONATION_HALLUCINATION 600

#define WARNING_DELAY 30 		//seconds between warnings.
//#define AUDIO_WARNING_DELAY 30



//#define WARNING_DELAY 30 		//seconds between warnings.

/obj/machinery/power/supermatter
	name = "Supermatter Crystal"
	desc = "A strangely translucent and iridescent crystal. <span class='danger'>You get headaches just from looking at it.</span>"
	icon = 'icons/obj/engine.dmi'
	icon_state = "darkmatter"
	density = 1
	anchored = 0
	l_color = "#ffcc00"

	var/max_luminosity = 8 // Now varies based on power.

	// What it's referred to in the alerts
	var/short_name = "Crystal"

	var/gasefficency = 0.25

	var/base_icon_state = "darkmatter"

	var/damage = 0
	var/exploding = 0
	var/damage_archived = 0
	var/warning_point = 100
	var/audio_warning_point=500
	var/emergency_point = 700
	var/explosion_point = 1000

	var/emergency_issued = 0

	var/explosion_power = 8

	var/lastwarning = 0                        // Time in 1/10th of seconds since the last sent warning
//	var/lastaudiowarning = 0

	var/power = 0
	var/max_power = 2000 // Used for lighting scaling.

	var/oxygen = 0				  // Moving this up here for easier debugging.

	//Temporary values so that we can optimize this
	//How much the bullets damage should be multiplied by when it is added to the internal variables
	var/config_bullet_energy = 2
	//How much of the power is left after processing is finished?
//        var/config_power_reduction_per_tick = 0.5
	//How much hallucination should it produce per unit of power?
	var/config_hallucination_power = 0.1

	var/obj/item/device/radio/radio

	// Monitoring shit
	var/frequency = 0
	var/id_tag

	//Add types to this list so it doesn't make a message or get desroyed by the Supermatter on touch.
	var/list/message_exclusions = list(/obj/effect/effect/sparks)

/*
	var/gasefficency = 0.125

	var/base_icon_state = "darkmatter_shard"

	var/damage = 0
	var/damage_archived = 0
	var/safe_alert = "Crystalline hyperstructure returning to safe operating levels."
	var/warning_point = 50
	var/warning_alert = "Danger! Crystal hyperstructure instability!"
	var/emergency_point = 500
	var/emergency_alert = "CRYSTAL DELAMINATION IMMINENT."
	var/explosion_point = 900

	var/emergency_issued = 0

	var/explosion_power = 8

	var/lastwarning = 0				// Time in 1/10th of seconds since the last sent warning
	var/power = 0

	var/oxygen = 0					// Moving this up here for easier debugging.

	//Temporary values so that we can optimize this
	//How much the bullets damage should be multiplied by when it is added to the internal variables
	var/config_bullet_energy = 2
	//How much of the power is left after processing is finished?
//	var/config_power_reduction_per_tick = 0.5
	//How much hallucination should it produce per unit of power?
	var/config_hallucination_power = 0.1

	var/obj/item/device/radio/radio
*/
	//for logging
	var/has_been_powered = 0
	var/has_reached_emergency = 0


/obj/machinery/power/supermatter/shard //Small subtype, less efficient and more sensitive, but less boom.
	name = "Supermatter Shard"
	short_name = "Shard"
	desc = "A strangely translucent and iridescent crystal that looks like it used to be part of a larger structure. <span class='warning'>You get headaches just from looking at it.</span>"
	icon_state = "darkmatter_shard"
	base_icon_state = "darkmatter_shard"

	warning_point = 50
	audio_warning_point=400
	emergency_point = 500
	explosion_point = 900

	gasefficency = 0.125

	explosion_power = 8 // WAS 3 - N3X

	max_luminosity = 5
	max_power=3000

/obj/machinery/power/supermatter/New()
	. = ..()
	radio = new (src)

	investigate_log("has been created.", "supermatter")


/obj/machinery/power/supermatter/Destroy()
	investigate_log("has been destroyed.", "supermatter")
	qdel(radio)
	. = ..()

/obj/machinery/power/supermatter/proc/explode()
		exploding = 1
		explosion(get_turf(src), explosion_power, explosion_power * 2, explosion_power * 3, explosion_power * 4, 1)
		new /turf/unsimulated/wall/supermatter(get_turf(src))
		SetUniversalState(/datum/universal_state/supermatter_cascade)
		qdel(src)

/obj/machinery/power/supermatter/shard/explode()
		explosion(get_turf(src), explosion_power, explosion_power * 2, explosion_power * 3, explosion_power * 4, 1)
		exploding = 1
		qdel(src)
		return


/obj/machinery/power/supermatter/shard/singularity_act()
	var/prints = ""
	if(src.fingerprintshidden)
		prints = ", all touchers : [list2params(src.fingerprintshidden)]"
	log_admin("New super singularity made by eating a SM crystal [prints]. Last touched by [src.fingerprintslast].")
	message_admins("New super singularity made by eating a SM crystal [prints]. Last touched by [src.fingerprintslast].")
	qdel(src)
	return 15000

/obj/machinery/power/supermatter/singularity_act()
	var/prints = ""
	if(src.fingerprintshidden)
		prints = ", all touchers : " + src.fingerprintshidden
	SetUniversalState(/datum/universal_state/supermatter_cascade)
	//S.expand(STAGE_SUPER, 1)
	log_admin("New super singularity made by eating a SM crystal [prints]. Last touched by [src.fingerprintslast].")
	message_admins("New super singularity made by eating a SM crystal [prints]. Last touched by [src.fingerprintslast].")
	qdel(src)
	return 20000

/obj/machinery/power/supermatter/process()
	var/turf/L = loc

	if(isnull(L))		// We have a null turf...something is wrong, stop processing this entity.
		return PROCESS_KILL

	if(!istype(L)) 	//We are in a crate or somewhere that isn't turf, if we return to turf resume processing but for now.
		return  //Yeah just stop.

	if(istype(L, /turf/space))	// Stop processing this stuff if we've been ejected.
		return


	var/stability = round((damage / explosion_point) * 100)


	if(damage > warning_point) // while the core is still damaged and it's still worth noting its status

	//	var/list/audio_sounds = list('sound/AI/supermatter_integrity_before.ogg')
	//	var/play_alert = 0
	//	var/audio_offset = 0
		if((world.timeofday - lastwarning) / 10 >= WARNING_DELAY)
			var/warning=""
			var/offset = 0

//			audio_sounds += vox_num2list(stability)
//			audio_sounds += list('sound/AI/supermatter_integrity_after.ogg')

			// Damage still low.
			if(damage >= damage_archived) // The damage is still going up
				warning = "Danger! [short_name] hyperstructure instability detected, now at [stability]%."
				offset=150

				if(damage > emergency_point)
					warning = "[uppertext(short_name)] INSTABILITY AT [stability]%. DELAMINATION IMMINENT - EVACUATE IMMEDIATELY."
					offset=0
//					audio_sounds += list('sound/AI/supermatter_delam.ogg')
					//audio_offset = 100
					if(!has_reached_emergency)
						investigate_log("has reached the emergency point for the first time.", "supermatter")
						message_admins("[src] has reached the emergency point <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>(JMP)</a>.")
						has_reached_emergency = 1
//				play_alert = (damage > audio_warning_point)
			else
				warning = "[short_name] hyperstructure returning to safe operating levels. Instability: [stability]%"
			//radio.say(warning, "Supermatter [short_name] Monitor")
			radio.talk_into(src, "[warning]")

			lastwarning = world.timeofday - offset

	//	if(play_alert && (world.timeofday - lastaudiowarning) / 10 >= AUDIO_WARNING_DELAY)
	//		for(var/sf in audio_sounds)
	//			var/sound/voice = sound(sf, wait = 1, channel = VOX_CHANNEL)
	//			voice.status = SOUND_STREAM
	//			world << voice
	//		lastaudiowarning = world.timeofday - audio_offset

		if(damage > explosion_point)
			for(var/mob/living/mob in living_mob_list)
				if(istype(mob, /mob/living/carbon/human))
					//Hilariously enough, running into a closet should make you get hit the hardest.
					var/mob/living/carbon/human/H = mob
					H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) )
				var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(mob, src) + 1) )
				mob.irradiate(rads)

			explode()


	//Ok, get the air from the turf
	var/datum/gas_mixture/env = L.return_air()

	//Remove gas from surrounding area
	var/datum/gas_mixture/removed = env.remove(gasefficency * env.total_moles())

	if(!removed || !removed.total_moles())
		damage += max((power-1600)/10, 0)
		power = min(power, 1600)
		return 1

	damage_archived = damage
	damage = max( damage + ( (removed.temperature - 800) / 150 ) , 0 )
	//Ok, 100% oxygen atmosphere = best reaction
	//Maxes out at 100% oxygen pressure
	oxygen = max(min((removed.oxygen - (removed.nitrogen * NITROGEN_RETARDATION_FACTOR)) / MOLES_CELLSTANDARD, 1), 0)

	var/temp_factor = 100

	if(oxygen > 0.8)
		// with a perfect gas mix, make the power less based on heat
		icon_state = "[base_icon_state]_glow"
	else
		// in normal mode, base the produced energy around the heat
		temp_factor = 60
		icon_state = base_icon_state

	power = max( (removed.temperature * temp_factor / T0C) * oxygen + power, 0) //Total laser power plus an overload

	//We've generated power, now let's transfer it to the collectors for storing/usage
	transfer_energy()

	var/device_energy = power * REACTION_POWER_MODIFIER

	//To figure out how much temperature to add each tick, consider that at one atmosphere's worth
	//of pure oxygen, with all four lasers firing at standard energy and no N2 present, at room temperature
	//that the device energy is around 2140. At that stage, we don't want too much heat to be put out
	//Since the core is effectively "cold"

	//Also keep in mind we are only adding this temperature to (efficiency)% of the one tile the rock
	//is on. An increase of 4*C @ 25% efficiency here results in an increase of 1*C / (#tilesincore) overall.
	removed.temperature += (device_energy / THERMAL_RELEASE_MODIFIER)

	removed.temperature = max(0, min(removed.temperature, 2500))

	//Calculate how much gas to release
	removed.toxins += max(device_energy / PLASMA_RELEASE_MODIFIER, 0)

	removed.oxygen += max((device_energy + removed.temperature - T0C) / OXYGEN_RELEASE_MODIFIER, 0)

//	removed.update_values()

	env.merge(removed)

	for(var/mob/living/carbon/human/l in view(src, min(7, round(power ** 0.25)))) // If they can see it without mesons on.  Bad on them.
		if(!istype(l.glasses, /obj/item/clothing/glasses/meson))
			l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1, get_dist(l, src)) ) ) )

	for(var/mob/living/l in range(src, round((power / 100) ** 0.25)))
		var/rads = (power / 10) * sqrt( 1 / max(get_dist(l, src),1) )
		l.irradiate(rads)

	power -= (power/500)**3


	SetLuminosity(Clamp(round(Clamp(power/max_power,0,1)*max_luminosity),0,max_luminosity))

	air_update_turf(1)

	return 1


/obj/machinery/power/supermatter/bullet_act(var/obj/item/projectile/Proj)
	var/turf/L = loc
	if(!istype(L))		// We don't run process() when we are in space
		return 0	// This stops people from being able to really power up the supermatter
				// Then bring it inside to explode instantly upon landing on a valid turf.


	if(Proj.flag != "bullet")
		power += Proj.damage * config_bullet_energy
		if(!has_been_powered)
			investigate_log("has been powered for the first time.", "supermatter")
			message_admins("[src] has been powered for the first time <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>(JMP)</a>.")
			has_been_powered = 1
{'fraction_non_alphanumeric': 0.10737408559656941, 'fraction_numerical': 0.021567308500798788, 'mean_word_length': 3.8864009860312243, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 35, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4730534', 'n_tokens_mistral': 9079, 'n_tokens_neox': 7843, 'n_words': 2290}