diff --git a/code/game/objects/items/weapons/cash.dm b/code/game/objects/items/weapons/cash.dm index be8cc69f39f..8cdc276ef6a 100644 --- a/code/game/objects/items/weapons/cash.dm +++ b/code/game/objects/items/weapons/cash.dm @@ -1,7 +1,10 @@ var/global/list/moneytypes=list( /obj/item/weapon/spacecash/c1000 = 1000, - /obj/item/weapon/spacecash/c500 = 500, // Might get rid of this. + /obj/item/weapon/spacecash/c500 = 500, + /obj/item/weapon/spacecash/c200 = 200, /obj/item/weapon/spacecash/c100 = 100, + /obj/item/weapon/spacecash/c50 = 50, + /obj/item/weapon/spacecash/c20 = 20, /obj/item/weapon/spacecash/c10 = 10, /obj/item/weapon/spacecash = 1, ) @@ -42,19 +45,36 @@ var/global/list/moneytypes=list( /obj/item/weapon/spacecash/update_icon() icon_state = "cash[worth]" // Up to 100 items per stack. - overlays = 0 - var/stacksize=round(amount/25) pixel_x=rand(-7,7) pixel_y=rand(-14,14) - if(stacksize) - // 0 = single - // 1 = 1/4 stack - // 2 = 1/2 stack - // 3 = 3/4 stack - // 4 = full stack - var/image/stack = image(icon,icon_state="cashstack[stacksize]") - stack.color=stack_color - overlays += stack + +/obj/item/weapon/spacecash/proc/collect_from(var/obj/item/weapon/spacecash/cash) + if(cash.worth == src.worth) + var/taking = min(100-src.amount,cash.amount) + cash.amount -= taking + src.amount += taking + if(cash.amount <= 0) + qdel(cash) + return taking + return 0 + +/obj/item/weapon/spacecash/afterattack(atom/A as mob|obj, mob/user as mob) + if(istype(A, /turf) || istype(A, /obj/structure/table) || istype(A, /obj/structure/rack)) + var/turf/T = get_turf(A) + var/collected = 0 + for(var/obj/item/weapon/spacecash/cash in T) + if(cash.worth == src.worth) + collected += collect_from(cash) + if(collected) + update_icon() + user << "You add [collected] credit [amount > 1 ? "chips":"chip"] to your stack of cash." + else if(istype(A,/obj/item/weapon/spacecash)) + var/obj/item/weapon/spacecash/cash = A + var/collected = src.collect_from(cash) + if(collected) + update_icon() + user << "You add [collected] credit [amount > 1 ? "chips":"chip"] to your stack of cash." + /obj/item/weapon/spacecash/proc/get_total() return worth * amount @@ -62,37 +82,30 @@ var/global/list/moneytypes=list( /obj/item/weapon/spacecash/c10 icon_state = "cash10" worth = 10 - stack_color = "#663200" /obj/item/weapon/spacecash/c20 icon_state = "cash10" worth = 20 - stack_color = "#663200" /obj/item/weapon/spacecash/c50 icon_state = "cash10" worth = 50 - stack_color = "#663200" /obj/item/weapon/spacecash/c100 icon_state = "cash100" worth = 100 - stack_color = "#663200" /obj/item/weapon/spacecash/c200 icon_state = "cash200" worth = 200 - stack_color = "#663200" /obj/item/weapon/spacecash/c500 icon_state = "cash500" worth = 500 - stack_color = "#663200" /obj/item/weapon/spacecash/c1000 icon_state = "cash1000" worth = 1000 - stack_color = "#333333" /proc/dispense_cash(var/amount, var/loc) for(var/cashtype in moneytypes) diff --git a/icons/obj/money.dmi b/icons/obj/money.dmi index 7b8a5e09495..5a053c07e05 100644 Binary files a/icons/obj/money.dmi and b/icons/obj/money.dmi differ