Merge branch 'master' of https://github.com/PolarisSS13/Polaris into sin2clothes

This commit is contained in:
SinTwo
2015-12-03 18:29:05 -05:00
19 changed files with 86 additions and 97 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 "Exodus"
#define NETWORK_EXODUS "Northern Star"
#define NETWORK_MEDICAL "Medical"
#define NETWORK_MERCENARY "MercurialNet"
#define NETWORK_MINE "MINE"

View File

@@ -82,6 +82,7 @@
// Click cooldown
#define DEFAULT_ATTACK_COOLDOWN 8 //Default timeout for aggressive actions
#define DEFAULT_QUICK_COOLDOWN 4
#define MIN_SUPPLIED_LAW_NUMBER 15
@@ -114,3 +115,24 @@
#define MOB_SMALL 10
#define MOB_TINY 5
#define MOB_MINISCULE 1
#define TINT_NONE 0
#define TINT_MODERATE 1
#define TINT_HEAVY 2
#define TINT_BLIND 3
#define FLASH_PROTECTION_REDUCED -1
#define FLASH_PROTECTION_NONE 0
#define FLASH_PROTECTION_MODERATE 1
#define FLASH_PROTECTION_MAJOR 2
#define ANIMAL_SPAWN_DELAY round(config.respawn_delay / 6)
#define DRONE_SPAWN_DELAY round(config.respawn_delay / 3)
// Incapacitation flags, used by the mob/proc/incapacitated() proc
#define INCAPACITATION_RESTRAINED 1
#define INCAPACITATION_BUCKLED_PARTIALLY 2
#define INCAPACITATION_BUCKLED_FULLY 4
#define INCAPACITATION_DEFAULT (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_FULLY)
#define INCAPACITATION_ALL (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_PARTIALLY|INCAPACITATION_BUCKLED_FULLY)

View File

@@ -229,14 +229,14 @@ Turf and target are seperate in case you want to teleport some distance from a t
#define LOCATE_COORDS(X, Y, Z) locate(between(1, X, world.maxx), between(1, Y, world.maxy), Z)
/proc/getcircle(turf/center, var/radius) //Uses a fast Bresenham rasterization algorithm to return the turfs in a thin circle.
if(!radius) return list(center)
var/x = 0
var/y = radius
var/p = 3 - 2 * radius
. = list()
while(y >= x) // only formulate 1/8 of circle
. += LOCATE_COORDS(center.x - x, center.y - y, center.z) //upper left left
. += LOCATE_COORDS(center.x - y, center.y - x, center.z) //upper upper left
. += LOCATE_COORDS(center.x + y, center.y - x, center.z) //upper upper right
@@ -247,7 +247,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
. += LOCATE_COORDS(center.x + x, center.y + y, center.z) //lower right right
if(p < 0)
p += 4*x++ + 6;
p += 4*x++ + 6;
else
p += 4*(x++ - y--) + 10;
@@ -875,7 +875,7 @@ proc/GaussRandRound(var/sigma,var/roundto)
if(turftoleave)
fromupdate += T.ChangeTurf(turftoleave)
else
T.ChangeTurf(get_base_turf(T.z))
T.ChangeTurf(get_base_turf_by_area(T))
refined_src -= T
refined_trg -= B

View File

@@ -264,7 +264,7 @@ var/global/datum/shuttle_controller/shuttle_controller
var/datum/shuttle/ferry/multidock/specops/ERT = new()
ERT.location = 0
ERT.warmup_time = 10
ERT.area_offsite = locate(/area/shuttle/specops/station) //centcom is the home station, the Exodus is offsite
ERT.area_offsite = locate(/area/shuttle/specops/station) //centcom is the home station, the Northern Star is offsite
ERT.area_station = locate(/area/shuttle/specops/centcom)
ERT.docking_controller_tag = "specops_shuttle_port"
ERT.docking_controller_tag_station = "specops_shuttle_port"

View File

@@ -53,6 +53,8 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
var/list/ambience = list('sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg')
var/list/forced_ambience = null
var/sound_env = STANDARD_STATION
var/turf/base_turf //The base turf type of the area, which can be used to override the z-level's base turf
/*Adding a wizard area teleport list because motherfucking lag -- Urist*/
/*I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game*/
var/list/teleportlocs = list()

View File

