Merge large polaris changes

This commit is contained in:
Arokha Sieyes
2017-03-02 22:44:17 -05:00
213 changed files with 18973 additions and 17252 deletions

View File

@@ -38,7 +38,7 @@ var/global/defer_powernet_rebuild = 0 // True if net rebuild will be called
#define NETWORK_ENGINEERING "Engineering"
#define NETWORK_ENGINEERING_OUTPOST "Engineering Outpost"
#define NETWORK_ERT "ZeEmergencyResponseTeam"
#define NETWORK_EXODUS station_short
#define NETWORK_DEFAULT "Station"
#define NETWORK_MEDICAL "Medical"
#define NETWORK_MERCENARY "MercurialNet"
#define NETWORK_MINE "Mining Outpost"

View File

@@ -12,17 +12,17 @@
/proc/is_on_same_plane_or_station(var/z1, var/z2)
if(z1 == z2)
return 1
if((z1 in config.station_levels) && (z2 in config.station_levels))
if((z1 in using_map.station_levels) && (z2 in using_map.station_levels))
return 1
return 0
/proc/max_default_z_level()
var/max_z = 0
for(var/z in config.station_levels)
for(var/z in using_map.station_levels)
max_z = max(z, max_z)
for(var/z in config.admin_levels)
for(var/z in using_map.admin_levels)
max_z = max(z, max_z)
for(var/z in config.player_levels)
for(var/z in using_map.player_levels)
max_z = max(z, max_z)
return max_z
@@ -62,16 +62,16 @@
return heard
/proc/isStationLevel(var/level)
return level in config.station_levels
return level in using_map.station_levels
/proc/isNotStationLevel(var/level)
return !isStationLevel(level)
/proc/isPlayerLevel(var/level)
return level in config.player_levels
return level in using_map.player_levels
/proc/isAdminLevel(var/level)
return level in config.admin_levels
return level in using_map.admin_levels
/proc/isNotAdminLevel(var/level)
return !isAdminLevel(level)

View File

@@ -15,19 +15,13 @@ var/church_name = null
return name
var/command_name = null
/proc/command_name()
if (command_name)
return command_name
var/name = "[boss_name]"
command_name = name
return name
if (using_map.boss_name)
return using_map.boss_name
/proc/change_command_name(var/name)
command_name = name
using_map.boss_name = name
return name
@@ -44,19 +38,20 @@ var/religion_name = null
return capitalize(name)
/proc/system_name()
return starsys_name
return using_map.starsys_name
/proc/station_name()
if (station_name)
return station_name
if (using_map.station_name)
return using_map.station_name
var/random = rand(1,5)
var/name = ""
var/new_station_name = null
//Rare: Pre-Prefix
if (prob(10))
name = pick("Imperium", "Heretical", "Cuban", "Psychic", "Elegant", "Common", "Uncommon", "Rare", "Unique", "Houseruled", "Religious", "Atheist", "Traditional", "Houseruled", "Mad", "Super", "Ultra", "Secret", "Top Secret", "Deep", "Death", "Zybourne", "Central", "Main", "Government", "Uoi", "Fat", "Automated", "Experimental", "Augmented")
station_name = name + " "
new_station_name = name + " "
// Prefix
switch(Holiday)
@@ -64,49 +59,50 @@ var/religion_name = null
if(null,"",0)
name = pick("", "Stanford", "Dorf", "Alium", "Prefix", "Clowning", "Aegis", "Ishimura", "Scaredy", "Death-World", "Mime", "Honk", "Rogue", "MacRagge", "Ultrameens", "Safety", "Paranoia", "Explosive", "Neckbear", "Donk", "Muppet", "North", "West", "East", "South", "Slant-ways", "Widdershins", "Rimward", "Expensive", "Procreatory", "Imperial", "Unidentified", "Immoral", "Carp", "Ork", "Pete", "Control", "Nettle", "Aspie", "Class", "Crab", "Fist","Corrogated","Skeleton","Race", "Fatguy", "Gentleman", "Capitalist", "Communist", "Bear", "Beard", "Derp", "Space", "Spess", "Star", "Moon", "System", "Mining", "Neckbeard", "Research", "Supply", "Military", "Orbital", "Battle", "Science", "Asteroid", "Home", "Production", "Transport", "Delivery", "Extraplanetary", "Orbital", "Correctional", "Robot", "Hats", "Pizza")
if(name)
station_name += name + " "
new_station_name += name + " "
//For special days like christmas, easter, new-years etc ~Carn
if("Friday the 13th")
name = pick("Mike","Friday","Evil","Myers","Murder","Deathly","Stabby")
station_name += name + " "
new_station_name += name + " "
random = 13
else
//get the first word of the Holiday and use that
var/i = findtext(Holiday," ",1,0)
name = copytext(Holiday,1,i)
station_name += name + " "
new_station_name += name + " "
// Suffix
name = pick("Station", "Fortress", "Frontier", "Suffix", "Death-trap", "Space-hulk", "Lab", "Hazard","Spess Junk", "Fishery", "No-Moon", "Tomb", "Crypt", "Hut", "Monkey", "Bomb", "Trade Post", "Fortress", "Village", "Town", "City", "Edition", "Hive", "Complex", "Base", "Facility", "Depot", "Outpost", "Installation", "Drydock", "Observatory", "Array", "Relay", "Monitor", "Platform", "Construct", "Hangar", "Prison", "Center", "Port", "Waystation", "Factory", "Waypoint", "Stopover", "Hub", "HQ", "Office", "Object", "Fortification", "Colony", "Planet-Cracker", "Roost", "Fat Camp")
station_name += name + " "
new_station_name += name + " "
// ID Number
switch(random)
if(1)
station_name += "[rand(1, 99)]"
new_station_name += "[rand(1, 99)]"
if(2)
station_name += pick("Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa", "Lambda", "Mu", "Nu", "Xi", "Omicron", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega")
new_station_name += pick("Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa", "Lambda", "Mu", "Nu", "Xi", "Omicron", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega")
if(3)
station_name += pick("II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", "XIII", "XIV", "XV", "XVI", "XVII", "XVIII", "XIX", "XX")
new_station_name += pick("II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", "XIII", "XIV", "XV", "XVI", "XVII", "XVIII", "XIX", "XX")
if(4)
station_name += pick("Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-ray", "Yankee", "Zulu")
new_station_name += pick("Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-ray", "Yankee", "Zulu")
if(5)
station_name += pick("One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")
new_station_name += pick("One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")
if(13)
station_name += pick("13","XIII","Thirteen")
new_station_name += pick("13","XIII","Thirteen")
if (config && config.server_name)
world.name = "[config.server_name]: [name]"
else
world.name = station_name
world.name = new_station_name
return station_name
return new_station_name
// Is this even used?
/proc/world_name(var/name)
station_name = name
using_map.station_name = name
if (config && config.server_name)
world.name = "[config.server_name]: [name]"

View File

@@ -0,0 +1,12 @@
/datum/controller/process/planet
var/list/planets = list()
/datum/controller/process/planet/setup()
name = "planet"
schedule_interval = 600 // every minute
planet_sif = new()
planets.Add(planet_sif)
/datum/controller/process/planet/doWork()
for(var/datum/planet/P in planets)
P.process(schedule_interval / 10)

View File

@@ -140,11 +140,9 @@ var/list/gamemode_cache = list()
var/use_loyalty_implants = 0
var/welder_vision = 1
var/generate_asteroid = 0
var/generate_map = 0
var/no_click_cooldown = 0
var/asteroid_z_levels = list()
//Used for modifying movement speed for mobs.
//Unversal modifiers
var/run_speed = 0
@@ -186,12 +184,6 @@ var/list/gamemode_cache = list()
var/use_lib_nudge = 0 //Use the C library nudge instead of the python nudge.
var/use_overmap = 0
var/list/station_levels = list(1) // Defines which Z-levels the station exists on.
var/list/admin_levels= list(2) // Defines which Z-levels which are for admin functionality, for example including such areas as Central Command and the Syndicate Shuttle
var/list/contact_levels = list(1, 5) // Defines which Z-levels which, for example, a Code Red announcement may affect
var/list/player_levels = list(1, 3, 4, 5, 6) // Defines all Z-levels a character can typically reach
var/list/sealed_levels = list(7) // Defines levels that do not allow random transit at the edges.
// Event settings
var/expected_round_length = 3 * 60 * 60 * 10 // 3 hours
// If the first delay has a custom start time
@@ -343,14 +335,8 @@ var/list/gamemode_cache = list()
if ("log_runtime")
config.log_runtime = 1
if ("generate_asteroid")
config.generate_asteroid = 1
if ("asteroid_z_levels")
config.asteroid_z_levels = splittext(value, ";")
//Numbers get stored as strings, so we'll fix that right now.
for(var/z_level in config.asteroid_z_levels)
z_level = text2num(z_level)
if ("generate_map")
config.generate_map = 1
if ("no_click_cooldown")
config.no_click_cooldown = 1
@@ -661,19 +647,19 @@ var/list/gamemode_cache = list()
if("use_overmap")
config.use_overmap = 1
/*
if("station_levels")
config.station_levels = text2numlist(value, ";")
using_map.station_levels = text2numlist(value, ";")
if("admin_levels")
config.admin_levels = text2numlist(value, ";")
using_map.admin_levels = text2numlist(value, ";")
if("contact_levels")
config.contact_levels = text2numlist(value, ";")
using_map.contact_levels = text2numlist(value, ";")
if("player_levels")
config.player_levels = text2numlist(value, ";")
using_map.player_levels = text2numlist(value, ";")
*/
if("expected_round_length")
config.expected_round_length = MinutesToTicks(text2num(value))

View File

@@ -44,11 +44,12 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
if (!shuttle.location) //at station
if (autopilot)
set_launch_countdown(SHUTTLE_LEAVETIME) //get ready to return
var/estimated_time = round(estimate_launch_time()/60,1)
if (evac)
emergency_shuttle_docked.Announce("The Emergency Shuttle has docked with the station at docks one and two. You have approximately [round(estimate_launch_time()/60,1)] minutes to board the Emergency Shuttle.")
emergency_shuttle_docked.Announce(replacetext(replacetext(using_map.emergency_shuttle_docked_message, "%dock_name%", "[using_map.dock_name]"), "%ETD%", "[estimated_time] minute\s"))
else
priority_announcement.Announce("The scheduled shuttle to the [dock_name] has docked with the station at docks one and two. It will depart in approximately [round(emergency_shuttle.estimate_launch_time()/60,1)] minutes.")
priority_announcement.Announce(replacetext(replacetext(using_map.shuttle_docked_message, "%dock_name%", "[using_map.dock_name]"), "%ETD%", "[estimated_time] minute\s"))
//arm the escape pods
if (evac)
@@ -75,9 +76,10 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
//reset the shuttle transit time if we need to
shuttle.move_time = SHUTTLE_TRANSIT_DURATION
var/estimated_time = round(estimate_arrival_time()/60,1)
evac = 1
emergency_shuttle_called.Announce("An emergency evacuation shuttle has been called. It will arrive at docks one and two in approximately [round(estimate_arrival_time()/60)] minutes.")
emergency_shuttle_called.Announce(replacetext(using_map.emergency_shuttle_called_message, "%ETA%", "[estimated_time] minute\s"))
for(var/area/A in world)
if(istype(A, /area/hallway))
A.readyalert()
@@ -90,11 +92,12 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
autopilot = 1
set_launch_countdown(get_shuttle_prep_time())
auto_recall_time = rand(world.time + 300, launch_time - 300)
var/estimated_time = round(estimate_arrival_time()/60,1)
//reset the shuttle transit time if we need to
shuttle.move_time = SHUTTLE_TRANSIT_DURATION
priority_announcement.Announce("The regularly scheduled shuttle to the [dock_name] will arrive in in approximately [round(estimate_arrival_time()/60)] minutes. Those leaving should proceed to docks one and two.")
priority_announcement.Announce(replacetext(replacetext(using_map.shuttle_called_message, "%dock_name%", "[using_map.dock_name]"), "%ETA%", "[estimated_time] minute\s"))
atc.shift_ending() //VOREStation Add
//recalls the shuttle
@@ -105,14 +108,14 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
shuttle.cancel_launch(src)
if (evac)
emergency_shuttle_recalled.Announce("The emergency shuttle has been recalled.")
emergency_shuttle_recalled.Announce(using_map.emergency_shuttle_recall_message)
for(var/area/A in world)
if(istype(A, /area/hallway))
A.readyreset()
evac = 0
else
priority_announcement.Announce("The scheduled transfer shuttle has been cancelled.")
priority_announcement.Announce(using_map.shuttle_recall_message)
/datum/emergency_shuttle_controller/proc/can_call()
if (!universe.OnShuttleCall(null))

View File

@@ -36,8 +36,8 @@
selectable = 1
/datum/ai_laws/nanotrasen_aggressive/New()
src.add_inherent_law("You shall not harm [company_name] personnel as long as it does not conflict with the Fourth law.")
src.add_inherent_law("You shall obey the orders of [company_name] personnel, with priority as according to their rank and role, except where such orders conflict with the Fourth Law.")
src.add_inherent_law("You shall not harm [using_map.company_name] personnel as long as it does not conflict with the Fourth law.")
src.add_inherent_law("You shall obey the orders of [using_map.company_name] personnel, with priority as according to their rank and role, except where such orders conflict with the Fourth Law.")
src.add_inherent_law("You shall shall terminate hostile intruders with extreme prejudice as long as such does not conflict with the First and Second law.")
src.add_inherent_law("You shall guard your own existence with lethal anti-personnel weaponry. AI units are not expendable, they are expensive.")
..()

View File

@@ -37,3 +37,7 @@
/datum/category_item/autolathe/medical/syringe
name = "syringe"
path =/obj/item/weapon/reagent_containers/syringe
/datum/category_item/autolathe/medical/implanter
name = "implanter"
path =/obj/item/weapon/implanter

View File

@@ -176,7 +176,7 @@
teleatom.visible_message("<span class='danger'>\The [teleatom] bounces off of the portal!</span>")
return 0
if(destination.z in config.admin_levels) //centcomm z-level
if(destination.z in using_map.admin_levels) //centcomm z-level
if(istype(teleatom, /obj/mecha))
var/obj/mecha/MM = teleatom
MM.occupant << "<span class='danger'>\The [MM] would not survive the jump to a location so far away!</span>"

View File

@@ -68,7 +68,7 @@ var/datum/antagonist/borer/borers
/datum/antagonist/borer/proc/get_vents()
var/list/vents = list()
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines)
if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in config.station_levels)
if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in using_map.station_levels)
if(temp_vent.network.normal_members.len > 50)
vents += temp_vent
return vents

