Merge github.com:Baystation12/Baystation12

This commit is contained in:
cib
2012-05-24 21:08:47 +02:00
41 changed files with 684 additions and 220 deletions

View File

@@ -7,27 +7,59 @@
if("help")
usr.a_intent = "disarm"
usr.hud_used.action_intent.icon_state = "disarm"
usr.hud_used.hurt_intent.icon_state = "harm_small"
usr.hud_used.help_intent.icon_state = "help_small"
usr.hud_used.grab_intent.icon_state = "grab_small"
usr.hud_used.disarm_intent.icon_state = "disarm_small_active"
if("disarm")
usr.a_intent = "hurt"
usr.hud_used.action_intent.icon_state = "harm"
usr.hud_used.hurt_intent.icon_state = "harm_small_active"
usr.hud_used.help_intent.icon_state = "help_small"
usr.hud_used.grab_intent.icon_state = "grab_small"
usr.hud_used.disarm_intent.icon_state = "disarm_small"
if("hurt")
usr.a_intent = "grab"
usr.hud_used.action_intent.icon_state = "grab"
usr.hud_used.hurt_intent.icon_state = "harm_small"
usr.hud_used.help_intent.icon_state = "help_small"
usr.hud_used.grab_intent.icon_state = "grab_small_active"
usr.hud_used.disarm_intent.icon_state = "disarm_small"
if("grab")
usr.a_intent = "help"
usr.hud_used.action_intent.icon_state = "help"
usr.hud_used.hurt_intent.icon_state = "harm_small"
usr.hud_used.help_intent.icon_state = "help_small_active"
usr.hud_used.grab_intent.icon_state = "grab_small"
usr.hud_used.disarm_intent.icon_state = "disarm_small"
else if(changeto == -1)
switch(usr.a_intent)
if("help")
usr.a_intent = "grab"
usr.hud_used.action_intent.icon_state = "grab"
usr.hud_used.hurt_intent.icon_state = "harm_small"
usr.hud_used.help_intent.icon_state = "help_small"
usr.hud_used.grab_intent.icon_state = "grab_small_active"
usr.hud_used.disarm_intent.icon_state = "disarm_small"
if("disarm")
usr.a_intent = "help"
usr.hud_used.action_intent.icon_state = "help"
usr.hud_used.hurt_intent.icon_state = "harm_small"
usr.hud_used.help_intent.icon_state = "help_small_active"
usr.hud_used.grab_intent.icon_state = "grab_small"
usr.hud_used.disarm_intent.icon_state = "disarm_small"
if("hurt")
usr.a_intent = "disarm"
usr.hud_used.action_intent.icon_state = "disarm"
usr.hud_used.hurt_intent.icon_state = "harm_small"
usr.hud_used.help_intent.icon_state = "help_small"
usr.hud_used.grab_intent.icon_state = "grab_small"
usr.hud_used.disarm_intent.icon_state = "disarm_small_active"
if("grab")
usr.a_intent = "hurt"
usr.hud_used.action_intent.icon_state = "harm"
usr.hud_used.hurt_intent.icon_state = "harm_small_active"
usr.hud_used.help_intent.icon_state = "help_small"
usr.hud_used.grab_intent.icon_state = "grab_small"
usr.hud_used.disarm_intent.icon_state = "disarm_small"
return

View File

@@ -11,6 +11,8 @@ var/global/datum/shuttle_controller/emergency_shuttle/emergency_shuttle
datum/shuttle_controller
var
alert = 0 //0 = emergency, 1 = crew cycle
location = 0 //0 = somewhere far away (in spess), 1 = at SS13, 2 = returned from SS13
online = 0
direction = 1 //-1 = going back to central command, 1 = going to SS13, 2 = in transit to centcom (not recalled)
@@ -36,28 +38,35 @@ datum/shuttle_controller
settimeleft(SHUTTLEARRIVETIME*coeff)
online = 1
//turning on the red lights in hallways and siren
for(var/area/A in world)
if(istype(A, /area/hallway))
A.readyalert()
//sound_siren = 1
if(coeff == 1)
for(var/area/A in world)
if(istype(A, /area/hallway))
A.readyalert()
//sound_siren = 1
proc/shuttlealert(var/X)
alert = X
proc/recall()
if(direction == 1)
var/timeleft = timeleft()
if(timeleft >= 600)
if(alert == 0)
if(timeleft >= 600)
return
captain_announce("The emergency shuttle has been recalled.")
world << sound('shuttlerecalled.ogg')
setdirection(-1)
online = 1
for(var/area/A in world)
if(istype(A, /area/hallway))
A.readyreset()
return
else //makes it possible to send shuttle back.
captain_announce("The shuttle has been recalled.")
setdirection(-1)
online = 1
return
captain_announce("The emergency shuttle has been recalled.")
world << sound('shuttlerecalled.ogg')
setdirection(-1)
online = 1
//turning off the red lights in hallways and siren
for(var/area/A in world)
if(istype(A, /area/hallway))
A.readyreset()
// sound_siren = 0
// returns the time (in seconds) before shuttle arrival
// note if direction = -1, gives a count-up to SHUTTLEARRIVETIME
@@ -192,9 +201,11 @@ datum/shuttle_controller
start_location.move_contents_to(end_location)
settimeleft(SHUTTLELEAVETIME)
captain_announce("The Emergency Shuttle has docked with the station. You have [timeleft()/60] minutes to board the Emergency Shuttle.")
world << sound('shuttledock.ogg')
if(alert == 0)
captain_announce("The Emergency Shuttle has docked with the station. You have [timeleft()/60] minutes to board the Emergency Shuttle.")
world << sound('shuttledock.ogg')
else
captain_announce("The shuttle has docked with the station. You have [timeleft()/60] minutes to board the shuttle.")
return 1
if(1)
@@ -262,8 +273,10 @@ datum/shuttle_controller
spawn(0)
D.close()
captain_announce("The Emergency Shuttle has left the station. Estimate [timeleft()/60] minutes until the shuttle docks at Central Command.")
if(alert == 0)
captain_announce("The Emergency Shuttle has left the station. Estimate [timeleft()/60] minutes until the shuttle docks at Central Command.")
else
captain_announce("The shuttle has left the station. Estimate [timeleft()/60] minutes until the shuttle docks at Central Command.")
// Some aesthetic turbulance shaking
for(var/mob/M in end_location)

View File

@@ -402,7 +402,9 @@
var/obj/screen/r_hand_hud_object = null
var/obj/screen/l_hand_hud_object = null
var/list/obj/screen/intent_small_hud_objects = null
var/show_intent_icons = 0
var/show_intent_icons = 1
var/list/obj/screen/hotkeybuttons = null
var/hotkey_ui_hidden = 0 //This is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons)
var/h_type = /obj/screen //this is like...the most pointless thing ever. Use a god damn define!

View File

