most cameras on the station are now split up into networks. the larger departments all have camera computers to monitor their departments (security and ai can see everywhere). ai can now see multiple networks at once, legacy proc ai_network_change() now acts as a shortcut to let the ai jump to a specific network (picks a random cam in that network). cleaned up / added / removed numerous cameras all over the station to be in line with this update. all camera monitor computers can be built with a single camera circuitboard, simply click the circuitboard when in hand and select a department (must be authorised by a department head).

scattered minor updates, including removing unnecessary preceeding whitespace in the examine() verb.

added the tajaran as an adminspawnable race, see the forum topic for more information. features: new non-human (feline) playable mob, slightly more vulnerable to heat than humans, can speak in private language understood only by other tajarans (and possibly adept adminhackers), uses mob/living/carbon/human as a base template, so there will be unintended side effects (such as human hair overlays).
known bugs: ears/tail overlays, hud health (and temp?) display not updating, genetics will probably go haywire, speech bug means nothing can be said (high priority).

for the love of god, let this commit go through without trouble.

Signed-off-by: CaelAislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
CaelAislinn
2012-02-06 02:46:00 +10:00
parent b1f5183d61
commit 9e4539fdce
21 changed files with 9635 additions and 8558 deletions

View File

@@ -17,7 +17,7 @@
var/obj/item/I = user.equipped()
if(I && I.force)
var/d = rand(round(I.force / 4), I.force)
if(istype(src, /mob/living/carbon/human))
if(ishuman(src))
var/mob/living/carbon/human/H = src
var/organ = H.get_organ("chest")
if (istype(organ, /datum/organ/external))

View File

@@ -9,6 +9,25 @@
possibleNames -= pickedName
pickedName = null
networks = list("SS13",
"Medbay",
"Research",
"Engineering",
"Singularity",
"Tcomsat",
"Solars",
"Security",
"Cargo",
"Bomb Testing",
"Research",
"Medbay",
"Atmospherics",
"Mess Hall",
"Arrivals",
"Singularity",
"Arrivals",
"Mine")
real_name = pickedName
name = real_name
anchored = 1
@@ -347,7 +366,7 @@
machine = null
reset_view(null)
return 0
if (stat == 2 || !C.status || C.network != network) return 0
if (stat == 2 || !C.status || !(C.network in src.networks) ) return 0
// ok, we're alive, camera is good and in our network...
@@ -460,7 +479,7 @@
//Addition by Mord_Sith to define AI's network change ability
/mob/living/silicon/ai/proc/ai_network_change()
set category = "AI Commands"
set name = "Change Camera Network"
set name = "Jump to Camera Network"
reset_view(null)
machine = null
src:cameraFollow = null
@@ -480,12 +499,21 @@
if (mind == M)
cameralist[C.network] = C.network
else
if(C.network != "CREED" && C.network != "thunder" && C.network != "RD" && C.network != "toxins" && C.network != "Prison")
if(C.network != "CREED" && C.network != "thunder" && C.network != "Prison" )
cameralist[C.network] = C.network
network = input(usr, "Which network would you like to view?") as null|anything in cameralist
src << "\blue Switched to [network] camera network."
var/newnet = input(usr, "Which network would you like to view?") as null|anything in cameralist
cameralist = new/list
for(var/obj/machinery/camera/C in world)
if(C.network == newnet)
cameralist.Add(C)
switchCamera( pick(cameralist) )
src << "\blue Jumped to [newnet] camera network."
//End of code by Mord_Sith
//cael - with the multiple onstation networks all linked together, changing networks is legacy functionality
//so i recycled it to instantly jump to any network
/mob/living/silicon/ai/proc/choose_modules()

View File

@@ -43,8 +43,8 @@
var/list/old_types = dd_text2list("[A.type]", "/")
for(var/obj/machinery/camera/current in world)
if(user.network != current.network) continue
if(!current.status) continue // ignore disabled cameras
if( !(current.network in user.networks) ) continue
if(!current.status) continue // ignore disabled cameras
//make sure it's the right direction
if(dx && (current.x * dx <= old.x * dx))

View File

@@ -50,6 +50,11 @@
return 1
return 0
/proc/istajaran(A)
if(istype(A, /mob/living/carbon/human/tajaran))
return 1
return 0
/*proc/ishivebot(A)
if(A && istype(A, /mob/living/silicon/hivebot))
return 1