mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-26 10:03:45 +00:00
cost() and can_buy() don't always get minds
This commit is contained in:
@@ -22,18 +22,18 @@
|
||||
desc = "Buys you one random item."
|
||||
|
||||
/datum/uplink_item/item/badassery/random_one/buy(var/obj/item/device/uplink/U, var/mob/user)
|
||||
var/datum/uplink_item/item = default_uplink_selection.get_random_item(user.mind)
|
||||
var/datum/uplink_item/item = default_uplink_selection.get_random_item((user ? user.mind.tcrystals : DEFAULT_TELECRYSTAL_AMOUNT), U)
|
||||
return item.buy(U, user)
|
||||
|
||||
/datum/uplink_item/item/badassery/random_one/can_buy(var/obj/item/device/uplink/U, var/datum/mind/M)
|
||||
return default_uplink_selection.get_random_item(M.tcrystals, U) != null
|
||||
/datum/uplink_item/item/badassery/random_one/can_buy(var/obj/item/device/uplink/U, var/telecrystals)
|
||||
return default_uplink_selection.get_random_item(telecrystals, U) != null
|
||||
|
||||
/datum/uplink_item/item/badassery/random_many
|
||||
name = "Random Items"
|
||||
desc = "Buys you as many random items you can afford. Convenient packaging NOT included."
|
||||
|
||||
/datum/uplink_item/item/badassery/random_many/cost(obj/item/device/uplink/U, mob/M)
|
||||
return max(1, M.mind.tcrystals)
|
||||
/datum/uplink_item/item/badassery/random_many/cost(obj/item/device/uplink/U, var/telecrystals)
|
||||
return max(1, telecrystals)
|
||||
|
||||
/datum/uplink_item/item/badassery/random_many/get_goods(var/obj/item/device/uplink/U, var/loc, var/mob/M)
|
||||
var/list/bought_items = list()
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/datum/uplink_item/item/badassery/random_many/purchase_log(obj/item/device/uplink/U)
|
||||
feedback_add_details("traitor_uplink_items_bought", "[src]")
|
||||
log_and_message_admins("used \the [U.loc] to buy \a [src]")
|
||||
log_and_message_admins("used \the [U.loc] to buy \a [src] at random")
|
||||
|
||||
/****************
|
||||
* Surplus Crate *
|
||||
|
||||
@@ -48,13 +48,13 @@ var/datum/uplink/uplink = new()
|
||||
if(!extra_args)
|
||||
return
|
||||
|
||||
if(!can_buy(U, user.mind))
|
||||
if(!can_buy(U, user.mind.tcrystals))
|
||||
return
|
||||
|
||||
if(U.tgui_status(user, GLOB.tgui_deep_inventory_state) != STATUS_INTERACTIVE)
|
||||
return
|
||||
|
||||
var/cost = cost(U, user)
|
||||
var/cost = cost(U, user.mind.tcrystals)
|
||||
|
||||
var/goods = get_goods(U, get_turf(user), user, extra_args)
|
||||
if(!goods)
|
||||
@@ -69,8 +69,8 @@ var/datum/uplink/uplink = new()
|
||||
/datum/uplink_item/proc/extra_args(var/mob/user)
|
||||
return TRUE
|
||||
|
||||
/datum/uplink_item/proc/can_buy(var/obj/item/device/uplink/U, var/datum/mind/M)
|
||||
if(cost(U, M.tcrystals) > M.tcrystals)
|
||||
/datum/uplink_item/proc/can_buy(var/obj/item/device/uplink/U, var/telecrystals)
|
||||
if(cost(U, telecrystals) > telecrystals)
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
@@ -96,7 +96,7 @@ var/datum/uplink/uplink = new()
|
||||
M.mind.purchase_log[src] += 1
|
||||
|
||||
datum/uplink_item/dd_SortValue()
|
||||
return cost()
|
||||
return item_cost
|
||||
|
||||
/********************************
|
||||
* *
|
||||
|
||||
@@ -22,7 +22,7 @@ var/datum/uplink_random_selection/all_uplink_selection = new/datum/uplink_random
|
||||
items = list()
|
||||
all_items = list()
|
||||
|
||||
/datum/uplink_random_selection/proc/get_random_item(var/datum/mind/M, obj/item/device/uplink/U, var/list/bought_items, var/items_override = 0)
|
||||
/datum/uplink_random_selection/proc/get_random_item(var/telecrystals, obj/item/device/uplink/U, var/list/bought_items, var/items_override = 0)
|
||||
var/const/attempts = 50
|
||||
|
||||
for(var/i = 0; i < attempts; i++)
|
||||
@@ -34,11 +34,11 @@ var/datum/uplink_random_selection/all_uplink_selection = new/datum/uplink_random
|
||||
if(!prob(RI.keep_probability))
|
||||
continue
|
||||
var/datum/uplink_item/I = uplink.items_assoc[RI.uplink_item]
|
||||
if(I.cost(M.tcrystals, U) > M.tcrystals)
|
||||
if(I.cost(U) > telecrystals)
|
||||
continue
|
||||
if(bought_items && (I in bought_items) && !prob(RI.reselect_probability))
|
||||
continue
|
||||
if(U && !I.can_buy(U, M))
|
||||
if(U && !I.can_buy(U, telecrystals))
|
||||
continue
|
||||
return I
|
||||
|
||||
|
||||
Reference in New Issue
Block a user