diff --git a/baystation12.dme b/baystation12.dme
index 8eac216fe6..d007fb1cce 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -87,8 +87,6 @@
#define FILE_DIR "code/js"
#define FILE_DIR "code/modules"
#define FILE_DIR "code/modules/admin"
-#define FILE_DIR "code/modules/admin/new"
-#define FILE_DIR "code/modules/admin/new/verbs"
#define FILE_DIR "code/modules/admin/verbs"
#define FILE_DIR "code/modules/assembly"
#define FILE_DIR "code/modules/chemical"
@@ -104,6 +102,7 @@
#define FILE_DIR "code/modules/DetectiveWork"
#define FILE_DIR "code/modules/flufftext"
#define FILE_DIR "code/modules/food"
+#define FILE_DIR "code/modules/maps"
#define FILE_DIR "code/modules/mining"
#define FILE_DIR "code/modules/mob"
#define FILE_DIR "code/modules/mob/dead"
@@ -174,7 +173,6 @@
#define FILE_DIR "code/WorkInProgress/Ported/Abi79"
#define FILE_DIR "code/WorkInProgress/Ported/Bureaucracy"
#define FILE_DIR "code/WorkInProgress/Ported/Spawners"
-#define FILE_DIR "code/WorkInProgress/Ported/ZeroPoint"
#define FILE_DIR "code/WorkInProgress/SkyMarshal"
#define FILE_DIR "code/WorkInProgress/Tastyfish"
#define FILE_DIR "code/WorkInProgress/virus2"
@@ -201,6 +199,7 @@
#define FILE_DIR "icons/vending_icons"
#define FILE_DIR "interface"
#define FILE_DIR "maps"
+#define FILE_DIR "maps/RandomZLevels"
#define FILE_DIR "sound"
#define FILE_DIR "sound/AI"
#define FILE_DIR "sound/ambience"
@@ -404,6 +403,7 @@
#include "code\game\events\EventProcs\ninja_equipment.dm"
#include "code\game\events\EventProcs\space_ninja.dm"
#include "code\game\events\EventProcs\spacevines.dm"
+#include "code\game\events\EventProcs\wormholes.dm"
#include "code\game\events\Events\AlienInfestation.dm"
#include "code\game\events\Events\Appendicitis.dm"
#include "code\game\events\Events\ElectricalStorm.dm"
@@ -434,6 +434,7 @@
#include "code\game\gamemodes\changeling\traitor_chan.dm"
#include "code\game\gamemodes\cult\cult.dm"
#include "code\game\gamemodes\cult\cult_items.dm"
+#include "code\game\gamemodes\cult\cult_structures.dm"
#include "code\game\gamemodes\epidemic\epidemic.dm"
#include "code\game\gamemodes\extended\extended.dm"
#include "code\game\gamemodes\malfunction\Malf_Modules.dm"
@@ -488,6 +489,7 @@
#include "code\game\machinery\flasher.dm"
#include "code\game\machinery\floodlight.dm"
#include "code\game\machinery\Freezer.dm"
+#include "code\game\machinery\gateway.dm"
#include "code\game\machinery\hologram.dm"
#include "code\game\machinery\hydroponics.dm"
#include "code\game\machinery\igniter.dm"
@@ -538,13 +540,13 @@
#include "code\game\machinery\computer\atmos_alert.dm"
#include "code\game\machinery\computer\buildandrepair.dm"
#include "code\game\machinery\computer\camera_monitor.dm"
+#include "code\game\machinery\computer\card.dm"
#include "code\game\machinery\computer\cloning.dm"
#include "code\game\machinery\computer\communications.dm"
#include "code\game\machinery\computer\computer.dm"
#include "code\game\machinery\computer\crew.dm"
#include "code\game\machinery\computer\HolodeckControl.dm"
#include "code\game\machinery\computer\hologram.dm"
-#include "code\game\machinery\computer\id.dm"
#include "code\game\machinery\computer\law.dm"
#include "code\game\machinery\computer\lockdown.dm"
#include "code\game\machinery\computer\medical.dm"
@@ -668,6 +670,7 @@
#include "code\game\objects\closets\secure\cargo.dm"
#include "code\game\objects\closets\secure\civilian.dm"
#include "code\game\objects\closets\secure\engineering.dm"
+#include "code\game\objects\closets\secure\hydroponics.dm"
#include "code\game\objects\closets\secure\medical.dm"
#include "code\game\objects\closets\secure\personal.dm"
#include "code\game\objects\closets\secure\research.dm"
@@ -793,11 +796,12 @@
#include "code\modules\admin\verbs\adminsay.dm"
#include "code\modules\admin\verbs\atmosdebug.dm"
#include "code\modules\admin\verbs\BrokenInhands.dm"
+#include "code\modules\admin\verbs\cinematic.dm"
#include "code\modules\admin\verbs\custom_event.dm"
#include "code\modules\admin\verbs\deadsay.dm"
#include "code\modules\admin\verbs\debug.dm"
#include "code\modules\admin\verbs\diagnostics.dm"
-#include "code\modules\admin\verbs\getruntimelog.dm"
+#include "code\modules\admin\verbs\getlogs.dm"
#include "code\modules\admin\verbs\gimmicks.dm"
#include "code\modules\admin\verbs\mapping.dm"
#include "code\modules\admin\verbs\massmodvar.dm"
@@ -872,6 +876,11 @@
#include "code\modules\food\food.dm"
#include "code\modules\food\meat.dm"
#include "code\modules\food\recipes_microwave.dm"
+#include "code\modules\maps\dmm_suite.dm"
+#include "code\modules\maps\randomZlevel.dm"
+#include "code\modules\maps\reader.dm"
+#include "code\modules\maps\SwapMaps.dm"
+#include "code\modules\maps\writer.dm"
#include "code\modules\mining\machine_input_output_plates.dm"
#include "code\modules\mining\machine_processing.dm"
#include "code\modules\mining\machine_stacking.dm"
@@ -883,6 +892,7 @@
#include "code\modules\mining\money_bag.dm"
#include "code\modules\mining\ores_materials_coins.dm"
#include "code\modules\mining\satchel_ore_box.dm"
+#include "code\modules\mob\death.dm"
#include "code\modules\mob\login.dm"
#include "code\modules\mob\logout.dm"
#include "code\modules\mob\mob.dm"
@@ -891,9 +901,11 @@
#include "code\modules\mob\mob_grab.dm"
#include "code\modules\mob\mob_helpers.dm"
#include "code\modules\mob\mob_movement.dm"
+#include "code\modules\mob\mob_transformation_simple.dm"
#include "code\modules\mob\say.dm"
#include "code\modules\mob\screen.dm"
#include "code\modules\mob\transform_procs.dm"
+#include "code\modules\mob\dead\death.dm"
#include "code\modules\mob\dead\observer\hud.dm"
#include "code\modules\mob\dead\observer\login.dm"
#include "code\modules\mob\dead\observer\observer.dm"
@@ -907,6 +919,7 @@
#include "code\modules\mob\living\carbon\give.dm"
#include "code\modules\mob\living\carbon\shock.dm"
#include "code\modules\mob\living\carbon\alien\alien.dm"
+#include "code\modules\mob\living\carbon\alien\death.dm"
#include "code\modules\mob\living\carbon\alien\say.dm"
#include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm"
#include "code\modules\mob\living\carbon\alien\humanoid\death.dm"
@@ -973,6 +986,7 @@
#include "code\modules\mob\living\carbon\monkey\npc.dm"
#include "code\modules\mob\living\carbon\monkey\powers.dm"
#include "code\modules\mob\living\carbon\monkey\say.dm"
+#include "code\modules\mob\living\silicon\death.dm"
#include "code\modules\mob\living\silicon\say.dm"
#include "code\modules\mob\living\silicon\silicon.dm"
#include "code\modules\mob\living\silicon\ai\ai.dm"
@@ -1022,6 +1036,7 @@
#include "code\modules\mob\organ\organ_external.dm"
#include "code\modules\mob\organ\organ_internal.dm"
#include "code\modules\mob\organ\pain.dm"
+#include "code\modules\mob\simple_animal\behemoth.dm"
#include "code\modules\mob\simple_animal\cat.dm"
#include "code\modules\mob\simple_animal\constructs.dm"
#include "code\modules\mob\simple_animal\corgi.dm"
@@ -1143,8 +1158,6 @@
#include "code\WorkInProgress\Cael_Aislinn\Tajara\tajaran.dm"
#include "code\WorkInProgress\Cael_Aislinn\Tajara\whisper.dm"
#include "code\WorkInProgress\Chinsky\ashtray.dm"
-#include "code\WorkInProgress\mapload\dmm_suite.dm"
-#include "code\WorkInProgress\mapload\reader.dm"
#include "code\WorkInProgress\Mini\ATM.dm"
#include "code\WorkInProgress\Mini\atmos_control.dm"
#include "code\WorkInProgress\Mini\pipe_heater.dm"
@@ -1180,6 +1193,7 @@
#include "code\WorkInProgress\virus2\monkeydispensor.dm"
#include "code\WorkInProgress\virus2\Prob.dm"
#include "code\WorkInProgress\Wrongnumber\weldbackpack.dm"
+#include "interface\interface.dm"
#include "interface\skin.dmf"
#include "maps\tgstation.2.0.8.dmm"
// END_INCLUDE
diff --git a/code/FEA/FEA_gas_mixture.dm b/code/FEA/FEA_gas_mixture.dm
index d43c88dabb..7e4c565b70 100644
--- a/code/FEA/FEA_gas_mixture.dm
+++ b/code/FEA/FEA_gas_mixture.dm
@@ -475,6 +475,7 @@ datum
return share(sharer)*/
check_gas_mixture(datum/gas_mixture/sharer)
+ if(!sharer) return 0
var/delta_oxygen = (oxygen_archived - sharer.oxygen_archived)/5
var/delta_carbon_dioxide = (carbon_dioxide_archived - sharer.carbon_dioxide_archived)/5
var/delta_nitrogen = (nitrogen_archived - sharer.nitrogen_archived)/5
diff --git a/code/WorkInProgress/Cael_Aislinn/MultiZ.dm b/code/WorkInProgress/Cael_Aislinn/MultiZ.dm
index b2faa09285..855e26e14a 100644
--- a/code/WorkInProgress/Cael_Aislinn/MultiZ.dm
+++ b/code/WorkInProgress/Cael_Aislinn/MultiZ.dm
@@ -195,15 +195,15 @@
..()
*/
- var/obj/effect/decal/cleanable/blood/B = new(src.loc)
- var/list/blood_DNA_temp[1]
- blood_DNA_temp[1] = list(H.dna.unique_enzymes, H.dna.b_type)
- B.blood_DNA = blood_DNA_temp
- B.virus2 = H.virus2
- for(var/datum/disease/D in H.viruses)
- var/datum/disease/newDisease = new D.type
- B.viruses += newDisease
- newDisease.holder = B
+ // var/obj/effect/decal/cleanable/blood/B = new(src.loc)
+ // var/list/blood_DNA_temp[1]
+ // blood_DNA_temp[1] = list(H.dna.unique_enzymes, H.dna.b_type)
+ // B.blood_DNA = blood_DNA_temp
+ // B.virus2 = H.virus2
+ // for(var/datum/disease/D in H.viruses)
+ // var/datum/disease/newDisease = new D.type
+ // B.viruses += newDisease
+ // newDisease.holder = B
H:weakened = max(H:weakened,2)
H:updatehealth()
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm
index 5b36f88de8..cd738d201a 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm
@@ -22,6 +22,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K
//
var/obj/machinery/rust/core/owned_core
var/list/dormant_reactant_quantities = new
+ luminosity = 1
//
var/energy = 0
var/mega_energy = 0
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm
index 89680f3756..3a491b1077 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm
@@ -84,12 +84,14 @@ max volume of plasma storeable by the field = the total volume of a number of ti
if(owned_field)
owned_field.ChangeFieldStrength(field_strength)
icon_state = "core1"
+ luminosity = 1
return 1
proc/Shutdown()
icon_state = "core0"
on = 0
del(owned_field)
+ luminosity = 0
proc/AddParticles(var/name, var/quantity = 1)
if(owned_field)
@@ -104,6 +106,9 @@ max volume of plasma storeable by the field = the total volume of a number of ti
Shutdown()
return
//
+ luminosity = round(owned_field.field_strength/10)
+ luminosity = max(luminosity,1)
+ //
if(stat & (NOPOWER|BROKEN))
Shutdown()
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm
index b9739ba9aa..c9999d2d1d 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm
@@ -9,7 +9,7 @@
New()
spawn(0)
- core_generator = locate() in range(15,src)
+ core_generator = locate() in world
attack_ai(mob/user)
attack_hand(user)
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm
index 3016c50fc2..7604e05958 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm
@@ -20,7 +20,7 @@
fuel_injectors.Add("SCRAM")
fuel_injectors["SCRAM"] = new/list
spawn(0)
- for(var/obj/machinery/rust/fuel_injector/Injector in range(50,src))
+ for(var/obj/machinery/rust/fuel_injector/Injector in world)
if(Injector.stage in fuel_injectors)
var/list/targetlist = fuel_injectors[Injector.stage]
targetlist.Add(Injector)
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron_controller.dm b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron_controller.dm
index b95b4bb4bc..df34958c23 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron_controller.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron_controller.dm
@@ -44,7 +44,7 @@
return
var/t = "Gyrotron Remote Control Console
"
t += "
"
- for(var/obj/machinery/rust/gyrotron/gyro in range(25))
+ for(var/obj/machinery/rust/gyrotron/gyro in world)
if(gyro.remoteenabled && gyro.on)
t += "Gyrotron operational
"
t += "Operational mode: "
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm b/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm
index d1f320c53e..b45d28259c 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm
@@ -6,6 +6,7 @@
icon = 'effects.dmi'
icon_state = "energynet"
density = 0
+ anchored = 1
var/obj/machinery/rust/em_field/parent
var/mysize = 0
diff --git a/code/WorkInProgress/Cael_Aislinn/Supermatter/SuperMatter.dm b/code/WorkInProgress/Cael_Aislinn/Supermatter/SuperMatter.dm
index fbac0b9ab0..0bcb010bf4 100644
--- a/code/WorkInProgress/Cael_Aislinn/Supermatter/SuperMatter.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Supermatter/SuperMatter.dm
@@ -61,12 +61,6 @@
//a lot of these variables are pretty hacked, so dont rely on the comments
/obj/machinery/power/supermatter/process()
- var/datum/gas_mixture/env = loc.return_air()
-
- //Remove gas from surrounding area
- var/transfer_moles = gasefficency * env.total_moles()
- var/datum/gas_mixture/removed = env.remove(transfer_moles)
-
//core can no longer spontaneously explode
/*
previousdet = det
@@ -111,15 +105,24 @@
#define REACTION_POWER_MODIFIER 0.5 //Higher == more overall power
*/
- //100% oxygen atmosphere = 100% plasma production
- //100% nitrogen atmosphere = 0% plasma production
- //anything else is halfway in between; an atmosphere with no nitrogen or oxygen will still be at 50% (but steadily rise as more oxygen is made)
- var/total_moles = removed.total_moles()
+ var/datum/gas_mixture/env = loc.return_air()
+
+ //nothing can happen in a vacuum
+ var/datum/gas_mixture/removed = env
var/retardation_factor = 0.5
- if(total_moles)
- retardation_factor += removed.oxygen / (total_moles * 2) - removed.nitrogen / (total_moles * 2)
- else
- retardation_factor -= 0.25
+ if(env.total_moles())
+ //Remove gas from surrounding area
+ var/transfer_moles = gasefficency * env.total_moles()
+ removed = env.remove(transfer_moles)
+
+ //100% oxygen atmosphere = 100% plasma production
+ //100% nitrogen atmosphere = 0% plasma production
+ //anything else is halfway in between; an atmosphere with no nitrogen or oxygen will still be at 50% (but steadily rise as more oxygen is made)
+ var/total_moles = removed.total_moles()
+ if(total_moles)
+ retardation_factor += removed.oxygen / (total_moles * 2) - removed.nitrogen / (total_moles * 2)
+ else
+ retardation_factor -= 0.25
var/device_energy = mega_energy * REACTION_POWER_MODIFIER //device energy is provided by the zero point lasers
device_energy *= removed.temperature / T0C //environmental heat directly affects device energy
diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm
index e6387d3ba6..ca35d27f8e 100644
--- a/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm
@@ -54,7 +54,7 @@
t_his = "her"
t_him = "her"
- msg += "\a [src], one of the cat-like Tajarans.!\n"
+ msg += "\a [src], one of the cat-like Tajarans!\n"
//uniform
if (src.w_uniform && !skipjumpsuit)
diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm
index 63549e5b1a..d07228e056 100644
--- a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm
@@ -2,7 +2,7 @@
name = "tajaran"
real_name = "tajaran"
voice_name = "tajaran"
- icon = 'mob.dmi'
+ icon = 'tajaran.dmi'
icon_state = "m-none"
var/list/tajspeak_letters
//
@@ -41,10 +41,10 @@
var/fat = ""
/*if (mutations & FAT)
fat = "fat"*/
-
+/*
if (mutations & HULK)
overlays += image("icon" = 'genetics.dmi', "icon_state" = "hulk[fat][!lying ? "_s" : "_l"]")
-
+*/
if (mutations & COLD_RESISTANCE)
overlays += image("icon" = 'genetics.dmi', "icon_state" = "fire[fat][!lying ? "_s" : "_l"]")
@@ -354,37 +354,8 @@
overlays += image("icon" = 'belt.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
belt.screen_loc = ui_belt
- if ((wear_mask && !(wear_mask.see_face)) || (head && !(head.see_face))) // can't see the face
- if (wear_id)
- if (istype(wear_id, /obj/item/weapon/card/id))
- var/obj/item/weapon/card/id/id = wear_id
- if (id.registered_name)
- name = id.registered_name
- else
- name = "Unknown"
- else if (istype(wear_id, /obj/item/device/pda))
- var/obj/item/device/pda/pda = wear_id
- if (pda.owner)
- name = pda.owner
- else
- name = "Unknown"
- else
- name = "Unknown"
- else
- if (wear_id)
- if (istype(wear_id, /obj/item/weapon/card/id))
- var/obj/item/weapon/card/id/id = wear_id
- if (id.registered_name != real_name)
- name = "[real_name] (as [id.registered_name])"
-
- else if (istype(wear_id, /obj/item/device/pda))
- var/obj/item/device/pda/pda = wear_id
- if (pda.owner)
- if (pda.owner != real_name)
- name = "[real_name] (as [pda.owner])"
- else
- name = real_name
+ name = get_visible_name()
if (wear_id)
wear_id.screen_loc = ui_id
@@ -489,6 +460,8 @@
stand_icon = new /icon('tajaran.dmi', "torso_[g]_s")
lying_icon = new /icon('tajaran.dmi', "torso_[g]_l")
+
+
var/husk = (mutations & HUSK)
//var/obese = (mutations & FAT)
@@ -620,4 +593,95 @@
del(eyes_s)
/mob/living/carbon/human/tajaran/co2overloadtime = null
-/mob/living/carbon/human/tajaran/temperature_resistance = T0C+70
\ No newline at end of file
+/mob/living/carbon/human/tajaran/temperature_resistance = T0C+70
+
+
+/* //This is silly. -- Erthilo
+/mob/living/carbon/human/tajaran/Emissary/
+ unacidable = 1
+ var/aegis = 1
+
+/mob/living/carbon/human/tajaran/Emissary/New()
+
+ ..()
+
+ reagents.add_reagent("hyperzine", 5000) //From the dark, to the light, it's a supersonic flight!
+ // Gotta keep it going!
+ if (!(mutations & HULK))
+ mutations |= HULK
+
+ if (!(mutations & LASER))
+ mutations |= LASER
+
+ if (!(mutations & XRAY))
+ mutations |= XRAY
+ sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
+ see_in_dark = 8
+ see_invisible = 2
+
+ if (!(mutations & COLD_RESISTANCE))
+ mutations |= COLD_RESISTANCE
+
+ if (!(mutations & TK))
+ mutations |= TK
+
+ if(!(mutations & HEAL))
+ mutations |= HEAL
+
+ spawn(0)
+ while(src)
+ adjustBruteLoss(-10)
+ adjustToxLoss(-10)
+ adjustOxyLoss(-10)
+ adjustFireLoss(-10)
+ sleep(10)
+
+
+/mob/living/carbon/human/tajaran/Emissary/ex_act()
+ return
+
+/mob/living/carbon/human/tajaran/Emissary/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, inrange, params)
+ if(istype(target , /obj/machinery/door/airlock))
+ if(target:locked)
+ target:locked = 0
+ if(!target:density)
+ return 1
+ if(target:operating > 0)
+ return
+ if(!ticker)
+ return 0
+ if(!target:operating)
+ target:operating = 1
+
+ target:animate("opening")
+ target:sd_SetOpacity(0)
+ sleep(10)
+ target:layer = 2.7
+ target:density = 0
+ target:update_icon()
+ target:sd_SetOpacity(0)
+ target:update_nearby_tiles()
+
+ target:operating = -1
+
+ user << "You force the door open, shearing the bolts and burning out the motor."
+
+ if(target:operating)
+ target:operating = -1
+ else if(istype(target , /obj/machinery/door/firedoor))
+ target:open()
+
+/mob/living/carbon/human/tajaran/Emissary/Life()
+
+ ..()
+
+ if (!(mutations & HULK))
+ mutations |= HULK
+
+
+ if((stat == 2) && aegis)
+ src.show_message("\red [src]'s eyes open suddenlly.", 3, "\red \"I gave a solemn vow to never die for long.\"", 2)
+ src.heal_overall_damage(9001,9001)
+ src.stat = 0
+ aegis = 0
+*/
\ No newline at end of file
diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran_face.dmi b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran_face.dmi
index 9835ba8764..440983184d 100644
Binary files a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran_face.dmi and b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran_face.dmi differ
diff --git a/code/WorkInProgress/Ported/ZeroPoint/Laser2.dm b/code/WorkInProgress/Ported/ZeroPoint/Laser2.dm
deleted file mode 100644
index 86ab1a2333..0000000000
--- a/code/WorkInProgress/Ported/ZeroPoint/Laser2.dm
+++ /dev/null
@@ -1,128 +0,0 @@
-/obj/machinery/engine/laser
- name = "Zero-point laser"
- desc = "A super-powerful laser"
- var/visible = 1
- var/state = 1.0
- var/obj/effect/beam/e_beam/first
- var/power = 500
- icon = 'engine.dmi'
- icon_state = "laser"
- anchored = 1
- var/id
- var/on = 0
- var/freq = 50000
- var/phase = 0
- var/phase_variance = 0
-
-/obj/machinery/engine/laser/process()
- if(on)
- if(!first)
- src.first = new /obj/effect/beam/e_beam(src.loc)
- src.first.master = src
- src.first.dir = src.dir
- src.first.power = src.power
- src.first.freq = src.freq
- src.first.phase = src.phase
- src.first.phase_variance = src.phase_variance
- step(first, dir)
- if(first)
- src.first.updatebeam()
- else
- src.first.updatebeam()
- else
- if(first)
- del first
-
-/obj/machinery/engine/laser/proc/setpower(var/powera)
- src.power = powera
- if(first)
- first.setpower(src.power)
-
-
-/obj/effect/beam/e_beam
- name = "Laser beam"
- icon = 'projectiles.dmi'
- icon_state = "u_laser"
- var/obj/machinery/engine/laser/master = null
- var/obj/effect/beam/e_beam/next = null
- var/power
- var/freq = 50000
- var/phase = 0
- var/phase_variance = 0
- anchored = 1
-
-/obj/effect/beam/e_beam/New()
- src.sd_SetLuminosity(4)
-
-/obj/effect/beam/e_beam/proc/updatebeam()
- if(!next)
- if(get_step(src.loc,src.dir))
- var/obj/effect/beam/e_beam/e = new /obj/effect/beam/e_beam(src.loc)
- e.dir = src.dir
- src.next = e
- e.master = src.master
- e.power = src.power
- e.phase = src.phase
- src.phase+=src.phase_variance
- e.freq = src.freq
- e.phase_variance = src.phase_variance
- if(src.loc.density == 0)
- for(var/atom/o in src.loc.contents)
- if(o.density || o == src.master || (ismob(o) && !istype(o, /mob/dead)) )
- o.laser_act(src)
- del src
- return
- else
- src.loc.laser_act(src)
- del e
- return
- step(e,e.dir)
- if(e)
- e.updatebeam()
- else
- next.updatebeam()
-
-/atom/proc/laser_act(var/obj/effect/beam/e_beam/b)
- return
-
-/mob/living/carbon/laser_act(var/obj/effect/beam/e_beam/b)
- for(var/t in organs)
- var/datum/organ/external/affecting = organs["[t]"]
- if (affecting.take_damage(0, b.power/400,0,0))
- UpdateDamageIcon()
- else
- UpdateDamage()
-
-/obj/effect/beam/e_beam/Bump(atom/Obstacle)
- Obstacle.laser_act(src)
- del(src)
- return
-
-
-/obj/effect/beam/e_beam/proc/setpower(var/powera)
- src.power = powera
- if(src.next)
- src.next.setpower(powera)
-
-/obj/effect/beam/e_beam/Bumped()
- src.hit()
- return
-
-/obj/effect/beam/e_beam/HasEntered(atom/movable/AM as mob|obj)
- if (istype(AM, /obj/effect/beam))
- return
- spawn( 0 )
- AM.laser_act(src)
- src.hit()
- return
- return
-
-/obj/effect/beam/e_beam/Del()
- if(next)
- del(next)
- ..()
- return
-
-/obj/effect/beam/e_beam/proc/hit()
- del src
- return
\ No newline at end of file
diff --git a/code/WorkInProgress/Ported/ZeroPoint/LaserComputer.dm b/code/WorkInProgress/Ported/ZeroPoint/LaserComputer.dm
deleted file mode 100644
index fe33d3ca04..0000000000
--- a/code/WorkInProgress/Ported/ZeroPoint/LaserComputer.dm
+++ /dev/null
@@ -1,130 +0,0 @@
-//The laser control computer
-//Used to control the lasers
-/obj/machinery/computer/lasercon
- name = "Laser control computer"
- var/obj/machinery/engine/laser/laser = null
- icon_state = "atmos"
- var/id
- var/advanced = 0
-
-/obj/machinery/computer/lasercon/New()
- spawn(1)
- if(istype(src.id,/list))
- laser = list()
- for(var/obj/machinery/engine/laser/las in world)
- if(las.id in src.id)
- laser += las
- else
- for(var/obj/machinery/engine/laser/las in world)
- if(las.id == src.id)
- laser = list(las)
-
-
-
-/obj/machinery/computer/lasercon/attack_ai(mob/user)
- add_fingerprint(user)
-
- if(stat & (BROKEN|NOPOWER))
- return
- interact(user)
-
-/obj/machinery/computer/lasercon/attack_hand(mob/user)
- add_fingerprint(user)
-
- if(stat & (BROKEN|NOPOWER))
- return
- interact(user)
-
-
-/obj/machinery/computer/lasercon/proc/interact(mob/user)
-
- if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) )
- if (!istype(user, /mob/living/silicon))
- user.machine = null
- user << browse(null, "window=powcomp")
- return
-
-
- user.machine = src
- var/t = "Laser status monitor
"
-
- var/obj/machinery/engine/laser/laser = src.laser[1]
-
- if(!laser)
- t += "\red No laser found"
- else
-
-
- t += "Power level: - - - - [add_lspace(laser.power,5)] + + + +
"
- if(advanced)
- t += "Frequency: - - [add_lspace(laser.freq,5)] + +
"
-
- t += "Output: [laser.on ? "Online Offline" : "Online Offline "]
"
-
- t += "
Close"
-
- user << browse(t, "window=lascomp;size=420x700")
- onclose(user, "lascomp")
-
-
-/obj/machinery/computer/lasercon/Topic(href, href_list)
- ..()
- if( href_list["close"] )
- usr << browse(null, "window=lascomp")
- usr.machine = null
- return
-
- else if( href_list["input"] )
- var/i = text2num(href_list["input"])
- var/d = 0
- switch(i)
- if(-4)
- d = -1000
- if(4)
- d = 1000
- if(1)
- d = 1
- if(-1)
- d = -1
- if(2)
- d = 10
- if(-2)
- d = -10
- if(3)
- d = 100
- if(-3)
- d = -100
- for(var/obj/machinery/engine/laser/laser in src.laser)
- laser.power += d
- laser.setpower(max(1, min(3000, laser.power)))// clamp to range
- src.updateDialog()
- else if( href_list["online"] )
- for(var/obj/machinery/engine/laser/laser in src.laser)
- laser.on = !laser.on
- src.updateDialog()
- else if( href_list["freq"] )
- var/amt = text2num(href_list["freq"])
- for(var/obj/machinery/engine/laser/laser in src.laser)
- if(laser.freq+amt>0)
- laser.freq+=amt
- src.updateDialog()
-/obj/machinery/computer/lasercon/process()
- if(!(stat & (NOPOWER|BROKEN)) )
- use_power(250)
-
- //src.updateDialog()
-
-
-/obj/machinery/computer/lasercon/power_change()
-
- if(stat & BROKEN)
- icon_state = "broken"
- else
- if( powered() )
- icon_state = initial(icon_state)
- stat &= ~NOPOWER
- else
- spawn(rand(0, 15))
- src.icon_state = "c_unpowered"
- stat |= NOPOWER
-
diff --git a/code/WorkInProgress/Ported/ZeroPoint/SuperMatter.dm b/code/WorkInProgress/Ported/ZeroPoint/SuperMatter.dm
deleted file mode 100644
index cc0817d78f..0000000000
--- a/code/WorkInProgress/Ported/ZeroPoint/SuperMatter.dm
+++ /dev/null
@@ -1,120 +0,0 @@
-#define NITROGEN_RETARDATION_FACTOR 4 //Higher == N2 slows reaction more
-#define THERMAL_RELEASE_MODIFIER 50 //Higher == less heat released during reaction
-#define PLASMA_RELEASE_MODIFIER 750 //Higher == less plasma released by reaction
-#define OXYGEN_RELEASE_MODIFIER 1500 //Higher == less oxygen released at high temperature/power
-#define REACTION_POWER_MODIFIER 1.1 //Higher == more overall power
-
-/obj/machinery/engine/supermatter
- name = "Supermatter"
- desc = "A strangely translucent and iridescent crystal. \red You get headaches just from looking at it."
- icon = 'engine.dmi'
- icon_state = "darkmatter"
- density = 1
- anchored = 1
-
- var/gasefficency = 0.25
-
- var/det = 0
- var/previousdet = 0
- var/const/explosiondet = 3500
-
- var/const/warningtime = 50 // Make the CORE OVERLOAD message repeat only every aprox. ?? seconds
- var/lastwarning = 0 // Time in 1/10th of seconds since the last sent warning
-
-/obj/machinery/engine/klaxon
- name = "Emergency Klaxon"
- icon = 'engine.dmi'
- icon_state = "darkmatter"
- density = 1
- anchored = 1
- var/obj/machinery/engine/supermatter/sup
-
-/obj/machinery/engine/klaxon/process()
- if(!sup)
- for(var/obj/machinery/engine/supermatter/T in world)
- sup = T
- break
- if(sup.det >= 1)
- return
-
-/obj/machinery/engine/supermatter/process()
-
- var/turf/simulated/L = loc
-
- //Ok, get the air from the turf
- var/datum/gas_mixture/env = L.return_air()
-
- //Remove gas from surrounding area
- var/transfer_moles = gasefficency * env.total_moles()
- var/datum/gas_mixture/removed = env.remove(transfer_moles)
-
- previousdet = det
- det += (removed.temperature - 1000) / 150
- det = max(det, 0)
-
- if(det > 0 && removed.temperature > 1000) // while the core is still damaged and it's still worth noting its status
- if((world.realtime - lastwarning) / 10 >= warningtime)
- lastwarning = world.realtime
- if(explosiondet - det <= 300)
- radioalert("CORE EXPLOSION IMMINENT","Core control computer")
- else if(det >= previousdet) // The damage is still going up
- radioalert("CORE OVERLOAD","Core control computer")
- else // Phew, we're safe
- radioalert("Core returning to safe operating levels.","Core control computer")
-
- if(det > explosiondet)
- roundinfo.core = 1
- //proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, force = 0)
- explosion(src.loc,8,15,20,30,1)
- det = 0
-
- if (!removed)
- return 1
-
- var/power = max(round((removed.temperature - T0C) / 20), 0) //Total laser power plus an overload factor
-
- //Get the collective laser power
- for(var/dir in cardinal)
- var/turf/T = get_step(L, dir)
- for(var/obj/effect/beam/e_beam/item in T)
- power += item.power
-
- //Ok, 100% oxygen atmosphere = best reaction
- //Maxes out at 100% oxygen pressure
- var/oxygen = max(min((removed.oxygen - (removed.nitrogen * NITROGEN_RETARDATION_FACTOR)) / MOLES_CELLSTANDARD, 1), 0)
-
- var/device_energy = oxygen * power
-
- device_energy *= removed.temperature / T0C
-
- device_energy = round(device_energy * 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 += max((device_energy / THERMAL_RELEASE_MODIFIER), 0)
-
- removed.temperature = min(removed.temperature, 1500)
-
- //Calculate how much gas to release
- removed.toxins += max(round(device_energy / PLASMA_RELEASE_MODIFIER), 0)
-
- removed.oxygen += max(round((device_energy + removed.temperature - T0C) / OXYGEN_RELEASE_MODIFIER), 0)
-
- env.merge(removed)
-
-//Not functional currently. -- SkyMarshal
-/*
- for(var/mob/living/carbon/l in view(src, 6)) // you have to be seeing the core to get hallucinations
- if(prob(10) && !(l.glasses && istype(l.glasses, /obj/item/clothing/glasses/meson)))
- l.hallucination = 50
-*/
- for(var/mob/living/l in view(src,3))
- l.bruteloss += 50
- l.updatehealth()
-
- return 1
\ No newline at end of file
diff --git a/code/WorkInProgress/SkyMarshal/traitoritems.dm b/code/WorkInProgress/SkyMarshal/traitoritems.dm
index 5d1a2143fd..19e2d2e9a0 100644
--- a/code/WorkInProgress/SkyMarshal/traitoritems.dm
+++ b/code/WorkInProgress/SkyMarshal/traitoritems.dm
@@ -1,6 +1,6 @@
/obj/item/weapon/stamperaser
- name = "Eraser"
- desc = "Some type of eraser, you guess."
+ name = "eraser"
+ desc = "It looks like some kind of eraser."
flags = FPRINT | TABLEPASS
icon = 'items.dmi'
icon_state = "zippo"
diff --git a/code/datums/configuration.dm b/code/datums/configuration.dm
index 3cef703980..fd0bdb9d05 100644
--- a/code/datums/configuration.dm
+++ b/code/datums/configuration.dm
@@ -2,10 +2,7 @@
var/server_name = null // server name (for world name / status)
var/server_suffix = 0 // generate numeric suffix based on server port
- var/medal_hub = null // medal hub name
- var/medal_password = null // medal hub password
-
- var/log_ooc = 0 // log OOC channek
+ var/log_ooc = 0 // log OOC channel
var/log_access = 0 // log login/logout
var/log_say = 0 // log client say
var/log_admin = 0 // log admin actions
@@ -35,6 +32,8 @@
var/Tensioner_Active = 0 // If the tensioner is running.
var/allow_Metadata = 0 // Metadata is supported.
var/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1.
+ var/Ticklag = 0.9
+ var/Tickcomp = 0
var/list/mode_names = list()
var/list/modes = list() // allowed modes
@@ -51,6 +50,8 @@
var/server
var/banappeals
+ var/wikiurl
+ var/forumurl
//Alert level description
var/alert_desc_green = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced."
@@ -211,12 +212,6 @@
if ("serversuffix")
config.server_suffix = 1
- if ("medalhub")
- config.medal_hub = value
-
- if ("medalpass")
- config.medal_password = value
-
if ("hostedby")
config.hostedby = value
@@ -226,6 +221,12 @@
if ("banappeals")
config.banappeals = value
+ if ("wikiurl")
+ config.wikiurl = value
+
+ if ("forumurl")
+ config.forumurl = value
+
if ("guest_jobban")
config.guest_jobban = 1
@@ -297,6 +298,12 @@
if("useircbot")
useircbot = 1
+ if("ticklag")
+ Ticklag = text2num(value)
+
+ if("tickcomp")
+ Tickcomp = 1
+
if("require_heads_alive")
config.require_heads_alive = value
@@ -381,8 +388,8 @@
sqllogging = 1
else
diary << "Unknown setting in configuration: '[name]'"
-
-/*/datum/configuration/proc/loadforumsql(filename) // -- TLE
+/* //Don't touch this, we don't use it. DMTG
+/datum/configuration/proc/loadforumsql(filename) // -- TLE
var/text = file2text(filename)
if (!text)
@@ -433,8 +440,8 @@
if ("authenticatedgroup")
forum_authenticated_group = value
else
- diary << "Unknown setting in configuration: '[name]'"*/
-
+ diary << "Unknown setting in configuration: '[name]'"
+*/
/datum/configuration/proc/pick_mode(mode_name)
// I wish I didn't have to instance the game modes in order to look up
// their information, but it is the only way (at least that I know of).
diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index 3cc9f01be6..c39421ea81 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -167,10 +167,10 @@ client
if(istype(D,/atom))
var/atom/A = D
- body += "[D]"
- if(A.dir)
- body += "
<< [dir2text(A.dir)] >>"
- if(istype(A,/mob))
+ if(ismob(A))
+ body += "[D]"
+ if(A.dir)
+ body += "
<< [dir2text(A.dir)] >>"
var/mob/M = A
body += "
[M.ckey ? M.ckey : "No ckey"] / [M.real_name ? M.real_name : "No real name"]"
body += {"
@@ -185,6 +185,10 @@ client
"}
+ else
+ body += "[D]"
+ if(A.dir)
+ body += "
<< [dir2text(A.dir)] >>"
else
body += "[D]"
@@ -239,7 +243,8 @@ client
body += ""
body += ""
body += ""
-// body += ""
+ body += ""
+ body += ""
if(ishuman(D))
body += ""
body += ""
@@ -385,359 +390,404 @@ client
return html
- Topic(href, href_list, hsrc)
+//All BYOND links pass through client/Topic() FIRST and are then directed to [hsrc]/Topic() by the ..() call at the end.
+client/Topic(href, href_list, hsrc)
- if (href_list["Vars"])
- debug_variables(locate(href_list["Vars"]))
- else if (href_list["varnameedit"])
- if(!href_list["datumedit"] || !href_list["varnameedit"])
- usr << "Varedit error: Not all information has been sent Contact a coder."
- return
- var/DAT = locate(href_list["datumedit"])
- if(!DAT)
- usr << "Item not found"
- return
- if(!istype(DAT,/datum) && !istype(DAT,/client))
- usr << "Can't edit an item of this type. Type must be /datum or /client, so anything except simple variables."
- return
- modify_variables(DAT, href_list["varnameedit"], 1)
- else if (href_list["varnamechange"])
- if(!href_list["datumchange"] || !href_list["varnamechange"])
- usr << "Varedit error: Not all information has been sent. Contact a coder."
- return
- var/DAT = locate(href_list["datumchange"])
- if(!DAT)
- usr << "Item not found"
- return
- if(!istype(DAT,/datum) && !istype(DAT,/client))
- usr << "Can't edit an item of this type. Type must be /datum or /client, so anything except simple variables."
- return
- modify_variables(DAT, href_list["varnamechange"], 0)
- else if (href_list["varnamemass"])
- if(!href_list["datummass"] || !href_list["varnamemass"])
- usr << "Varedit error: Not all information has been sent. Contact a coder."
- return
- var/atom/A = locate(href_list["datummass"])
- if(!A)
- usr << "Item not found"
- return
- if(!istype(A,/atom))
- usr << "Can't mass edit an item of this type. Type must be /atom, so an object, turf, mob or area. You cannot mass edit clients!"
- return
- cmd_mass_modify_object_variables(A, href_list["varnamemass"])
- else if (href_list["mob_player_panel"])
- if(!href_list["mob_player_panel"])
- return
- var/mob/MOB = locate(href_list["mob_player_panel"])
- if(!MOB)
- return
- if(!ismob(MOB))
- return
- if(!src.holder)
- return
- src.holder.show_player_panel(MOB)
- href_list["datumrefresh"] = href_list["mob_player_panel"]
- else if (href_list["give_spell"])
- if(!href_list["give_spell"])
- return
- var/mob/MOB = locate(href_list["give_spell"])
- if(!MOB)
- return
- if(!ismob(MOB))
- return
- if(!src.holder)
- return
- src.give_spell(MOB)
- href_list["datumrefresh"] = href_list["give_spell"]
- else if (href_list["ninja"])
- if(!href_list["ninja"])
- return
- var/mob/MOB = locate(href_list["ninja"])
- if(!MOB)
- return
- if(!ismob(MOB))
- return
- if(!src.holder)
- return
- src.cmd_admin_ninjafy(MOB)
- href_list["datumrefresh"] = href_list["ninja"]
- else if (href_list["godmode"])
- if(!href_list["godmode"])
- return
- var/mob/MOB = locate(href_list["godmode"])
- if(!MOB)
- return
- if(!ismob(MOB))
- return
- if(!src.holder)
- return
- src.cmd_admin_godmode(MOB)
- href_list["datumrefresh"] = href_list["godmode"]
- else if (href_list["gib"])
- if(!href_list["gib"])
- return
- var/mob/MOB = locate(href_list["gib"])
- if(!MOB)
- return
- if(!ismob(MOB))
- return
- if(!src.holder)
- return
- src.cmd_admin_gib(MOB)
+ //search the href for script injection //This is a temporary measure
+ if( findtext(href,"