@@ -12,6 +12,7 @@
//Lower center, persistant menu
#define ui_sstore1 "3:10,1:5"
#define ui_id "4:12,1:5"
#define ui_belt "5:14,1:5"
#define ui_back "6:14,1:5"
@@ -34,11 +35,12 @@
#define ui_monkey_back "6:14,1:5" //monkey
//Lower right, persistant menu
#define ui_dropbutton "12:24,2:7"
#define ui_throw "13:26,2:7"
#define ui_pull "14:28,2:7"
#define ui_dropbutton "13:26,1:5"
#define ui_throw "13:26,1:5"
#define ui_pull "13:26,2:7"
#define ui_acti "12:24,1:5"
#define ui_movi "13:26,1:5"
#define ui_movi "13:26,2:7"
#define ui_zonesel "14:28,1:5"
//Gun buttons
@@ -53,36 +55,47 @@
#define ui_fire "14:28,8:17"
#define ui_toxin "14:28,9:19"
//Upper-middle right (damage indicators)
#define ui_toxin "14:28,13:27"
#define ui_fire "14:28,12:25"
#define ui_oxygen "14:28,11:23"
#define ui_pressure "14:28,10:21"
//Middle right (status indicators)
#define ui_nutrition "14:28,5:11"
#define ui_temp "14:28,6:13"
#define ui_health "14:28,7:15"
#define ui_internal "14:28,8:17"
//borgs
#define ui_borg_health "14:28,6:13" //borgs have the health display where humans have the pressure damage indicator.
#define ui_alien_health "14:28,6:13" //aliens have the health display where humans have the pressure damage indicator.
//Upper right (status indicators)
#define ui_nutrition "11:22,15:-5"
#define ui_internal "12:24,15:-5"
#define ui_health "13:26,15:-5"
#define ui_temp "14:28,15:-5"
#define ui_throw_old "13:26,2:7"
#define ui_movi_old "12:24,2:7"
#define ui_pull_old "14:28,2:7"
//Pop-up inventory
#define ui_shoes "1:6,2:7"
#define ui_iclothing "2:8,2:7"
#define ui_shoes "2:8,1:5"
#define ui_iclothing "1:6,2:7"
#define ui_oclothing "2:8,2:7"
#define ui_gloves "3:10,2:7"
#define ui_sstore1 "1:6,3:9"
#define ui_oclothing "2:8,3:9"
#define ui_glasses "3:10,3:9"
#define ui_glasses "1:6,3:9"
#define ui_mask "2:8,3:9"
#define ui_lear "3:10,3:9"
#define ui_rear "3:10,4:11"
#define ui_mask "1:6,4:11"
#define ui_head "2:8,4:11"
#define ui_lear "3:10,4:11"
#define ui_rear "4:12,4:11"
//Intent small buttons
#define ui_help_small "12:8,1:1"
#define ui_disarm_small "12:15,1:18"
#define ui_grab_small "12:32,1:18"
#define ui_harm_small "12:39,1:1"
#define ui_help_small "12:16,1:-3"
#define ui_disarm_small "12:16,1:12"
#define ui_grab_small "12:32,1:12"
#define ui_harm_small "12:32,1:-3"
@@ -117,7 +130,7 @@ obj/hud/New(var/type = 0)
if(mymob:gloves) mymob:gloves:screen_loc = ui_gloves
if(mymob:l_ear) mymob:l_ear:screen_loc = ui_lear
if(mymob:r_ear) mymob:r_ear:screen_loc = ui_rear
if(mymob:s_store) mymob:s_store:screen_loc = ui_sstore1
//if(mymob:s_store) mymob:s_store:screen_loc = ui_sstore1
if(mymob:glasses) mymob:glasses:screen_loc = ui_glasses
if(mymob:w_uniform) mymob:w_uniform:screen_loc = ui_iclothing
if(mymob:wear_suit) mymob:wear_suit:screen_loc = ui_oclothing
@@ -129,7 +142,7 @@ obj/hud/New(var/type = 0)
if(mymob:gloves) mymob:gloves:screen_loc = null
if(mymob:l_ear) mymob:l_ear:screen_loc = null
if(mymob:r_ear) mymob:r_ear:screen_loc = null
if(mymob:s_store) mymob:s_store:screen_loc = null
//if(mymob:s_store) mymob:s_store:screen_loc = null
if(mymob:glasses) mymob:glasses:screen_loc = null
if(mymob:w_uniform) mymob:w_uniform:screen_loc = null
if(mymob:wear_suit) mymob:wear_suit:screen_loc = null
@@ -139,6 +152,10 @@ obj/hud/New(var/type = 0)
/obj/hud/var/show_otherinventory = 1
/obj/hud/var/obj/screen/action_intent
/obj/hud/var/obj/screen/hurt_intent
/obj/hud/var/obj/screen/disarm_intent
/obj/hud/var/obj/screen/help_intent
/obj/hud/var/obj/screen/grab_intent
/obj/hud/var/obj/screen/move_intent
/obj/hud/proc/instantiate(var/type = 0)

View File

@@ -26,6 +26,7 @@
STATE_STATUSDISPLAY = 7
STATE_ALERT_LEVEL = 8
STATE_CONFIRM_LEVEL = 9
STATE_CREWTRANSFER = 10
var/status_display_freq = "1435"
var/stat_msg1
@@ -117,6 +118,16 @@
if(emergency_shuttle.online)
post_status("shuttle")
src.state = STATE_DEFAULT
if("crewtransfer")
src.state= STATE_DEFAULT
if(src.authenticated)
src.state = STATE_CREWTRANSFER
if("crewtransfer2")
if(src.authenticated)
init_shift_change(usr) //key difference here
if(emergency_shuttle.online)
post_status("shuttle")
src.state = STATE_DEFAULT
if("cancelshuttle")
src.state = STATE_DEFAULT
if(src.authenticated)
@@ -306,6 +317,7 @@
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=cancelshuttle'>Cancel Shuttle Call</A> \]"
else
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=callshuttle'>Call Emergency Shuttle</A> \]"
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=crewtransfer'>Initiate Crew Transfer</A> \]"
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=status'>Set Status Display</A> \]"
else
@@ -313,6 +325,8 @@
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=messagelist'>Message List</A> \]"
if(STATE_CALLSHUTTLE)
dat += "Are you sure you want to call the shuttle? \[ <A HREF='?src=\ref[src];operation=callshuttle2'>OK</A> | <A HREF='?src=\ref[src];operation=main'>Cancel</A> \]"
if(STATE_CREWTRANSFER) // this is the shiftchage screen.
dat += "Are you sure you want to initiate a crew transfer? This will call the shuttle. \[ <a HREF='?src=\ref[src];operation=crewtransfer2'>OK</a> | <A HREF='?src=\ref[src];operation=main'>Cancel</A> \]"
if(STATE_CANCELSHUTTLE)
dat += "Are you sure you want to cancel the shuttle? \[ <A HREF='?src=\ref[src];operation=cancelshuttle2'>OK</A> | <A HREF='?src=\ref[src];operation=main'>Cancel</A> \]"
if(STATE_MESSAGELIST)
@@ -468,6 +482,7 @@
return
emergency_shuttle.incall()
emergency_shuttle.shuttlealert(1)
log_game("[key_name(user)] has called the shuttle.")
message_admins("[key_name_admin(user)] has called the shuttle.", 1)
captain_announce("The emergency shuttle has been called. It will arrive in [round(emergency_shuttle.timeleft()/60)] minutes.")
@@ -475,6 +490,46 @@
return
/proc/init_shift_change(var/mob/user)
if ((!( ticker ) || emergency_shuttle.location))
return
if(emergency_shuttle.deny_shuttle)
user << "Centcom does not currently have a shuttle available in your sector. Please try again later."
return
if(sent_strike_team == 1)
user << "Centcom 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
user << "The shuttle is refueling. Please wait another [round((54000-world.time)/600)] minutes before trying again."//may need to change "/600"
return
if(emergency_shuttle.direction == -1)
user << "The shuttle may not be called while returning to CentCom."
return
if(emergency_shuttle.online)
user << "The shuttle is already on its way."
return
if(ticker.mode.name == "revolution" || ticker.mode.name == "AI malfunction" || ticker.mode.name == "sandbox")
//New version pretends to call the shuttle but cause the shuttle to return after a random duration.
emergency_shuttle.fake_recall = rand(300,500)
if(ticker.mode.name == "blob" || ticker.mode.name == "epidemic")
user << "Under directive 7-10, [station_name()] is quarantined until further notice."
return
emergency_shuttle.incall()
emergency_shuttle.shuttlealert(1)
log_game("[key_name(user)] has called the shuttle.")
message_admins("[key_name_admin(user)] has called the shuttle.", 1)
captain_announce("A crew transfer has been initiated. The shuttle has been called. It will arrive in [round(emergency_shuttle.timeleft()/60)] minutes.")
return
/proc/cancel_call_proc(var/mob/user)
if ((!( ticker ) || emergency_shuttle.location || emergency_shuttle.direction == 0 || emergency_shuttle.timeleft() < 300))