@@ -1,4 +1,4 @@
// Returns the lowest turf available on a given Z-level, defaults to space.
// 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/floor/asteroid,
"4" = /turf/simulated/floor/asteroid,
@@ -10,6 +10,13 @@ proc/get_base_turf(var/z)
base_turf_by_z["[z]"] = /turf/space
return 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)
var/area/A = T.loc
if(A.base_turf)
return A.base_turf
return get_base_turf(T.z)
/client/proc/set_base_turf()
set category = "Debug"
set name = "Set Base Turf"

View File

@@ -1,7 +1,7 @@
/datum/power/changeling/arm_blade
name = "Arm Blade"
desc = "We reform one of our arms into a deadly blade."
helptext = "We may retract our armblade by dropping it. It can deflect projectiles. Cannot be used while in lesser form."
helptext = "We may retract our armblade by dropping it. It can deflect projectiles."
genomecost = 2
verbpath = /mob/proc/changeling_arm_blade

View File

@@ -1,7 +1,7 @@
/datum/power/changeling/space_suit
name = "Organic Space Suit"
desc = "We grow an organic suit to protect ourselves from space exposure."
helptext = "Cannot be used in lesser form. To remove the suit, use the ability again."
helptext = "To remove the suit, use the ability again."
genomecost = 1
verbpath = /mob/proc/changeling_spacesuit
@@ -16,7 +16,7 @@
/datum/power/changeling/armor
name = "Chitinous Spacearmor"
desc = "We turn our skin into tough chitin to protect us from damage and space exposure."
helptext = "Cannot be used in lesser form. To remove the armor, use the ability again."
helptext = "To remove the armor, use the ability again."
genomecost = 3
verbpath = /mob/proc/changeling_spacearmor

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: Exodus,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: Northern Star,Security,Secret ", "Set Network", camera_network ? camera_network : NETWORK_EXODUS))
if(!input)
usr << "No input found please hang up and try your call again."
return

View File

@@ -49,7 +49,7 @@
/obj/item/clothing/suit/space
name = "Space suit"
desc = "A suit that protects against low pressure environments. \"NSS EXODUS\" is written in large block letters on the back."
desc = "A suit that protects against low pressure environments. \"NORTHERN STAR\" is written in large block letters on the back."
icon_state = "space"
item_state = "s_suit"
w_class = 4//bulky item

View File

@@ -8,7 +8,7 @@ var/list/weighted_mundaneevent_locations = list()
var/distance = 0
var/list/willing_to_buy = list()
var/list/willing_to_sell = list()
var/can_shuttle_here = 0 //one day crew from the exodus will be able to travel to this destination
var/can_shuttle_here = 0 //one day crew from the Northern Star will be able to travel to this destination
var/list/viable_random_events = list()
var/list/temp_price_change[BIOMEDICAL]
var/list/viable_mundane_events = list()

View File

@@ -81,7 +81,7 @@ proc/populate_ghost_traps()
target << "<b>You are a positronic brain, brought into existence on [station_name()].</b>"
target << "<b>As a synthetic intelligence, you answer to all crewmembers, as well as the AI.</b>"
target << "<b>Remember, the purpose of your existence is to serve the crew and the station. Above all else, do no harm.</b>"
target << "<b>Use say :b to speak to other artificial intelligences.</b>"
target << "<b>Use say #b to speak to other artificial intelligences.</b>"
var/turf/T = get_turf(target)
T.visible_message("<span class='notice'>\The [src] chimes quietly.</span>")
var/obj/item/device/mmi/digital/posibrain/P = target.loc

View File

@@ -63,7 +63,7 @@
src.brainmob << "<b>You are a positronic brain, brought into existence on [station_name()].</b>"
src.brainmob << "<b>As a synthetic intelligence, you answer to all crewmembers, as well as the AI.</b>"
src.brainmob << "<b>Remember, the purpose of your existence is to serve the crew and the station. Above all else, do no harm.</b>"
src.brainmob << "<b>Use say :b to speak to other artificial intelligences.</b>"
src.brainmob << "<b>Use say #b to speak to other artificial intelligences.</b>"
src.brainmob.mind.assigned_role = "Positronic Brain"
var/turf/T = get_turf_or_move(src.loc)

View File

