diff --git a/code/WorkInProgress/Mini/ATM.dm b/code/WorkInProgress/Mini/ATM.dm index 3feb201491..068211a97c 100644 --- a/code/WorkInProgress/Mini/ATM.dm +++ b/code/WorkInProgress/Mini/ATM.dm @@ -21,7 +21,7 @@ log transactions /obj/machinery/atm/attackby(obj/item/I as obj, mob/user as mob) if(ishuman(user)) var/obj/item/weapon/card/id/user_id = src.scan_user(user) - if(istype(I,/obj/item/weapon/spacecash)) + if(istype(I,/obj/item/weapon/money)) user_id.money += I:worth del I @@ -29,7 +29,7 @@ log transactions if(istype(user, /mob/living/silicon)) user << "\red Artificial unit recognized. Artificial units do not currently receive monetary compensation, as per NanoTrasen regulation #1005." return - + var/obj/item/weapon/card/id/user_id = src.scan_user(user) if(..()) return @@ -51,21 +51,21 @@ log transactions //hueg switch for giving moneh out switch(amount) if(1) - new /obj/item/weapon/spacecash(loc) + new /obj/item/weapon/money(loc) if(10) - new /obj/item/weapon/spacecash/c10(loc) + new /obj/item/weapon/money/c10(loc) if(20) - new /obj/item/weapon/spacecash/c20(loc) + new /obj/item/weapon/money/c20(loc) if(50) - new /obj/item/weapon/spacecash/c50(loc) + new /obj/item/weapon/money/c50(loc) if(100) - new /obj/item/weapon/spacecash/c100(loc) + new /obj/item/weapon/money/c100(loc) if(200) - new /obj/item/weapon/spacecash/c200(loc) + new /obj/item/weapon/money/c200(loc) if(500) - new /obj/item/weapon/spacecash/c500(loc) + new /obj/item/weapon/money/c500(loc) if(1000) - new /obj/item/weapon/spacecash/c1000(loc) + new /obj/item/weapon/money/c1000(loc) else usr << browse("You don't have that much money!
Back","window=atm") return diff --git a/code/WorkInProgress/animusstation/atm.dm b/code/WorkInProgress/animusstation/atm.dm index cbb61e6e79..a6dce70e50 100644 --- a/code/WorkInProgress/animusstation/atm.dm +++ b/code/WorkInProgress/animusstation/atm.dm @@ -17,13 +17,13 @@ log transactions idle_power_usage = 10 var obj/item/weapon/card/id/card - obj/item/weapon/spacecash/cashes = list() + obj/item/weapon/money/cashes = list() inserted = 0 accepted = 0 pincode = 0 attackby(var/obj/A, var/mob/user) - if(istype(A,/obj/item/weapon/spacecash)) + if(istype(A,/obj/item/weapon/money)) cashes += A user.drop_item() A.loc = src @@ -100,21 +100,21 @@ log transactions card.money -= amount switch(amount) if(1) - new /obj/item/weapon/spacecash(loc) + new /obj/item/weapon/money(loc) if(10) - new /obj/item/weapon/spacecash/c10(loc) + new /obj/item/weapon/money/c10(loc) if(20) - new /obj/item/weapon/spacecash/c20(loc) + new /obj/item/weapon/money/c20(loc) if(50) - new /obj/item/weapon/spacecash/c50(loc) + new /obj/item/weapon/money/c50(loc) if(100) - new /obj/item/weapon/spacecash/c100(loc) + new /obj/item/weapon/money/c100(loc) if(200) - new /obj/item/weapon/spacecash/c200(loc) + new /obj/item/weapon/money/c200(loc) if(500) - new /obj/item/weapon/spacecash/c500(loc) + new /obj/item/weapon/money/c500(loc) if(1000) - new /obj/item/weapon/spacecash/c1000(loc) + new /obj/item/weapon/money/c1000(loc) else user << "\red Error: Insufficient funds." return @@ -143,7 +143,7 @@ log transactions if (usr.machine==src && get_dist(src, usr) <= 1 || istype(usr, /mob/living/silicon/ai)) if(href_list["eca"]) if(accepted) - for(var/obj/item/weapon/spacecash/M in cashes) + for(var/obj/item/weapon/money/M in cashes) M.loc = loc inserted = 0 if(!cashes) @@ -154,6 +154,8 @@ log transactions if(accepted) card.money += inserted inserted = 0 + if(cashes) + cashes = null if(href_list["lock"]) card = null accepted = 0 diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm index c1ad8303a4..3b44089a33 100644 --- a/code/defines/obj/hydro.dm +++ b/code/defines/obj/hydro.dm @@ -2006,21 +2006,21 @@ New() switch(rand(1,100))//(potency) //It wants to use the default potency instead of the new, so it was always 10. Will try to come back to this later - Cheridan if(0 to 10) - new/obj/item/weapon/spacecash/(src.loc) + new/obj/item/weapon/money/(src.loc) if(11 to 20) - new/obj/item/weapon/spacecash/c10(src.loc) + new/obj/item/weapon/money/c10(src.loc) if(21 to 30) - new/obj/item/weapon/spacecash/c20(src.loc) + new/obj/item/weapon/money/c20(src.loc) if(31 to 40) - new/obj/item/weapon/spacecash/c50(src.loc) + new/obj/item/weapon/money/c50(src.loc) if(41 to 50) - new/obj/item/weapon/spacecash/c100(src.loc) + new/obj/item/weapon/money/c100(src.loc) if(51 to 60) - new/obj/item/weapon/spacecash/c200(src.loc) + new/obj/item/weapon/money/c200(src.loc) if(61 to 80) - new/obj/item/weapon/spacecash/c500(src.loc) + new/obj/item/weapon/money/c500(src.loc) else - new/obj/item/weapon/spacecash/c1000(src.loc) + new/obj/item/weapon/money/c1000(src.loc) spawn(5) //Workaround to keep harvesting from working weirdly. del(src) diff --git a/code/defines/obj/storage.dm b/code/defines/obj/storage.dm index e004018be8..e7aadffa70 100644 --- a/code/defines/obj/storage.dm +++ b/code/defines/obj/storage.dm @@ -264,7 +264,7 @@ icon_state = "wallet" w_class = 2 can_hold = list( - "/obj/item/weapon/spacecash", + "/obj/item/weapon/money", "/obj/item/weapon/card", "/obj/item/clothing/mask/cigarette", "/obj/item/device/flashlight/pen", @@ -308,10 +308,10 @@ /obj/item/weapon/storage/wallet/random/New() ..() - var/item1_type = pick( /obj/item/weapon/spacecash/c10,/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c1000,/obj/item/weapon/spacecash/c20,/obj/item/weapon/spacecash/c200,/obj/item/weapon/spacecash/c50, /obj/item/weapon/spacecash/c500) + var/item1_type = pick( /obj/item/weapon/money/c10,/obj/item/weapon/money/c100,/obj/item/weapon/money/c1000,/obj/item/weapon/money/c20,/obj/item/weapon/money/c200,/obj/item/weapon/money/c50, /obj/item/weapon/money/c500) var/item2_type if(prob(50)) - item2_type = pick( /obj/item/weapon/spacecash/c10,/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c1000,/obj/item/weapon/spacecash/c20,/obj/item/weapon/spacecash/c200,/obj/item/weapon/spacecash/c50, /obj/item/weapon/spacecash/c500) + item2_type = pick( /obj/item/weapon/money/c10,/obj/item/weapon/money/c100,/obj/item/weapon/money/c1000,/obj/item/weapon/money/c20,/obj/item/weapon/money/c200,/obj/item/weapon/money/c50, /obj/item/weapon/money/c500) var/item3_type = pick( /obj/item/weapon/coin/silver, /obj/item/weapon/coin/silver, /obj/item/weapon/coin/gold, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron ) spawn(2) diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 39b66e92b0..9b70e7f0f7 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -158,9 +158,9 @@ name = "super compressed matter cartridge" ammo = 30 -/obj/item/weapon/spacecash +/obj/item/weapon/money name = "stack of credits" - desc = "It's worth 1 credit." + desc = "A pile of 1 credit." gender = PLURAL icon = 'items.dmi' icon_state = "spacecash" @@ -172,90 +172,143 @@ throw_speed = 1 throw_range = 2 w_class = 1.0 + var/currency + var/worth + var/split = 5 + var/round = 0.01 var/access = list() access = access_crate_cash - var/worth = 1 - var/amount = 1 -/obj/item/weapon/spacecash/c10 +/obj/item/weapon/spacecash + New() // Just in case + spawn(1) + new/obj/item/weapon/money(loc) + del src + +/obj/item/weapon/money/proc/updatedesc() + name = "stack of [currency]" + desc = "A pile of [worth] [currency]" + +/obj/item/weapon/money/New(var/nloc, var/nworth=1,var/ncurrency = "credits") + if(!worth) + worth = nworth + if(!currency) + currency = ncurrency + split = round(worth/2,round) + updatedesc() + return ..(nloc) + +/obj/item/weapon/money/c10 icon_state = "spacecash10" access = access_crate_cash - desc = "It's worth 10 credits." + desc = "A pile of 10 credits." worth = 10 -/obj/item/weapon/spacecash/c20 + +/obj/item/weapon/money/c20 icon_state = "spacecash20" access = access_crate_cash - desc = "It's worth 20 credits." - worth = 20 -/obj/item/weapon/spacecash/c50 + desc = "A pile of 20 credits." + +/obj/item/weapon/money/c50 icon_state = "spacecash50" access = access_crate_cash - desc = "It's worth 50 credits." - worth = 50 -/obj/item/weapon/spacecash/c100 + desc = "A pile of 50 credits." + +/obj/item/weapon/money/c100 icon_state = "spacecash100" access = access_crate_cash - desc = "It's worth 100 credits." + desc = "A pile of 100 credits." worth = 100 -/obj/item/weapon/spacecash/c200 + +/obj/item/weapon/money/c200 icon_state = "spacecash200" access = access_crate_cash - desc = "It's worth 200 credits." + desc = "A pile of 200 credits." worth = 200 -/obj/item/weapon/spacecash/c500 + +/obj/item/weapon/money/c500 icon_state = "spacecash500" access = access_crate_cash - desc = "It's worth 500 credits." + desc = "A pile of 500 credits." worth = 500 -/obj/item/weapon/spacecash/c1000 + +/obj/item/weapon/money/c1000 icon_state = "spacecash1000" access = access_crate_cash - desc = "It's worth 1000 credits." + desc = "A pile of 1000 credits." worth = 1000 -/obj/item/weapon/spacecash/attack_self(var/mob/user) - var/dat = "Space cash stack" - dat += "Credit amount - [worth * amount]
" - dat += "Take amount
" - user << browse(dat,"window=money") -/obj/item/weapon/spacecash/Topic(href, href_list) - if(href_list["takemoney"]) - var/a = 1 - a = input(usr,"How much you want take?") as num - if((a > src.amount) || (a < 0)) - usr << "\red You don't have that many credits." - return - src.amount -= a - var/obj/item/weapon/spacecash/S - if(a <= 0) - return - switch(src.worth) - if(1) - S = new /obj/item/weapon/spacecash(get_turf(src)) - if(10) - S = new /obj/item/weapon/spacecash/c10(get_turf(src)) - if(20) - S = new /obj/item/weapon/spacecash/c20(get_turf(src)) - if(50) - S = new /obj/item/weapon/spacecash/c50(get_turf(src)) - if(100) - S = new /obj/item/weapon/spacecash/c100(get_turf(src)) - if(200) - S = new /obj/item/weapon/spacecash/c200(get_turf(src)) - if(500) - S = new /obj/item/weapon/spacecash/c500(get_turf(src)) - if(1000) - S = new /obj/item/weapon/spacecash/c1000(get_turf(src)) - S.amount = a - if(src.amount == 0) - del(src) -/obj/item/weapon/spacecash/attackby(var/obj/I, var/mob/user) - if(!I) - return - if(istype(I,src)) - src.amount += I:amount - user << "You add [I:amount] credits to stack." - del(I) +/obj/item/weapon/money/attack_self(var/mob/user) + interact(user) + +/obj/item/weapon/money/proc/interact(var/mob/user) + + user.machine = src + + var/dat + + dat += "
[worth] [currency]" + dat += "
New pile:" + + dat += "-" + dat += "-" + if(round<=0.1) + dat += "-" + if(round<=0.01) + dat += "-" + dat += "[split]" + if(round<=0.01) + dat += "+" + if(round<=0.1) + dat += "+" + dat += "+" + dat += "+" + dat += "
split" + + + user << browse(dat, "window=computer;size=400x500") + + onclose(user, "computer") + return + +/obj/item/weapon/money/Topic(href, href_list) + if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) + usr.machine = src + + if (href_list["su"]) + var/samt = text2num(href_list["su"]) + if(split+samt0) + split-=samt + if(href_list["split"]) + new /obj/item/weapon/money(get_turf(src),split,currency) + worth-=split + split = round(worth/2,round) + updatedesc() + + + src.add_fingerprint(usr) + src.updateUsrDialog() + for (var/mob/M in viewers(1, src.loc)) + if (M.client && M.machine == src) + src.attack_self(M) + return + +/obj/item/weapon/money/attackby(var/obj/I as obj, var/mob/user as mob) + if(istype(I,/obj/item/weapon/money)) + var/mob/living/carbon/c = user + if(!uppertext(I:currency)==uppertext(currency)) + c<<"You can't mix currencies!" + return ..() + else + worth+=I:worth + c<<"You combine the piles." + updatedesc() + del I + return ..() /obj/item/device/mass_spectrometer diff --git a/code/game/asteroid/artifacts.dm b/code/game/asteroid/artifacts.dm index d4f6fe5e87..ddbb48f106 100644 --- a/code/game/asteroid/artifacts.dm +++ b/code/game/asteroid/artifacts.dm @@ -4,7 +4,7 @@ var/global/list/space_surprises = list( /obj/item/clothing/mask/facehugger/an // /obj/creature =0, // /obj/item/weapon/rcd =0, // /obj/item/weapon/rcd_ammo =0, - // /obj/item/weapon/spacecash =0, + // /obj/item/weapon/money =0, // /obj/item/weapon/cloaking_device =1, // /obj/item/weapon/gun/energy/teleport_gun =0, // /obj/item/weapon/rubber_chicken =0, diff --git a/code/game/objects/closets/kitchen.dm b/code/game/objects/closets/kitchen.dm index 6d75e547c7..5552f5da01 100644 --- a/code/game/objects/closets/kitchen.dm +++ b/code/game/objects/closets/kitchen.dm @@ -65,17 +65,17 @@ /obj/structure/closet/secure_closet/money_freezer/New() ..() sleep(2) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c500(src) - new /obj/item/weapon/spacecash/c500(src) - new /obj/item/weapon/spacecash/c500(src) - new /obj/item/weapon/spacecash/c500(src) - new /obj/item/weapon/spacecash/c500(src) - new /obj/item/weapon/spacecash/c200(src) - new /obj/item/weapon/spacecash/c200(src) - new /obj/item/weapon/spacecash/c200(src) - new /obj/item/weapon/spacecash/c200(src) - new /obj/item/weapon/spacecash/c200(src) + new /obj/item/weapon/money/c1000(src) + new /obj/item/weapon/money/c1000(src) + new /obj/item/weapon/money/c1000(src) + new /obj/item/weapon/money/c500(src) + new /obj/item/weapon/money/c500(src) + new /obj/item/weapon/money/c500(src) + new /obj/item/weapon/money/c500(src) + new /obj/item/weapon/money/c500(src) + new /obj/item/weapon/money/c200(src) + new /obj/item/weapon/money/c200(src) + new /obj/item/weapon/money/c200(src) + new /obj/item/weapon/money/c200(src) + new /obj/item/weapon/money/c200(src) diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm index 1bdecd7d5e..ce0e511088 100644 --- a/code/game/objects/items/weapons/RSF.dm +++ b/code/game/objects/items/weapons/RSF.dm @@ -56,7 +56,7 @@ RSF if (istype(A, /obj/structure/table) && matter >= 1) user << "Dispensing Dosh..." playsound(src.loc, 'click.ogg', 10, 1) - new /obj/item/weapon/spacecash/c10( A.loc ) + new /obj/item/weapon/money/c10( A.loc ) if (isrobot(user)) var/mob/living/silicon/robot/engy = user engy.cell.charge -= 200 //once money becomes useful, I guess changing this to a high ammount, like 500 units a kick, till then, enjoy dosh! @@ -70,7 +70,7 @@ RSF if (istype(A, /turf/simulated/floor) && matter >= 1) user << "Dispensing Dosh..." playsound(src.loc, 'click.ogg', 10, 1) - new /obj/item/weapon/spacecash/c10( A ) + new /obj/item/weapon/money/c10( A ) if (isrobot(user)) var/mob/living/silicon/robot/engy = user engy.cell.charge -= 200 //once money becomes useful, I guess changing this to a high ammount, like 500 units a kick, till then, enjoy dosh! diff --git a/code/game/objects/storage/bible.dm b/code/game/objects/storage/bible.dm index 6d3a9c28df..6ce4abd47c 100644 --- a/code/game/objects/storage/bible.dm +++ b/code/game/objects/storage/bible.dm @@ -2,9 +2,9 @@ ..() new /obj/item/weapon/reagent_containers/food/drinks/beer(src) new /obj/item/weapon/reagent_containers/food/drinks/beer(src) - new /obj/item/weapon/spacecash(src) - new /obj/item/weapon/spacecash(src) - new /obj/item/weapon/spacecash(src) + new /obj/item/weapon/money(src) + new /obj/item/weapon/money(src) + new /obj/item/weapon/money(src) /obj/item/weapon/storage/bible/tajaran/New() ..() diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 3b794c05a1..03e54799e6 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -733,7 +733,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that for(var/obj/item/briefcase_item in sec_briefcase) del(briefcase_item) for(var/i=3, i>0, i--) - sec_briefcase.contents += new /obj/item/weapon/spacecash/c1000 + sec_briefcase.contents += new /obj/item/weapon/money/c1000 sec_briefcase.contents += new /obj/item/weapon/gun/energy/crossbow sec_briefcase.contents += new /obj/item/weapon/gun/projectile/mateba sec_briefcase.contents += new /obj/item/ammo_magazine/a357 diff --git a/code/modules/clothing/uniforms/lawyer.dm b/code/modules/clothing/uniforms/lawyer.dm index 426e3e51e1..5bce12301a 100644 --- a/code/modules/clothing/uniforms/lawyer.dm +++ b/code/modules/clothing/uniforms/lawyer.dm @@ -62,4 +62,4 @@ item_state = "judge" flags = FPRINT | TABLEPASS | ONESIZEFITSALL body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS - allowed = list(/obj/item/weapon/cigpacket,/obj/item/weapon/spacecash) + allowed = list(/obj/item/weapon/cigpacket,/obj/item/weapon/money) diff --git a/code/unused/computer2/peripherals.dm b/code/unused/computer2/peripherals.dm index 4f4184bd4b..9819e46fca 100644 --- a/code/unused/computer2/peripherals.dm +++ b/code/unused/computer2/peripherals.dm @@ -154,7 +154,7 @@ switch(prizeselect) if(1) - prize = new /obj/item/weapon/spacecash( prize_location ) + prize = new /obj/item/weapon/money( prize_location ) prize.name = "space ticket" prize.desc = "It's almost like actual currency!" if(2) diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm index 1358ea9287..fa921dce75 100755 --- a/maps/tgstation.2.0.8.dmm +++ b/maps/tgstation.2.0.8.dmm @@ -3815,7 +3815,7 @@ "bvs" = (/obj/machinery/door/airlock/glass{name = "Genetics"; req_access_txt = "9"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bvt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "Genetics Inner Shutters"; name = "Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/genetics) "bvu" = (/obj/structure/disposalpipe/segment,/obj/structure/table,/obj/item/weapon/storage/diskbox,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bvv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Genetics Research"; req_combined_access_txt = "9; 7"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bvv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Genetics Research"; req_access_txt = "30"; req_combined_access_txt = "0"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bvw" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bvx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bvy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/toxins/gasstorage) @@ -7066,7 +7066,7 @@ "cFT" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/planet/clown) "cFU" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/planet/clown) "cFV" = (/obj/structure/stool,/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station) -"cFW" = (/obj/structure/table/woodentable,/obj/item/weapon/spacecash/c500,/obj/item/weapon/spacecash/c500,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station) +"cFW" = (/obj/structure/table/woodentable,/obj/item/weapon/money/c500,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station) "cFX" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station) "cFY" = (/obj/structure/stool,/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/wizard_station) "cFZ" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)