View File

@@ -211,6 +211,13 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
doortype = 22
glass = 1
glass_atmos
name = "Maintenance Hatch"
icon = 'dooratmoglass.dmi'
opacity = 0
doortype = 23
glass = 1
centcom
name = "Airlock"
icon = 'Doorele.dmi'
@@ -435,6 +442,7 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
if(20) new/obj/structure/door_assembly/door_assembly_research( src.loc )
if(21) new/obj/structure/door_assembly/door_assembly_research( src.loc )
if(22) new/obj/structure/door_assembly/door_assembly_min/glass( src.loc )
if(23) new/obj/structure/door_assembly/door_assembly_atmo/glass( src.loc )
var/obj/item/weapon/airlock_electronics/ae
if (!electronics)
ae = new/obj/item/weapon/airlock_electronics( src.loc )

View File

@@ -0,0 +1,131 @@
var/list/word_to_uristrune_table = null
/proc/word_to_uristrune_bit(word)
if(word_to_uristrune_table == null)
word_to_uristrune_table = list()
var/bit = 1
var/list/words = list("ire", "ego", "nahlizet", "certum", "veri", "jatkaa", "mgar", "balaq", "karazet", "geeri")
while(length(words))
var/w = pick(words)
word_to_uristrune_table[w] = bit
words -= w
bit <<= 1
return word_to_uristrune_table[word]
/proc/get_uristrune_cult(word1, word2, word3)
var/animated
if((word1 == wordtravel && word2 == wordself) \
|| (word1 == wordjoin && word2 == wordblood && word3 == wordself) \
|| (word1 == wordhell && word2 == wordjoin && word3 == wordself) \
|| (word1 == wordsee && word2 == wordblood && word3 == wordhell) \
|| (word1 == worddestr && word2 == wordsee && word3 == wordtech) \
|| (word1 == wordtravel && word2 == wordblood && word3 == wordself) \
|| (word1 == wordsee && word2 == wordhell && word3 == wordjoin) \
|| (word1 == wordblood && word2 == wordjoin && word3 == wordhell) \
|| (word1 == wordhide && word2 == wordsee && word3 == wordblood) \
|| (word1 == wordhell && word2 == wordtravel && word3 == wordself) \
|| (word1 == wordblood && word2 == wordsee && word3 == wordtravel) \
|| (word1 == wordhell && word2 == wordtech && word3 == wordjoin) \
|| (word1 == wordhell && word2 == wordblood && word3 == wordjoin) \
|| (word1 == wordblood && word2 == wordsee && word3 == wordhide) \
|| (word1 == worddestr && word2 == wordtravel && word3 == wordself) \
|| (word1 == wordtravel && word2 == wordtech && word3 == wordother) \
|| (word1 == wordjoin && word2 == wordother && word3 == wordself) \
|| (word1 == wordhide && word2 == wordother && word3 == wordsee) \
|| (word1 == worddestr && word2 == wordsee && word3 == wordother) \
|| (word1 == worddestr && word2 == wordsee && word3 == wordblood) \
|| (word1 == wordself && word2 == wordother && word3 == wordtech) \
|| (word1 == wordtravel && word2 == wordother) \
|| (word1 == wordjoin && word2 == wordhide && word3 == wordtech) )
animated = 1
else
animated = 0
var/bits = word_to_uristrune_bit(word1) \
| word_to_uristrune_bit(word2) \
| word_to_uristrune_bit(word3)
return get_uristrune(bits, animated)
var/list/uristrune_cache = list()
/proc/get_uristrune(symbol_bits, animated = 0)
var/lookup = "[symbol_bits]-[animated]"
if(lookup in uristrune_cache)
return uristrune_cache[lookup]
var/icon/I = icon('icons/effects/uristrunes.dmi', "blank")
for(var/i = 0, i < 10, i++)
if(symbol_bits & (1 << i))
I.Blend(icon('icons/effects/uristrunes.dmi', "rune-[1 << i]"), ICON_OVERLAY)
I.SwapColor(rgb(0, 0, 0, 100), rgb(100, 0, 0, 200))
I.SwapColor(rgb(0, 0, 0, 50), rgb(150, 0, 0, 200))
for(var/x = 1, x <= 32, x++)
for(var/y = 1, y <= 32, y++)
var/p = I.GetPixel(x, y)
if(p == null)
var/n = I.GetPixel(x, y + 1)
var/s = I.GetPixel(x, y - 1)
var/e = I.GetPixel(x + 1, y)
var/w = I.GetPixel(x - 1, y)
if(n == "#000000" || s == "#000000" || e == "#000000" || w == "#000000")
I.DrawBox(rgb(200, 0, 0, 200), x, y)
else
var/ne = I.GetPixel(x + 1, y + 1)
var/se = I.GetPixel(x + 1, y - 1)
var/nw = I.GetPixel(x - 1, y + 1)
var/sw = I.GetPixel(x - 1, y - 1)
if(ne == "#000000" || se == "#000000" || nw == "#000000" || sw == "#000000")
I.DrawBox(rgb(200, 0, 0, 100), x, y)
var/icon/result = icon(I, "")
result.Insert(I, "", frame = 1, delay = 10)
if(animated == 1)
var/icon/I2 = icon(I, "")
I2.MapColors(rgb(0xff,0x0c,0,0), rgb(0,0,0,0), rgb(0,0,0,0), rgb(0,0,0,0xff))
I2.SetIntensity(1.04)
var/icon/I3 = icon(I, "")
I3.MapColors(rgb(0xff,0x18,0,0), rgb(0,0,0,0), rgb(0,0,0,0), rgb(0,0,0,0xff))
I3.SetIntensity(1.08)
var/icon/I4 = icon(I, "")
I4.MapColors(rgb(0xff,0x24,0,0), rgb(0,0,0,0), rgb(0,0,0,0), rgb(0,0,0,0xff))
I4.SetIntensity(1.12)
var/icon/I5 = icon(I, "")
I5.MapColors(rgb(0xff,0x30,0,0), rgb(0,0,0,0), rgb(0,0,0,0), rgb(0,0,0,0xff))
I5.SetIntensity(1.16)
result.Insert(I2, "", frame = 2, delay = 4)
result.Insert(I3, "", frame = 3, delay = 3)
result.Insert(I4, "", frame = 4, delay = 2)
result.Insert(I5, "", frame = 5, delay = 6)
result.Insert(I4, "", frame = 6, delay = 2)
result.Insert(I3, "", frame = 7, delay = 2)
result.Insert(I2, "", frame = 8, delay = 2)
uristrune_cache[lookup] = result
return result