@@ -29,8 +29,8 @@
/mob/living/carbon/proc/escape_handcuffs()
//if(!(last_special <= world.time)) return
//These two lines represent a significant buff to grabs...
if(!canClick()) return
//This line represent a significant buff to grabs...
// We don't have to check the click cooldown because /mob/living/verb/resist() has done it for us, we can simply set the delay
setClickCooldown(100)
if(can_break_cuffs()) //Don't want to do a lot of logic gating here.
@@ -48,7 +48,7 @@
displaytime = breakouttime / 600 //Minutes
visible_message(
"<span class='danger'>[src] attempts to remove \the [HC]!</span>",
"<span class='danger'>\The [src] attempts to remove \the [HC]!</span>",
"<span class='warning'>You attempt to remove \the [HC]. (This will take around [displaytime] minutes and you need to stand still)</span>"
)
@@ -56,7 +56,7 @@
if(!handcuffed || buckled)
return
visible_message(
"<span class='danger'>[src] manages to remove \the [handcuffed]!</span>",
"<span class='danger'>\The [src] manages to remove \the [handcuffed]!</span>",
"<span class='notice'>You successfully remove \the [handcuffed].</span>"
)
drop_from_inventory(handcuffed)

View File

@@ -46,7 +46,7 @@ var/list/ai_verbs_default = list(
density = 1
status_flags = CANSTUN|CANPARALYSE|CANPUSH
shouldnt_see = list(/obj/effect/rune)
var/list/network = list("Exodus")
var/list/network = list("Northern Star")
var/obj/machinery/camera/camera = null
var/list/connected_robots = list()
var/aiRestorePowerRoutine = 0
@@ -128,7 +128,7 @@ var/list/ai_verbs_default = list(
aiRadio = new(src)
common_radio = aiRadio
aiRadio.myAi = src
additional_law_channels["Binary"] = ":b"
additional_law_channels["Binary"] = "#b"
additional_law_channels["Holopad"] = ":h"
aiCamera = new/obj/item/device/camera/siliconcam/ai_camera(src)
@@ -180,7 +180,7 @@ var/list/ai_verbs_default = list(
src << "<B>To look at other parts of the station, click on yourself to get a camera menu.</B>"
src << "<B>While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc.</B>"
src << "To use something, simply click on it."
src << "Use say :b to speak to your cyborgs through binary. Use say :h to speak from an active holopad."
src << "Use <B>say #b</B> to speak to your cyborgs through binary. Use say :h to speak from an active holopad."
src << "For department channels, use the following say commands:"
var/radio_text = ""

View File

@@ -15,7 +15,7 @@
idle_power_usage = 20
active_power_usage = 5000
var/fabricator_tag = "Exodus"
var/fabricator_tag = "Northern Star Upper Level"
var/drone_progress = 0
var/produce_drones = 1
var/time_last_drone = 500
@@ -26,7 +26,7 @@
/obj/machinery/drone_fabricator/derelict
name = "construction drone fabricator"
fabricator_tag = "Derelict"
fabricator_tag = "Northern Star Depths"
drone_type = /mob/living/silicon/robot/drone/construction
/obj/machinery/drone_fabricator/New()

View File

@@ -155,7 +155,7 @@
/mob/living/silicon/robot/proc/init()
aiCamera = new/obj/item/device/camera/siliconcam/robot_camera(src)
laws = new /datum/ai_laws/nanotrasen()
additional_law_channels["Binary"] = ":b"
additional_law_channels["Binary"] = "#b"
var/new_ai = select_active_ai_with_fewest_borgs()
if(new_ai)
lawupdate = 1

View File

@@ -85,8 +85,7 @@
// blind_message (optional) is what blind people will hear e.g. "You hear something!"
/mob/visible_message(var/message, var/self_message, var/blind_message)
var/list/see = get_mobs_or_objects_in_view(world.view,src) | viewers(get_turf(src), null)
var/list/see = get_mobs_or_objects_in_view(world.view,src) | viewers(world.view,src)
for(var/I in see)
if(isobj(I))
@@ -152,8 +151,33 @@
//handle_typing_indicator() //You said the typing indicator would be fine. The test determined that was a lie.
return
/mob/proc/incapacitated()
return (stat || paralysis || stunned || weakened || restrained())
#define UNBUCKLED 0
#define PARTIALLY_BUCKLED 1
#define FULLY_BUCKLED 2
/mob/proc/buckled()
// Preliminary work for a future buckle rewrite,
// where one might be fully restrained (like an elecrical chair), or merely secured (shuttle chair, keeping you safe but not otherwise restrained from acting)
return buckled ? FULLY_BUCKLED : UNBUCKLED
/mob/proc/incapacitated(var/incapacitation_flags = INCAPACITATION_DEFAULT)
if (stat || paralysis || stunned || weakened || resting || sleeping || (status_flags & FAKEDEATH))
return 1
if((incapacitation_flags & INCAPACITATION_RESTRAINED) && restrained())
return 1
if((incapacitation_flags & (INCAPACITATION_BUCKLED_PARTIALLY|INCAPACITATION_BUCKLED_FULLY)))
var/buckling = buckled()
if(buckling >= PARTIALLY_BUCKLED && (incapacitation_flags & INCAPACITATION_BUCKLED_PARTIALLY))
return 1
if(buckling == FULLY_BUCKLED && (incapacitation_flags & INCAPACITATION_BUCKLED_FULLY))
return 1
return 0
#undef UNBUCKLED
#undef PARTIALLY_BUCKLED
#undef FULLY_BUCKLED
/mob/proc/restrained()
return
@@ -697,7 +721,7 @@
return 0
/mob/proc/cannot_stand()
return incapacitated() || restrained() || resting || sleeping || (status_flags & FAKEDEATH)
return incapacitated(INCAPACITATION_DEFAULT & (~INCAPACITATION_RESTRAINED))
//Updates canmove, lying and icons. Could perhaps do with a rename but I can't think of anything to describe it.
/mob/proc/update_canmove()

View File

@@ -5,72 +5,6 @@
// END_INTERNALS
// BEGIN_FILE_DIR
#define FILE_DIR .
#define FILE_DIR "html"
#define FILE_DIR "html/images"
#define FILE_DIR "icons"
#define FILE_DIR "icons/48x48"
#define FILE_DIR "icons/atmos"
#define FILE_DIR "icons/effects"
#define FILE_DIR "icons/mecha"
#define FILE_DIR "icons/misc"
#define FILE_DIR "icons/mob"
#define FILE_DIR "icons/mob/human_races"
#define FILE_DIR "icons/mob/human_races/cyberlimbs"
#define FILE_DIR "icons/mob/human_races/masks"
#define FILE_DIR "icons/mob/human_races/monkeys"
#define FILE_DIR "icons/mob/human_races/subspecies"
#define FILE_DIR "icons/mob/human_races/xenos"
#define FILE_DIR "icons/mob/items"
#define FILE_DIR "icons/mob/screen"
#define FILE_DIR "icons/mob/species"
#define FILE_DIR "icons/mob/species/resomi"
#define FILE_DIR "icons/mob/species/skrell"
#define FILE_DIR "icons/mob/species/tajaran"
#define FILE_DIR "icons/mob/species/unathi"
#define FILE_DIR "icons/mob/species/vox"
#define FILE_DIR "icons/NTOS"
#define FILE_DIR "icons/NTOS/battery_icons"
#define FILE_DIR "icons/obj"
#define FILE_DIR "icons/obj/assemblies"
#define FILE_DIR "icons/obj/atmospherics"
#define FILE_DIR "icons/obj/clothing"
#define FILE_DIR "icons/obj/clothing/species"
#define FILE_DIR "icons/obj/clothing/species/resomi"
#define FILE_DIR "icons/obj/clothing/species/skrell"
#define FILE_DIR "icons/obj/clothing/species/tajaran"
#define FILE_DIR "icons/obj/clothing/species/unathi"
#define FILE_DIR "icons/obj/doors"
#define FILE_DIR "icons/obj/flora"
#define FILE_DIR "icons/obj/machines"
#define FILE_DIR "icons/obj/pipes"
#define FILE_DIR "icons/pda_icons"
#define FILE_DIR "icons/spideros_icons"
#define FILE_DIR "icons/Testing"
#define FILE_DIR "icons/turf"
#define FILE_DIR "icons/turf/flooring"
#define FILE_DIR "icons/vending_icons"
#define FILE_DIR "maps"
#define FILE_DIR "maps/overmap"
#define FILE_DIR "maps/overmap/bearcat"
#define FILE_DIR "nano"
#define FILE_DIR "nano/images"
#define FILE_DIR "sound"
#define FILE_DIR "sound/AI"
#define FILE_DIR "sound/ambience"
#define FILE_DIR "sound/effects"
#define FILE_DIR "sound/effects/turret"
#define FILE_DIR "sound/effects/wind"
#define FILE_DIR "sound/hallucinations"
#define FILE_DIR "sound/items"
#define FILE_DIR "sound/machines"
#define FILE_DIR "sound/mecha"
#define FILE_DIR "sound/misc"
#define FILE_DIR "sound/music"
#define FILE_DIR "sound/piano"
#define FILE_DIR "sound/violin"
#define FILE_DIR "sound/voice"
#define FILE_DIR "sound/voice/Serithi"
#define FILE_DIR "sound/weapons"
// END_FILE_DIR
// BEGIN_PREFERENCES
#define DEBUG