April sync (#360)
* Maps and things no code/icons * helpers defines globalvars * Onclick world.dm orphaned_procs * subsystems Round vote and shuttle autocall done here too * datums * Game folder * Admin - chatter modules * clothing - mining * modular computers - zambies * client * mob level 1 * mob stage 2 + simple_animal * silicons n brains * mob stage 3 + Alien/Monkey * human mobs * icons updated * some sounds * emitter y u no commit * update tgstation.dme * compile fixes * travis fixes Also removes Fast digest mode, because reasons. * tweaks for travis Mentors are broke again Also fixes Sizeray guns * oxygen loss fix for vore code. * removes unused code * some code updates * bulk fixes * further fixes * outside things * whoops. * Maint bar ported * GLOBs.
This commit is contained in:
@@ -14,11 +14,11 @@
|
||||
M += ucfirst(P)
|
||||
return jointext(M, " ")
|
||||
|
||||
var/global/list/FrozenAccounts = list()
|
||||
GLOBAL_LIST_EMPTY(FrozenAccounts)
|
||||
|
||||
/proc/list_frozen()
|
||||
for (var/A in FrozenAccounts)
|
||||
to_chat(usr, "[A]: [length(FrozenAccounts[A])] borrows")
|
||||
for (var/A in GLOB.FrozenAccounts)
|
||||
to_chat(usr, "[A]: [length(GLOB.FrozenAccounts[A])] borrows")
|
||||
|
||||
/datum/article
|
||||
var/headline = "Something big is happening"
|
||||
@@ -94,11 +94,11 @@ var/global/list/FrozenAccounts = list()
|
||||
/datum/article/proc/generateAuthorName()
|
||||
switch(rand(1,3))
|
||||
if (1)
|
||||
return "[consonant()]. [pick(last_names)]"
|
||||
return "[consonant()]. [pick(GLOB.last_names)]"
|
||||
if (2)
|
||||
return "[prob(50) ? pick(first_names_male) : pick(first_names_female)] [consonant()].[prob(50) ? "[consonant()]. " : null] [pick(last_names)]"
|
||||
return "[prob(50) ? pick(GLOB.first_names_male) : pick(GLOB.first_names_female)] [consonant()].[prob(50) ? "[consonant()]. " : null] [pick(GLOB.last_names)]"
|
||||
if (3)
|
||||
return "[prob(50) ? pick(first_names_male) : pick(first_names_female)] \"[prob(50) ? pick(first_names_male) : pick(first_names_female)]\" [pick(last_names)]"
|
||||
return "[prob(50) ? pick(GLOB.first_names_male) : pick(GLOB.first_names_female)] \"[prob(50) ? pick(GLOB.first_names_male) : pick(GLOB.first_names_female)]\" [pick(GLOB.last_names)]"
|
||||
|
||||
/datum/article/proc/formatSpacetime()
|
||||
var/ticksc = round(ticks/100)
|
||||
|
||||
@@ -64,8 +64,8 @@ a.updated {
|
||||
var/dat = "<html><head><title>[station_name()] Stock Exchange</title>[css]</head><body>"
|
||||
|
||||
dat += "<span class='user'>Welcome, <b>[logged_in]</b></span><br><span class='balance'><b>Credits:</b> [balance()] </span><br>"
|
||||
for (var/datum/stock/S in stockExchange.last_read)
|
||||
var/list/LR = stockExchange.last_read[S]
|
||||
for (var/datum/stock/S in GLOB.stockExchange.last_read)
|
||||
var/list/LR = GLOB.stockExchange.last_read[S]
|
||||
if (!(logged_in in LR))
|
||||
LR[logged_in] = 0
|
||||
dat += "<b>View mode:</b> <a href='?src=\ref[src];cycleview=1'>[vmode ? "Compact" : "Full"]</a> "
|
||||
@@ -76,7 +76,7 @@ a.updated {
|
||||
dat += "<h3>Listed stocks</h3>"
|
||||
|
||||
if (vmode == 0)
|
||||
for (var/datum/stock/S in stockExchange.stocks)
|
||||
for (var/datum/stock/S in GLOB.stockExchange.stocks)
|
||||
var/mystocks = 0
|
||||
if (logged_in && (logged_in in S.shareholders))
|
||||
mystocks = S.shareholders[logged_in]
|
||||
@@ -94,7 +94,7 @@ a.updated {
|
||||
dat += "<i>[prod]</i><br>"
|
||||
var/news = 0
|
||||
if (logged_in)
|
||||
var/list/LR = stockExchange.last_read[S]
|
||||
var/list/LR = GLOB.stockExchange.last_read[S]
|
||||
var/lrt = LR[logged_in]
|
||||
for (var/datum/article/A in S.articles)
|
||||
if (A.ticks > lrt)
|
||||
@@ -111,7 +111,7 @@ a.updated {
|
||||
dat += "<table class='stable'>"
|
||||
dat += "<tr><th> </th><th>ID</th><th>Name</th><th>Value</th><th>Owned</th><th>Avail</th><th>Actions</th></tr>"
|
||||
|
||||
for (var/datum/stock/S in stockExchange.stocks)
|
||||
for (var/datum/stock/S in GLOB.stockExchange.stocks)
|
||||
var/mystocks = 0
|
||||
if (logged_in && (logged_in in S.shareholders))
|
||||
mystocks = S.shareholders[logged_in]
|
||||
@@ -144,7 +144,7 @@ a.updated {
|
||||
dat += "<td>[S.available_shares]</td>"
|
||||
var/news = 0
|
||||
if (logged_in)
|
||||
var/list/LR = stockExchange.last_read[S]
|
||||
var/list/LR = GLOB.stockExchange.last_read[S]
|
||||
var/lrt = LR[logged_in]
|
||||
for (var/datum/article/A in S.articles)
|
||||
if (A.ticks > lrt)
|
||||
@@ -205,7 +205,7 @@ a.updated {
|
||||
to_chat(user, "<span class='danger'>Could not complete transaction.</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>Sold [amt] shares of [S.name] at [S.current_value] a share for [total] credits.</span>")
|
||||
stockExchange.add_log(/datum/stock_log/sell, user.name, S.name, amt, S.current_value, total)
|
||||
GLOB.stockExchange.add_log(/datum/stock_log/sell, user.name, S.name, amt, S.current_value, total)
|
||||
|
||||
/obj/machinery/computer/stockexchange/proc/buy_some_shares(var/datum/stock/S, var/mob/user)
|
||||
if (!user || !S)
|
||||
@@ -240,12 +240,12 @@ a.updated {
|
||||
|
||||
var/total = amt * S.current_value
|
||||
to_chat(user, "<span class='notice'>Bought [amt] shares of [S.name] at [S.current_value] a share for [total] credits.</span>")
|
||||
stockExchange.add_log(/datum/stock_log/buy, user.name, S.name, amt, S.current_value, total)
|
||||
GLOB.stockExchange.add_log(/datum/stock_log/buy, user.name, S.name, amt, S.current_value, total)
|
||||
|
||||
/obj/machinery/computer/stockexchange/proc/do_borrowing_deal(var/datum/borrow/B, var/mob/user)
|
||||
if (B.stock.borrow(B, logged_in))
|
||||
to_chat(user, "<span class='notice'>You successfully borrowed [B.share_amount] shares. Deposit: [B.deposit].</span>")
|
||||
stockExchange.add_log(/datum/stock_log/borrow, user.name, B.stock.name, B.share_amount, B.deposit)
|
||||
GLOB.stockExchange.add_log(/datum/stock_log/borrow, user.name, B.stock.name, B.share_amount, B.deposit)
|
||||
else
|
||||
to_chat(user, "<span class='danger'>Could not complete transaction. Check your account balance.</span>")
|
||||
|
||||
@@ -257,7 +257,7 @@ a.updated {
|
||||
usr.machine = src
|
||||
|
||||
if (href_list["viewhistory"])
|
||||
var/datum/stock/S = locate(href_list["viewhistory"]) in stockExchange.stocks
|
||||
var/datum/stock/S = locate(href_list["viewhistory"]) in GLOB.stockExchange.stocks
|
||||
if (S)
|
||||
S.displayValues(usr)
|
||||
|
||||
@@ -265,18 +265,18 @@ a.updated {
|
||||
logged_in = null
|
||||
|
||||
if (href_list["buyshares"])
|
||||
var/datum/stock/S = locate(href_list["buyshares"]) in stockExchange.stocks
|
||||
var/datum/stock/S = locate(href_list["buyshares"]) in GLOB.stockExchange.stocks
|
||||
if (S)
|
||||
buy_some_shares(S, usr)
|
||||
|
||||
if (href_list["sellshares"])
|
||||
var/datum/stock/S = locate(href_list["sellshares"]) in stockExchange.stocks
|
||||
var/datum/stock/S = locate(href_list["sellshares"]) in GLOB.stockExchange.stocks
|
||||
if (S)
|
||||
sell_some_shares(S, usr)
|
||||
|
||||
if (href_list["show_logs"])
|
||||
var/dat = "<html><head><title>Stock Transaction Logs</title></head><body><h2>Stock Transaction Logs</h2><div><a href='?src=\ref[src];show_logs=1'>Refresh</a></div><br>"
|
||||
for(var/D in stockExchange.logs)
|
||||
for(var/D in GLOB.stockExchange.logs)
|
||||
var/datum/stock_log/L = D
|
||||
if(istype(L, /datum/stock_log/buy))
|
||||
dat += "[L.time] | <b>[L.user_name]</b> bought <b>[L.stocks]</b> stocks at [L.shareprice] a share for <b>[L.money]</b> total credits in <b>[L.company_name]</b>.<br>"
|
||||
@@ -295,7 +295,7 @@ a.updated {
|
||||
if (href_list["archive"])
|
||||
var/datum/stock/S = locate(href_list["archive"])
|
||||
if (logged_in && logged_in != "")
|
||||
var/list/LR = stockExchange.last_read[S]
|
||||
var/list/LR = GLOB.stockExchange.last_read[S]
|
||||
LR[logged_in] = world.time
|
||||
var/dat = "<html><head><title>News feed for [S.name]</title></head><body><h2>News feed for [S.name]</h2><div><a href='?src=\ref[src];archive=\ref[S]'>Refresh</a></div>"
|
||||
dat += "<div><h3>Events</h3>"
|
||||
|
||||
@@ -102,11 +102,11 @@
|
||||
company.bankrupt = 1
|
||||
for (var/X in company.shareholders)
|
||||
var/amt = company.shareholders[X]
|
||||
stockExchange.balanceLog(X, -amt * company.current_value)
|
||||
GLOB.stockExchange.balanceLog(X, -amt * company.current_value)
|
||||
company.shareholders = list()
|
||||
company.current_value = 0
|
||||
company.borrow_brokers = list()
|
||||
stockExchange.generateStocks(1)
|
||||
GLOB.stockExchange.generateStocks(1)
|
||||
|
||||
var/bailout = (effect > 0 && prob(80)) || (effect < 0 && prob(20))
|
||||
current_title = "[company.name] [bailout ? "bailed out" : "on a painful rebound"]"
|
||||
@@ -180,7 +180,7 @@
|
||||
/datum/stockEvent/arrest/transition()
|
||||
switch (phase_id)
|
||||
if (0)
|
||||
tname = "[female ? pick(first_names_female) : pick(first_names_male)] [pick(last_names)]"
|
||||
tname = "[female ? pick(GLOB.first_names_female) : pick(GLOB.first_names_male)] [pick(GLOB.last_names)]"
|
||||
next_phase = world.time + rand(300*TIME_MULTIPLIER, 600*TIME_MULTIPLIER) * (10*TIME_MULTIPLIER)
|
||||
var/datum/article/A = generateArrestArticle()
|
||||
if (!A.opinion)
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
L.time = time2text(world.timeofday, "hh:mm")
|
||||
logs += L
|
||||
|
||||
var/global/datum/stockMarket/stockExchange = new
|
||||
GLOBAL_DATUM_INIT(stockExchange, /datum/stockMarket, new)
|
||||
|
||||
/proc/plotBarGraph(var/list/points, var/base_text, var/width=400, var/height=400)
|
||||
var/output = "<table style='border:1px solid black; border-collapse: collapse; width: [width]px; height: [height]px'>"
|
||||
|
||||
@@ -190,10 +190,10 @@
|
||||
if (world.time > borrow.grace_expires)
|
||||
modifyAccount(borrow.borrower, -max(current_value * borrow.share_debt, 0), 1)
|
||||
borrows -= borrow
|
||||
if (borrow.borrower in FrozenAccounts)
|
||||
FrozenAccounts[borrow.borrower] -= borrow
|
||||
if (length(FrozenAccounts[borrow.borrower]) == 0)
|
||||
FrozenAccounts -= borrow.borrower
|
||||
if (borrow.borrower in GLOB.FrozenAccounts)
|
||||
GLOB.FrozenAccounts[borrow.borrower] -= borrow
|
||||
if (length(GLOB.FrozenAccounts[borrow.borrower]) == 0)
|
||||
GLOB.FrozenAccounts -= borrow.borrower
|
||||
qdel(borrow)
|
||||
else if (world.time > borrow.lease_expires)
|
||||
if (borrow.borrower in shareholders)
|
||||
@@ -201,10 +201,10 @@
|
||||
if (amt > borrow.share_debt)
|
||||
shareholders[borrow.borrower] -= borrow.share_debt
|
||||
borrows -= borrow
|
||||
if (borrow.borrower in FrozenAccounts)
|
||||
FrozenAccounts[borrow.borrower] -= borrow
|
||||
if (length(FrozenAccounts[borrow.borrower]) == 0)
|
||||
FrozenAccounts -= borrow.borrower
|
||||
if (borrow.borrower in GLOB.FrozenAccounts)
|
||||
GLOB.FrozenAccounts[borrow.borrower] -= borrow
|
||||
if (length(GLOB.FrozenAccounts[borrow.borrower]) == 0)
|
||||
GLOB.FrozenAccounts -= borrow.borrower
|
||||
qdel(borrow)
|
||||
else
|
||||
shareholders -= borrow.borrower
|
||||
@@ -229,9 +229,9 @@
|
||||
/datum/stock/proc/generateBrokers()
|
||||
if (borrow_brokers.len > 2)
|
||||
return
|
||||
if (!stockExchange.stockBrokers.len)
|
||||
stockExchange.generateBrokers()
|
||||
var/broker = pick(stockExchange.stockBrokers)
|
||||
if (!GLOB.stockExchange.stockBrokers.len)
|
||||
GLOB.stockExchange.generateBrokers()
|
||||
var/broker = pick(GLOB.stockExchange.stockBrokers)
|
||||
var/datum/borrow/B = new
|
||||
B.broker = broker
|
||||
B.stock = src
|
||||
@@ -248,7 +248,7 @@
|
||||
if (by < 0 && SSshuttle.points + by < 0 && !force)
|
||||
return 0
|
||||
SSshuttle.points += by
|
||||
stockExchange.balanceLog(whose, by)
|
||||
GLOB.stockExchange.balanceLog(whose, by)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
@@ -271,10 +271,10 @@
|
||||
borrows += B
|
||||
B.borrower = who
|
||||
B.grace_expires = B.lease_expires + B.grace_time
|
||||
if (!(who in FrozenAccounts))
|
||||
FrozenAccounts[who] = list(B)
|
||||
if (!(who in GLOB.FrozenAccounts))
|
||||
GLOB.FrozenAccounts[who] = list(B)
|
||||
else
|
||||
FrozenAccounts[who] += B
|
||||
GLOB.FrozenAccounts[who] += B
|
||||
return 1
|
||||
|
||||
/datum/stock/proc/buyShares(var/who, var/howmany)
|
||||
|
||||
Reference in New Issue
Block a user