View File

@@ -1,4 +1,8 @@
var/use_uristrunes = 1
var/wordtravel = null
var/wordself = null
var/wordsee = null
@@ -207,6 +211,10 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
return
check_icon()
if(use_uristrunes)
icon = get_uristrune_cult(word1, word2, word3)
return
if(word1 == wordtravel && word2 == wordself)
icon_state = "2"
src.icon += rgb(0, 0 , 255)

View File

@@ -164,6 +164,32 @@
user.UpdateLuminosity()
src.sd_SetLuminosity(brightness_on)
//RIG helmet light
/obj/item/clothing/head/helmet/space/rig/attack_self(mob/user)
if(!isturf(user.loc))
user << "You cannot turn the light on while in this [user.loc]" //To prevent some lighting anomalities.
return
on = !on
icon_state = "rig[on]-[color]"
item_state = "rig[on]-[color]"
if(on)
user.total_luminosity += brightness_on
else
user.total_luminosity -= brightness_on
/obj/item/clothing/head/helmet/space/rig/pickup(mob/user)
if(on)
user.total_luminosity += brightness_on
user.UpdateLuminosity()
src.sd_SetLuminosity(0)
/obj/item/clothing/head/helmet/space/rig/dropped(mob/user)
if(on)
user.total_luminosity -= brightness_on
user.UpdateLuminosity()
src.sd_SetLuminosity(brightness_on)
/obj/item/device/flashlight/lamp/verb/toggle_light()
set name = "Toggle light"
set category = "Object"

View File

@@ -87,12 +87,18 @@ obj/structure/door_assembly
door_assembly_atmo
name = "Atmospherics Airlock Assembly"
icon_state = "door_as_atmo1"
glass_base_icon_state = "door_as_gatmo"
glass_type = /obj/machinery/door/airlock/glass/glass_atmos
airlock_type = /obj/machinery/door/airlock/atmos
anchored = 1
density = 1
state = 1
glass = 0
glass
glass = 1
icon_state = "door_as_gatmo1"
door_assembly_research
name = "Research Airlock Assembly"
icon_state = "door_as_res1"

View File

@@ -55,14 +55,15 @@
S.attachable = 0
S.destroyed = 0
S.robot = 1
var/datum/organ/external/T = H.organs[limbloc]
var/datum/organ/external/T = H.organs["[limbloc]"]
T.attachable = 0
T.destroyed = 0
T.broken = 0
T.robot = 1
del(src)
M.update_body()
M.updatehealth()
M.UpdateDamageIcon()
del(src)
return 1
return 1
return 0

View File

@@ -539,6 +539,7 @@
set category = "Admin"
if(holder)
holder.check_antagonists()
log_admin("[key_name(usr)] checked antagonists.") //for tsar~
//feedback_add_details("admin_verb","CHA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return

View File

