diff --git a/code/game/gamemodes/events/miniblob.dm b/code/game/gamemodes/events/miniblob.dm index cbb32198363..93f3c2a7172 100644 --- a/code/game/gamemodes/events/miniblob.dm +++ b/code/game/gamemodes/events/miniblob.dm @@ -9,7 +9,7 @@ blobevent = 1 spawn(0) dotheblobbaby() - spawn(3000) + spawn(12000) // blob event can last up to 20 minutes blobevent = 0 spawn(rand(1000, 2000)) //Delayed announcements to keep the crew on their toes. command_alert("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") @@ -25,5 +25,5 @@ if(B.z != 1) continue B.Life() - spawn(70) - dotheblobbaby() \ No newline at end of file + spawn(280) // advance 1 tile every 30 seconds + dotheblobbaby() diff --git a/code/game/jobs/job/assistant.dm b/code/game/jobs/job/assistant.dm index 5a68cf9e182..b5b6f039707 100644 --- a/code/game/jobs/job/assistant.dm +++ b/code/game/jobs/job/assistant.dm @@ -12,4 +12,8 @@ if(!H) return 0 H.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) + if(H.backbag == 1) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) + else + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) return 1 diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 274f5146b7b..1347cc2fd24 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -57,6 +57,10 @@ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/clothing/head/chefhat(H), slot_head) H.equip_to_slot_or_del(new /obj/item/device/pda/chef(H), slot_belt) + if(H.backbag == 1) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) + else + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) return 1 @@ -80,6 +84,10 @@ H.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/device/analyzer/plant_analyzer(H), slot_s_store) H.equip_to_slot_or_del(new /obj/item/device/pda/botanist(H), slot_belt) + if(H.backbag == 1) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) + else + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) return 1 @@ -105,6 +113,10 @@ H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves) H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(H), slot_glasses) H.equip_to_slot_or_del(new /obj/item/weapon/clipboard(H), slot_l_hand) + if(H.backbag == 1) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) + else + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) return 1 @@ -127,6 +139,10 @@ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/cargo(H), slot_belt) H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves) + if(H.backbag == 1) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) + else + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) return 1 @@ -251,6 +267,10 @@ H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/janitor(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/janitor(H), slot_belt) + if(H.backbag == 1) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) + else + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) return 1 @@ -273,6 +293,10 @@ H.equip_to_slot_or_del(new /obj/item/device/pda/librarian(H), slot_belt) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/weapon/barcodescanner(H), slot_l_hand) + if(H.backbag == 1) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) + else + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) return 1 diff --git a/code/game/jobs/job/civilian_chaplain.dm b/code/game/jobs/job/civilian_chaplain.dm index eca1cb35828..6ad83d2b238 100644 --- a/code/game/jobs/job/civilian_chaplain.dm +++ b/code/game/jobs/job/civilian_chaplain.dm @@ -18,6 +18,10 @@ H.equip_to_slot_or_del(new /obj/item/device/pda/chaplain(H), slot_belt) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chaplain(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) + if(H.backbag == 1) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) + else + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) spawn(0) var/religion_name = "Christianity" var/new_religion = copytext(sanitize(input(H, "You are the Chaplain. Would you like to change your religion? Default is Christianity, in SPACE.", "Name change", religion_name)),1,MAX_NAME_LEN) diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 900061d9639..8d57e15fcc1 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -99,6 +99,10 @@ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/chemist(H), slot_belt) H.equip_to_slot_or_del(new /obj/item/clothing/suit/labcoat/chemist(H), slot_wear_suit) + if(H.backbag == 1) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) + else + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) return 1 @@ -122,6 +126,10 @@ H.equip_to_slot_or_del(new /obj/item/device/pda/geneticist(H), slot_belt) H.equip_to_slot_or_del(new /obj/item/clothing/suit/labcoat/genetics(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store) + if(H.backbag == 1) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) + else + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) return 1 /* diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index f1a202f1341..0a8a881f34b 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -18,6 +18,10 @@ H.equip_to_slot_or_del(new /obj/item/device/pda/heads/rd(H), slot_belt) H.equip_to_slot_or_del(new /obj/item/clothing/suit/labcoat(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/weapon/clipboard(H), slot_l_hand) + if(H.backbag == 1) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) + else + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) return 1 @@ -41,6 +45,8 @@ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/toxins(H), slot_belt) H.equip_to_slot_or_del(new /obj/item/clothing/suit/labcoat/science(H), slot_wear_suit) -// H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(H), slot_wear_mask) -// H.equip_to_slot_or_del(new /obj/item/weapon/tank/oxygen(H), slot_l_hand) + if(H.backbag == 1) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) + else + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) return 1 \ No newline at end of file diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index 1cbca540bd1..3d785619255 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -134,7 +134,7 @@ w_class = 2.0 force = 4.0 distribute_pressure = ONE_ATMOSPHERE*O2STANDARD - volume = 3 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011) + volume = 2 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011) New() diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 35c600dcd53..7a14927c057 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -173,26 +173,54 @@ var/global/floorIsLava = 0 /datum/player_info/var/content // text content of the information /datum/player_info/var/timestamp // Because this is bloody annoying +#define PLAYER_NOTES_ENTRIES_PER_PAGE 50 /datum/admins/proc/PlayerNotes() set category = "Admin" set name = "Player Notes" - var/dat = "Player notes
" if (!istype(src,/datum/admins)) src = usr.client.holder if (!istype(src,/datum/admins)) usr << "Error: you are not an admin!" return + PlayerNotesPage(1) +/datum/admins/proc/PlayerNotesPage(page) + var/dat = "Player notes
" var/savefile/S=new("data/player_notes.sav") var/list/note_keys S >> note_keys if(!note_keys) dat += "No notes found." else + dat += "
" sortList(note_keys) - for(var/t in note_keys) + + // Display the notes on the current page + var/number_pages = note_keys.len / PLAYER_NOTES_ENTRIES_PER_PAGE + // Emulate ceil(why does BYOND not have ceil) + if(number_pages != round(number_pages)) + number_pages = round(number_pages) + 1 + var/page_index = page - 1 + if(page_index < 0 || page_index >= number_pages) + return + + var/lower_bound = page_index * PLAYER_NOTES_ENTRIES_PER_PAGE + 1 + var/upper_bound = (page_index + 1) * PLAYER_NOTES_ENTRIES_PER_PAGE + upper_bound = min(upper_bound, note_keys.len) + for(var/index = lower_bound, index <= upper_bound, index++) + var/t = note_keys[index] dat += "" - dat += "
[t]
" + + dat += "
" + + // Display a footer to select different pages + for(var/index = 1, index <= number_pages, index++) + if(index == page) + dat += "" + dat += "[index] " + if(index == page) + dat += "" + usr << browse(dat, "window=player_notes;size=400x400") @@ -1123,4 +1151,4 @@ proc/move_alien_ship() alien_ship_location = 0 else alien_ship_location = 1 - return \ No newline at end of file + return diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index 96bc9b6e20c..9f9e9abd3fa 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -2706,4 +2706,6 @@ var/list/admin_datums = list() switch(href_list["notes"]) if("show") show_player_info(ckey) + if("list") + PlayerNotesPage(href_list["index"]) return diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 067ef207acd..ab930dcfe56 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -87,19 +87,19 @@ visible_message("\red [A.name] is hit by the [src.name] in the [def_zone]!")//X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter if(istype(firer, /mob)) - M.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src]" - firer.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src]" - log_attack("[firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src]") + M.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src.type]" + firer.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src.type]" + log_attack("[firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src.type]") - log_admin("ATTACK: [firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src]") - msg_admin_attack("ATTACK: [firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src]") //BS12 EDIT ALG + log_admin("ATTACK: [firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src.type]") + msg_admin_attack("ATTACK: [firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src.type]") //BS12 EDIT ALG else M.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [M]/[M.ckey] with a [src]" - log_attack("UNKNOWN shot [M] ([M.ckey]) with a [src]") + log_attack("UNKNOWN shot [M] ([M.ckey]) with a [src.type]") log_admin("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a [src]") - msg_admin_attack("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a [src]") //BS12 EDIT ALG + msg_admin_attack("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a [src.type]") //BS12 EDIT ALG spawn(0) if(A)