MindSwap once again does not need robes, however its range has been reduced to contact .

EI NATH will once again gib the target.
Head Revs will get a failure message if they are unable to convert a human they flashed.
Syndie suits taken out of the station, EVA now has 6 Grey, Engineering gets two RIGs, Mining still has 3.
Engineering Rad suits also protect vs biological hazards a bit
Fixed a cult convert bug I made a few commits ago.
Steal a RIG objective removed.
SecSunglasses now have the hud built in.
Added more sprites for Kor


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2051 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
mport2004@gmail.com
2011-08-27 04:58:32 +00:00
parent 2c5b51e7bd
commit 444f3f629b
35 changed files with 320 additions and 372 deletions
+116
View File
@@ -0,0 +1,116 @@
/obj/item/clothing/glasses
name = "glasses"
icon = 'glasses.dmi'
w_class = 2.0
flags = GLASSESCOVERSEYES
var
vision_flags = 0
darkness_view = 0//Base human is 2
invisa_view = 0
/*
SEE_SELF // can see self, no matter what
SEE_MOBS // can see all mobs, no matter what
SEE_OBJS // can see all objs, no matter what
SEE_TURFS // can see all turfs (and areas), no matter what
SEE_PIXELS// if an object is located on an unlit area, but some of its pixels are
// in a lit area (via pixel_x,y or smooth movement), can see those pixels
BLIND // can't see anything
*/
/obj/item/clothing/glasses/blindfold
name = "blindfold"
desc = "Makes you like...blind."
icon_state = "blindfold"
item_state = "blindfold"
vision_flags = BLIND
/obj/item/clothing/glasses/meson
name = "Optical Meson Scanner"
desc = "Used for seeing walls, floors, and stuff through anything."
icon_state = "meson"
item_state = "glasses"
origin_tech = "magnets=2;engineering=2"
vision_flags = SEE_TURFS
darkness_view = -2
/obj/item/clothing/glasses/night
name = "Night Vision Goggles"
desc = "You can totally see in the dark now!."
icon_state = "night"
item_state = "glasses"
origin_tech = "magnets=2"
vision_flags = SEE_TURFS
darkness_view = 3
/obj/item/clothing/glasses/material
name = "Optical Material Scanner"
desc = "Very confusing glasses."
icon_state = "material"
item_state = "glasses"
origin_tech = "magnets=3;engineering=3"
vision_flags = SEE_OBJS
/obj/item/clothing/glasses/regular
name = "Prescription Glasses"
desc = "Made by Nerd. Co."
icon_state = "glasses"
item_state = "glasses"
/obj/item/clothing/glasses/gglasses
name = "Green Glasses"
desc = "Forest green glasses, like the kind you'd wear when hatching a nasty scheme."
icon_state = "gglasses"
item_state = "gglasses"
/obj/item/clothing/glasses/sunglasses
desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes."
name = "Sunglasses"
icon_state = "sun"
item_state = "sunglasses"
protective_temperature = 1300
darkness_view = -1
/obj/item/clothing/glasses/sunglasses/sechud
name = "HUDSunglasses"
desc = "Sunglasses with a HUD."
icon_state = "sunhud"
var/obj/item/clothing/glasses/hud/security/hud = null
New()
..()
src.hud = new/obj/item/clothing/glasses/hud/security(src)
return
/obj/item/clothing/glasses/thermal
name = "Optical Thermal Scanner"
desc = "Thermals in the shape of glasses."
icon_state = "thermal"
item_state = "glasses"
origin_tech = "magnets=3"
vision_flags = SEE_MOBS
invisa_view = 2
/obj/item/clothing/glasses/thermal/monocle
name = "Thermoncle"
desc = "A monocle thermal."
icon_state = "thermoncle"
flags = null //doesn't protect eyes because it's a monocle, duh
/obj/item/clothing/glasses/thermal/eyepatch
name = "Optical Thermal Eyepatch"
desc = "An eyepatch with built-in thermal optics"
icon_state = "eyepatch"
item_state = "eyepatch"
+104
View File
@@ -0,0 +1,104 @@
/obj/item/clothing/glasses/hud
name = "HUD"
desc = "A heads-up display that provides important info in (almost) real time."
flags = null //doesn't protect eyes because it's a monocle, duh
origin_tech = "magnets=3;biotech=2"
var
list/icon/current = list() //the current hud icons
proc
process_hud(var/mob/M) return
/obj/item/clothing/glasses/hud/health
name = "Health Scanner HUD"
desc = "A heads-up display that scans the humans in view and provides accurate data about their health status."
icon_state = "healthhud"
proc
RoundHealth(health)
RoundHealth(health)
switch(health)
if(100 to INFINITY)
return "health100"
if(70 to 100)
return "health80"
if(50 to 70)
return "health60"
if(30 to 50)
return "health40"
if(20 to 30)
return "health25"
if(5 to 15)
return "health10"
if(1 to 5)
return "health1"
if(-99 to 0)
return "health0"
else
return "health-100"
return "0"
process_hud(var/mob/M)
if(!M) return
if(!M.client) return
var/client/C = M.client
var/icon/tempHud = 'hud.dmi'
for(var/mob/living/carbon/human/patient in view(M))
var/foundVirus = 0
for(var/datum/disease/D in patient.viruses)
if(!D.hidden[SCANNER])
foundVirus++
if(patient.virus2)
foundVirus++
C.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]")
if(patient.stat == 2)
C.images += image(tempHud,patient,"huddead")
else if(patient.alien_egg_flag)
C.images += image(tempHud,patient,"hudxeno")
else if(foundVirus)
C.images += image(tempHud,patient,"hudill")
else
C.images += image(tempHud,patient,"hudhealthy")
/obj/item/clothing/glasses/hud/security
name = "Security HUD"
desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status."
icon_state = "securityhud"
process_hud(var/mob/M)
if(!M) return
if(!M.client) return
var/client/C = M.client
var/icon/tempHud = 'hud.dmi'
for(var/mob/living/carbon/human/perp in view(M))
if(perp.wear_id)
C.images += image(tempHud,perp,"hud[ckey(perp:wear_id:GetJobName())]")
var/perpname = "wot"
if(istype(perp.wear_id,/obj/item/weapon/card/id))
perpname = perp.wear_id:registered
else if(istype(perp.wear_id,/obj/item/device/pda))
var/obj/item/device/pda/tempPda = perp.wear_id
perpname = tempPda.owner
for (var/datum/data/record/E in data_core.general)
if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.security)
if ((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "*Arrest*"))
C.images += image(tempHud,perp,"hudwanted")
break
else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Incarcerated"))
C.images += image(tempHud,perp,"hudprisoner")
break
else
C.images += image(tempHud,perp,"hudunknown")
for(var/obj/item/weapon/implant/I in perp)
if(I.implanted)
if(istype(I,/obj/item/weapon/implant/tracking))
C.images += image(tempHud,perp,"hud_imp_tracking")
if(istype(I,/obj/item/weapon/implant/loyalty))
C.images += image(tempHud,perp,"hud_imp_loyal")
+6 -28
View File
@@ -15,8 +15,7 @@
src << browse(null, "window=spideros")//Just in case.
var/location = loc
explosion(location, 1, 2, 3, 4)
//src.flags = 0
//reagents.handle_reactions() //No magic stomach for corpses.
canmove = 0
if(src.client)
src.blind.layer = 0
@@ -27,13 +26,10 @@
hand = 1
drop_item()
hand = h
if (istype(wear_suit, /obj/item/clothing/suit/armor/a_i_a_ptank))
var/obj/item/clothing/suit/armor/a_i_a_ptank/A = wear_suit
bombers += "[key] has detonated a suicide bomb. Temp = [A.part4.air_contents.temperature-T0C]."
// world << "Detected that [src.key] is wearing a bomb" debug stuff
if(A.status && prob(90))
// world << "Bomb has ignited?"
A.part4.ignite()
//This is where the suicide assemblies checks would go
for (var/obj/item/weapon/implant/I in src)
if (I.implanted)
I.activate(10)
if (client)
spawn(10)
@@ -44,27 +40,9 @@
if(mind)
mind.store_memory("Time of death: [tod]", 0)
sql_report_death(src)
//src.icon_state = "dead"
//Calls the rounds wincheck, mainly for wizard, malf, and changeling now
ticker.mode.check_win()
/*
if (ticker.mode.name == "Corporate Restructuring" && ticker.target != src)
src.unlock_medal("Expendable", 1)
//For restructuring
if (ticker.mode.name == "Corporate Restructuring" || ticker.mode.name == "revolution")
ticker.check_win()
if (ticker.mode.name == "wizard" && src == ticker.killer)
world << "<FONT size = 3><B>Research Station Victory</B></FONT>"
world << "<B>The Wizard has been killed!</B> The wizards federation has been taught an important lesson."
ticker.processing = 0
sleep(100)
world << "\blue Rebooting due to end of game"
world.Reboot()
*/ //TODO: FIX
//Traitor's dead! Oh no!
if (ticker.mode.name == "traitor" && src.mind && src.mind.special_role == "traitor")
message_admins("\red Traitor [key_name_admin(src)] has died.")
+41 -82
View File
@@ -87,43 +87,6 @@
..() //for organs
/*
................................................ ..........................._,-~"¯¯"~-,
.................................................. ................__„-~"¯¯:::,-~~-,_::::"-
.................................................. ..........„~"¯::::::::::::::"::::::::::::::::::::::\
.................................................. .__„„„-"::::::::::::::::::::::::::::::::::::::::::::::"~-,
..........................................__-~"::,-':::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::~-,
..........................._______~"___-~"::::::::::::::::::::::::::::::::::::::::::::: ::: :: :::::::::::"-,
......................,~"::::::::::::::¯¯::::::::: ::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::,: |
....................:/:::::::::::::::::__-~":::::::::::::::::::::::::::::::::::::::::::::::::_,-~":'\'-,:\:|:\|::\|\::\:|
...................,'::::::::,-~~"~"_::',::|::::::::::::::::::::::::::::::::::: :: :::,~ ':\'-,::',"-\::'':"::::::::\|:|/
..............._,-'"~----":::/,~"¯"-:|::|::|:::::::::::::::::::::::::::::::::::,~"::\'-,:\;;'-';;;;;;;;;;;,-'::\::|/
............,-'::::::::::::::::'-\~"O¯_/::,'::|:::::::::::::::::::::::::::::::::,-',::\'-,:|::";;;;;;;;;;;;,-':\:'-,::\
............|:::::::::::::::::-,_'~'::::,-'::,':::::::::::::::::::::::::::::,-':\'-,:\'-,';;';;;;;;;;;;;;;,-':\:::'\-,|''
............|::,-~"::::::::::::::"~~":::,-'::::::::::::::::::::::::_,-~':\'-,|:"'";;;;;;;;;;;;;;,-'¯::'-,:',\|
.........../::/::::::::::::::::::::::::::::::::::::::::::::_,„-~"¯\:\'-,|;''-';;;;;;;;;;;;;;;;;;,-'--,::\-:\:\|
........./::::|:::::::::::::::::::::::::::::::::::::::::,-';;'-';;;;',/;\/;;;;;;;;;;;;;;;;;;;;,-,|:::\-,:|\|..\|
......./:::::::\:::::::::::::::::::::::::::::::::::::,-';;;;;;;;;;;;;;;;;;;;;;;;;;;,-~'''("-,\:::|\:|::''
......,':::::::,'::::::::::::::::::::::::::::::::: :,-'/;;;;;;;;;;;;;;;;;;;;;;;;;,--'::::::/"~'
.....,'::::::::|:::::::::::::::::::::::::::::,„-~"::|;;;;;;;;;;;;;;;;;;;;;,-'::::::::,'::::/
..../:::::::::|:::::::::::::„---~~""¯¯¯::',:::::,';;;;;;;;;;;;;;;;;;;,'::::::::: :: |_,-'
..,'::::::::::::",:,-~"¯::::::::"-,::::::::::|:::/;;;;;;;;;;;;;;;;;;;,':::::::|::::,'
./:::::::::::::::|:::::::::::::::::::"-,:::::::\:::|¯¯¯"""~-,~,_/::::::::,':::/
::::::::::::::::::::::::::::::::::::::"~-,_::|::\: : : : : : |: : \::::::::/:/
::::::::::::::::::::::::::::::",:::::::::::::"-':::\: : : : : : |: : :\::::::\ APRIL FOOLS LOVE UHANGAY
::::::::::::::::::::::::::::::::",:::::::::::::: ::::\: : : : : : \: : : |:::::;;\
::::::::::::::::::"-,:::::::::::::::",:::::::::::::::/|\ ,: : : : : : : |::::,'/|::::|
:::::::::::::::::::::"-,:::::::::::::::"-,_::::::::::\|:/|,: : : : : : : |::: |'-,/|:::|
::::::::::::::::::::::::"~-,_::::::::::::::"~-,_:::"-,/|/\::::::::::: \::: \"-/|::|
:::::::::::::::::::::::::::::::"~-,__:::::::::::',"-,:::"_|/\:|\: : : : \::\":/|\|
::::::::::::::::::::::::::::::::::::::::"~-,_:::::\:::\:::"~/_:|:|\: : : '-,\::"::,'\
:::::::::::::::::::::::::::::::::::::::::::::::"-,_:'-,::\:::::::"-,|:||\,-, : '-,\:::|-'-
:::::::::::::::::::::::::::::::::::::::::::::::::: ::,-,'"-:"~,:::::"/_/::|-/\--';;\:::/: ||\-,
:::::::::::::::::::::::::::::::::::::::::::::::::: :/...'-,::::::"~„::::"-,/_:|:/\:/|/|/|_/:|
:::::::::::::::::::::::::::::::::::::::::::::::::: |......"-,::::::::"~-:::::""~~~"¯:::|
:::::::::::::::::::::::::::::::::::::::::::::::::: |........."-,_::::::::::::::::::::::::::::/
:::::::::::::::::::::::::::::::::::::::::::::::::\ .............."~--„_____„„-~~"
*/
/mob/living/carbon/human
proc
@@ -138,6 +101,7 @@
oxyloss = max(oxyloss, 0)
fireloss = max(fireloss, 0)
update_mind()
if(!mind && client)
mind = new
@@ -147,6 +111,7 @@
mind.assigned_role = "Assistant"
mind.key = key
handle_disabilities()
if (disabilities & 2)
if ((prob(1) && paralysis < 1 && r_epil < 1))
@@ -193,8 +158,8 @@
if(3)
emote("drool")
handle_mutations_and_radiation()
handle_mutations_and_radiation()
if(fireloss)
if(mutations & COLD_RESISTANCE || (prob(1) && prob(75)))
heal_organ_damage(0,1)
@@ -320,9 +285,8 @@
//if (internals) //should be unnecessary, uncomment if it isn't. -raftaf0
// internals.icon_state = "internal1"
return internal.remove_air_volume(volume_needed)
else
if (internals)
internals.icon_state = "internal0"
else if(internals)
internals.icon_state = "internal0"
return null
update_canmove()
@@ -826,49 +790,44 @@
if(!druggy)
see_invisible = 0
else if (istype(glasses, /obj/item/clothing/glasses/meson))
else if(istype(glasses, /obj/item/clothing/glasses/meson))
sight |= SEE_TURFS
if(!druggy)
see_invisible = 0
else if (istype(glasses, /obj/item/clothing/glasses/night))
else if(istype(glasses, /obj/item/clothing/glasses/night))
see_in_dark = 5
if(!druggy)
see_invisible = 0
else if (istype(glasses, /obj/item/clothing/glasses/thermal))
else if(istype(glasses, /obj/item/clothing/glasses/thermal))
sight |= SEE_MOBS
if(!druggy)
see_invisible = 2
else if (istype(glasses, /obj/item/clothing/glasses/material))
else if(istype(glasses, /obj/item/clothing/glasses/material))
sight |= SEE_OBJS
if (!druggy)
see_invisible = 0
else if (istype(glasses, /obj/item/clothing/glasses/hud/health))
else if(istype(glasses, /obj/item/clothing/glasses/hud/health))
if(client)
var/icon/tempHud = 'hud.dmi'
for(var/mob/living/carbon/human/patient in view(src))
var/foundVirus = 0
for(var/datum/disease/D in patient.viruses)
if(!D.hidden[SCANNER])
foundVirus++
if(patient.virus2)
foundVirus++
client.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]")
if(patient.stat == 2)
client.images += image(tempHud,patient,"huddead")
else if(patient.alien_egg_flag)
client.images += image(tempHud,patient,"hudxeno")
else if(foundVirus)
client.images += image(tempHud,patient,"hudill")
else
client.images += image(tempHud,patient,"hudhealthy")
glasses:process_hud(src)
if (!druggy)
see_invisible = 0
else if (stat != 2)
else if(istype(glasses, /obj/item/clothing/glasses/hud/security))
if(client)
glasses:process_hud(src)
if (!druggy)
see_invisible = 0
else if(istype(glasses, /obj/item/clothing/glasses/sunglasses))
see_in_dark = 1
if(istype(glasses, /obj/item/clothing/glasses/sunglasses/sechud))
if(client)
if(glasses:hud)
glasses:hud:process_hud(src)
if (!druggy)
see_invisible = 0
else if(stat != 2)
sight &= ~SEE_TURFS
sight &= ~SEE_MOBS
sight &= ~SEE_OBJS
@@ -887,23 +846,23 @@
if(!seer)
see_invisible = 0
else if (istype(glasses, /obj/item/clothing/glasses/sunglasses))
see_in_dark = 1
else if (istype(head, /obj/item/clothing/head/helmet/welding))
else if(istype(head, /obj/item/clothing/head/helmet/welding))
if(!head:up && tinted_weldhelh)
see_in_dark = 1
if(istype(glasses, /obj/item/clothing/glasses/hud/security))
if(client)
glasses:process_hud(src)
if(!druggy)
see_invisible = 0
else if((istype(head, /obj/item/clothing/head/helmet)) && (!istype(head, /obj/item/clothing/head/helmet/space)))
if(client)
if(head:shud)
head:shud:process_hud(src)
if(!druggy)
see_invisible = 0
/*
if (istype(glasses, /obj/item/clothing/glasses))
sight = glasses.vision_flags
see_in_dark = 2 + glasses.darkness_view
see_invisible = invisa_view
if(istype(glasses, /obj/item/clothing/glasses/hud))
if(client)
glasses:process_hud(src)
*/
//Should finish this up later
if (sleep) sleep.icon_state = text("sleep[]", sleeping)
if (rest) rest.icon_state = text("rest[]", resting)
+23 -1
View File
@@ -48,4 +48,26 @@
else if(foundVirus)
client.images += image(tempHud,patient,"hudill")
else
client.images += image(tempHud,patient,"hudhealthy")
client.images += image(tempHud,patient,"hudhealthy")
/mob/living/silicon/pai/proc/RoundHealth(health)
switch(health)
if(100 to INFINITY)
return "health100"
if(70 to 100)
return "health80"
if(50 to 70)
return "health60"
if(30 to 50)
return "health40"
if(20 to 30)
return "health25"
if(5 to 15)
return "health10"
if(1 to 5)
return "health1"
if(-99 to 0)
return "health0"
else
return "health-100"
return "0"