@@ -1338,6 +1338,97 @@
user << "\blue [trans] units injected. [reagents.total_volume] units remaining in the hypospray."
return
/obj/item/weapon/reagent_containers/borghypo
name = "Cyborg Hypospray"
desc = "An advanced chemical synthesizer and injection system, designed for heavy-duty medical equipment."
icon = 'syringe.dmi'
item_state = "hypo"
icon_state = "borghypo"
amount_per_transfer_from_this = 5
volume = 30
possible_transfer_amounts = null
flags = FPRINT
var/mode = 1
var/charge_cost = 100
var/charge_tick = 0
var/recharge_time = 10 //Time it takes for shots to recharge (in seconds)
New()
..()
processing_objects.Add(src)
Del()
processing_objects.Remove(src)
..()
process() //Every [recharge_time] seconds, recharge some reagents for the cyborg
charge_tick++
if(charge_tick < recharge_time) return 0
charge_tick = 0
if(isrobot(src.loc))
var/mob/living/silicon/robot/R = src.loc
if(R && R.cell)
if(mode == 1 && reagents.total_volume < 30) //Don't recharge reagents and drain power if the storage is full.
R.cell.use(charge_cost) //Take power from borg...
reagents.add_reagent("tricordrazine",10) //And fill hypo with reagent.
if(mode == 2 && reagents.total_volume < 30)
R.cell.use(charge_cost)
reagents.add_reagent("inaprovaline", 10)
if(mode == 3 && reagents.total_volume < 30)
R.cell.use(charge_cost)
reagents.add_reagent("spaceacillin", 10)
//update_icon()
return 1
/obj/item/weapon/reagent_containers/borghypo/attack(mob/M as mob, mob/user as mob)
if(!reagents.total_volume)
user << "\red The injector is empty."
return
if (!( istype(M, /mob) ))
return
if (reagents.total_volume)
user << "\blue You inject [M] with the injector."
M << "\red You feel a tiny prick!"
src.reagents.reaction(M, INGEST)
if(M.reagents)
var/trans = reagents.trans_to(M, amount_per_transfer_from_this)
user << "\blue [trans] units injected. [reagents.total_volume] units remaining."
return
/obj/item/weapon/reagent_containers/borghypo/attack_self(mob/user as mob)
playsound(src.loc, 'pop.ogg', 50, 0) //Change the mode
if(mode == 1)
mode = 2
reagents.clear_reagents() //Flushes whatever was in the storage previously, so you don't get chems all mixed up.
user << "\blue Synthesizer is now producing 'Inaprovaline'."
return
if(mode == 2)
mode = 3
reagents.clear_reagents()
user << "\blue Synthesizer is now producing 'Spaceacillin'."
return
if(mode == 3)
mode = 1
reagents.clear_reagents()
user << "\blue Synthesizer is now producing 'Tricordrazine'."
return
/obj/item/weapon/reagent_containers/borghypo/examine()
set src in view()
..()
if (!(usr in view(2)) && usr!=src.loc) return
if(reagents && reagents.reagent_list.len)
for(var/datum/reagent/R in reagents.reagent_list)
usr << "\blue It currently has [R.volume] units of [R.name] stored."
else
usr << "\blue It is currently empty. Allow some time for the internal syntheszier to produce more."
/obj/item/weapon/reagent_containers/hypospray/ert
name = "emergency hypospray"
desc = "The DeForest Medical Corporation hypospray is a sterile, air-needle autoinjector for rapid administration of drugs to patients."
@@ -1592,7 +1683,8 @@
istype(W, /obj/item/weapon/circular_saw) || \
istype(W, /obj/item/weapon/melee/energy/sword) && W:active || \
istype(W, /obj/item/weapon/melee/energy/blade) || \
istype(W, /obj/item/weapon/shovel) \
istype(W, /obj/item/weapon/shovel) || \
istype(W, /obj/item/weapon/hatchet) \
)
inaccurate = 1
/*else if(W.w_class <= 2 && istype(src,/obj/item/weapon/reagent_containers/food/snacks/sliceable))
@@ -3608,7 +3700,7 @@
name = "Erika Surprise"
desc = "The surprise is, it's green!"
if("driestmartini")
icon_state = "driestmartini"
icon_state = "driestmartiniglass"
name = "Driest Martini"
desc = "Only for the experienced. You think you see sand floating in the glass."
else

View File

@@ -1,18 +1,26 @@
/obj/item/clothing/head/helmet/space/rig
name = "engineer RIG helmet"
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding."
icon_state = "rig-engineering"
item_state = "rig_helm"
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 20)
icon_state = "rig0-engineering"
item_state = "rig0_engineering"
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 60)
allowed = list(/obj/item/device/flashlight)
var/brightness_on = 4 //luminosity when on
var/on = 0
color = "engineering" //Determines used sprites: rig[on]-[color] and rig[on]-[color]2 (lying down sprite)
/obj/item/clothing/head/helmet/space/rig/mining
name = "mining RIG helmet"
icon_state = "rig-mining"
icon_state = "rig0-mining"
item_state = "rig0-mining"
color = "mining"
/obj/item/clothing/head/helmet/space/rig/elite
name = "advanced RIG helmet"
icon_state = "rig-white"
icon_state = "rig0-white"
item_state = "rig0-white"
color = "white"
/obj/item/clothing/head/helmet/space/rig/engspace_helmet
name = "engineering space helmet"
@@ -32,7 +40,8 @@
/obj/item/clothing/head/helmet/space/rig/security
name = "security RIG helmet"
icon_state = "rig-security"
icon_state = "rig0-security"
color = "security"
armor = list(melee = 60, bullet = 10, laser = 30, energy = 5, bomb = 45, bio = 100, rad = 10)
/obj/item/clothing/suit/space/rig

View File

@@ -1411,14 +1411,6 @@
reagents.add_reagent("metroid", 5)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/braincake
name = "Brain Cake"
desc = "A squishy cake-thing."
icon_state = "braincake"
New()
..()
reagents.add_reagent("nutriment", 28)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/mushroomsoup
name = "chantrelle soup"
@@ -1575,6 +1567,23 @@
trash = "plate"
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake
name = "Brain Cake"
desc = "A squishy cake-thing."
icon_state = "braincake"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/braincakeslice
slices_num = 5
New()
..()
reagents.add_reagent("nutriment", 28)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/braincakeslice
name = "Brain Cake slice"
desc = "Lemme tell you something about prions. THEY'RE DELICIOUS."
icon_state = "braincakeslice"
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake
name = "Cheese Cake"
desc = "DANGEROUSLY cheesy."

View File

@@ -959,9 +959,9 @@
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/mob/living/carbon/brain,
/obj/item/brain
)
result = /obj/item/weapon/reagent_containers/food/snacks/braincake
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake
/datum/recipe/chocolateegg
items = list(

View File

@@ -54,34 +54,38 @@
using = new src.h_type( src )
using.name = "help"
using.icon = 'screen1_alien.dmi'
using.icon_state = "help_small"
using.icon_state = (mymob.a_intent == "help" ? "help_small_active" : "help_small")
using.screen_loc = ui_help_small
using.layer = 21
src.intent_small_hud_objects += using
src.adding += using
help_intent = using
using = new src.h_type( src )
using.name = "disarm"
using.icon = 'screen1_alien.dmi'
using.icon_state = "disarm_small"
using.icon_state = (mymob.a_intent == "disarm" ? "disarm_small_active" : "disarm_small")
using.screen_loc = ui_disarm_small
using.layer = 21
src.intent_small_hud_objects += using
src.adding += using
disarm_intent = using
using = new src.h_type( src )
using.name = "grab"
using.icon = 'screen1_alien.dmi'
using.icon_state = "grab_small"
using.icon_state = (mymob.a_intent == "grab" ? "grab_small_active" : "grab_small")
using.screen_loc = ui_grab_small
using.layer = 21
src.intent_small_hud_objects += using
src.adding += using
grab_intent = using
using = new src.h_type( src )
using.name = "harm"
using.icon = 'screen1_alien.dmi'
using.icon_state = "harm_small"
using.icon_state = (mymob.a_intent == "hurt" ? "harm_small_active" : "harm_small")
using.screen_loc = ui_harm_small
using.layer = 21
src.intent_small_hud_objects += using
src.adding += using
hurt_intent = using
//end intent small hud objects
@@ -90,7 +94,7 @@
using.dir = SOUTHWEST
using.icon = 'screen1_alien.dmi'
using.icon_state = (mymob.m_intent == "run" ? "running" : "walking")
using.screen_loc = ui_movi
using.screen_loc = ui_movi_old
using.layer = 20
src.adding += using
move_intent = using
@@ -257,7 +261,7 @@
mymob.throw_icon.icon = 'screen1_alien.dmi'
mymob.throw_icon.icon_state = "act_throw_off"
mymob.throw_icon.name = "throw"
mymob.throw_icon.screen_loc = ui_throw
mymob.throw_icon.screen_loc = ui_throw_old
mymob.oxygen = new /obj/screen( null )
mymob.oxygen.icon = 'screen1_alien.dmi'
@@ -287,7 +291,7 @@
mymob.pullin.icon = 'screen1_alien.dmi'
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_pull
mymob.pullin.screen_loc = ui_pull_old
mymob.blind = new /obj/screen( null )
mymob.blind.icon = 'screen1_alien.dmi'

View File

@@ -56,7 +56,7 @@
using.dir = SOUTHWEST
using.icon = 'screen1_alien.dmi'
using.icon_state = (mymob.m_intent == "run" ? "running" : "walking")
using.screen_loc = ui_movi
using.screen_loc = ui_movi_old
using.layer = 20
src.adding += using
move_intent = using
@@ -179,7 +179,7 @@
mymob.pullin.icon = 'screen1_alien.dmi'
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_pull
mymob.pullin.screen_loc = ui_pull_old
mymob.blind = new /obj/screen( null )
mymob.blind.icon = 'screen1_alien.dmi'

View File

@@ -1,6 +1,6 @@
/obj/hud/proc/brain_hud(var/ui_style='screen1_old.dmi')
ui_style='screen1_old.dmi' //Overriding the parameter. Only this UI style is acceptable with the 'sleek' layout.
//ui_style='screen1_old.dmi' //Overriding the parameter. Only this UI style is acceptable with the 'sleek' layout.
blurry = new h_type( src )
blurry.screen_loc = "WEST,SOUTH to EAST,NORTH"

View File

@@ -1,6 +1,6 @@
/obj/hud/proc/human_hud(var/ui_style='screen1_old.dmi')
ui_style='screen1_old.dmi' //Overriding the parameter. Only this UI style is acceptable with the 'sleek' layout.
//ui_style='screen1_old.dmi' //Overriding the parameter. Only this UI style is acceptable with the 'sleek' layout.
src.adding = list( )
src.other = list( )
@@ -11,6 +11,7 @@
src.vimpaired = list( )
src.darkMask = list( )
src.intent_small_hud_objects = list( )
src.hotkeybuttons = list( ) //These can be disabled for hotkey usersx
src.g_dither = new src.h_type( src )
src.g_dither.screen_loc = "WEST,SOUTH to EAST,NORTH"
@@ -60,34 +61,38 @@
using = new src.h_type( src )
using.name = "help"
using.icon = ui_style
using.icon_state = "help_small"
using.icon_state = (mymob.a_intent == "help" ? "help_small_active" : "help_small")
using.screen_loc = ui_help_small
using.layer = 21
src.intent_small_hud_objects += using
src.adding += using
help_intent = using
using = new src.h_type( src )
using.name = "disarm"
using.icon = ui_style
using.icon_state = "disarm_small"
using.icon_state = (mymob.a_intent == "disarm" ? "disarm_small_active" : "disarm_small")
using.screen_loc = ui_disarm_small
using.layer = 21
src.intent_small_hud_objects += using
src.adding += using
disarm_intent = using
using = new src.h_type( src )
using.name = "grab"
using.icon = ui_style
using.icon_state = "grab_small"
using.icon_state = (mymob.a_intent == "grab" ? "grab_small_active" : "grab_small")
using.screen_loc = ui_grab_small
using.layer = 21
src.intent_small_hud_objects += using
src.adding += using
grab_intent = using
using = new src.h_type( src )
using.name = "harm"
using.icon = ui_style
using.icon_state = "harm_small"
using.icon_state = (mymob.a_intent == "hurt" ? "harm_small_active" : "harm_small")
using.screen_loc = ui_harm_small
using.layer = 21
src.intent_small_hud_objects += using
src.adding += using
hurt_intent = using
//end intent small hud objects
@@ -148,7 +153,7 @@
using.icon_state = "act_drop"
using.screen_loc = ui_dropbutton
using.layer = 19
src.adding += using
src.hotkeybuttons += using
using = new src.h_type( src )
using.name = "i_clothing"
@@ -269,7 +274,7 @@
using.icon_state = "belt"
using.screen_loc = ui_sstore1
using.layer = 19
src.other += using
src.adding += using
/*
using = new src.h_type( src )
@@ -520,6 +525,7 @@
mymob.throw_icon.icon_state = "act_throw_off"
mymob.throw_icon.name = "throw"
mymob.throw_icon.screen_loc = ui_throw
src.hotkeybuttons += mymob.throw_icon
mymob.oxygen = new /obj/screen( null )
mymob.oxygen.icon = ui_style
@@ -528,7 +534,7 @@
mymob.oxygen.screen_loc = ui_oxygen
mymob.pressure = new /obj/screen( null )
mymob.pressure.icon = 'screen1_old.dmi'
mymob.pressure.icon = ui_style
mymob.pressure.icon_state = "pressure0"
mymob.pressure.name = "pressure"
mymob.pressure.screen_loc = ui_pressure
@@ -587,6 +593,7 @@
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_pull
src.hotkeybuttons += mymob.pullin
mymob.blind = new /obj/screen( null )
mymob.blind.icon = ui_style
@@ -728,7 +735,7 @@
//, mymob.i_select, mymob.m_select
mymob.client.screen += list( mymob.pain, mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.nutrition_icon, mymob.pullin, mymob.blind, mymob.flash, mymob.gun_setting_icon) //, mymob.hands, mymob.rest, mymob.sleep, mymob.gun_setting_icon) //, mymob.mach )
mymob.client.screen += src.adding + src.other
mymob.client.screen += src.adding + src.other + src.hotkeybuttons
//if(istype(mymob,/mob/living/carbon/monkey)) mymob.client.screen += src.mon_blo
@@ -764,4 +771,18 @@
using.screen_loc = "1,1 to 2,2"
using.layer = 19
src.adding += using
*/
*/
/mob/living/carbon/human/verb/toggle_hotkey_verbs()
set category = "OOC"
set name = "Toggle hotkey buttons"
set desc = "This disables or enables the user interface buttons which can be used with hotkeys."
if(hud_used.hotkey_ui_hidden)
client.screen += src.hud_used.hotkeybuttons
src.hud_used.hotkey_ui_hidden = 0
else
client.screen -= src.hud_used.hotkeybuttons
src.hud_used.hotkey_ui_hidden = 1

