mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 16:47:13 +01:00
Merge pull request #16934 from Core0verload/cargo
Changes to Stocks Console UI, cargo fixes
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
"l" = (/obj/item/weapon/coin/gold,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
|
||||
"m" = (/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
|
||||
"n" = (/obj/structure/table/wood/poker,/obj/item/stack/spacecash/c1000,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
|
||||
"o" = (/obj/item/weapon/moneybag,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
|
||||
"o" = (/obj/item/weapon/storage/bag/money,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
|
||||
"p" = (/obj/structure/table/wood/poker,/obj/item/weapon/ore/gold,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
|
||||
"q" = (/obj/structure/table/wood/poker,/obj/item/stack/spacecash/c20,/obj/item/stack/spacecash/c50,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
|
||||
"r" = (/obj/structure/table/wood/poker,/obj/item/stack/spacecash/c500,/obj/item/stack/spacecash/c100,/obj/item/stack/spacecash/c1000,/turf/open/floor/engine/cult{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
"cl" = (/obj/structure/chair/stool,/turf/open/floor/wood,/area/awaymission/wwmines)
|
||||
"cm" = (/obj/structure/bookcase{icon_state = "book-5"},/turf/open/floor/wood,/area/awaymission/wwgov)
|
||||
"cn" = (/turf/open/floor/wood,/area/awaymission/wwgov)
|
||||
"co" = (/obj/item/weapon/moneybag,/turf/open/floor/wood,/area/awaymission/wwgov)
|
||||
"co" = (/obj/item/weapon/storage/bag/money,/turf/open/floor/wood,/area/awaymission/wwgov)
|
||||
"cp" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/plasteel{icon_state = "stage_bleft"},/area/awaymission/wwgov)
|
||||
"cq" = (/obj/structure/table/wood,/turf/open/floor/plasteel{icon_state = "stage_bleft"},/area/awaymission/wwgov)
|
||||
"cr" = (/obj/structure/table/wood,/obj/machinery/microwave,/turf/open/floor/plasteel{icon_state = "stage_bleft"},/area/awaymission/wwgov)
|
||||
@@ -122,7 +122,7 @@
|
||||
"cu" = (/obj/structure/lattice,/obj/structure/lattice,/turf/open/space,/area/space)
|
||||
"cv" = (/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/carpet,/area/awaymission/wwmines)
|
||||
"cw" = (/turf/open/floor/carpet,/area/awaymission/wwgov)
|
||||
"cx" = (/obj/item/weapon/moneybag,/turf/open/floor/carpet,/area/awaymission/wwgov)
|
||||
"cx" = (/obj/item/weapon/storage/bag/money,/turf/open/floor/carpet,/area/awaymission/wwgov)
|
||||
"cy" = (/obj/structure/chair/wood/wings,/turf/open/floor/wood,/area/awaymission/wwgov)
|
||||
"cz" = (/turf/open/floor/plasteel{icon_state = "stage_bleft"},/area/awaymission/wwgov)
|
||||
"cA" = (/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/wood,/area/awaymission/wwmines)
|
||||
|
||||
@@ -37,6 +37,9 @@
|
||||
..()
|
||||
if(copy)
|
||||
copy_type = copy.type
|
||||
if(istype(copy, /obj/item/documents/photocopy)) // Copy Of A Copy Of A Copy
|
||||
var/obj/item/documents/photocopy/C = copy
|
||||
copy_type = C.copy_type
|
||||
|
||||
/obj/item/documents/photocopy/attackby(obj/item/O, mob/user, params)
|
||||
if(istype(O, /obj/item/toy/crayon/red) || istype(O, /obj/item/toy/crayon/blue))
|
||||
|
||||
@@ -248,7 +248,7 @@
|
||||
if(rand(0,1))
|
||||
new /obj/item/stack/spacecash/c1000(T)
|
||||
else
|
||||
var/obj/item/weapon/moneybag/M = new(T)
|
||||
var/obj/item/weapon/storage/bag/money/M = new(T)
|
||||
for(var/i in 1 to rand(5,50))
|
||||
new /obj/item/weapon/coin/gold(M)
|
||||
if(14)
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
message = "of enemy intelligence"
|
||||
var/global/originals_recieved = list()
|
||||
var/global/copies_recieved = list()
|
||||
var/copy_path = null
|
||||
export_types = list(/obj/item/documents/syndicate)
|
||||
|
||||
/datum/export/intel/applies_to(obj/O, contr = 0, emag = 0)
|
||||
@@ -23,6 +24,9 @@
|
||||
return FALSE
|
||||
if((C.copy_type in originals_recieved) || (C.copy_type in copies_recieved))
|
||||
return FALSE
|
||||
if(copy_path && !ispath(C.copy_type, copy_path))
|
||||
return FALSE
|
||||
|
||||
else if(O.type in originals_recieved)
|
||||
return FALSE
|
||||
|
||||
@@ -45,6 +49,7 @@
|
||||
cost = 15000 // Allows double agents to earn some cargo points without failing their objectives.
|
||||
unit_name = "photocopied article"
|
||||
export_types = list(/obj/item/documents/photocopy)
|
||||
copy_path = /obj/item/documents/syndicate
|
||||
|
||||
|
||||
|
||||
@@ -58,6 +63,7 @@
|
||||
cost = 15000
|
||||
unit_name = "photocopied article"
|
||||
export_types = list(/obj/item/documents/photocopy)
|
||||
copy_path = /obj/item/documents/nanotrasen
|
||||
|
||||
// Selling Syndicate docs to Syndicate, why not?
|
||||
/datum/export/intel/syndie/recovered
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
var/group = ""
|
||||
var/hidden = FALSE
|
||||
var/contraband = FALSE
|
||||
var/cost = 7 // Minimum cost, or infinite points are possible.
|
||||
var/cost = 700 // Minimum cost, or infinite points are possible.
|
||||
var/access = FALSE
|
||||
var/list/contains = null
|
||||
var/crate_name = "crate"
|
||||
|
||||
@@ -212,8 +212,8 @@
|
||||
var/turf/T = get_step(src,output_dir)
|
||||
if(T)
|
||||
var/obj/item/O = new P(src)
|
||||
var/obj/item/weapon/moneybag/M = locate(/obj/item/weapon/moneybag, T)
|
||||
var/obj/item/weapon/storage/bag/money/M = locate(/obj/item/weapon/storage/bag/money, T)
|
||||
if(!M)
|
||||
M = new /obj/item/weapon/moneybag(src)
|
||||
M = new /obj/item/weapon/storage/bag/money(src)
|
||||
unload_mineral(M)
|
||||
O.loc = M
|
||||
@@ -1,112 +1,20 @@
|
||||
/*****************************Money bag********************************/
|
||||
|
||||
/obj/item/weapon/moneybag
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
name = "Money bag"
|
||||
/obj/item/weapon/storage/bag/money
|
||||
name = "money bag"
|
||||
icon_state = "moneybag"
|
||||
flags = CONDUCT
|
||||
force = 10
|
||||
throwforce = 0
|
||||
w_class = 4
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
|
||||
/obj/item/weapon/moneybag/attack_hand(mob/user)
|
||||
var/amt_gold = 0
|
||||
var/amt_silver = 0
|
||||
var/amt_diamond = 0
|
||||
var/amt_iron = 0
|
||||
var/amt_plasma = 0
|
||||
var/amt_uranium = 0
|
||||
var/amt_clown = 0
|
||||
var/amt_adamantine = 0
|
||||
|
||||
for (var/obj/item/weapon/coin/C in contents)
|
||||
if (istype(C,/obj/item/weapon/coin/diamond))
|
||||
amt_diamond++;
|
||||
if (istype(C,/obj/item/weapon/coin/plasma))
|
||||
amt_plasma++;
|
||||
if (istype(C,/obj/item/weapon/coin/iron))
|
||||
amt_iron++;
|
||||
if (istype(C,/obj/item/weapon/coin/silver))
|
||||
amt_silver++;
|
||||
if (istype(C,/obj/item/weapon/coin/gold))
|
||||
amt_gold++;
|
||||
if (istype(C,/obj/item/weapon/coin/uranium))
|
||||
amt_uranium++;
|
||||
if (istype(C,/obj/item/weapon/coin/clown))
|
||||
amt_clown++;
|
||||
if (istype(C,/obj/item/weapon/coin/adamantine))
|
||||
amt_adamantine++;
|
||||
|
||||
var/dat = text("<b>The contents of the moneybag reveal...</b><br>")
|
||||
if (amt_gold)
|
||||
dat += text("Gold coins: [amt_gold] <A href='?src=\ref[src];remove=gold'>Remove one</A><br>")
|
||||
if (amt_silver)
|
||||
dat += text("Silver coins: [amt_silver] <A href='?src=\ref[src];remove=silver'>Remove one</A><br>")
|
||||
if (amt_iron)
|
||||
dat += text("Metal coins: [amt_iron] <A href='?src=\ref[src];remove=iron'>Remove one</A><br>")
|
||||
if (amt_diamond)
|
||||
dat += text("Diamond coins: [amt_diamond] <A href='?src=\ref[src];remove=diamond'>Remove one</A><br>")
|
||||
if (amt_plasma)
|
||||
dat += text("Plasma coins: [amt_plasma] <A href='?src=\ref[src];remove=plasma'>Remove one</A><br>")
|
||||
if (amt_uranium)
|
||||
dat += text("Uranium coins: [amt_uranium] <A href='?src=\ref[src];remove=uranium'>Remove one</A><br>")
|
||||
if (amt_clown)
|
||||
dat += text("Bananium coins: [amt_clown] <A href='?src=\ref[src];remove=clown'>Remove one</A><br>")
|
||||
if (amt_adamantine)
|
||||
dat += text("Adamantine coins: [amt_adamantine] <A href='?src=\ref[src];remove=adamantine'>Remove one</A><br>")
|
||||
user << browse("[dat]", "window=moneybag")
|
||||
|
||||
/obj/item/weapon/moneybag/attackby(obj/item/weapon/W, mob/user, params)
|
||||
..()
|
||||
if (istype(W, /obj/item/weapon/coin))
|
||||
var/obj/item/weapon/coin/C = W
|
||||
if(!user.drop_item())
|
||||
return
|
||||
user << "<span class='notice'>You add the [C.name] into the bag.</span>"
|
||||
contents += C
|
||||
if (istype(W, /obj/item/weapon/moneybag))
|
||||
var/obj/item/weapon/moneybag/C = W
|
||||
for (var/obj/O in C.contents)
|
||||
contents += O;
|
||||
user << "<span class='notice'>You empty the [C.name] into the bag.</span>"
|
||||
return
|
||||
|
||||
/obj/item/weapon/moneybag/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
usr.set_machine(src)
|
||||
src.add_fingerprint(usr)
|
||||
if(href_list["remove"])
|
||||
var/obj/item/weapon/coin/COIN
|
||||
switch(href_list["remove"])
|
||||
if("gold")
|
||||
COIN = locate(/obj/item/weapon/coin/gold,src.contents)
|
||||
if("silver")
|
||||
COIN = locate(/obj/item/weapon/coin/silver,src.contents)
|
||||
if("iron")
|
||||
COIN = locate(/obj/item/weapon/coin/iron,src.contents)
|
||||
if("diamond")
|
||||
COIN = locate(/obj/item/weapon/coin/diamond,src.contents)
|
||||
if("plasma")
|
||||
COIN = locate(/obj/item/weapon/coin/plasma,src.contents)
|
||||
if("uranium")
|
||||
COIN = locate(/obj/item/weapon/coin/uranium,src.contents)
|
||||
if("clown")
|
||||
COIN = locate(/obj/item/weapon/coin/clown,src.contents)
|
||||
if("adamantine")
|
||||
COIN = locate(/obj/item/weapon/coin/adamantine,src.contents)
|
||||
if(!COIN)
|
||||
return
|
||||
COIN.loc = src.loc
|
||||
return
|
||||
w_class = 4
|
||||
max_w_class = 3
|
||||
storage_slots = 80
|
||||
max_combined_w_class = 40
|
||||
can_hold = list(/obj/item/weapon/coin, /obj/item/stack/spacecash)
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/moneybag/vault
|
||||
|
||||
/obj/item/weapon/moneybag/vault/New()
|
||||
/obj/item/weapon/storage/bag/money/vault/New()
|
||||
..()
|
||||
new /obj/item/weapon/coin/silver(src)
|
||||
new /obj/item/weapon/coin/silver(src)
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
var/list/storage_objects = list(
|
||||
/obj/structure/closet,
|
||||
/obj/item/weapon/storage,
|
||||
/obj/item/weapon/moneybag,
|
||||
/obj/item/weapon/storage/bag/money,
|
||||
/obj/item/weapon/folder, // Selling a folder of stamped manifests? Sure, why not!
|
||||
/obj/structure/filingcabinet,
|
||||
/obj/structure/ore_box,
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
icon_screen = "stock_computer"
|
||||
icon_keyboard = "no_keyboard"
|
||||
var/logged_in = "Cargo Department"
|
||||
var/vmode = 0
|
||||
var/vmode = 1
|
||||
|
||||
/obj/machinery/computer/stockexchange/New()
|
||||
..()
|
||||
@@ -22,35 +22,47 @@
|
||||
user.machine = src
|
||||
|
||||
var/css={"<style>
|
||||
.company {
|
||||
.change {
|
||||
font-weight: bold;
|
||||
font-family: monospace;
|
||||
}
|
||||
.up {
|
||||
background: #00a000;
|
||||
}
|
||||
.down {
|
||||
background: #a00000;
|
||||
}
|
||||
.stable {
|
||||
width: 100%
|
||||
border: 1px solid black;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.stable tr {
|
||||
border: none;
|
||||
border: 1px solid #305260;
|
||||
border-spacing: 4px 4px;
|
||||
}
|
||||
.stable td, .stable th {
|
||||
border-right: 1px solid white;
|
||||
border-bottom: 1px solid black;
|
||||
border: 1px solid #305260;
|
||||
padding: 0px 3px;
|
||||
}
|
||||
.bankrupt {
|
||||
border: 1px solid #a00000;
|
||||
background: #a00000;
|
||||
}
|
||||
|
||||
a.updated {
|
||||
color: red;
|
||||
}
|
||||
</style>"}
|
||||
var/dat = "<html><head><title>[station_name()] Stock Exchange</title>[css]</head><body><h2>Stock Exchange</h2>"
|
||||
dat += "<i>This is a work in progress. Certain features may not be available.</i><br>"
|
||||
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>Cargo Points:</b> [balance()] points</span><br>"
|
||||
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]
|
||||
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>"
|
||||
dat += "<b>Stock Transaction Log:</b> <a href='?src=\ref[src];show_logs=1'>Check</a>"
|
||||
dat += "<b>View mode:</b> <a href='?src=\ref[src];cycleview=1'>[vmode ? "Compact" : "Full"]</a> "
|
||||
dat += "<b>Stock Transaction Log:</b> <a href='?src=\ref[src];show_logs=1'>Check</a><br>"
|
||||
|
||||
dat += "<i>This is a work in progress. Certain features may not be available.</i>"
|
||||
|
||||
dat += "<h3>Listed stocks</h3>"
|
||||
|
||||
if (vmode == 0)
|
||||
@@ -105,15 +117,40 @@ a.updated {
|
||||
dat += "<a href='?src=\ref[src];archive=\ref[S]'>View news archives</a>[news ? " <span style='color:red'>(updated)</span>" : null]</div>"
|
||||
else if (vmode == 1)
|
||||
dat += "<b>Actions:</b> + Buy, - Sell, (A)rchives, (H)istory<br><br>"
|
||||
dat += "<table class='stable'><tr><th> </th><th>Name</th><th>Value</th><th>Owned/Avail</th><th>Actions</th></tr>"
|
||||
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)
|
||||
var/mystocks = 0
|
||||
if (logged_in && (logged_in in S.shareholders))
|
||||
mystocks = S.shareholders[logged_in]
|
||||
dat += "<tr><td>[S.disp_value_change > 0 ? "+" : (S.disp_value_change < 0 ? "-" : "=")]</td><td><span class='company'>[S.name] "
|
||||
if (S.bankrupt)
|
||||
dat += "<b style='color:red'>B</b>"
|
||||
dat += "</span> <span class='s_company'>([S.short_name])</span></td><td>[S.current_value]</td><td><b>[mystocks]</b>/[S.available_shares]</td>"
|
||||
|
||||
if(S.bankrupt)
|
||||
dat += "<tr class='bankrupt'>"
|
||||
else
|
||||
dat += "<tr>"
|
||||
|
||||
if(S.disp_value_change > 0)
|
||||
dat += "<td class='change up'>+</td>"
|
||||
else if(S.disp_value_change < 0)
|
||||
dat += "<td class='change down'>-</td>"
|
||||
else
|
||||
dat += "<td class='change'>=</td>"
|
||||
|
||||
dat += "<td><b>[S.short_name]</b></td>"
|
||||
dat += "<td>[S.name]</td>"
|
||||
|
||||
if(!S.bankrupt)
|
||||
dat += "<td>[S.current_value]</td>"
|
||||
else
|
||||
dat += "<td>0</td>"
|
||||
|
||||
if(mystocks)
|
||||
dat += "<td><b>[mystocks]</b></td>"
|
||||
else
|
||||
dat += "<td>0</td>"
|
||||
|
||||
dat += "<td>[S.available_shares]</td>"
|
||||
var/news = 0
|
||||
if (logged_in)
|
||||
var/list/LR = stockExchange.last_read[S]
|
||||
@@ -129,12 +166,17 @@ a.updated {
|
||||
break
|
||||
dat += "<td>"
|
||||
if (S.bankrupt)
|
||||
dat += "+ - "
|
||||
dat += "<span class='linkOff'>+</span> <span class='linkOff'>-</span> "
|
||||
else
|
||||
dat += "<a href='?src=\ref[src];buyshares=\ref[S]'>+</a> <a href='?src=\ref[src];sellshares=\ref[S]'>-</a> "
|
||||
dat += "<a href='?src=\ref[src];archive=\ref[S]' class='[news ? "updated" : "default"]'>(A)</a> <a href='?src=\ref[src];viewhistory=\ref[S]'>(H)</a></td></tr>"
|
||||
dat += "<a href='?src=\ref[src];archive=\ref[S]' class='[news ? "updated" : "default"]'>(A)</a> <a href='?src=\ref[src];viewhistory=\ref[S]'>(H)</a></td>"
|
||||
|
||||
dat += "</tr>"
|
||||
|
||||
dat += "</table>"
|
||||
|
||||
dat += "</body></html>"
|
||||
var/datum/browser/popup = new(user, "computer", "Stock Exchange", 600, 400)
|
||||
var/datum/browser/popup = new(user, "computer", "Stock Exchange", 600, 600)
|
||||
popup.set_content(dat)
|
||||
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
||||
popup.open()
|
||||
@@ -153,27 +195,25 @@ a.updated {
|
||||
user << "<span class='danger'>This account does not own any shares of [S.name]!</span>"
|
||||
return
|
||||
var/price = S.current_value
|
||||
var/amt = round(input(user, "How many shares? (Have: [avail], unit price: [price])", "Sell shares in [S.name]", 0) as num|null)
|
||||
if (!user)
|
||||
var/amt = round(input(user, "How many shares? \n(Have: [avail], unit price: [price])", "Sell shares in [S.name]", 0) as num|null)
|
||||
amt = min(amt, S.shareholders[logged_in])
|
||||
|
||||
if (!user || !(user in range(1, src)))
|
||||
return
|
||||
if (!amt)
|
||||
return
|
||||
if (!(user in range(1, src)))
|
||||
return
|
||||
if (li != logged_in)
|
||||
return
|
||||
b = SSshuttle.points
|
||||
if (!isnum(b))
|
||||
user << "<span class='danger'>No active account on the console!</span>"
|
||||
return
|
||||
if (amt > S.shareholders[logged_in])
|
||||
user << "<span class='danger'>You do not own that many shares!</span>"
|
||||
return
|
||||
|
||||
var/total = amt * S.current_value
|
||||
if (!S.sellShares(logged_in, amt))
|
||||
user << "<span class='danger'>Could not complete transaction.</span>"
|
||||
return
|
||||
user << "<span class='notice'>Sold [amt] shares of [S.name] at [S.current_value] a share for [total] points.</span>"
|
||||
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)
|
||||
|
||||
/obj/machinery/computer/stockexchange/proc/buy_some_shares(var/datum/stock/S, var/mob/user)
|
||||
@@ -190,12 +230,8 @@ a.updated {
|
||||
var/avail = S.available_shares
|
||||
var/price = S.current_value
|
||||
var/canbuy = round(b / price)
|
||||
var/amt = round(input(user, "How many shares? (Available: [avail], unit price: [price], can buy: [canbuy])", "Buy shares in [S.name]", 0) as num|null)
|
||||
if (!user)
|
||||
return
|
||||
if (!amt)
|
||||
return
|
||||
if (!(user in range(1, src)))
|
||||
var/amt = round(input(user, "How many shares? \n(Available: [avail], unit price: [price], can buy: [canbuy])", "Buy shares in [S.name]", 0) as num|null)
|
||||
if (!user || !(user in range(1, src)))
|
||||
return
|
||||
if (li != logged_in)
|
||||
return
|
||||
@@ -203,17 +239,16 @@ a.updated {
|
||||
if (!isnum(b))
|
||||
user << "<span class='danger'>No active account on the console!</span>"
|
||||
return
|
||||
if (amt > S.available_shares)
|
||||
user << "<span class='danger'>That many shares are not available!</span>"
|
||||
return
|
||||
var/total = amt * S.current_value
|
||||
if (total > b)
|
||||
user << "<span class='danger'>Insufficient points.</span>"
|
||||
|
||||
amt = min(amt, S.available_shares, round(b / S.current_value))
|
||||
if (!amt)
|
||||
return
|
||||
if (!S.buyShares(logged_in, amt))
|
||||
user << "<<span class='danger'>Could not complete transaction.</span>"
|
||||
return
|
||||
user << "<span class='notice'>Bought [amt] shares of [S.name] at [S.current_value] a share for [total] points.</span>"
|
||||
|
||||
var/total = amt * S.current_value
|
||||
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)
|
||||
|
||||
/obj/machinery/computer/stockexchange/proc/do_borrowing_deal(var/datum/borrow/B, var/mob/user)
|
||||
@@ -261,7 +296,7 @@ a.updated {
|
||||
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>"
|
||||
continue
|
||||
if(istype(L, /datum/stock_log/sell))
|
||||
dat += "[L.time] | <b>[L.user_name]</b> sold <b>[L.stocks]</b> stocks at [L.shareprice] a share for <b>[L.money]</b> totalcredits from <b>[L.company_name]</b>.<br>"
|
||||
dat += "[L.time] | <b>[L.user_name]</b> sold <b>[L.stocks]</b> stocks at [L.shareprice] a share for <b>[L.money]</b> total credits from <b>[L.company_name]</b>.<br>"
|
||||
continue
|
||||
if(istype(L, /datum/stock_log/borrow))
|
||||
dat += "[L.time] | <b>[L.user_name]</b> borrowed <b>[L.stocks]</b> stocks with a deposit of <b>[L.money]</b> credits in <b>[L.company_name]</b>.<br>"
|
||||
|
||||
Reference in New Issue
Block a user