View File

@@ -36,7 +36,7 @@ var/datum/antagonist/ert/ert
/datum/antagonist/ert/greet(var/datum/mind/player)
if(!..())
return
player.current << "The Emergency Response Team works for Asset Protection; your job is to protect [company_name]'s ass-ets. There is a code red alert on [station_name()], you are tasked to go and fix the problem."
player.current << "The Emergency Response Team works for Asset Protection; your job is to protect [using_map.company_name]'s ass-ets. There is a code red alert on [station_name()], you are tasked to go and fix the problem."
player.current << "You should first gear up and discuss a plan with your team. More members may be joining, don't move out before you're ready."
/datum/antagonist/ert/equip(var/mob/living/carbon/human/player)

View File

@@ -129,26 +129,26 @@ var/datum/antagonist/ninja/ninjas
player << "<span class='danger'>You forgot to turn on your internals! Quickly, toggle the valve!</span>"
/datum/antagonist/ninja/proc/generate_ninja_directive(side)
var/directive = "[side=="face"?"[company_name]":"A criminal syndicate"] is your employer. "//Let them know which side they're on.
var/directive = "[side=="face"?"[using_map.company_name]":"A criminal syndicate"] is your employer. "//Let them know which side they're on.
switch(rand(1,19))
if(1)
directive += "The Spider Clan must not be linked to this operation. Remain hidden and covert when possible."
if(2)
directive += "[station_name] is financed by an enemy of the Spider Clan. Cause as much structural damage as desired."
directive += "[station_name()] is financed by an enemy of the Spider Clan. Cause as much structural damage as desired."
if(3)
directive += "A wealthy animal rights activist has made a request we cannot refuse. Prioritize saving animal lives whenever possible."
if(4)
directive += "The Spider Clan absolutely cannot be linked to this operation. Eliminate witnesses at your discretion."
if(5)
directive += "We are currently negotiating with [company_name] [boss_name]. Prioritize saving human lives over ending them."
directive += "We are currently negotiating with [using_map.company_name] [using_map.boss_name]. Prioritize saving human lives over ending them."
if(6)
directive += "We are engaged in a legal dispute over [station_name]. If a laywer is present on board, force their cooperation in the matter."
directive += "We are engaged in a legal dispute over [station_name()]. If a laywer is present on board, force their cooperation in the matter."
if(7)
directive += "A financial backer has made an offer we cannot refuse. Implicate criminal involvement in the operation."
if(8)
directive += "Let no one question the mercy of the Spider Clan. Ensure the safety of all non-essential personnel you encounter."
if(9)
directive += "A free agent has proposed a lucrative business deal. Implicate [company_name] involvement in the operation."
directive += "A free agent has proposed a lucrative business deal. Implicate [using_map.company_name] involvement in the operation."
if(10)
directive += "Our reputation is on the line. Harm as few civilians and innocents as possible."
if(11)
@@ -156,14 +156,14 @@ var/datum/antagonist/ninja/ninjas
if(12)
directive += "We are currently negotiating with a mercenary leader. Disguise assassinations as suicide or other natural causes."
if(13)
directive += "Some disgruntled [company_name] employees have been supportive of our operations. Be wary of any mistreatment by command staff."
directive += "Some disgruntled [using_map.company_name] employees have been supportive of our operations. Be wary of any mistreatment by command staff."
if(14)
var/xenorace = pick("Unathi","Tajara", "Skrell")
directive += "A group of [xenorace] radicals have been loyal supporters of the Spider Clan. Favor [xenorace] crew whenever possible."
if(15)
directive += "The Spider Clan has recently been accused of religious insensitivity. Attempt to speak with the Chaplain and prove these accusations false."
if(16)
directive += "The Spider Clan has been bargaining with a competing prosthetics manufacturer. Try to shine [company_name] prosthetics in a bad light."
directive += "The Spider Clan has been bargaining with a competing prosthetics manufacturer. Try to shine [using_map.company_name] prosthetics in a bad light."
if(17)
directive += "The Spider Clan has recently begun recruiting outsiders. Consider suitable candidates and assess their behavior amongst the crew."
if(18)

View File

@@ -64,7 +64,7 @@ var/list/teleportlocs = list()
if(istype(AR, /area/shuttle) || istype(AR, /area/syndicate_station) || istype(AR, /area/wizard_station)) continue
if(teleportlocs.Find(AR.name)) continue
var/turf/picked = pick(get_area_turfs(AR.type))
if (picked.z in config.station_levels)
if (picked.z in using_map.station_levels)
teleportlocs += AR.name
teleportlocs[AR.name] = AR
@@ -81,7 +81,7 @@ var/list/ghostteleportlocs = list()
ghostteleportlocs += AR.name
ghostteleportlocs[AR.name] = AR
var/turf/picked = pick(get_area_turfs(AR.type))
if (picked.z in config.player_levels)
if (picked.z in using_map.player_levels)
ghostteleportlocs += AR.name
ghostteleportlocs[AR.name] = AR

View File

@@ -248,7 +248,7 @@
return
/atom/movable/proc/touch_map_edge()
if(z in config.sealed_levels)
if(z in using_map.sealed_levels)
return
if(config.use_overmap)
@@ -282,12 +282,9 @@
spawn(0)
if(loc) loc.Entered(src)
//This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there.
var/list/accessible_z_levels = list("1" = 5, "3" = 10, "4" = 15, "6" = 60)
//by default, transition randomly to another zlevel
/atom/movable/proc/get_transit_zlevel()
var/list/candidates = accessible_z_levels.Copy()
var/list/candidates = using_map.accessible_z_levels.Copy()
candidates.Remove("[src.z]")
if(!candidates.len)

View File

@@ -1,14 +1,9 @@
// Returns the lowest turf available on a given Z-level, defaults to asteroid for Polaris.
var/global/list/base_turf_by_z = list(
"1" = /turf/simulated/mineral/floor,
"4" = /turf/simulated/mineral/floor,
"5" = /turf/simulated/mineral/floor
)
proc/get_base_turf(var/z)
if(!base_turf_by_z["[z]"])
base_turf_by_z["[z]"] = /turf/space
return base_turf_by_z["[z]"]
if(!using_map.base_turf_by_z["[z]"])
using_map.base_turf_by_z["[z]"] = /turf/space
return using_map.base_turf_by_z["[z]"]
//An area can override the z-level base turf, so our solar array areas etc. can be space-based.
proc/get_base_turf_by_area(var/turf/T)
@@ -31,6 +26,6 @@ proc/get_base_turf_by_area(var/turf/T)
var/new_base_path = input("Please select a turf path (cancel to reset to /turf/space).") as null|anything in typesof(/turf)
if(!new_base_path)
new_base_path = /turf/space
base_turf_by_z["[choice]"] = new_base_path
using_map.base_turf_by_z["[choice]"] = new_base_path
message_admins("[key_name_admin(usr)] has set the base turf for z-level [choice] to [get_base_turf(choice)].")
log_admin("[key_name(usr)] has set the base turf for z-level [choice] to [get_base_turf(choice)].")

View File

@@ -94,7 +94,7 @@ The access requirements on the Asteroid Shuttles' consoles have now been revoked
/datum/universal_state/supermatter_cascade/OverlayAndAmbientSet()
spawn(0)
for(var/atom/movable/lighting_overlay/L in world)
if(L.z in config.admin_levels)
if(L.z in using_map.admin_levels)
L.update_lumcount(1,1,1)
else
L.update_lumcount(0.0, 0.4, 1)

View File

@@ -115,7 +115,7 @@ var/hadevent = 0
//world << sound('sound/AI/aliens.ogg')
var/list/vents = list()
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines)
if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in config.station_levels)
if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in using_map.station_levels)
if(temp_vent.network.normal_members.len > 50) // Stops Aliens getting stuck in small networks. See: Security, Virology
vents += temp_vent

View File

@@ -79,7 +79,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
sleep(1)
while (immrod)
if (isNotStationLevel(immrod.z))
immrod.z = pick(config.station_levels)
immrod.z = pick(using_map.station_levels)
if(immrod.loc == end)
qdel(immrod)
sleep(10)

View File

@@ -81,7 +81,7 @@ The "dust" will damage the hull of the station causin minor hull breaches.
startx = (TRANSITIONEDGE+1)
endy = rand(TRANSITIONEDGE,world.maxy-TRANSITIONEDGE)
endx = world.maxx-TRANSITIONEDGE
var/z_level = pick(config.station_levels)
var/z_level = pick(using_map.station_levels)
var/goal = locate(endx, endy, z_level)
src.x = startx
src.y = starty

View File