View File

@@ -1,6 +1,6 @@
/obj/hud/proc/monkey_hud(var/ui_style='screen1_old.dmi')
ui_style='screen1_old.dmi' //Overriding the parameter. Only this UI style is acceptable with the 'sleek' layout.
//ui_style='screen1_old.dmi' //Overriding the parameter. Only this UI style is acceptable with the 'sleek' layout.
src.adding = list( )
src.other = list( )
@@ -62,34 +62,38 @@
using = new src.h_type( src )
using.name = "help"
using.icon = ui_style
using.icon_state = "help_small"
using.icon_state = (mymob.a_intent == "help" ? "help_small_active" : "help_small")
using.screen_loc = ui_help_small
using.layer = 21
src.intent_small_hud_objects += using
src.adding += using
help_intent = using
using = new src.h_type( src )
using.name = "disarm"
using.icon = ui_style
using.icon_state = "disarm_small"
using.icon_state = (mymob.a_intent == "disarm" ? "disarm_small_active" : "disarm_small")
using.screen_loc = ui_disarm_small
using.layer = 21
src.intent_small_hud_objects += using
src.adding += using
disarm_intent = using
using = new src.h_type( src )
using.name = "grab"
using.icon = ui_style
using.icon_state = "grab_small"
using.icon_state = (mymob.a_intent == "grab" ? "grab_small_active" : "grab_small")
using.screen_loc = ui_grab_small
using.layer = 21
src.intent_small_hud_objects += using
src.adding += using
grab_intent = using
using = new src.h_type( src )
using.name = "harm"
using.icon = ui_style
using.icon_state = "harm_small"
using.icon_state = (mymob.a_intent == "hurt" ? "harm_small_active" : "harm_small")
using.screen_loc = ui_harm_small
using.layer = 21
src.intent_small_hud_objects += using
src.adding += using
hurt_intent = using
//end intent small hud objects
@@ -447,7 +451,7 @@
mymob.oxygen.screen_loc = ui_oxygen
mymob.pressure = new /obj/screen( null )
mymob.pressure.icon = 'screen1_old.dmi'
mymob.pressure.icon = ui_style
mymob.pressure.icon_state = "pressure0"
mymob.pressure.name = "pressure"
mymob.pressure.screen_loc = ui_pressure

View File

@@ -47,7 +47,7 @@
using.dir = SOUTHWEST
using.icon = 'screen1_robot.dmi'
using.icon_state = "radio"
using.screen_loc = ui_movi
using.screen_loc = ui_movi_old
using.layer = 20
src.adding += using
@@ -166,7 +166,7 @@
using.name = "panel"
using.icon = 'screen1_robot.dmi'
using.icon_state = "panel"
using.screen_loc = ui_throw
using.screen_loc = ui_throw_old
using.layer = 19
src.adding += using
@@ -202,7 +202,7 @@
mymob.pullin.icon = 'screen1_robot.dmi'
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_pull
mymob.pullin.screen_loc = ui_pull_old
mymob.blind = new /obj/screen( null )
mymob.blind.icon = 'screen1_robot.dmi'

View File

