mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Made sure every verb now has a name which starts with a capital letter and makes sense, because OCD. Changed the categories of verbs a lot, now they are in much more sensible tabs. Added a couple of admin verbs: - Right click monkeyize - Call Shuttle - Recall Shuttle Removed some goon verbs. Gave "Coder" admin group a little more admin verbs: - Monkeyize, Cultistize, Abominationize, Call Shuttle, Recall Shuttle, Make Sound Added mobs a "say_message" variable. Now admin-created mobs can "scree", "squeak" etc. instead of just "chimper" or "hiss". git-svn-id: http://tgstation13.googlecode.com/svn/trunk@138 316c924e-a436-60f5-8080-3fe189b3f50e
183 lines
4.3 KiB
Plaintext
183 lines
4.3 KiB
Plaintext
/world/proc/load_mode()
|
|
var/text = file2text("data/mode.txt")
|
|
if (text)
|
|
var/list/lines = dd_text2list(text, "\n")
|
|
if (lines[1])
|
|
master_mode = lines[1]
|
|
diary << "Saved mode is '[master_mode]'"
|
|
|
|
/world/proc/save_mode(var/the_mode)
|
|
var/F = file("data/mode.txt")
|
|
fdel(F)
|
|
F << the_mode
|
|
|
|
/world/proc/load_motd()
|
|
join_motd = file2text("config/motd.txt")
|
|
auth_motd = file2text("config/motd-auth.txt")
|
|
no_auth_motd = file2text("config/motd-noauth.txt")
|
|
|
|
/world/proc/load_rules()
|
|
rules = file2text("config/rules.html")
|
|
if (!rules)
|
|
rules = "<html><head><title>Rules</title><body>There are no rules! Go nuts!</body></html>"
|
|
|
|
/world/proc/load_admins()
|
|
var/text = file2text("config/admins.txt")
|
|
if (!text)
|
|
diary << "Failed to load config/admins.txt\n"
|
|
else
|
|
var/list/lines = dd_text2list(text, "\n")
|
|
for(var/line in lines)
|
|
if (!line)
|
|
continue
|
|
|
|
if (copytext(line, 1, 2) == ";")
|
|
continue
|
|
|
|
var/pos = findtext(line, " - ", 1, null)
|
|
if (pos)
|
|
var/m_key = copytext(line, 1, pos)
|
|
var/a_lev = copytext(line, pos + 3, length(line) + 1)
|
|
admins[m_key] = a_lev
|
|
diary << ("ADMIN: [m_key] = [a_lev]")
|
|
|
|
/world/proc/load_testers()
|
|
var/text = file2text("config/testers.txt")
|
|
if (!text)
|
|
diary << "Failed to load config/testers.txt\n"
|
|
else
|
|
var/list/lines = dd_text2list(text, "\n")
|
|
for(var/line in lines)
|
|
if (!line)
|
|
continue
|
|
|
|
if (copytext(line, 1, 2) == ";")
|
|
continue
|
|
|
|
var/pos = findtext(line, " - ", 1, null)
|
|
if (pos)
|
|
var/m_key = copytext(line, 1, pos)
|
|
var/a_lev = copytext(line, pos + 3, length(line) + 1)
|
|
admins[m_key] = a_lev
|
|
|
|
|
|
/world/proc/load_configuration()
|
|
config = new /datum/configuration()
|
|
config.load("config/config.txt")
|
|
config.loadsql("config/dbconfig.txt")
|
|
// apply some settings from config..
|
|
abandon_allowed = config.respawn
|
|
|
|
/world/New()
|
|
src.load_configuration()
|
|
|
|
if (config && config.server_name != null && config.server_suffix && world.port > 0)
|
|
// dumb and hardcoded but I don't care~
|
|
config.server_name += " #[(world.port % 1000) / 100]"
|
|
|
|
src.load_mode()
|
|
src.load_motd()
|
|
src.load_rules()
|
|
src.load_admins()
|
|
|
|
src.update_status()
|
|
|
|
makepowernets()
|
|
|
|
sun = new /datum/sun()
|
|
|
|
vote = new /datum/vote()
|
|
|
|
radio_controller = new /datum/controller/radio()
|
|
//main_hud1 = new /obj/hud()
|
|
data_core = new /obj/datacore()
|
|
|
|
..()
|
|
|
|
sleep(50)
|
|
|
|
plmaster = new /obj/overlay( )
|
|
plmaster.icon = 'tile_effects.dmi'
|
|
plmaster.icon_state = "plasma"
|
|
plmaster.layer = FLY_LAYER
|
|
plmaster.mouse_opacity = 0
|
|
|
|
slmaster = new /obj/overlay( )
|
|
slmaster.icon = 'tile_effects.dmi'
|
|
slmaster.icon_state = "sleeping_agent"
|
|
slmaster.layer = FLY_LAYER
|
|
slmaster.mouse_opacity = 0
|
|
|
|
src.update_status()
|
|
|
|
master_controller = new /datum/controller/game_controller()
|
|
spawn(-1) master_controller.setup()
|
|
return
|
|
|
|
//Crispy fullban
|
|
/world/Reboot(var/reason)
|
|
spawn(0)
|
|
world << sound(pick('newroundsexy.ogg','newroundsexy2.ogg')) // Skie
|
|
//if(prob(40))
|
|
// for(var/mob/M in world)
|
|
// if(M.client)
|
|
// M << sound('NewRound2.ogg')
|
|
//else
|
|
// for(var/mob/M in world)
|
|
// if(M.client)
|
|
// M << sound('NewRound.ogg')
|
|
|
|
for(var/client/C)
|
|
if (config.server) //if you set a server location in config.txt, it sends you there instead of trying to reconnect to the same world address. -- NeoFite
|
|
C <<link("byond://[config.server]")
|
|
else
|
|
C << link("byond://[world.address]:[world.port]")
|
|
|
|
// sleep(10) // wait for sound to play
|
|
..(reason)
|
|
|
|
/atom/proc/check_eye(user as mob)
|
|
if (istype(user, /mob/living/silicon/ai))
|
|
return 1
|
|
return
|
|
|
|
/atom/proc/on_reagent_change()
|
|
return
|
|
|
|
/atom/proc/Bumped(AM as mob|obj)
|
|
return
|
|
|
|
/atom/movable/Bump(var/atom/A as mob|obj|turf|area, yes)
|
|
spawn( 0 )
|
|
if ((A && yes))
|
|
A.last_bumped = world.timeofday
|
|
A.Bumped(src)
|
|
return
|
|
..()
|
|
return
|
|
|
|
// **** Note in 40.93.4, split into obj/mob/turf point verbs, no area
|
|
|
|
/atom/verb/point()
|
|
set name = "Point To"
|
|
set src in oview()
|
|
|
|
if (!usr || !isturf(usr.loc))
|
|
return
|
|
else if (usr.stat != 0 || usr.restrained())
|
|
return
|
|
|
|
var/tile = get_turf(src)
|
|
if (!tile)
|
|
return
|
|
|
|
var/P = new /obj/decal/point(tile)
|
|
spawn (20)
|
|
del(P)
|
|
|
|
usr.visible_message("<b>[usr]</b> points to [src]")
|
|
|
|
/obj/decal/point/point()
|
|
set src in oview()
|
|
set hidden = 1
|
|
return |