mirror of
https://github.com/CHOMPstation/CHOMPstation.git
synced 2026-07-20 11:32:51 +01:00
Merge resolution.
This commit is contained in:
@@ -58,6 +58,9 @@ var/savefile/Banlist
|
||||
CMinutes = (world.realtime / 10) / 60
|
||||
return 1
|
||||
|
||||
/hook/startup/proc/loadBans()
|
||||
return LoadBans()
|
||||
|
||||
/proc/LoadBans()
|
||||
|
||||
Banlist = new("data/banlist.bdb")
|
||||
|
||||
@@ -1014,14 +1014,6 @@ var/global/floorIsLava = 0
|
||||
message_admins("\blue [key_name_admin(usr)] toggled guests game entering [guests_allowed?"":"dis"]allowed.", 1)
|
||||
feedback_add_details("admin_verb","TGU") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/unjobban_panel()
|
||||
set name = "Unjobban Panel"
|
||||
set category = "Admin"
|
||||
if (src.holder)
|
||||
src.holder.unjobbanpanel()
|
||||
feedback_add_details("admin_verb","UJBP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
|
||||
/datum/admins/proc/output_ai_laws()
|
||||
var/ai_number = 0
|
||||
for(var/mob/living/silicon/S in mob_list)
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
/proc/investigate_subject2file(var/subject)
|
||||
return file("[INVESTIGATE_DIR][subject].html")
|
||||
|
||||
/hook/startup/proc/resetInvestigate()
|
||||
investigate_reset()
|
||||
return 1
|
||||
|
||||
/proc/investigate_reset()
|
||||
if(fdel(INVESTIGATE_DIR)) return 1
|
||||
return 0
|
||||
|
||||
@@ -53,6 +53,10 @@ var/list/admin_ranks = list() //list of all ranks with associated rights
|
||||
#endif
|
||||
|
||||
|
||||
/hook/startup/proc/loadAdmins()
|
||||
load_admins()
|
||||
return 1
|
||||
|
||||
/proc/load_admins()
|
||||
//clear the datums references
|
||||
admin_datums.Cut()
|
||||
|
||||
@@ -76,9 +76,7 @@ var/list/admin_verbs_admin = list(
|
||||
)
|
||||
var/list/admin_verbs_ban = list(
|
||||
/client/proc/unban_panel,
|
||||
/client/proc/jobbans,
|
||||
/client/proc/unjobban_panel,
|
||||
// /client/proc/DB_ban_panel
|
||||
/client/proc/jobbans
|
||||
)
|
||||
var/list/admin_verbs_sounds = list(
|
||||
/client/proc/play_local_sound,
|
||||
|
||||
@@ -50,6 +50,10 @@ DEBUG
|
||||
jobban_loadbanfile()
|
||||
*/
|
||||
|
||||
/hook/startup/proc/loadJobBans()
|
||||
jobban_loadbanfile()
|
||||
return 1
|
||||
|
||||
/proc/jobban_loadbanfile()
|
||||
if(config.ban_legacy_system)
|
||||
var/savefile/S=new("data/job_full.ban")
|
||||
@@ -101,15 +105,6 @@ DEBUG
|
||||
text2file(formatted_log,"data/ban_unban_log.txt")
|
||||
|
||||
|
||||
/proc/jobban_updatelegacybans()
|
||||
if(!jobban_runonce)
|
||||
log_admin("Updating jobbanfile!")
|
||||
// Updates bans.. Or fixes them. Either way.
|
||||
for(var/T in jobban_keylist)
|
||||
if(!T) continue
|
||||
jobban_runonce++ //don't run this update again
|
||||
|
||||
|
||||
/proc/jobban_remove(X)
|
||||
for (var/i = 1; i <= length(jobban_keylist); i++)
|
||||
if( findtext(jobban_keylist[i], "[X]") )
|
||||
|
||||
@@ -891,19 +891,6 @@
|
||||
if("Cancel")
|
||||
return
|
||||
|
||||
else if(href_list["unjobbanf"])
|
||||
if(!check_rights(R_BAN)) return
|
||||
|
||||
var/banfolder = href_list["unjobbanf"]
|
||||
Banlist.cd = "/base/[banfolder]"
|
||||
var/key = Banlist["key"]
|
||||
if(alert(usr, "Are you sure you want to unban [key]?", "Confirmation", "Yes", "No") == "Yes")
|
||||
if (RemoveBanjob(banfolder))
|
||||
unjobbanpanel()
|
||||
else
|
||||
alert(usr,"This ban has already been lifted / does not exist.","Error","Ok")
|
||||
unjobbanpanel()
|
||||
|
||||
else if(href_list["mute"])
|
||||
if(!check_rights(R_MOD,0) && !check_rights(R_ADMIN)) return
|
||||
|
||||
|
||||
@@ -77,6 +77,9 @@
|
||||
allowed = list(/obj/item/weapon/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder)
|
||||
armor = list(melee = 50, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/storage/det_suit/black
|
||||
icon_state = "detective2"
|
||||
|
||||
//Forensics
|
||||
/obj/item/clothing/suit/storage/forensics
|
||||
name = "jacket"
|
||||
|
||||
@@ -71,6 +71,22 @@
|
||||
flags = FPRINT | TABLEPASS
|
||||
siemens_coefficient = 0.9
|
||||
|
||||
/obj/item/clothing/under/det/black
|
||||
icon_state = "detective2"
|
||||
item_color = "detective2"
|
||||
|
||||
/obj/item/clothing/under/det/slob
|
||||
icon_state = "polsuit"
|
||||
item_color = "polsuit"
|
||||
|
||||
/obj/item/clothing/under/det/slob/verb/rollup()
|
||||
set name = "Roll suit sleevels"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
item_color = item_color == "polsuit" ? "polsuit_rolled" : "polsuit"
|
||||
if (ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
H.update_inv_w_uniform(1)
|
||||
|
||||
/obj/item/clothing/head/det_hat
|
||||
name = "hat"
|
||||
@@ -80,6 +96,10 @@
|
||||
armor = list(melee = 50, bullet = 5, laser = 25,energy = 10, bomb = 0, bio = 0, rad = 0)
|
||||
siemens_coefficient = 0.9
|
||||
|
||||
/obj/item/clothing/head/det_hat/black
|
||||
icon_state = "detective2"
|
||||
|
||||
|
||||
/*
|
||||
* Head of Security
|
||||
*/
|
||||
|
||||
@@ -494,12 +494,6 @@
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "chal_appara_1"
|
||||
|
||||
/obj/item/clothing/gloves/fluff/ashley_rifler_1 //Vinceluk: Ashley Rifler
|
||||
name = "Purple Glove"
|
||||
desc = "A single, purple glove. Initials A.R. are written on the inside of it."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "ashley_rifler_1"
|
||||
|
||||
//////////// Eye Wear ////////////
|
||||
|
||||
/obj/item/clothing/glasses/meson/fluff/book_berner_1 //asanadas: Book Berner
|
||||
@@ -591,14 +585,6 @@
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "labcoat_pink_open"
|
||||
|
||||
/obj/item/clothing/suit/storage/det_suit/fluff/graycoat //vinceluk: Seth Sealis
|
||||
name = "gray coat"
|
||||
desc = "Old, worn out coat. It's seen better days."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "graycoat"
|
||||
item_state = "graycoat"
|
||||
item_color = "graycoat"
|
||||
|
||||
/obj/item/clothing/suit/storage/det_suit/fluff/leatherjack //atomicdog92: Seth Sealis
|
||||
name = "leather jacket"
|
||||
desc = "A black leather coat, popular amongst punks, greasers, and other galactic scum."
|
||||
@@ -949,3 +935,26 @@
|
||||
name = "[labeled] bottle"
|
||||
desc = "A small bottle. Contains [labeled]"
|
||||
icon_state = "bottle[color]"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/flask/fluff/yuri_kornienkovich_flask
|
||||
name = "Yuri's Flask"
|
||||
desc = "An old gold plated flask. Nothing noteworthy about it besides it being gold and the red star on the worn out leather around it. There is also an engraving on the cap that is rather hard to see but it looks like \"Kornienkovich\" "
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "yuri_kornienkovich_flask"
|
||||
|
||||
/obj/item/clothing/under/fluff/mai_yang_dress // Mai Yang's pretty pretty dress.
|
||||
name = "White Cheongsam"
|
||||
desc = "It is a white cheongsam dress."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "mai_yang"
|
||||
item_state = "mai_yang"
|
||||
item_color = "mai_yang"
|
||||
|
||||
/obj/item/clothing/under/fluff/sakura_hokkaido_kimono
|
||||
name = "Sakura Kimono"
|
||||
desc = "A pale-pink, nearly white, kimono with a red and gold obi. There is a embroidered design of cherry blossom flowers covering the kimono."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "sakura_hokkaido_kimono"
|
||||
item_state = "sakura_hokkaido_kimono"
|
||||
item_color = "sakura_hokkaido_kimono"
|
||||
|
||||
|
||||
@@ -4,11 +4,16 @@
|
||||
return
|
||||
|
||||
/proc/send2mainirc(var/msg)
|
||||
if(config.use_irc_bot && config.main_irc && config.irc_bot_host)
|
||||
ext_python("ircbot_message.py", "[config.comms_password] [config.irc_bot_host] [config.main_irc] [msg]")
|
||||
if(config.main_irc)
|
||||
send2irc(config.main_irc, msg)
|
||||
return
|
||||
|
||||
/proc/send2adminirc(var/msg)
|
||||
if(config.use_irc_bot && config.admin_irc && config.irc_bot_host)
|
||||
ext_python("ircbot_message.py", "[config.comms_password] [config.irc_bot_host] [config.admin_irc] [msg]")
|
||||
if(config.admin_irc)
|
||||
send2irc(config.admin_irc, msg)
|
||||
return
|
||||
|
||||
|
||||
/hook/startup/proc/ircNotify()
|
||||
send2mainirc("Server starting up on [config.server? "byond://[config.server]" : "byond://[world.address]:[world.port]"]")
|
||||
return 1
|
||||
|
||||
@@ -1142,4 +1142,19 @@ I said no!
|
||||
|
||||
/datum/recipe/cracker
|
||||
reagents = list("flour" = 5, "sodiumchloride" = 1)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/cracker
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/cracker
|
||||
|
||||
/datum/recipe/stuffing
|
||||
reagents = list("water" = 5, "sodiumchloride" = 1, "blackpepper" = 1)
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/sliceable/bread,
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/stuffing
|
||||
|
||||
/datum/recipe/tofurkey
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/tofu,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/tofu,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/stuffing,
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/tofurkey
|
||||
|
||||
@@ -13,6 +13,10 @@ var/datum/paiController/paiController // Global handler for pAI candidates
|
||||
var/ready = 0
|
||||
|
||||
|
||||
/hook/startup/proc/paiControllerSetup()
|
||||
paiController = new /datum/paiController()
|
||||
return 1
|
||||
|
||||
|
||||
/datum/paiController
|
||||
var/list/pai_candidates = list()
|
||||
|
||||
@@ -79,6 +79,9 @@
|
||||
|
||||
// rebuild all power networks from scratch
|
||||
|
||||
/hook/startup/proc/buildPowernets()
|
||||
return makepowernets()
|
||||
|
||||
/proc/makepowernets()
|
||||
for(var/datum/powernet/PN in powernets)
|
||||
del(PN)
|
||||
@@ -101,6 +104,8 @@
|
||||
if(!M.powernet) continue // APCs have powernet=0 so they don't count as network nodes directly
|
||||
M.powernet.nodes[M] = M
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
// returns a list of all power-related objects (nodes, cable, junctions) in turf,
|
||||
// excluding source, that match the direction d
|
||||
|
||||
@@ -14,6 +14,25 @@
|
||||
multiple_sprites = 1
|
||||
|
||||
|
||||
/obj/item/ammo_magazine/c45
|
||||
name = "magazine (.45)"
|
||||
icon_state = "45"
|
||||
ammo_type = "/obj/item/ammo_casing/c45"
|
||||
max_ammo = 7
|
||||
multiple_sprites = 1
|
||||
|
||||
/obj/item/ammo_magazine/c45/empty
|
||||
max_ammo = 0
|
||||
|
||||
/obj/item/ammo_magazine/c45r
|
||||
name = "magazine (.45 rubber)"
|
||||
icon_state = "45"
|
||||
ammo_type = "/obj/item/ammo_casing/c45r"
|
||||
max_ammo = 7
|
||||
multiple_sprites = 1
|
||||
|
||||
/obj/item/ammo_magazine/c45r/empty
|
||||
max_ammo = 0
|
||||
|
||||
/obj/item/ammo_magazine/a418
|
||||
name = "ammo box (.418)"
|
||||
|
||||
@@ -43,6 +43,10 @@
|
||||
caliber = ".45"
|
||||
projectile_type = "/obj/item/projectile/bullet/midbullet"
|
||||
|
||||
/obj/item/ammo_casing/c45r
|
||||
desc = "A .45 rubber bullet casing."
|
||||
caliber = ".45"
|
||||
projectile_type = "/obj/item/projectile/bullet/weakbullet"
|
||||
|
||||
/obj/item/ammo_casing/a12mm
|
||||
desc = "A 12mm bullet casing."
|
||||
|
||||
@@ -70,6 +70,26 @@
|
||||
user << "<span class='warning'>You remove the modifications on [src]! Now it will fire .38 rounds.</span>"
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/detective/semiauto
|
||||
desc = "A cheap Martian knock-off of a Colt M1911. Uses less-than-lethal .45 rounds."
|
||||
name = "\improper Colt M1911"
|
||||
icon_state = "colt"
|
||||
max_shells = 7
|
||||
caliber = ".45"
|
||||
ammo_type = "/obj/item/ammo_casing/c45r"
|
||||
load_method = 2
|
||||
|
||||
/obj/item/weapon/gun/projectile/detective/semiauto/New()
|
||||
..()
|
||||
empty_mag = new /obj/item/ammo_magazine/c45r/empty(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/detective/semiauto/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag)
|
||||
..()
|
||||
if(!loaded.len && empty_mag)
|
||||
empty_mag.loc = get_turf(src.loc)
|
||||
empty_mag = null
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/mateba
|
||||
|
||||
@@ -542,6 +542,24 @@
|
||||
reagents.add_reagent("nutriment", 3)
|
||||
src.bitesize = 3
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/tofurkey
|
||||
name = "Tofurkey"
|
||||
desc = "A fake turkey made from tofu."
|
||||
icon_state = "tofurkey"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 12)
|
||||
reagents.add_reagent("stoxin", 3)
|
||||
bitesize = 3
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/stuffing
|
||||
name = "Stuffing"
|
||||
desc = "Moist, peppery breadcrumbs for filling the body cavities of dead birds. Dig in!"
|
||||
icon_state = "stuffing"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 3)
|
||||
bitesize = 1
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/carpmeat
|
||||
name = "carp fillet"
|
||||
|
||||
Reference in New Issue
Block a user