@@ -59,37 +59,12 @@
..()
src.modules += new /obj/item/borg/sight/hud/med(src)
src.modules += new /obj/item/device/healthanalyzer(src)
src.modules += new /obj/item/weapon/reagent_containers/syringe/robot/antitoxin(src)
src.modules += new /obj/item/weapon/reagent_containers/syringe/robot/inaprovaline(src)
src.modules += new /obj/item/weapon/reagent_containers/syringe/robot/mixed(src)
src.modules += new /obj/item/weapon/reagent_containers/syringe(src)
src.modules += new /obj/item/weapon/reagent_containers/syringe(src)
src.modules += new /obj/item/weapon/reagent_containers/glass/bottle/robot/inaprovaline(src)
src.modules += new /obj/item/weapon/reagent_containers/glass/bottle/robot/antitoxin(src)
src.modules += new /obj/item/weapon/reagent_containers/glass/beaker(src)
src.modules += new /obj/item/weapon/reagent_containers/borghypo
src.modules += new /obj/item/weapon/reagent_containers/glass/large(src)
src.modules += new /obj/item/weapon/reagent_containers/robodropper(src)
src.emag = new /obj/item/weapon/reagent_containers/pill/cyanide(src)
src.modules += new /obj/item/weapon/reagent_containers/pill/dexalin(src)
src.modules += new /obj/item/weapon/reagent_containers/pill/antitox(src)
src.modules += new /obj/item/weapon/reagent_containers/pill/kelotane(src)
src.modules += new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
return
respawn_consumable(var/mob/living/silicon/robot/R)
var/list/what = list (
/obj/item/weapon/reagent_containers/pill/dexalin,
/obj/item/weapon/reagent_containers/pill/antitox,
/obj/item/weapon/reagent_containers/pill/kelotane,
/obj/item/weapon/reagent_containers/pill/bicaridine
)
for (var/T in what)
if (!(locate(T) in src.modules))
src.modules -= null
var/O = new T(src)
src.modules += O
if (R.emagged && !src.emag) //thanks to cyborg-900 for uncovering this
src.emag = new /obj/item/weapon/reagent_containers/pill/cyanide(src)
src.modules += new /obj/item/weapon/reagent_containers/syringe
src.modules += new /obj/item/weapon/extinguisher/mini
src.emag = new /obj/item/weapon/circular_saw
return
@@ -167,7 +142,8 @@
New()
..()
src.modules += new /obj/item/weapon/soap/nanotrasen(src)
src.modules += new /obj/item/weapon/trashbag(src)
src.modules += new /obj/item/weapon/trashbag
src.modules += new/obj/item/weapon/mop
src.emag = new /obj/item/weapon/cleaner(src)
var/datum/reagents/R = new/datum/reagents(1000)

View File

@@ -76,11 +76,17 @@
else
usr.a_intent = "disarm"
usr.hud_used.action_intent.icon_state = "disarm"
usr.hud_used.hurt_intent.icon_state = "harm_small"
usr.hud_used.help_intent.icon_state = "help_small"
usr.hud_used.grab_intent.icon_state = "grab_small"
usr.hud_used.disarm_intent.icon_state = "disarm_small_active"
if("disarm")
usr.a_intent = "hurt"
usr.hud_used.action_intent.icon_state = "harm"
usr.hud_used.hurt_intent.icon_state = "harm_small_active"
usr.hud_used.help_intent.icon_state = "help_small"
usr.hud_used.grab_intent.icon_state = "grab_small"
usr.hud_used.disarm_intent.icon_state = "disarm_small"
if("hurt")
if(issilicon(usr))
usr.a_intent = "help"
@@ -88,10 +94,17 @@
else
usr.a_intent = "grab"
usr.hud_used.action_intent.icon_state = "grab"
usr.hud_used.hurt_intent.icon_state = "harm_small"
usr.hud_used.help_intent.icon_state = "help_small"
usr.hud_used.grab_intent.icon_state = "grab_small_active"
usr.hud_used.disarm_intent.icon_state = "disarm_small"
if("grab")
usr.a_intent = "help"
usr.hud_used.action_intent.icon_state = "help"
usr.hud_used.hurt_intent.icon_state = "harm_small"
usr.hud_used.help_intent.icon_state = "help_small_active"
usr.hud_used.grab_intent.icon_state = "grab_small"
usr.hud_used.disarm_intent.icon_state = "disarm_small"
usr << "\blue Your intent is now \"[usr.a_intent]\"."
else
usr << "\red This mob type does not use intents."

View File