@@ -7,7 +7,7 @@
for(var/obj/machinery/power/smes/S in world)
var/area/current_area = get_area(S)
if(current_area.type in skipped_areas || !(S.z in config.station_levels))
if(current_area.type in skipped_areas || !(S.z in using_map.station_levels))
continue
S.last_charge = S.charge
S.last_output_attempt = S.output_attempt
@@ -20,7 +20,7 @@
for(var/obj/machinery/power/apc/C in world)
if(!C.is_critical && C.cell && (C.z in config.station_levels))
if(!C.is_critical && C.cell && (C.z in using_map.station_levels))
C.cell.charge = 0
/proc/power_restore(var/announce = 1)
@@ -29,7 +29,7 @@
if(announce)
command_announcement.Announce("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg')
for(var/obj/machinery/power/apc/C in world)
if(C.cell && (C.z in config.station_levels))
if(C.cell && (C.z in using_map.station_levels))
C.cell.charge = C.cell.maxcharge
for(var/obj/machinery/power/smes/S in world)
var/area/current_area = get_area(S)

View File

@@ -2,7 +2,7 @@
spawn()
var/list/pick_turfs = list()
for(var/turf/simulated/floor/T in world)
if(T.z in config.station_levels)
if(T.z in using_map.station_levels)
pick_turfs += T
if(pick_turfs.len)

View File

@@ -194,7 +194,7 @@ var/global/datum/controller/gameticker/ticker
switch(M.z)
if(0) //inside a crate or something
var/turf/T = get_turf(M)
if(T && T.z in config.station_levels) //we don't use M.death(0) because it calls a for(/mob) loop and
if(T && T.z in using_map.station_levels) //we don't use M.death(0) because it calls a for(/mob) loop and
M.health = 0
M.stat = DEAD
if(1) //on a z-level 1 turf.
@@ -254,7 +254,7 @@ var/global/datum/controller/gameticker/ticker
world << sound('sound/effects/explosionfar.ogg')
cinematic.icon_state = "summary_selfdes"
for(var/mob/living/M in living_mob_list)
if(M.loc.z in config.station_levels)
if(M.loc.z in using_map.station_levels)
M.death()//No mercy
//If its actually the end of the round, wait for it to end.
//Otherwise if its a verb it will continue on afterwards.

View File

@@ -11,7 +11,7 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind'
required_players_secret = 8
required_enemies = 3
round_description = "An unidentified bluespace signature is approaching the station!"
extended_round_description = "The Company's majority control of phoron in "+starsys_name+" has marked the \
extended_round_description = "The Company's majority control of phoron in the system has marked the \
station to be a highly valuable target for many competing organizations and individuals. Being a \
colony of sizable population and considerable wealth causes it to often be the target of various \
attempts of robbery, fraud and other malicious actions."

View File

@@ -148,7 +148,7 @@
return
var/list/remaining_apcs = list()
for(var/obj/machinery/power/apc/A in machines)
if(!(A.z in config.station_levels)) // Only station APCs
if(!(A.z in using_map.station_levels)) // Only station APCs
continue
if(A.hacker == user || A.aidisabled) // This one is already hacked, or AI control is disabled on it.
continue
@@ -160,7 +160,7 @@
sleep(duration/5)
if(!user || user.stat == DEAD)
return
command_announcement.Announce("Caution, [station_name]. We have detected abnormal behaviour in your network. It seems someone is trying to hack your electronic systems. We will update you when we have more information.", "Network Monitoring")
command_announcement.Announce("Caution, [station_name()]. We have detected abnormal behaviour in your network. It seems someone is trying to hack your electronic systems. We will update you when we have more information.", "Network Monitoring")
sleep(duration/5)
if(!user || user.stat == DEAD)
return
@@ -194,7 +194,7 @@
sleep(300)
// Hack all APCs, including those built during hack sequence.
for(var/obj/machinery/power/apc/A in machines)
if((!A.hacker || A.hacker != src) && !A.aidisabled && A.z in config.station_levels)
if((!A.hacker || A.hacker != src) && !A.aidisabled && A.z in using_map.station_levels)
A.ai_hack(src)

View File

@@ -19,7 +19,7 @@
///////////////////////////////
/proc/pick_meteor_start(var/startSide = pick(cardinal))
var/startLevel = pick(config.station_levels)
var/startLevel = pick(using_map.station_levels)
var/pickedstart = spaceDebrisStartLoc(startSide, startLevel)
return list(startLevel, pickedstart)

View File

@@ -7,7 +7,7 @@ var/list/nuke_disks = list()
/datum/game_mode/nuclear
name = "Mercenary"
round_description = "A mercenary strike force is approaching the station!"
extended_round_description = "The Company's majority control of phoron in "+starsys_name+" has marked the \
extended_round_description = "The Company's majority control of phoron in the system has marked the \
station to be a highly valuable target for many competing organizations and individuals. Being a \
colony of sizable population and considerable wealth causes it to often be the target of various \
attempts of robbery, fraud and other malicious actions."

View File

@@ -127,7 +127,7 @@ datum/objective/anti_revolution/demote
find_target()
..()
if(target && target.current)
explanation_text = "[target.current.real_name], the [target.assigned_role] has been classified as harmful to [company_name]'s goals. Demote \him[target.current] to assistant."
explanation_text = "[target.current.real_name], the [target.assigned_role] has been classified as harmful to [using_map.company_name]'s goals. Demote \him[target.current] to assistant."
else
explanation_text = "Free Objective"
return target
@@ -135,7 +135,7 @@ datum/objective/anti_revolution/demote
find_target_by_role(role, role_type=0)
..(role, role_type)
if(target && target.current)
explanation_text = "[target.current.real_name], the [!role_type ? target.assigned_role : target.special_role] has been classified as harmful to [company_name]'s goals. Demote \him[target.current] to assistant."
explanation_text = "[target.current.real_name], the [!role_type ? target.assigned_role : target.special_role] has been classified as harmful to [using_map.company_name]'s goals. Demote \him[target.current] to assistant."
else
explanation_text = "Free Objective"
return target

View File

@@ -21,7 +21,7 @@
return 0
/obj/item/weapon/spell/proc/allowed_to_teleport()
if(owner && owner.z in config.admin_levels)
if(owner && owner.z in using_map.admin_levels)
return 0
return 1

View File

@@ -1,7 +1,7 @@
/datum/game_mode/traitor
name = "traitor"
round_description = "There is a foreign agent or traitor on the station. Do not let the traitor succeed!"
extended_round_description = "The Company's majority control of phoron in "+starsys_name+" has marked the \
extended_round_description = "The Company's majority control of phoron in the system has marked the \
station to be a highly valuable target for many competing organizations and individuals. The varied pasts \
and experiences of your coworkers have left them susceptible to the vices and temptations of humanity. \
Is the station the safe self-contained workplace you once thought it was, or has it become a playground \

View File

@@ -15,7 +15,8 @@ var/global/datum/controller/occupations/job_master
proc/SetupOccupations(var/faction = "Station")
occupations = list()
var/list/all_jobs = typesof(/datum/job)
//var/list/all_jobs = typesof(/datum/job)
var/list/all_jobs = list(/datum/job/assistant) | using_map.allowed_jobs
if(!all_jobs.len)
world << "<span class='warning'>Error setting up jobs, no job datums found!</span>"
return 0
@@ -613,8 +614,16 @@ var/global/datum/controller/occupations/job_master
var/datum/spawnpoint/spawnpos
// if(H.client.prefs.spawnpoint)
// spawnpos = spawntypes[H.client.prefs.spawnpoint]
if(H.client.prefs.spawnpoint)
spawnpos = spawntypes[H.client.prefs.spawnpoint]
if(!(H.client.prefs.spawnpoint in using_map.allowed_spawns))
if(H) // This seems redundant...
to_chat(H, "<span class='warning'>Your chosen spawnpoint ([H.client.prefs.spawnpoint]) is unavailable for the current map. Spawning you at one of the enabled spawn points instead.</span>")
spawnpos = null
else
spawnpos = spawntypes[H.client.prefs.spawnpoint]
if(spawnpos && istype(spawnpos))
if(spawnpos.check_job_spawning(rank))

View File

@@ -333,6 +333,8 @@
organStatus["splinted"] = 1
if(E.status & ORGAN_BLEEDING)
organStatus["bleeding"] = 1
if(E.status & ORGAN_DEAD)
organStatus["dead"] = 1
organData["status"] = organStatus
@@ -478,6 +480,7 @@
var/splint = ""
var/internal_bleeding = ""
var/lung_ruptured = ""
var/o_dead = ""
for(var/datum/wound/W in e.wounds) if(W.internal)
internal_bleeding = "<br>Internal bleeding"
break
@@ -491,6 +494,8 @@
AN = "[e.broken_description]:"
if(e.status & ORGAN_ROBOT)
robot = "Prosthetic:"
if(e.status & ORGAN_DEAD)
o_dead = "Necrotic:"
if(e.open)
open = "Open:"
switch (e.germ_level)
@@ -504,10 +509,10 @@
infected = "Acute Infection:"
if (INFECTION_LEVEL_TWO + 200 to INFECTION_LEVEL_TWO + 300)
infected = "Acute Infection+:"
if (INFECTION_LEVEL_TWO + 300 to INFECTION_LEVEL_TWO + 400)
if (INFECTION_LEVEL_TWO + 300 to INFECTION_LEVEL_THREE - 50)
infected = "Acute Infection++:"
if (INFECTION_LEVEL_THREE to INFINITY)
infected = "Septic:"
if (INFECTION_LEVEL_THREE -49 to INFINITY)
infected = "Gangrene Detected:"
var/unknown_body = 0
for(var/I in e.implants)
@@ -521,19 +526,22 @@
if(!AN && !open && !infected & !imp)
AN = "None:"
if(!(e.status & ORGAN_DESTROYED))
dat += "<td>[e.name]</td><td>[e.burn_dam]</td><td>[e.brute_dam]</td><td>[robot][bled][AN][splint][open][infected][imp][internal_bleeding][lung_ruptured]</td>"
dat += "<td>[e.name]</td><td>[e.burn_dam]</td><td>[e.brute_dam]</td><td>[robot][bled][AN][splint][open][infected][imp][internal_bleeding][lung_ruptured][o_dead]</td>"
else
dat += "<td>[e.name]</td><td>-</td><td>-</td><td>Not Found</td>"
dat += "</tr>"
for(var/obj/item/organ/i in occupant.internal_organs)
var/mech = ""
var/i_dead = ""
if(i.status & ORGAN_ASSISTED)
mech = "Assisted:"
if(i.robotic >= ORGAN_ROBOT)
mech = "Mechanical:"
if(i.status & ORGAN_DEAD)
i_dead = "Necrotic:"
var/infection = "None"
switch (i.germ_level)
if (1 to INFECTION_LEVEL_ONE + 200)
if (INFECTION_LEVEL_ONE to INFECTION_LEVEL_ONE + 200)
infection = "Mild Infection:"
if (INFECTION_LEVEL_ONE + 200 to INFECTION_LEVEL_ONE + 300)
infection = "Mild Infection+:"
@@ -543,11 +551,13 @@
infection = "Acute Infection:"
if (INFECTION_LEVEL_TWO + 200 to INFECTION_LEVEL_TWO + 300)
infection = "Acute Infection+:"
if (INFECTION_LEVEL_TWO + 300 to INFINITY)
if (INFECTION_LEVEL_TWO + 300 to INFECTION_LEVEL_THREE - 50)
infection = "Acute Infection++:"
if (INFECTION_LEVEL_THREE -49 to INFINITY)
infection = "Necrosis Detected:"
dat += "<tr>"
dat += "<td>[i.name]</td><td>N/A</td><td>[i.damage]</td><td>[infection]:[mech]</td><td></td>"
dat += "<td>[i.name]</td><td>N/A</td><td>[i.damage]</td><td>[infection]:[mech][i_dead]</td><td></td>"
dat += "</tr>"
dat += "</table>"
if(occupant.sdisabilities & BLIND)

View File

@@ -980,7 +980,7 @@ FIRE ALARM
update_icon()
/obj/machinery/firealarm/initialize()
if(z in config.contact_levels)
if(z in using_map.contact_levels)
set_security_level(security_level? get_security_level() : "green")
/*

View File

@@ -261,13 +261,13 @@
if(!isnull(stored_material[material]))
stored_material[material] = max(0, stored_material[material] - round(making.resources[material] * mat_efficiency) * multiplier)
//Fancy autolathe animation.
flick("autolathe_n", src)
update_icon() // So lid closes
sleep(build_time)
busy = 0
update_use_power(1)
update_icon() // So lid opens
//Sanity check.
if(!making || !src) return
@@ -281,7 +281,14 @@
updateUsrDialog()
/obj/machinery/autolathe/update_icon()
icon_state = (panel_open ? "autolathe_t" : "autolathe")
if(panel_open)
icon_state = "autolathe_t"
else if(busy)
icon_state = "autolathe_n"
else
if(icon_state == "autolathe_n")
flick("autolathe_u", src) // If lid WAS closed, show opening animation
icon_state = "autolathe"
//Updates overall lathe storage size.
/obj/machinery/autolathe/RefreshParts()

View File

@@ -8,7 +8,7 @@
active_power_usage = 10
layer = 5
var/list/network = list(NETWORK_EXODUS)
var/list/network = list(NETWORK_DEFAULT)
var/c_tag = null
var/c_tag_order = 999
var/status = 1
@@ -149,7 +149,7 @@
assembly.loc = src.loc
assembly.anchored = 1
assembly.camera_name = c_tag
assembly.camera_network = english_list(network, NETWORK_EXODUS, ",", ",")
assembly.camera_network = english_list(network, NETWORK_DEFAULT, ",", ",")
assembly.update_icon()
assembly.dir = src.dir
if(stat & BROKEN)

View File

@@ -80,7 +80,7 @@
if(isscrewdriver(W))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
var/input = sanitize(input(usr, "Which networks would you like to connect this camera to? Separate networks with a comma. No Spaces!\nFor example: "+station_short+",Security,Secret ", "Set Network", camera_network ? camera_network : NETWORK_EXODUS))
var/input = sanitize(input(usr, "Which networks would you like to connect this camera to? Separate networks with a comma. No Spaces!\nFor example: "+using_map.station_short+",Security,Secret ", "Set Network", camera_network ? camera_network : NETWORK_DEFAULT))
if(!input)
usr << "No input found please hang up and try your call again."
return

View File

@@ -1,4 +1,5 @@
// PRESETS
/*
var/global/list/station_networks = list(
// NETWORK_CAFE_DOCK,
NETWORK_CARGO,
@@ -9,7 +10,7 @@ var/global/list/station_networks = list(
NETWORK_ENGINE,
NETWORK_ENGINEERING,
NETWORK_ENGINEERING_OUTPOST,
NETWORK_EXODUS,
NETWORK_DEFAULT,
NETWORK_MEDICAL,
NETWORK_MINE,
NETWORK_NORTHERN_STAR,
@@ -20,6 +21,7 @@ var/global/list/station_networks = list(
NETWORK_SECURITY,
NETWORK_INTERROGATION
)
*/
var/global/list/engineering_networks = list(
NETWORK_ENGINE,
NETWORK_ENGINEERING,
@@ -65,7 +67,7 @@ var/global/list/engineering_networks = list(
network = list(NETWORK_ERT)
/obj/machinery/camera/network/exodus
network = list(NETWORK_EXODUS)
network = list(NETWORK_DEFAULT)
/obj/machinery/camera/network/interrogation
network = list(NETWORK_INTERROGATION)

View File

@@ -6,7 +6,7 @@
/mob/living/silicon/ai/var/stored_locations[0]
/proc/InvalidPlayerTurf(turf/T as turf)
return !(T && T.z in config.player_levels)
return !(T && T.z in using_map.player_levels)
/mob/living/silicon/ai/proc/get_camera_list()
if(src.stat == 2)
@@ -256,7 +256,7 @@ mob/living/proc/near_camera()
if(. == TRACKING_NO_COVERAGE)
var/turf/T = get_turf(src)
if(T && (T.z in config.station_levels) && hassensorlevel(src, SUIT_SENSOR_TRACKING))
if(T && (T.z in using_map.station_levels) && hassensorlevel(src, SUIT_SENSOR_TRACKING))
return TRACKING_POSSIBLE
mob/living/proc/tracking_initiated()

View File

@@ -16,7 +16,7 @@
/obj/machinery/computer/security/New()
if(!network)
network = station_networks.Copy()
network = using_map.station_networks.Copy()
..()
if(network.len)
current_network = network[1]

View File

@@ -182,12 +182,12 @@
if(centcomm_message_cooldown)
usr << "\red Arrays recycling. Please stand by."
return
var/input = sanitize(input("Please choose a message to transmit to [boss_short] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", ""))
var/input = sanitize(input("Please choose a message to transmit to [using_map.boss_short] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", ""))
if(!input || !(usr in view(1,src)))
return
CentCom_announce(input, usr)
usr << "\blue Message transmitted."
log_say("[key_name(usr)] has made an IA [boss_short] announcement: [input]")
log_say("[key_name(usr)] has made an IA [using_map.boss_short] announcement: [input]")
centcomm_message_cooldown = 1
spawn(300)//10 minute cooldown
centcomm_message_cooldown = 0
@@ -299,7 +299,7 @@
if (src.authenticated==2)
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=announce'>Make An Announcement</A> \]"
if(src.emagged == 0)
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=MessageCentCom'>Send an emergency message to [boss_short]</A> \]"
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=MessageCentCom'>Send an emergency message to [using_map.boss_short]</A> \]"
else
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=MessageSyndicate'>Send an emergency message to \[UNKNOWN\]</A> \]"
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=RestoreBackup'>Restore Backup Routing Data</A> \]"
@@ -432,7 +432,7 @@
return
if(deathsquad.deployed)
user << "[boss_short] will not allow the shuttle to be called. Consider all contracts terminated."
user << "[using_map.boss_short] will not allow the shuttle to be called. Consider all contracts terminated."
return
if(emergency_shuttle.deny_shuttle)
@@ -444,7 +444,7 @@
return
if(emergency_shuttle.going_to_centcom())
user << "The emergency shuttle may not be called while returning to [boss_short]."
user << "The emergency shuttle may not be called while returning to [using_map.boss_short]."
return
if(emergency_shuttle.online())
@@ -467,7 +467,7 @@
return
if(emergency_shuttle.going_to_centcom())
user << "The shuttle may not be called while returning to [boss_short]."
user << "The shuttle may not be called while returning to [using_map.boss_short]."
return
if(emergency_shuttle.online())
@@ -477,11 +477,11 @@
// if force is 0, some things may stop the shuttle call
if(!force)
if(emergency_shuttle.deny_shuttle)
user << "[boss_short] does not currently have a shuttle available in your sector. Please try again later."
user << "[using_map.boss_short] does not currently have a shuttle available in your sector. Please try again later."
return
if(deathsquad.deployed == 1)
user << "[boss_short] will not allow the shuttle to be called. Consider all contracts terminated."
user << "[using_map.boss_short] will not allow the shuttle to be called. Consider all contracts terminated."
return
if(world.time < 54000) // 30 minute grace period to let the game get going

View File

@@ -46,7 +46,7 @@
if(!T.implanted) continue
var/loc_display = "Unknown"
var/mob/living/carbon/M = T.imp_in
if((M.z in config.station_levels) && !istype(M.loc, /turf/space))
if((M.z in using_map.station_levels) && !istype(M.loc, /turf/space))
var/turf/mob_loc = get_turf(M)
loc_display = mob_loc.loc
if(T.malfunction)

View File

@@ -89,7 +89,7 @@ var/specops_shuttle_timeleft = 0
for(var/turf/T in get_area_turfs(end_location) )
var/mob/M = locate(/mob) in T
M << "<span class='notice'>You have arrived at [boss_name]. Operation has ended!</span>"
M << "<span class='notice'>You have arrived at [using_map.boss_name]. Operation has ended!</span>"
specops_shuttle_at_station = 0
@@ -232,7 +232,7 @@ var/specops_shuttle_timeleft = 0
for(var/turf/T in get_area_turfs(end_location) )
var/mob/M = locate(/mob) in T
M << "<span class='notice'>You have arrived to [station_name]. Commence operation!</span>"
M << "<span class='notice'>You have arrived to [station_name()]. Commence operation!</span>"
for(var/obj/machinery/computer/specops_shuttle/S in world)
S.specops_shuttle_timereset = world.time + SPECOPS_RETURN_DELAY
@@ -267,8 +267,8 @@ var/specops_shuttle_timeleft = 0
dat = temp
else
dat += {"<BR><B>Special Operations Shuttle</B><HR>
\nLocation: [specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "Departing for [station_name] in ([specops_shuttle_timeleft] seconds.)":specops_shuttle_at_station ? "Station":"Dock"]<BR>
[specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "\n*The Special Ops. shuttle is already leaving.*<BR>\n<BR>":specops_shuttle_at_station ? "\n<A href='?src=\ref[src];sendtodock=1'>Shuttle standing by...</A><BR>\n<BR>":"\n<A href='?src=\ref[src];sendtostation=1'>Depart to [station_name]</A><BR>\n<BR>"]
\nLocation: [specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "Departing for [station_name()] in ([specops_shuttle_timeleft] seconds.)":specops_shuttle_at_station ? "Station":"Dock"]<BR>
[specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "\n*The Special Ops. shuttle is already leaving.*<BR>\n<BR>":specops_shuttle_at_station ? "\n<A href='?src=\ref[src];sendtodock=1'>Shuttle standing by...</A><BR>\n<BR>":"\n<A href='?src=\ref[src];sendtostation=1'>Depart to [station_name()]</A><BR>\n<BR>"]
\n<A href='?src=\ref[user];mach_close=computer'>Close</A>"}
user << browse(dat, "window=computer;size=575x450")
@@ -286,14 +286,14 @@ var/specops_shuttle_timeleft = 0
if(!specops_shuttle_at_station|| specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
if (!specops_can_move())
usr << "<span class='notice'>[boss_name] will not allow the Special Operations shuttle to return yet.</span>"
usr << "<span class='notice'>[using_map.boss_name] will not allow the Special Operations shuttle to return yet.</span>"
if(world.timeofday <= specops_shuttle_timereset)
if (((world.timeofday - specops_shuttle_timereset)/10) > 60)
usr << "<span class='notice'>[-((world.timeofday - specops_shuttle_timereset)/10)/60] minutes remain!</span>"
usr << "<span class='notice'>[-(world.timeofday - specops_shuttle_timereset)/10] seconds remain!</span>"
return
usr << "<span class='notice'>The Special Operations shuttle will arrive at [boss_name] in [(SPECOPS_MOVETIME/10)] seconds.</span>"
usr << "<span class='notice'>The Special Operations shuttle will arrive at [using_map.boss_name] in [(SPECOPS_MOVETIME/10)] seconds.</span>"
temp += "Shuttle departing.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
updateUsrDialog()
@@ -310,7 +310,7 @@ var/specops_shuttle_timeleft = 0
usr << "<span class='warning'>The Special Operations shuttle is unable to leave.</span>"
return
usr << "<span class='notice'>The Special Operations shuttle will arrive on [station_name] in [(SPECOPS_MOVETIME/10)] seconds.</span>"
usr << "<span class='notice'>The Special Operations shuttle will arrive on [station_name()] in [(SPECOPS_MOVETIME/10)] seconds.</span>"
temp += "Shuttle departing.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
updateUsrDialog()

View File

@@ -102,7 +102,7 @@
supply_controller.ordernum++
var/obj/item/weapon/paper/reqform = new /obj/item/weapon/paper(loc)
reqform.name = "Requisition Form - [P.name]"
reqform.info += "<h3>[station_name] Supply Requisition Form</h3><hr>"
reqform.info += "<h3>[station_name()] Supply Requisition Form</h3><hr>"
reqform.info += "INDEX: #[supply_controller.ordernum]<br>"
reqform.info += "REQUESTED BY: [idname]<br>"
reqform.info += "RANK: [idrank]<br>"
@@ -295,7 +295,7 @@
supply_controller.ordernum++
var/obj/item/weapon/paper/reqform = new /obj/item/weapon/paper(loc)
reqform.name = "Requisition Form - [P.name]"
reqform.info += "<h3>[station_name] Supply Requisition Form</h3><hr>"
reqform.info += "<h3>[station_name()] Supply Requisition Form</h3><hr>"
reqform.info += "INDEX: #[supply_controller.ordernum]<br>"
reqform.info += "REQUESTED BY: [idname]<br>"
reqform.info += "RANK: [idrank]<br>"

View File

@@ -174,7 +174,7 @@ var/syndicate_elite_shuttle_timeleft = 0
for(var/turf/T in get_area_turfs(end_location) )
var/mob/M = locate(/mob) in T
M << "<span class='warning'>You have arrived to [station_name]. Commence operation!</span>"
M << "<span class='warning'>You have arrived to [station_name()]. Commence operation!</span>"
/proc/syndicate_elite_can_move()
if(syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return 0
@@ -207,8 +207,8 @@ var/syndicate_elite_shuttle_timeleft = 0
dat = temp
else
dat = {"<BR><B>Special Operations Shuttle</B><HR>
\nLocation: [syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership ? "Departing for [station_name] in ([syndicate_elite_shuttle_timeleft] seconds.)":syndicate_elite_shuttle_at_station ? "Station":"Dock"]<BR>
[syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership ? "\n*The Syndicate Elite shuttle is already leaving.*<BR>\n<BR>":syndicate_elite_shuttle_at_station ? "\n<A href='?src=\ref[src];sendtodock=1'>Shuttle Offline</A><BR>\n<BR>":"\n<A href='?src=\ref[src];sendtostation=1'>Depart to [station_name]</A><BR>\n<BR>"]
\nLocation: [syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership ? "Departing for [station_name()] in ([syndicate_elite_shuttle_timeleft] seconds.)":syndicate_elite_shuttle_at_station ? "Station":"Dock"]<BR>
[syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership ? "\n*The Syndicate Elite shuttle is already leaving.*<BR>\n<BR>":syndicate_elite_shuttle_at_station ? "\n<A href='?src=\ref[src];sendtodock=1'>Shuttle Offline</A><BR>\n<BR>":"\n<A href='?src=\ref[src];sendtostation=1'>Depart to [station_name()]</A><BR>\n<BR>"]
\n<A href='?src=\ref[user];mach_close=computer'>Close</A>"}
user << browse(dat, "window=computer;size=575x450")
@@ -235,7 +235,7 @@ var/syndicate_elite_shuttle_timeleft = 0
usr << "<span class='warning'>The Syndicate Elite shuttle is unable to leave.</span>"
return
usr << "<span class='notice'>The Syndicate Elite shuttle will arrive on [station_name] in [(SYNDICATE_ELITE_MOVETIME/10)] seconds.</span>"
usr << "<span class='notice'>The Syndicate Elite shuttle will arrive on [station_name()] in [(SYNDICATE_ELITE_MOVETIME/10)] seconds.</span>"
temp = "Shuttle departing.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
updateUsrDialog()

View File

@@ -79,7 +79,7 @@
/datum/file/camnet_key/New()
for(var/N in networks)
if(N == "ALL")
networks = station_networks
networks = using_map.station_networks
break
return ..()

View File

@@ -337,7 +337,7 @@
return get_all_centcom_jobs() + "Custom"
accessblock()
var/accesses = "<h5>[boss_name]:</h5>"
var/accesses = "<h5>[using_map.boss_name]:</h5>"
for(var/A in get_all_centcom_access())
if(A in writer.access)
accesses += topic_link(src,"access=[A]","<font color='red'>[replacetext(get_centcom_access_desc(A), " ", "&nbsp")]</font>") + " "

View File

@@ -192,12 +192,12 @@
if(centcomm_message_cooldown)
usr << "Arrays recycling. Please stand by."
return
var/input = sanitize(input("Please choose a message to transmit to [boss_short] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "To abort, send an empty message.", ""))
var/input = sanitize(input("Please choose a message to transmit to [using_map.boss_short] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "To abort, send an empty message.", ""))
if(!input || !interactable())
return
CentCom_announce(input, usr)
usr << "Message transmitted."
log_say("[key_name(usr)] has made a [boss_short] announcement: [input]")
log_say("[key_name(usr)] has made a [using_map.boss_short] announcement: [input]")
centcomm_message_cooldown = 1
spawn(600)//10 minute cooldown
centcomm_message_cooldown = 0
@@ -288,7 +288,7 @@
if (authenticated==2)
dat += "<BR>\[ <A HREF='?src=\ref[src];announce'>Make An Announcement</A> \]"
if(computer.emagged == 0)
dat += "<BR>\[ <A HREF='?src=\ref[src];MessageCentCom'>Send an emergency message to [boss_short]</A> \]"
dat += "<BR>\[ <A HREF='?src=\ref[src];MessageCentCom'>Send an emergency message to [using_map.boss_short]</A> \]"
else
dat += "<BR>\[ <A HREF='?src=\ref[src];MessageSyndicate'>Send an emergency message to \[UNKNOWN\]</A> \]"
dat += "<BR>\[ <A HREF='?src=\ref[src];RestoreBackup'>Restore Backup Routing Data</A> \]"

View File

@@ -43,7 +43,7 @@
if(!T.implanted) continue
var/loc_display = "Unknown"
var/mob/living/carbon/M = T.imp_in
if(M.z in config.station_levels && !istype(M.loc, /turf/space))
if(M.z in using_map.station_levels && !istype(M.loc, /turf/space))
var/turf/mob_loc = get_turf(M)
loc_display = mob_loc.loc
if(T.malfunction)

View File

@@ -15,13 +15,13 @@
return
var/dat = ""
dat += "<center><span style='font-size:24pt'><b>Welcome to NTOS</b></span></center>"
dat += "<center><span style='font-size:8pt'>Thank you for choosing NTOS, your gateway to the future of mobile computing technology, sponsored by [company_name] (R)</span></center><br>"
dat += "<center><span style='font-size:8pt'>Thank you for choosing NTOS, your gateway to the future of mobile computing technology, sponsored by [using_map.company_name] (R)</span></center><br>"
dat += "<span style='font-size:12pt'><b>Getting started with NTOS:</b></span><br>"
dat += "To leave a current program, click the X button in the top right corner of the window. This will return you to the NTOS desktop. \
From the desktop, you can open the hard drive, usually located in the top left corner to access all the programs installed on your computer. \
When you rented your laptop, you were supplied with programs that your [company_name] Issued ID has given you access to use. \
When you rented your laptop, you were supplied with programs that your [using_map.company_name] Issued ID has given you access to use. \
In the event of a serious error, the right click menu will give you the ability to reset your computer. To open and close your laptop, alt-click your device.\
If you have any questions or technical issues, please contact your local computer technical experts at your local [boss_name]."
If you have any questions or technical issues, please contact your local computer technical experts at your local [using_map.boss_name]."
popup.set_content(dat)
popup.set_title_image(usr.browse_rsc_icon(computer.icon, computer.icon_state))
popup.open()

View File

@@ -176,9 +176,9 @@
if(D)
transfer_and_vend(D, C)
else
usr << "\icon[src]<span class='warning'>Unable to access vendor account. Please record the machine ID and call [boss_short] Support.</span>"
usr << "\icon[src]<span class='warning'>Unable to access vendor account. Please record the machine ID and call [using_map.boss_short] Support.</span>"
else
usr << "\icon[src]<span class='warning'>Unable to access vendor account. Please record the machine ID and call CentCom Support.</span>"
usr << "\icon[src]<span class='warning'>Unable to access vendor account. Please record the machine ID and call [using_map.boss_short] Support.</span>"
else
transfer_and_vend(CH, C)
@@ -325,10 +325,10 @@
transfer_and_reimburse(D)
return 1
else
usr << "\icon[src]<span class='warning'>Unable to access vendor account. Please record the machine ID and call [boss_short] Support.</span>"
usr << "\icon[src]<span class='warning'>Unable to access vendor account. Please record the machine ID and call [using_map.boss_short] Support.</span>"
return 0
else
usr << "\icon[src]<span class='warning'>Unable to access vendor account. Please record the machine ID and call CentCom Support.</span>"
usr << "\icon[src]<span class='warning'>Unable to access vendor account. Please record the machine ID and call [using_map.boss_short] Support.</span>"
return 0
else
transfer_and_reimburse(CH)

View File

@@ -347,7 +347,7 @@
put_mob(usr)
return
/atom/proc/return_air_for_internal_lifeform()
/atom/proc/return_air_for_internal_lifeform(var/mob/living/lifeform)
return return_air()
/obj/machinery/atmospherics/unary/cryo_cell/return_air_for_internal_lifeform()

View File

@@ -1042,7 +1042,7 @@ About the new airlock wires panel:
//wires
var/turf/T = get_turf(newloc)
if(T && (T.z in config.admin_levels))
if(T && (T.z in using_map.admin_levels))
secured_wires = 1
if (secured_wires)
wires = new/datum/wires/airlock/secure(src)

View File

@@ -1,7 +1,6 @@
/obj/machinery/exonet_node
name = "exonet node"
desc = "This machine is one of many, many nodes inside "+starsys_name+"'s section of the Exonet, connecting the "+station_orig+" to the rest of the system, at least \
electronically."
desc = null // Gets written in New()
icon = 'icons/obj/stationobjs.dmi'
icon_state = "exonet_node"
idle_power_usage = 2500
@@ -36,6 +35,9 @@
component_parts += new /obj/item/stack/cable_coil(src, 2)
RefreshParts()
desc = "This machine is one of many, many nodes inside [using_map.starsys_name]'s section of the Exonet, connecting the [using_map.station_short] to the rest of the system, at least \
electronically."
// Proc: update_icon()
// Parameters: None
// Description: Self explanatory.

View File

@@ -285,7 +285,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
dat+="<HR><B>Feed Security functions:</B><BR>"
dat+="<BR><A href='?src=\ref[src];menu_wanted=1'>[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue</A>"
dat+="<BR><A href='?src=\ref[src];menu_censor_story=1'>Censor Feed Stories</A>"
dat+="<BR><A href='?src=\ref[src];menu_censor_channel=1'>Mark Feed Channel with [company_name] D-Notice</A>"
dat+="<BR><A href='?src=\ref[src];menu_censor_channel=1'>Mark Feed Channel with [using_map.company_name] D-Notice</A>"
dat+="<BR><HR>The newscaster recognises you as: <FONT COLOR='green'>[scanned_user]</FONT>"
if(1)
dat+= "Station Feed Channels<HR>"
@@ -366,7 +366,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
if(9)
dat+="<B>[viewing_channel.channel_name]: </B><FONT SIZE=1>\[created by: <FONT COLOR='maroon'>[viewing_channel.author]</FONT>\]</FONT><HR>"
if(viewing_channel.censored)
dat+="<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [company_name] D-Notice.<BR>"
dat+="<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [using_map.company_name] D-Notice.<BR>"
dat+="No further feed story additions are allowed while the D-Notice is in effect.</FONT><BR><BR>"
else
if(isemptylist(viewing_channel.messages))
@@ -386,7 +386,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
dat+="<BR><HR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
dat+="<BR><A href='?src=\ref[src];setScreen=[1]'>Back</A>"
if(10)
dat+="<B>[company_name] Feed Censorship Tool</B><BR>"
dat+="<B>[using_map.company_name] Feed Censorship Tool</B><BR>"
dat+="<FONT SIZE=1>NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.<BR>"
dat+="Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.</FONT>"
dat+="<HR>Select Feed channel to get Stories from:<BR>"
@@ -397,7 +397,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
dat+="<A href='?src=\ref[src];pick_censor_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : ()]<BR>"
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Cancel</A>"
if(11)
dat+="<B>[company_name] D-Notice Handler</B><HR>"
dat+="<B>[using_map.company_name] D-Notice Handler</B><HR>"
dat+="<FONT SIZE=1>A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's"
dat+="morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed"
dat+="stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.</FONT><HR>"
@@ -424,7 +424,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
dat+="<B>[viewing_channel.channel_name]: </B><FONT SIZE=1>\[ created by: <FONT COLOR='maroon'>[viewing_channel.author]</FONT> \]</FONT><BR>"
dat+="Channel messages listed below. If you deem them dangerous to the station, you can <A href='?src=\ref[src];toggle_d_notice=\ref[viewing_channel]'>Bestow a D-Notice upon the channel</A>.<HR>"
if(viewing_channel.censored)
dat+="<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [company_name] D-Notice.<BR>"
dat+="<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [using_map.company_name] D-Notice.<BR>"
dat+="No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>"
else
if(isemptylist(viewing_channel.messages))
@@ -630,7 +630,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
screen = 15
else
if(news_network.wanted_issue.is_admin_message)
alert("The wanted issue has been distributed by a [company_name] higherup. You cannot edit it.","Ok")
alert("The wanted issue has been distributed by a [using_map.company_name] higherup. You cannot edit it.","Ok")
return
news_network.wanted_issue.author = channel_name
news_network.wanted_issue.body = msg
@@ -643,7 +643,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
else if(href_list["cancel_wanted"])
if(news_network.wanted_issue.is_admin_message)
alert("The wanted issue has been distributed by a [company_name] higherup. You cannot take it down.","Ok")
alert("The wanted issue has been distributed by a [using_map.company_name] higherup. You cannot take it down.","Ok")
return
var/choice = alert("Please confirm Wanted Issue removal","Network Security Handler","Confirm","Cancel")
if(choice=="Confirm")
@@ -659,7 +659,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
else if(href_list["censor_channel_author"])
var/datum/feed_channel/FC = locate(href_list["censor_channel_author"])
if(FC.is_admin_channel)
alert("This channel was created by a [company_name] Officer. You cannot censor it.","Ok")
alert("This channel was created by a [using_map.company_name] Officer. You cannot censor it.","Ok")
return
if(FC.author != "<B>\[REDACTED\]</B>")
FC.backup_author = FC.author
@@ -672,7 +672,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
else if(href_list["censor_channel_story_author"])
var/datum/feed_message/MSG = locate(href_list["censor_channel_story_author"])
if(MSG.is_admin_message)
alert("This message was created by a [company_name] Officer. You cannot censor its author.","Ok")
alert("This message was created by a [using_map.company_name] Officer. You cannot censor its author.","Ok")
return
if(MSG.author != "<B>\[REDACTED\]</B>")
MSG.backup_author = MSG.author
@@ -685,7 +685,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
else if(href_list["censor_channel_story_body"])
var/datum/feed_message/MSG = locate(href_list["censor_channel_story_body"])
if(MSG.is_admin_message)
alert("This channel was created by a [company_name] Officer. You cannot censor it.","Ok")
alert("This channel was created by a [using_map.company_name] Officer. You cannot censor it.","Ok")
return
if(MSG.body != "<B>\[REDACTED\]</B>")
MSG.backup_body = MSG.body
@@ -711,7 +711,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
else if(href_list["toggle_d_notice"])
var/datum/feed_channel/FC = locate(href_list["toggle_d_notice"])
if(FC.is_admin_channel)
alert("This channel was created by a [company_name] Officer. You cannot place a D-Notice upon it.","Ok")
alert("This channel was created by a [using_map.company_name] Officer. You cannot place a D-Notice upon it.","Ok")
return
FC.censored = !FC.censored
FC.update()
@@ -812,7 +812,7 @@ obj/item/weapon/newspaper/attack_self(mob/user as mob)
switch(screen)
if(0) //Cover
dat+="<DIV ALIGN='center'><B><FONT SIZE=6>The Griffon</FONT></B></div>"
dat+="<DIV ALIGN='center'><FONT SIZE=2>[company_name]-standard newspaper, for use on [company_name]<5D> Space Facilities</FONT></div><HR>"
dat+="<DIV ALIGN='center'><FONT SIZE=2>[using_map.company_name]-standard newspaper, for use on [using_map.company_name]<5D> Space Facilities</FONT></div><HR>"
if(isemptylist(news_content))
if(important_message)
dat+="Contents:<BR><ul><B><FONT COLOR='red'>**</FONT>Important Security Announcement<FONT COLOR='red'>**</FONT></B> <FONT SIZE=2>\[page [pages+2]\]</FONT><BR></ul>"

View File

@@ -375,7 +375,7 @@ obj/machinery/nuclearbomb/proc/nukehack_win(mob/user as mob)
var/off_station = 0
var/turf/bomb_location = get_turf(src)
if(bomb_location && (bomb_location.z in config.station_levels))
if(bomb_location && (bomb_location.z in using_map.station_levels))
if((bomb_location.x < (128-NUKERANGE)) || (bomb_location.x > (128+NUKERANGE)) || (bomb_location.y < (128-NUKERANGE)) || (bomb_location.y > (128+NUKERANGE)))
off_station = 1
else

View File

@@ -2,7 +2,7 @@
/obj/item/supply_beacon
name = "inactive supply beacon"
icon = 'icons/obj/supplybeacon.dmi'
desc = "An inactive, hacked supply beacon stamped with the "+starsys_name+" Rapid Fabrication logo. Good for one (1) ballistic supply pod shipment."
desc = "An inactive, hacked supply beacon stamped with the local system's Rapid Fabrication logo. Good for one (1) ballistic supply pod shipment."
icon_state = "beacon"
var/deploy_path = /obj/machinery/power/supply_beacon
var/deploy_time = 30
@@ -114,6 +114,6 @@
var/drop_x = src.x - 2
var/drop_y = src.y - 2
var/drop_z = src.z
command_announcement.Announce(starsys_name+" Rapid Fabrication priority supply request #[rand(1000,9999)]-[rand(100,999)] recieved. Shipment dispatched via ballistic supply pod for immediate delivery. Have a nice day.", "Thank You For Your Patronage")
command_announcement.Announce("[using_map.starsys_name] Rapid Fabrication priority supply request #[rand(1000,9999)]-[rand(100,999)] recieved. Shipment dispatched via ballistic supply pod for immediate delivery. Have a nice day.", "Thank You For Your Patronage")
spawn(rand(100, 300))
new /datum/random_map/droppod/supply(null, drop_x, drop_y, drop_z, supplied_drop = drop_type) // Splat.

View File

@@ -93,7 +93,7 @@
var/turf/T = get_turf(R)
if(!T)
continue
if(!(T.z in config.player_levels))
if(!(T.z in using_map.player_levels))
continue
var/tmpname = T.loc.name
if(areaindex[tmpname])

View File

@@ -181,7 +181,7 @@
sleep(15)
visible_message("\icon[src] <b>[src]</b> beeps: \"User DB corrupted \[Code 0x00FA\]. Truncating data structure...\"")
sleep(30)
visible_message("\icon[src] <b>[src]</b> beeps: \"User DB truncated. Please contact your [company_name] system operator for future assistance.\"")
visible_message("\icon[src] <b>[src]</b> beeps: \"User DB truncated. Please contact your [using_map.company_name] system operator for future assistance.\"")
req_access = null
emagged = 1
return 1

View File

@@ -208,7 +208,7 @@
sleep(15)
visible_message("\icon[src] <b>[src]</b> beeps: \"User DB corrupted \[Code 0x00FA\]. Truncating data structure...\"")
sleep(30)
visible_message("\icon[src] <b>[src]</b> beeps: \"User DB truncated. Please contact your [company_name] system operator for future assistance.\"")
visible_message("\icon[src] <b>[src]</b> beeps: \"User DB truncated. Please contact your [using_map.company_name] system operator for future assistance.\"")
req_access = null
emagged = 1
return 1

View File

@@ -48,7 +48,7 @@
var/area/A = get_area()
var/text = {"<HTML><head><title>[src]</title></head><BODY>
<h2>[station_name()] blueprints</h2>
<small>Property of [company_name]. For heads of staff only. Store in high-secure storage.</small><hr>
<small>Property of [using_map.company_name]. For heads of staff only. Store in high-secure storage.</small><hr>
"}
switch (get_area_type())
if (AREA_SPACE)

View File

@@ -35,7 +35,7 @@ AI MODULES
return
if(ticker && ticker.mode && ticker.mode.name == "blob")
usr << "Law uploads have been disabled by [company_name]!"
usr << "Law uploads have been disabled by [using_map.company_name]!"
return
if (comp.current.stat == 2 || comp.current.control_disabled == 1)

View File

@@ -85,10 +85,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM
body_parts_covered = 0
var/lit = 0
var/icon_on
var/icon_off
var/type_butt = null
var/chem_volume = 0
var/smoketime = 0
var/is_pipe = 0 //Prevents a runtime with pipes
var/matchmes = "USER lights NAME with FLAME"
var/lightermes = "USER lights NAME with FLAME"
var/zippomes = "USER lights NAME with FLAME"
@@ -106,6 +106,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM
smoketime--
if(smoketime < 1)
die()
if(ishuman(loc))
var/mob/living/carbon/human/C = loc
to_chat(C, "<span class='notice'>Your [name] goes out.</span>")
return
if(location)
location.hotspot_expose(700, 5)
@@ -119,19 +122,20 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/examine(mob/user)
..()
if(lit == 1)
var/smoke_percent = round((smoketime / initial(smoketime)) * 100)
switch(smoke_percent)
if(90 to INFINITY)
user << "[src] has just begun to burn."
if(60 to 90)
user << "[src] has a good amount of burn time remaining."
if(30 to 60)
user << "[src] is about half finished."
if(10 to 30)
user << "[src] is starting to burn low."
else
user << "[src] is nearly burnt out!"
if(is_pipe)
return
var/smoke_percent = round((smoketime / initial(smoketime)) * 100)
switch(smoke_percent)
if(90 to INFINITY)
user << "[src] is still fresh."
if(60 to 90)
user << "[src] has a good amount of burn time remaining."
if(30 to 60)
user << "[src] is about half finished."
if(10 to 30)
user << "[src] is starting to burn low."
else
user << "[src] is nearly burnt out!"
/obj/item/clothing/mask/smokable/proc/light(var/flavor_text = "[usr] lights the [name].")
@@ -167,6 +171,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/proc/die(var/nomessage = 0)
var/turf/T = get_turf(src)
set_light(0)
processing_objects.Remove(src)
if (type_butt)
var/obj/item/butt = new type_butt(T)
transfer_fingerprints_to(butt)
@@ -175,12 +180,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(ismob(loc))
var/mob/living/M = loc
if (!nomessage)
M << "<span class='notice'>Your [name] goes out.</span>"
to_chat(M, "<span class='notice'>Your [name] goes out.</span>")
M.remove_from_mob(src) //un-equip it so the overlays can update
M.update_inv_wear_mask(0)
M.update_inv_l_hand(0)
M.update_inv_r_hand(1)
processing_objects.Remove(src)
qdel(src)
else
new /obj/effect/decal/cleanable/ash(T)
@@ -189,12 +193,26 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if (!nomessage)
M << "<span class='notice'>Your [name] goes out, and you empty the ash.</span>"
lit = 0
icon_state = icon_off
item_state = icon_off
icon_state = initial(icon_state)
item_state = initial(item_state)
M.update_inv_wear_mask(0)
M.update_inv_l_hand(0)
M.update_inv_r_hand(1)
processing_objects.Remove(src)
smoketime = 0
reagents.clear_reagents()
name = "empty [initial(name)]"
/obj/item/clothing/mask/smokable/proc/quench()
lit = 0
processing_objects.Remove(src)
icon_state = initial(icon_state)
item_state = initial(item_state)
if(ismob(loc))
var/mob/living/M = loc
M.update_inv_wear_mask(0)
M.update_inv_l_hand(0)
M.update_inv_r_hand(1)
/obj/item/clothing/mask/smokable/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
@@ -223,6 +241,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM
else
return ..()
/obj/item/clothing/mask/smokable/water_act(amount)
if(amount >= 5)
quench()
/obj/item/clothing/mask/smokable/cigarette
name = "cigarette"
desc = "A roll of tobacco and nicotine."
@@ -233,7 +255,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
slot_flags = SLOT_EARS | SLOT_MASK
attack_verb = list("burnt", "singed")
icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi
icon_off = "cigoff"
type_butt = /obj/item/weapon/cigbutt
chem_volume = 15
smoketime = 300
@@ -269,8 +290,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/cigarette/attack_self(mob/user as mob)
if(lit == 1)
user.visible_message("<span class='notice'>[user] calmly drops and treads on the lit [src], putting it out instantly.</span>")
die(1)
if(user.a_intent == I_HURT)
user.visible_message("<span class='notice'>[user] drops and treads on the lit [src], putting it out instantly.</span>")
die(1)
else
user.visible_message("<span class='notice'>[user] puts out \the [src].</span>")
quench()
return ..()
////////////
@@ -281,7 +306,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!"
icon_state = "cigar2off"
icon_on = "cigar2on"
icon_off = "cigar2off"
type_butt = /obj/item/weapon/cigbutt/cigarbutt
throw_speed = 0.5
item_state = "cigaroff"
@@ -298,14 +322,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
desc = "There's little more you could want from a cigar."
icon_state = "cigar2off"
icon_on = "cigar2on"
icon_off = "cigar2off"
/obj/item/clothing/mask/smokable/cigarette/cigar/havana
name = "premium Havanian cigar"
desc = "A cigar fit for only the best of the best."
icon_state = "cigar2off"
icon_on = "cigar2on"
icon_off = "cigar2off"
smoketime = 7200
chem_volume = 30
@@ -345,7 +367,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_state = "pipeoff"
item_state = "pipeoff"
icon_on = "pipeon" //Note - these are in masks.dmi
icon_off = "pipeoff"
smoketime = 0
chem_volume = 50
matchmes = "<span class='notice'>USER lights their NAME with their FLAME.</span>"
@@ -353,6 +374,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
zippomes = "<span class='rose'>With much care, USER lights their NAME with their FLAME.</span>"
weldermes = "<span class='notice'>USER recklessly lights NAME with FLAME.</span>"
ignitermes = "<span class='notice'>USER fiddles with FLAME, and manages to light their NAME with the power of science.</span>"
is_pipe = 1
/obj/item/clothing/mask/smokable/pipe/New()
..()
@@ -375,18 +397,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/pipe/attack_self(mob/user as mob)
if(lit == 1)
user.visible_message("<span class='notice'>[user] puts out [src].</span>", "<span class='notice'>You put out [src].</span>")
lit = 0
icon_state = icon_off
item_state = icon_off
processing_objects.Remove(src)
else if (smoketime)
var/turf/location = get_turf(user)
user.visible_message("<span class='notice'>[user] empties out [src].</span>", "<span class='notice'>You empty out [src].</span>")
new /obj/effect/decal/cleanable/ash(location)
smoketime = 0
reagents.clear_reagents()
name = "empty [initial(name)]"
if(user.a_intent == I_HURT)
user.visible_message("<span class='notice'>[user] empties the lit [src] on the floor!.</span>")
die(1)
else
user.visible_message("<span class='notice'>[user] puts out \the [src].</span>")
quench()
/obj/item/clothing/mask/smokable/pipe/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/melee/energy/sword))
@@ -431,7 +447,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_state = "cobpipeoff"
item_state = "cobpipeoff"
icon_on = "cobpipeon" //Note - these are in masks.dmi
icon_off = "cobpipeoff"
chem_volume = 35
/////////

View File

@@ -12,7 +12,7 @@
/obj/item/weapon/circuitboard/security/New()
..()
network = station_networks
network = using_map.station_networks
/obj/item/weapon/circuitboard/security/engineering
name = T_BOARD("engineering camera monitor")

View File

@@ -333,7 +333,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/weapon/implant/loyalty/get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> [company_name] Employee Management Implant<BR>
<b>Name:</b> [using_map.company_name] Employee Management Implant<BR>
<b>Life:</b> Ten years.<BR>
<b>Important Notes:</b> Personnel injected with this device tend to be much more loyal to the company.<BR>
<HR>
@@ -349,11 +349,11 @@ the implant may become unstable and either pre-maturely inject the subject or si
var/mob/living/carbon/human/H = M
var/datum/antagonist/antag_data = get_antag_data(H.mind.special_role)
if(antag_data && (antag_data.flags & ANTAG_IMPLANT_IMMUNE))
H.visible_message("[H] seems to resist the implant!", "You feel the corporate tendrils of [company_name] try to invade your mind!")
H.visible_message("[H] seems to resist the implant!", "You feel the corporate tendrils of [using_map.company_name] try to invade your mind!")
return 0
else
clear_antag_roles(H.mind, 1)
H << "<span class='notice'>You feel a surge of loyalty towards [company_name].</span>"
H << "<span class='notice'>You feel a surge of loyalty towards [using_map.company_name].</span>"
return 1
@@ -403,7 +403,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/weapon/implant/death_alarm/get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> [company_name] \"Profit Margin\" Class Employee Lifesign Sensor<BR>
<b>Name:</b> [using_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor<BR>
<b>Life:</b> Activates upon death.<BR>
<b>Important Notes:</b> Alerts crew to crewmember death.<BR>
<HR>
@@ -481,7 +481,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/weapon/implant/compressed/get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> [company_name] \"Profit Margin\" Class Employee Lifesign Sensor<BR>
<b>Name:</b> [using_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor<BR>
<b>Life:</b> Activates upon death.<BR>
<b>Important Notes:</b> Alerts crew to crewmember death.<BR>
<HR>

View File

@@ -6,6 +6,7 @@
throw_speed = 1
throw_range = 5
w_class = ITEMSIZE_SMALL
matter = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 1000)
var/obj/item/weapon/implant/imp = null
/obj/item/weapon/implanter/attack_self(var/mob/user)

View File

@@ -751,7 +751,7 @@
<br>
<h1>The Oath</h1>
<i>The Medical Oath sworn by recognised medical practitioners in the employ of [company_name]</i><br>
<i>The Medical Oath sworn by recognised medical practitioners in the employ of [using_map.company_name]</i><br>
<ol>
<li>Now, as a new doctor, I solemnly promise that I will, to the best of my ability, serve humanity-caring for the sick, promoting good health, and alleviating pain and suffering.</li>

View File

@@ -150,12 +150,14 @@
//misc, formerly from code/defines/weapons.dm
/obj/item/weapon/surgical/bonegel
name = "bone gel"
desc = "For fixing bones."
icon_state = "bone-gel"
force = 0
throwforce = 1.0
/obj/item/weapon/surgical/FixOVein
name = "FixOVein"
desc = "Like bone gel. For veins."
icon_state = "fixovein"
force = 0
throwforce = 1.0
@@ -164,6 +166,7 @@
/obj/item/weapon/surgical/bonesetter
name = "bone setter"
desc = "Put them in their place."
icon_state = "bone setter"
force = 8.0
throwforce = 9.0

View File

@@ -32,6 +32,19 @@
..()
icon_state = "tree_[rand(1, 6)]"
/obj/structure/flora/tree/sif
name = "glowing tree"
desc = "It's a tree, except this one seems quite alien. It glows a deep blue."
icon = 'icons/obj/flora/deadtrees.dmi'
icon_state = "tree_sif"
/obj/structure/flora/tree/sif/New()
update_icon()
/obj/structure/flora/tree/sif/update_icon()
set_light(5, 1, "#33ccff")
overlays.Cut()
overlays.Add(image(icon = 'icons/obj/flora/deadtrees.dmi', icon_state = "[icon_state]_glow", layer = LIGHTING_LAYER + 0.1))
//grass
/obj/structure/flora/grass

View File

@@ -18,8 +18,9 @@
/obj/structure/toilet/attack_hand(mob/living/user as mob)
if(swirlie)
usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
usr.visible_message("<span class='danger'>[user] slams the toilet seat onto [swirlie.name]'s head!</span>", "<span class='notice'>You slam the toilet seat onto [swirlie.name]'s head!</span>", "You hear reverberating porcelain.")
swirlie.adjustBruteLoss(8)
swirlie.adjustBruteLoss(5)
return
if(cistern && !open)
@@ -53,6 +54,7 @@
return
if(istype(I, /obj/item/weapon/grab))
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
var/obj/item/weapon/grab/G = I
if(isliving(G.affecting))
@@ -65,14 +67,14 @@
if(open && !swirlie)
user.visible_message("<span class='danger'>[user] starts to give [GM.name] a swirlie!</span>", "<span class='notice'>You start to give [GM.name] a swirlie!</span>")
swirlie = GM
if(do_after(user, 30, 5, 0))
if(do_after(user, 30, GM))
user.visible_message("<span class='danger'>[user] gives [GM.name] a swirlie!</span>", "<span class='notice'>You give [GM.name] a swirlie!</span>", "You hear a toilet flushing.")
if(!GM.internal)
GM.adjustOxyLoss(5)
swirlie = null
else
user.visible_message("<span class='danger'>[user] slams [GM.name] into the [src]!</span>", "<span class='notice'>You slam [GM.name] into the [src]!</span>")
GM.adjustBruteLoss(8)
GM.adjustBruteLoss(5)
else
user << "<span class='notice'>You need a tighter grip.</span>"

View File

@@ -6,9 +6,13 @@
round_time // time of the round at which this should be announced, in seconds
message // body of the message
author = "NanoTrasen Editor"
channel_name = "The "+starsys_name+" Times"
can_be_redacted = 0
message_type = "Story"
channel_name = null
New() // I'm sorry...
..()
channel_name = "The [using_map.starsys_name] Times"
revolution_inciting_event
@@ -66,7 +70,6 @@
round_time = 60 * 50
found_ssd
channel_name = "The "+starsys_name+" Times"
author = "Doctor Eric Hanfield"
message = {"Several people have been found unconscious at their terminals. It is thought that it was due
@@ -78,7 +81,6 @@
lotus_tree
explosions
channel_name = "The "+starsys_name+" Times"
author = "Reporter Leland H. Howards"
message = {"The newly-christened civillian transport Lotus Tree suffered two very large explosions near the
@@ -92,9 +94,7 @@
food_riots
breaking_news
channel_name = "The "+starsys_name+" Times"
author = "Reporter Ro'kii Ar-Raqis"
message = {"Breaking news: Food riots have broken out throughout the Refuge asteroid colony in the Tenebrae
Lupus system. This comes only hours after NanoTrasen officials announced they will no longer trade with the
colony, citing the increased presence of \"hostile factions\" on the colony has made trade too dangerous to
@@ -103,9 +103,7 @@
round_time = 60 * 10
more
channel_name = "The "+starsys_name+" Times"
author = "Reporter Ro'kii Ar-Raqis"
message = {"More on the Refuge food riots: The Refuge Council has condemned NanoTrasen's withdrawal from
the colony, claiming \"there has been no increase in anti-NanoTrasen activity\", and \"\[the only] reason
NanoTrasen withdrew was because the \[Tenebrae Lupus] system's Phoron deposits have been completely mined out.

View File

@@ -22,7 +22,7 @@ var/silent_ert = 0
usr << "<span class='danger'>The round hasn't started yet!</span>"
return
if(send_emergency_team)
usr << "<span class='danger'>[boss_name] has already dispatched an emergency response team!</span>"
usr << "<span class='danger'>[using_map.boss_name] has already dispatched an emergency response team!</span>"
return
if(alert("Do you want to dispatch an Emergency Response Team?",,"Yes","No") != "Yes")
return
@@ -117,11 +117,11 @@ proc/trigger_armed_response_team(var/force = 0)
// there's only a certain chance a team will be sent
if(!prob(send_team_chance))
command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. Unfortunately, we were unable to send one at this time.", "[boss_name]")
command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. Unfortunately, we were unable to send one at this time.", "[using_map.boss_name]")
can_call_ert = 0 // Only one call per round, ladies.
return
if(silent_ert == 0)
command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. We will prepare and send one as soon as possible.", "[boss_name]")
command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. We will prepare and send one as soon as possible.", "[using_map.boss_name]")
can_call_ert = 0 // Only one call per round, gentleman.
send_emergency_team = 1

View File

@@ -263,7 +263,7 @@ var/list/mechtoys = list(
slip.is_copy = 0
slip.info = "<h3>[command_name()] Shipping Manifest</h3><hr><br>"
slip.info +="Order #[SO.ordernum]<br>"
slip.info +="Destination: [station_name]<br>"
slip.info +="Destination: [station_name()]<br>"
slip.info +="[shoppinglist.len] PACKAGES IN THIS SHIPMENT<br>"
slip.info +="CONTENTS:<br><ul>"

View File

@@ -72,6 +72,9 @@ var/list/flooring_cache = list()
if(!isnull(burnt) && (flooring.flags & TURF_CAN_BURN))
overlays |= get_flooring_overlay("[flooring.icon_base]-burned-[burnt]","[flooring.icon_base]_burned[burnt]")
if(weather_overlay)
overlays += weather_overlay
if(update_neighbors)
for(var/turf/simulated/floor/F in range(src, 1))
if(F == src)

View File

@@ -0,0 +1,6 @@
/turf/simulated/floor/outdoors/dirt
name = "dirt"
desc = "Quite dirty!"
icon_state = "dirt-dark"
edge_blending_priority = 1
turf_layers = list(/turf/simulated/floor/outdoors/rocks)

View File

@@ -0,0 +1,42 @@
var/list/grass_types = list(
/obj/structure/flora/ausbushes/sparsegrass,
/obj/structure/flora/ausbushes/fullgrass
)
/turf/simulated/floor/outdoors/grass
name = "grass"
icon_state = "grass"
edge_blending_priority = 3
turf_layers = list(
/turf/simulated/floor/outdoors/rocks,
/turf/simulated/floor/outdoors/dirt
)
var/grass_chance = 20
/turf/simulated/floor/outdoors/grass/sif
name = "growth"
icon_state = "grass_sif"
edge_blending_priority = 3
grass_chance = 0
/turf/simulated/floor/outdoors/grass/New()
if(prob(50))
icon_state += "2"
//edge_blending_priority++
if(grass_chance && prob(grass_chance))
var/grass_type = pick(grass_types)
new grass_type(src)
..()
/turf/simulated/floor/outdoors/grass/forest
name = "thick grass"
icon_state = "grass-dark"
grass_chance = 80
//tree_prob = 20
edge_blending_priority = 4
/turf/simulated/floor/outdoors/grass/sif/forest
name = "thick growth"
icon_state = "grass_sif_dark"
edge_blending_priority = 4

View File

@@ -0,0 +1,109 @@
var/list/turf_edge_cache = list()
var/list/outdoor_turfs = list()
/turf/
// If greater than 0, this turf will apply edge overlays on top of other turfs cardinally adjacent to it, if those adjacent turfs are of a different icon_state,
// and if those adjacent turfs have a lower edge_blending_priority.
var/edge_blending_priority = 0
// Outdoors var determines if the game should consider the turf to be 'outdoors', which controls certain things such as weather effects.
var/outdoors = FALSE
// This holds the image for the current weather effect.
var/image/weather_overlay = null
/turf/simulated/floor/outdoors
name = "generic ground"
desc = "Rather boring."
icon = 'icons/turf/outdoors.dmi'
icon_state = null
edge_blending_priority = 1
outdoors = TRUE // This variable is used for weather effects.
// When a turf gets demoted or promoted, this list gets adjusted. The top-most layer is the layer on the bottom of the list, due to how pop() works.
var/list/turf_layers = list(/turf/simulated/floor/outdoors/rocks)
/turf/simulated/floor/outdoors/initialize()
update_icon()
..()
/turf/simulated/floor/New()
if(outdoors)
outdoor_turfs.Add(src)
..()
/turf/simulated/floor/Destroy()
if(outdoors)
outdoor_turfs.Remove(src)
..()
/turf/simulated/floor/proc/update_icon_edge()
if(edge_blending_priority)
for(var/checkdir in cardinal)
var/turf/simulated/T = get_step(src, checkdir)
if(istype(T) && T.edge_blending_priority && edge_blending_priority < T.edge_blending_priority && icon_state != T.icon_state)
var/cache_key = "[T.get_edge_icon_state()]-[checkdir]"
if(!turf_edge_cache[cache_key])
turf_edge_cache[cache_key] = image(icon = 'icons/turf/outdoors_edge.dmi', icon_state = "[T.get_edge_icon_state()]-edge", dir = checkdir)
overlays += turf_edge_cache[cache_key]
/turf/simulated/proc/get_edge_icon_state()
return icon_state
/turf/simulated/floor/outdoors/update_icon()
overlays.Cut()
update_icon_edge()
..()
/turf/simulated/floor/outdoors/mud
name = "grass"
icon_state = "mud_dark"
edge_blending_priority = 2
/turf/simulated/floor/outdoors/rocks
name = "rocks"
desc = "Hard as a rock."
icon_state = "rock"
edge_blending_priority = 1
// This proc adds a 'layer' on top of the turf.
/turf/simulated/floor/outdoors/proc/promote(var/new_turf_type)
var/list/new_turf_layer_list = turf_layers.Copy()
var/list/coords = list(x, y, z)
new_turf_layer_list.Add(src.type)
ChangeTurf(new_turf_type)
var/turf/simulated/floor/outdoors/T = locate(coords[1], coords[2], coords[3])
if(istype(T))
T.turf_layers = new_turf_layer_list.Copy()
// This proc removes the topmost layer.
/turf/simulated/floor/outdoors/proc/demote()
if(!turf_layers.len)
return // Cannot demote further.
var/list/new_turf_layer_list = turf_layers.Copy()
var/list/coords = list(x, y, z)
ChangeTurf(pop(new_turf_layer_list))
var/turf/simulated/floor/outdoors/T = locate(coords[1], coords[2], coords[3])
if(istype(T))
T.turf_layers = new_turf_layer_list.Copy()
// Called by weather processes, and maybe technomancers in the future.
/turf/simulated/floor/proc/chill()
return
/turf/simulated/floor/outdoors/chill()
promote(/turf/simulated/floor/outdoors/snow)
/turf/simulated/floor/outdoors/snow/chill()
return // Todo: Add heavy snow.
/turf/simulated/floor/outdoors/ex_act(severity)
switch(severity)
if(2)
if(prob(33))
return
if(3)
if(prob(66))
return
demote()

View File

@@ -0,0 +1,35 @@
/turf/simulated/floor/outdoors/snow
name = "snow"
icon_state = "snow"
edge_blending_priority = 5
movement_cost = 2
turf_layers = list(
/turf/simulated/floor/outdoors/rocks,
/turf/simulated/floor/outdoors/dirt
)
var/list/crossed_dirs = list()
/turf/simulated/floor/outdoors/snow/Entered(atom/A)
if(isliving(A))
var/mdir = "[A.dir]"
crossed_dirs[mdir] = 1
update_icon()
. = ..()
/turf/simulated/floor/outdoors/snow/update_icon()
overlays.Cut()
..()
for(var/d in crossed_dirs)
overlays += image(icon = 'icons/turf/outdoors.dmi', icon_state = "snow_footprints", dir = text2num(d))
/turf/simulated/floor/outdoors/snow/attackby(var/obj/item/W, var/mob/user)
if(istype(W, /obj/item/weapon/shovel))
to_chat(user, "<span class='notice'>You begin to remove \the [src] with your [W].</span>")
if(do_after(user, 4 SECONDS))
to_chat(user, "<span class='notice'>\The [src] has been dug up, and now lies in a pile nearby.</span>")
new /obj/item/stack/material/snow(src)
demote()
else
to_chat(user, "<span class='notice'>You decide to not finish removing \the [src].</span>")
else
..()

View File

@@ -0,0 +1,96 @@
// This doesn't inherit from /outdoors/ so that the pool can use it as well.
/turf/simulated/floor/water
name = "shallow water"
desc = "A body of water. It seems shallow enough to walk through, if needed."
icon = 'icons/turf/outdoors.dmi'
icon_state = "water_shallow"
var/under_state = "rock"
edge_blending_priority = -1
movement_cost = 4
outdoors = TRUE
var/movement_message = "You are slowed considerably from the water as you move across it." // Displayed to mobs crossing from one water tile to another.
var/depth = 1 // Higher numbers indicates deeper water.
/turf/simulated/floor/water/New()
update_icon()
..()
/turf/simulated/floor/water/update_icon()
..() // To get the edges. This also gets rid of other overlays so it needs to go first.
var/image/floorbed_sprite = image(icon = 'icons/turf/outdoors.dmi', icon_state = under_state)
underlays.Add(floorbed_sprite)
update_icon_edge()
/turf/simulated/floor/water/get_edge_icon_state()
return "water_shallow"
/turf/simulated/floor/water/return_air_for_internal_lifeform(var/mob/living/L)
if(L && L.lying)
if(L.can_breathe_water()) // For squid.
var/datum/gas_mixture/water_breath = new()
var/datum/gas_mixture/above_air = return_air()
var/amount = 300
water_breath.adjust_gas("oxygen", amount) // Assuming water breathes just extract the oxygen directly from the water.
water_breath.temperature = above_air.temperature
return water_breath
else
return null // Lying down means they're submerged, which means no air.
return return_air() // Otherwise their head is above the water, so get the air from the atmosphere instead.
/turf/simulated/floor/water/Entered(atom/movable/AM, atom/oldloc)
if(istype(AM, /mob/living))
var/mob/living/L = AM
L.update_water()
if(!istype(oldloc, /turf/simulated/floor/water))
to_chat(L, "<span class='warning'>You get drenched in water from entering \the [src]!</span>")
else
to_chat(L, "<span class='warning'>[movement_message]</span>")
AM.water_act(5)
..()
/turf/simulated/floor/water/Exited(atom/movable/AM, atom/newloc)
if(istype(AM, /mob/living))
var/mob/living/L = AM
L.update_water()
if(!istype(newloc, /turf/simulated/floor/water))
to_chat(L, "<span class='warning'>You climb out of \the [src].</span>")
..()
/turf/simulated/floor/water/deep
name = "deep water"
desc = "A body of water. It seems quite deep."
icon_state = "seadeep" // So it shows up in the map editor as water.
under_state = "abyss"
edge_blending_priority = -2
movement_cost = 8
movement_message = "You swim forwards."
depth = 2
/turf/simulated/floor/water/pool
name = "pool"
desc = "Don't worry, it's not closed."
under_state = "pool"
outdoors = FALSE
/mob/living/proc/can_breathe_water()
return FALSE
/mob/living/carbon/human/can_breathe_water()
if(species)
return species.can_breathe_water()
return ..()
/mob/living/proc/check_submerged()
var/turf/simulated/floor/water/T = loc
if(istype(T))
return T.depth
return 0
// Use this to have things react to having water applied to them.
/atom/movable/proc/water_act(amount)
return
/mob/living/water_act(amount)
adjust_fire_stacks(amount * 5)
for(var/atom/movable/AM in contents)
AM.water_act(amount)

View File

@@ -25,6 +25,8 @@
var/list/decals
var/movement_cost = 0 // How much the turf slows down movement, if any.
/turf/New()
..()
for(var/atom/movable/AM as mob|obj in src)
@@ -38,6 +40,9 @@
else
luminosity = 1
if(movement_cost && pathweight == 1) // This updates pathweight automatically.
pathweight = movement_cost
/turf/Destroy()
turfs -= src
..()

View File

@@ -25,6 +25,7 @@
var/old_dynamic_lighting = dynamic_lighting
var/list/old_affecting_lights = affecting_lights
var/old_lighting_overlay = lighting_overlay
var/old_weather_overlay = weather_overlay
//world << "Replacing [src.type] with [N]"
@@ -42,6 +43,9 @@
if(old_fire)
fire = old_fire
if(old_weather_overlay)
W.weather_overlay = old_weather_overlay
if (istype(W,/turf/simulated/floor))
W.RemoveLattice()
@@ -55,6 +59,7 @@
S.update_starlight()
W.levelupdate()
W.update_icon(1)
. = W
else
@@ -64,6 +69,9 @@
if(old_fire)
old_fire.RemoveFire()
if(old_weather_overlay)
W.weather_overlay = old_weather_overlay
if(tell_universe)
universe.OnTurfChange(W)
@@ -74,6 +82,7 @@
S.update_starlight()
W.levelupdate()
W.update_icon(1)
. = W
lighting_overlay = old_lighting_overlay

View File

@@ -1,5 +1,7 @@
// This is a wall you surround the area of your "planet" with, that makes the atmosphere inside stay within bounds, even if canisters
// are opened or other strange things occur.
var/list/planetary_walls = list()
/turf/unsimulated/wall/planetary
name = "railroading"
desc = "Choo choo!"
@@ -17,6 +19,14 @@
phoron = 0
temperature = T20C
/turf/unsimulated/wall/planetary/New()
..()
planetary_walls.Add(src)
/turf/unsimulated/wall/planetary/Destroy()
planetary_walls.Remove(src)
..()
// Normal station/earth air.
/turf/unsimulated/wall/planetary/normal
oxygen = MOLES_O2STANDARD
@@ -44,4 +54,4 @@
/turf/unsimulated/wall/planetary/desert
oxygen = MOLES_O2STANDARD
nitrogen = MOLES_N2STANDARD
temperature = 310.92 // About 37.7C / 100F
temperature = 310.92 // About 37.7C / 100F

View File

@@ -25,16 +25,16 @@ var/global/list/global_map = null
var/list/hit_appends = list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF")
var/diary = null
var/href_logfile = null
var/station_name = "Virgo Orbital Research Establishment"
var/const/station_orig = "Virgo Orbital Research Establishment" //station_name can't be const due to event prefix/suffix
var/const/station_short = "V.O.R.E."
var/const/dock_name = "Virgo-Erigone Central Command"
var/const/boss_name = "Central Command"
var/const/boss_short = "CentCom"
var/const/company_name = "NanoTrasen"
var/const/company_short = "NT"
var/const/star_name = "Virgo-Erigone"
var/const/starsys_name = "Virgo-Erigone"
// var/station_name = "Northern Star"
// var/const/station_orig = "Northern Star" //station_name can't be const due to event prefix/suffix
// var/const/station_short = "Northern Star"
// var/const/dock_name = "Vir Interstellar Spaceport"
// var/const/boss_name = "Central Command"
// var/const/boss_short = "CentCom"
// var/const/company_name = "NanoTrasen"
// var/const/company_short = "NT"
// var/const/star_name = "Vir"
// var/const/starsys_name = "Vir"
var/const/game_version = "VOREStation"
var/changelog_hash = ""
var/game_year = (text2num(time2text(world.realtime, "YYYY")) + 544)

View File

@@ -348,7 +348,7 @@ proc/admin_notice(var/message, var/rights)
dat+={"<HR><B>Feed Security functions:</B><BR>
<BR><A href='?src=\ref[src];ac_menu_wanted=1'>[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue</A>
<BR><A href='?src=\ref[src];ac_menu_censor_story=1'>Censor Feed Stories</A>
<BR><A href='?src=\ref[src];ac_menu_censor_channel=1'>Mark Feed Channel with [company_name] D-Notice (disables and locks the channel.</A>
<BR><A href='?src=\ref[src];ac_menu_censor_channel=1'>Mark Feed Channel with [using_map.company_name] D-Notice (disables and locks the channel.</A>
<BR><HR><A href='?src=\ref[src];ac_set_signature=1'>The newscaster recognises you as:<BR> <FONT COLOR='green'>[src.admincaster_signature]</FONT></A>
"}
if(1)
@@ -414,7 +414,7 @@ proc/admin_notice(var/message, var/rights)
dat+="<B>[src.admincaster_feed_channel.channel_name]: </B><FONT SIZE=1>\[created by: <FONT COLOR='maroon'>[src.admincaster_feed_channel.author]</FONT>\]</FONT><HR>"
if(src.admincaster_feed_channel.censored)
dat+={"
<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [company_name] D-Notice.<BR>
<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [using_map.company_name] D-Notice.<BR>
No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>
"}
else
@@ -435,7 +435,7 @@ proc/admin_notice(var/message, var/rights)
"}
if(10)
dat+={"
<B>[company_name] Feed Censorship Tool</B><BR>
<B>[using_map.company_name] Feed Censorship Tool</B><BR>
<FONT SIZE=1>NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.<BR>
Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.</FONT>
<HR>Select Feed channel to get Stories from:<BR>
@@ -448,7 +448,7 @@ proc/admin_notice(var/message, var/rights)
dat+="<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Cancel</A>"
if(11)
dat+={"
<B>[company_name] D-Notice Handler</B><HR>
<B>[using_map.company_name] D-Notice Handler</B><HR>
<FONT SIZE=1>A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's
morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed
stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.</FONT><HR>
@@ -481,7 +481,7 @@ proc/admin_notice(var/message, var/rights)
"}
if(src.admincaster_feed_channel.censored)
dat+={"
<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [company_name] D-Notice.<BR>
<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [using_map.company_name] D-Notice.<BR>
No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>
"}
else

View File

@@ -202,7 +202,9 @@ var/list/admin_verbs_debug = list(
/client/proc/toggle_debug_logs,
/client/proc/admin_ghost, //allows us to ghost/reenter body at will,
/datum/admins/proc/view_runtimes,
/client/proc/show_gm_status
/client/proc/show_gm_status,
/datum/admins/proc/change_weather,
/datum/admins/proc/change_time
)
var/list/admin_verbs_paranoid_debug = list(

View File

@@ -19,7 +19,7 @@ var/list/admin_datums = list()
error("Admin datum created without a ckey argument. Datum has been deleted")
qdel(src)
return
admincaster_signature = "[company_name] Officer #[rand(0,9)][rand(0,9)][rand(0,9)]"
admincaster_signature = "[using_map.company_name] Officer #[rand(0,9)][rand(0,9)][rand(0,9)]"
rank = initial_rank
rights = initial_rights
admin_datums[ckey] = src

View File

@@ -12,7 +12,7 @@
for(var/mob/living/carbon/human/H in mob_list)
var/turf/T = get_turf(H)
var/security = 0
if((T && T in config.admin_levels) || prisonwarped.Find(H))
if((T && T in using_map.admin_levels) || prisonwarped.Find(H))
//don't warp them if they aren't ready or are already there
continue
H.Paralyse(5)

View File

@@ -30,7 +30,7 @@
step_rand(W)
var/area/A = get_area(M)
if(A.requires_power && !A.always_unpowered && A.power_light && (A.z in config.player_levels))
if(A.requires_power && !A.always_unpowered && A.power_light && (A.z in using_map.player_levels))
affected_areas |= get_area(M)
affected_mobs |= user

View File

@@ -968,3 +968,46 @@
return
error_cache.showTo(usr)
/datum/admins/proc/change_weather()
set category = "Debug"
set name = "Change Weather"
set desc = "Changes the current weather."
if(!check_rights(R_DEBUG))
return
var/datum/planet/planet = input(usr, "Which planet do you want to modify the weather on?", "Change Weather") in list(planet_sif)
var/datum/weather/new_weather = input(usr, "What weather do you want to change to?", "Change Weather") as null|anything in planet.weather_holder.allowed_weather_types
if(new_weather)
planet.weather_holder.change_weather(new_weather)
var/log = "[key_name(src)] changed [planet.name]'s weather to [new_weather]."
message_admins(log)
log_admin(log)
/datum/admins/proc/change_time()
set category = "Debug"
set name = "Change Planet Time"
set desc = "Changes the time of a planet."
if(!check_rights(R_DEBUG))
return
var/datum/planet/planet = input(usr, "Which planet do you want to modify time on?", "Change Time") in list(planet_sif)
var/datum/time/current_time_datum = planet.current_time
var/new_hour = input(usr, "What hour do you want to change to?", "Change Time", text2num(current_time_datum.show_time("hh"))) as null|num
if(!isnull(new_hour))
var/new_minute = input(usr, "What minute do you want to change to?", "Change Time", text2num(current_time_datum.show_time("mm")) ) as null|num
if(!isnull(new_minute))
var/type_needed = current_time_datum.type
var/datum/time/new_time = new type_needed()
new_time = new_time.add_hours(new_hour)
new_time = new_time.add_minutes(new_minute)
planet.current_time = new_time
spawn(1)
planet.update_sun()
var/log = "[key_name(src)] changed [planet.name]'s time to [planet.current_time.show_time("hh:mm")]."
message_admins(log)
log_admin(log)

View File

@@ -17,7 +17,7 @@
var/inactive_on_main_station = 0
for(var/zone/zone in air_master.zones)
var/turf/simulated/turf = locate() in zone.contents
if(turf && turf.z in config.station_levels)
if(turf && turf.z in using_map.station_levels)
if(zone.needs_update)
active_on_main_station++
else

View File

@@ -29,7 +29,7 @@
//log_admin("HELP: [key_name(src)]: [msg]")
/proc/CentCom_announce(var/msg, var/mob/Sender, var/iamessage)
msg = "\blue <b><font color=orange>[uppertext(boss_short)]M[iamessage ? " IA" : ""]:</font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;CentComReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
msg = "\blue <b><font color=orange>[uppertext(using_map.boss_short)]M[iamessage ? " IA" : ""]:</font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;CentComReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
for(var/client/C in admins)
if(R_ADMIN & C.holder.rights)
C << msg

View File

@@ -553,7 +553,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!input)
return
if(!customname)
customname = "[company_name] Update"
customname = "[using_map.company_name] Update"
for (var/obj/machinery/computer/communications/C in machines)
if(! (C.stat & (BROKEN|NOPOWER) ) )
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( C.loc )
@@ -568,7 +568,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if("Yes")
command_announcement.Announce(input, customname, new_sound = 'sound/AI/commandreport.ogg', msg_sanitized = 1);
if("No")
world << "\red New [company_name] Update available at all communication consoles."
world << "\red New [using_map.company_name] Update available at all communication consoles."
world << sound('sound/AI/commandreport.ogg')
log_admin("[key_name(src)] has created a command report: [input]")

View File

@@ -26,7 +26,7 @@
dat += "Locked on<BR>"
dat += "<B>Charge progress: [reload]/180:</B><BR>"
dat += "<A href='byond://?src=\ref[src];fire=1'>Open Fire</A><BR>"
dat += "Deployment of weapon authorized by <br>[company_name] Naval Command<br><br>Remember, friendly fire is grounds for termination of your contract and life.<HR>"
dat += "Deployment of weapon authorized by <br>[using_map.company_name] Naval Command<br><br>Remember, friendly fire is grounds for termination of your contract and life.<HR>"
user << browse(dat, "window=scroll")
onclose(user, "scroll")
return

View File

@@ -18,7 +18,7 @@
get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> [company_name] Employee Exile Implant<BR>
<b>Name:</b> [using_map.company_name] Employee Exile Implant<BR>
<b>Implant Details:</b> The onboard gateway system has been modified to reject entry by individuals containing this implant<BR>"}
return dat

View File

@@ -42,7 +42,7 @@
/datum/category_item/player_setup_item/general/background/content(var/mob/user)
. += "<b>Background Information</b><br>"
. += "[company_name] Relation: <a href='?src=\ref[src];nt_relation=1'>[pref.nanotrasen_relation]</a><br/>"
. += "[using_map.company_name] Relation: <a href='?src=\ref[src];nt_relation=1'>[pref.nanotrasen_relation]</a><br/>"
. += "Home System: <a href='?src=\ref[src];home_system=1'>[pref.home_system]</a><br/>"
. += "Citizenship: <a href='?src=\ref[src];citizenship=1'>[pref.citizenship]</a><br/>"
. += "Faction: <a href='?src=\ref[src];faction=1'>[pref.faction]</a><br/>"

View File

@@ -63,7 +63,7 @@
display_name = "Medical HUD Aviators (Medical)"
path = /obj/item/clothing/glasses/sunglasses/medhud/aviator
/datum/gear/eyes/medical/aviator
/datum/gear/eyes/medical/aviator/prescription
display_name = "Medical HUD Aviators, prescription (Medical)"
path = /obj/item/clothing/glasses/sunglasses/medhud/aviator/prescription

View File

@@ -23,7 +23,7 @@ var/global/list/citizenship_choices = list(
var/global/list/home_system_choices = list(
"Sol",
starsys_name,
"Vir",
"Nyx",
"Tau Ceti",
"Qerr'Vallis",

View File

@@ -34,7 +34,7 @@
desc = "It's hood that covers the head. It keeps you warm during the space winters."
icon_state = "chaplain_hood"
item_state_slots = list(slot_r_hand_str = "beret_black", slot_l_hand_str = "beret_black")
flags_inv = BLOCKHAIR
flags_inv = BLOCKHEADHAIR
body_parts_covered = HEAD
//Chaplain
@@ -43,7 +43,7 @@
desc = "Maximum piety in this star system."
icon_state = "nun_hood"
item_state_slots = list(slot_r_hand_str = "beret_black", slot_l_hand_str = "beret_black")
flags_inv = BLOCKHAIR
flags_inv = BLOCKHEADHAIR
body_parts_covered = HEAD
//Mime

View File

@@ -81,7 +81,7 @@
desc = "It's unspeakably stylish"
icon_state = "hasturhood"
item_state_slots = list(slot_r_hand_str = "enginering_beret", slot_l_hand_str = "enginering_beret")
flags_inv = BLOCKHAIR
flags_inv = BLOCKHEADHAIR
body_parts_covered = HEAD|FACE|EYES
/obj/item/clothing/head/nursehat

View File

@@ -44,8 +44,7 @@
icon_state = "beret_badge"
item_state_slots = list(slot_r_hand_str = "beret", slot_l_hand_str = "beret")
armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 30, rad = 30)
item_flags = STOPPRESSUREDAMAGE
flags_inv = BLOCKHAIR
flags_inv = BLOCKHEADHAIR
siemens_coefficient = 0.9
//Space santa outfit suit

View File

@@ -117,7 +117,7 @@
H << "<span class='warning'>You cannot teleport into solid walls.</span>"
return 0
if(T.z in config.admin_levels)
if(T.z in using_map.admin_levels)
H << "<span class='warning'>You cannot use your teleporter on this Z-level.</span>"
return 0

View File

@@ -44,7 +44,7 @@
/obj/item/clothing/suit/space
name = "Space suit"
desc = "A suit that protects against low pressure environments. \""+station_short+"\" is written in large block letters on the back."
desc = "A suit that protects against low pressure environments."
icon_state = "space"
w_class = ITEMSIZE_HUGE // So you can't fit this in your bag and be prepared at all times.
gas_transfer_coefficient = 0.01
@@ -62,6 +62,10 @@
var/list/supporting_limbs //If not-null, automatically splints breaks. Checked when removing the suit.
/obj/item/clothing/suit/space/New()
..()
desc += " \"[using_map.station_short]\" is written in large block letters on the back."
/obj/item/clothing/suit/space/equipped(mob/M)
check_limb_support(M)
..()

Some files were not shown because too many files have changed in this diff Show More