@@ -47,95 +47,95 @@ var/const
datum/preferences
var
real_name
be_random_name = 0
gender = MALE
age = 30.0
b_type = "A+"
var/real_name
var/be_random_name = 0
var/gender = MALE
var/age = 30.0
var/b_type = "A+"
//Special role selection
be_special = 0
var/be_special = 0
//Play admin midis
midis = 1
var/midis = 1
//Toggle ghost ears
ghost_ears = 1
ghost_sight = 1
var/ghost_ears = 1
var/ghost_sight = 1
//Play pregame music
pregame_music = 1
var/pregame_music = 1
//Saved changlog filesize to detect if there was a change
lastchangelog = 0
var/lastchangelog = 0
//Just like it sounds
ooccolor = "#b82e00"
underwear = 1
list/underwear_m = list("White", "Grey", "Green", "Blue", "Black", "None") //Curse whoever made male/female underwear diffrent colours
list/underwear_f = list("Red", "White", "Yellow", "Blue", "Black", "None")
backbag = 2
list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt")
var/ooccolor = "#b82e00"
var/underwear = 1
var/list/underwear_m = list("White", "Grey", "Green", "Blue", "Black", "None") //Curse whoever made male/female underwear diffrent colours
var/list/underwear_f = list("Red", "White", "Yellow", "Blue", "Black", "None")
var/backbag = 2
var/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt")
//Hair type
h_style = "Short Hair"
datum/sprite_accessory/hair/hair_style
var/h_style = "Short Hair"
var/datum/sprite_accessory/hair/hair_style
//Hair color
r_hair = 0
g_hair = 0
b_hair = 0
var/r_hair = 0
var/g_hair = 0
var/b_hair = 0
//Face hair type
f_style = "Shaved"
datum/sprite_accessory/facial_hair/facial_hair_style
var/f_style = "Shaved"
var/datum/sprite_accessory/facial_hair/facial_hair_style
//Face hair color
r_facial = 0
g_facial = 0
b_facial = 0
var/r_facial = 0
var/g_facial = 0
var/b_facial = 0
//Species
species = "Human"
var/species = "Human"
//Skin color
s_tone = 0
var/s_tone = 0
//Eye color
r_eyes = 0
g_eyes = 0
b_eyes = 0
var/r_eyes = 0
var/g_eyes = 0
var/b_eyes = 0
//UI style
UI = UI_OLD
//UI = UI_OLD
var/UI_style = "Midnight"
//Mob preview
icon/preview_icon = null
preview_dir = SOUTH
var/icon/preview_icon = null
var/preview_dir = SOUTH
//Jobs, uses bitflags
job_civilian_high = 0
job_civilian_med = 0
job_civilian_low = 0
var/job_civilian_high = 0
var/job_civilian_med = 0
var/job_civilian_low = 0
job_medsci_high = 0
job_medsci_med = 0
job_medsci_low = 0
var/job_medsci_high = 0
var/job_medsci_med = 0
var/job_medsci_low = 0
job_engsec_high = 0
job_engsec_med = 0
job_engsec_low = 0
var/job_engsec_high = 0
var/job_engsec_med = 0
var/job_engsec_low = 0
list/job_alt_titles = new() // the default name of a job like "Medical Doctor"
var/list/job_alt_titles = new() // the default name of a job like "Medical Doctor"
flavor_text = ""
var/flavor_text = ""
// slot stuff (Why were they var/var? --SkyMarshal)
slotname
curslot = 0
disabilities = 0
var/slotname
var/curslot = 0
var/disabilities = 0
used_skillpoints = 0
skill_specialization = null
list/skills = list() // skills can range from 0 to 3
var/used_skillpoints = 0
var/skill_specialization = null
var/list/skills = list() // skills can range from 0 to 3
// OOC Metadata:
metadata = ""
var/metadata = ""
New()
@@ -262,7 +262,7 @@ datum/preferences
dat += "<b>Age:</b> <a href='byond://?src=\ref[user];preferences=1;age=input'>[age]</a>"
dat += "<br>"
//dat += "<b>UI Style:</b> <a href=\"byond://?src=\ref[user];preferences=1;UI=input\"><b>[UI == UI_NEW ? "New" : "Old"]</b></a><br>" -- UI Style no longer a thing
dat += "<b>UI Style:</b> <a href=\"byond://?src=\ref[user];preferences=1;UI=input\"><b>[UI_style]</b></a><br>"
dat += "<b>Play admin midis:</b> <a href=\"byond://?src=\ref[user];preferences=1;midis=input\"><b>[midis == 1 ? "Yes" : "No"]</b></a><br>"
dat += "<b>Ghost ears:</b> <a href=\"byond://?src=\ref[user];preferences=1;ghost_ears=input\"><b>[ghost_ears == 0 ? "Nearest Creatures" : "All Speech"]</b></a><br>"
dat += "<b>Ghost sight:</b> <a href=\"byond://?src=\ref[user];preferences=1;ghost_sight=input\"><b>[ghost_sight == 0 ? "Nearest Creatures" : "All Emotes"]</b></a><br>"
@@ -270,7 +270,7 @@ datum/preferences
if(config.allow_Metadata)
dat += "<b>OOC Notes:</b> <a href='byond://?src=\ref[user];preferences=1;OOC=input'> Edit </a><br>"
if((user.client) && (user.client.holder) && (user.client.holder.rank) && (user.client.holder.rank == "Game Master"))
if((user.client) && (user.client.holder) && (user.client.holder.rank) && (user.client.holder.level >= 5))
dat += "<hr><b>OOC</b><br>"
dat += "<a href='byond://?src=\ref[user];preferences=1;ooccolor=input'>Change colour</a> <font face=\"fixedsys\" size=\"3\" color=\"[ooccolor]\"><table style='display:inline;' bgcolor=\"[ooccolor]\"><tr><td>__</td></tr></table></font>"
@@ -847,10 +847,15 @@ datum/preferences
gender = MALE
if(link_tags["UI"])
if(UI == UI_OLD)
UI = UI_NEW
else
UI = UI_OLD
switch(UI_style)
if("Midnight")
UI_style = "Orange"
if("Orange")
UI_style = "old"
if("old")
UI_style = "Midnight"
else
UI_style = "Midnight"
if(link_tags["midis"])
midis = !midis
@@ -983,7 +988,8 @@ datum/preferences
b_eyes = 0.0
s_tone = 0.0
b_type = "A+"
UI = UI_OLD
//UI = UI_OLD
UI_style = "Midnight"
midis = 1
ghost_ears = 1
disabilities = 0
@@ -1028,11 +1034,15 @@ datum/preferences
character.h_style = h_style
character.f_style = f_style
switch (UI)
if(UI_OLD)
switch(UI_style)
if("Midnight")
character.UI = 'screen1_Midnight.dmi'
if("Orange")
character.UI = 'screen1_Orange.dmi'
if("old")
character.UI = 'screen1_old.dmi'
if(UI_NEW)
character.UI = 'screen1.dmi'
else
character.UI = 'screen1_Midnight.dmi'
character.hair_style = hair_style
character.facial_hair_style = facial_hair_style
@@ -1093,4 +1103,4 @@ datum/preferences
character.disabilities = disabilities
#undef UI_OLD
#undef UI_NEW
#undef UI_NEW

View File

@@ -139,7 +139,10 @@ datum/preferences/proc/savefile_save(mob/user, slot)
F["be_special"] << src.be_special
F["UI"] << src.UI
//F["UI"] << src.UI
if(isnull(UI_style))
UI_style = "Midnight"
F["UI_style"] << UI_style
F["midis"] << src.midis
F["ghost_ears"] << src.ghost_ears
F["ghost_sight"] << src.ghost_sight
@@ -222,7 +225,10 @@ datum/preferences/proc/savefile_load(mob/user, slot)
if(isnull(ghost_sight)) ghost_sight = 1 //Hotfix
F["ooccolor"] >> src.ooccolor
F["lastchangelog"] >> src.lastchangelog
F["UI"] >> src.UI
//F["UI"] >> src.UI
F["UI_style"] >> src.UI_style
if(isnull(UI_style))
UI_style = "Midnight"
F["be_special"] >> src.be_special
F["job_civilian_high"] >> src.job_civilian_high

View File

@@ -452,21 +452,37 @@
if("help")
usr.a_intent = "help"
usr.hud_used.action_intent.icon_state = "help"
usr.hud_used.hurt_intent.icon_state = "harm_small"
usr.hud_used.help_intent.icon_state = "help_small_active"
usr.hud_used.grab_intent.icon_state = "grab_small"
usr.hud_used.disarm_intent.icon_state = "disarm_small"
usr.hud_used.show_intent_icons = 0
usr.client.screen -= usr.hud_used.intent_small_hud_objects
if("harm")
usr.a_intent = "hurt"
usr.hud_used.action_intent.icon_state = "harm"
usr.hud_used.hurt_intent.icon_state = "harm_small_active"
usr.hud_used.help_intent.icon_state = "help_small"
usr.hud_used.grab_intent.icon_state = "grab_small"
usr.hud_used.disarm_intent.icon_state = "disarm_small"
usr.hud_used.show_intent_icons = 0
usr.client.screen -= usr.hud_used.intent_small_hud_objects
if("grab")
usr.a_intent = "grab"
usr.hud_used.action_intent.icon_state = "grab"
usr.hud_used.hurt_intent.icon_state = "harm_small"
usr.hud_used.help_intent.icon_state = "help_small"
usr.hud_used.grab_intent.icon_state = "grab_small_active"
usr.hud_used.disarm_intent.icon_state = "disarm_small"
usr.hud_used.show_intent_icons = 0
usr.client.screen -= usr.hud_used.intent_small_hud_objects
if("disarm")
usr.a_intent = "disarm"
usr.hud_used.action_intent.icon_state = "disarm"
usr.hud_used.hurt_intent.icon_state = "harm_small"
usr.hud_used.help_intent.icon_state = "help_small"
usr.hud_used.grab_intent.icon_state = "grab_small"
usr.hud_used.disarm_intent.icon_state = "disarm_small_active"
usr.hud_used.show_intent_icons = 0
usr.client.screen -= usr.hud_used.intent_small_hud_objects
if("pull")

View File

@@ -55,7 +55,7 @@
using.dir = SOUTHWEST
using.icon = 'screen1_robot.dmi'
using.icon_state = "radio"
using.screen_loc = ui_movi
using.screen_loc = ui_movi_old
using.layer = 20
src.adding += using