mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-24 05:38:15 +01:00
[MIRROR] Telecrystals are only stored on the mind
This commit is contained in:
+4
-1
@@ -55,6 +55,9 @@
|
||||
|
||||
var/rev_cooldown = 0
|
||||
var/tcrystals = 0
|
||||
var/list/purchase_log = new
|
||||
var/used_TC = 0
|
||||
|
||||
|
||||
// the world.time since the mob has been brigged, or -1 if not at all
|
||||
var/brigged_since = -1
|
||||
@@ -73,7 +76,7 @@
|
||||
|
||||
/datum/mind/New(var/key)
|
||||
src.key = key
|
||||
|
||||
purchase_log = list()
|
||||
..()
|
||||
|
||||
/datum/mind/proc/transfer_to(mob/living/new_character)
|
||||
|
||||
@@ -22,22 +22,22 @@
|
||||
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(U.uses)
|
||||
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(obj/item/device/uplink/U)
|
||||
return default_uplink_selection.get_random_item(U.uses, 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(var/telecrystals)
|
||||
/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)
|
||||
/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()
|
||||
for(var/datum/uplink_item/UI in get_random_uplink_items(U, U.uses, loc))
|
||||
for(var/datum/uplink_item/UI in get_random_uplink_items(U, M.mind.tcrystals, loc))
|
||||
UI.purchase_log(U)
|
||||
var/obj/item/I = UI.get_goods(U, loc)
|
||||
if(istype(I))
|
||||
@@ -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 *
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
category = /datum/uplink_category/telecrystals
|
||||
blacklisted = 1
|
||||
|
||||
/datum/uplink_item/item/telecrystal/get_goods(var/obj/item/device/uplink/U, var/loc)
|
||||
return new /obj/item/stack/telecrystal(loc, cost(U.uses))
|
||||
/datum/uplink_item/item/telecrystal/get_goods(var/obj/item/device/uplink/U, var/loc, var/mob/M)
|
||||
return new /obj/item/stack/telecrystal(loc, cost(U, M.mind.tcrystals))
|
||||
|
||||
/datum/uplink_item/item/telecrystal/one
|
||||
name = "Telecrystal - 01"
|
||||
@@ -35,5 +35,5 @@
|
||||
/datum/uplink_item/item/telecrystal/all
|
||||
name = "Telecrystals - Empty Uplink"
|
||||
|
||||
/datum/uplink_item/item/telecrystal/all/cost(var/telecrystals)
|
||||
return max(1, telecrystals)
|
||||
/datum/uplink_item/item/telecrystal/all/cost(obj/item/device/uplink/U, mob/M)
|
||||
return max(1, M.mind.tcrystals)
|
||||
@@ -6,12 +6,6 @@
|
||||
..()
|
||||
items = list()
|
||||
|
||||
/datum/uplink_category/proc/can_view(obj/item/device/uplink/U)
|
||||
for(var/datum/uplink_item/item in items)
|
||||
if(item.can_view(U))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
datum/uplink_category/ammunition
|
||||
name = "Ammunition"
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ var/datum/uplink/uplink = new()
|
||||
var/item_cost = 0
|
||||
var/datum/uplink_category/category // Item category
|
||||
var/list/datum/antagonist/antag_roles // Antag roles this item is displayed to. If empty, display to all.
|
||||
var/blacklisted = 0
|
||||
var/blacklisted = FALSE
|
||||
|
||||
/datum/uplink_item/item
|
||||
var/path = null
|
||||
@@ -48,50 +48,40 @@ var/datum/uplink/uplink = new()
|
||||
if(!extra_args)
|
||||
return
|
||||
|
||||
if(!can_buy(U))
|
||||
if(!can_buy(U, user.mind.tcrystals))
|
||||
return
|
||||
|
||||
<<<<<<< HEAD
|
||||
if(U.tgui_status(user, GLOB.tgui_inventory_state) != STATUS_INTERACTIVE)
|
||||
||||||| parent of a7d4de830f... Merge pull request #9704 from VOREStation/upstream-merge-7869
|
||||
if(U.CanUseTopic(user, GLOB.tgui_inventory_state) != STATUS_INTERACTIVE)
|
||||
=======
|
||||
if(U.tgui_status(user, GLOB.tgui_deep_inventory_state) != STATUS_INTERACTIVE)
|
||||
>>>>>>> a7d4de830f... Merge pull request #9704 from VOREStation/upstream-merge-7869
|
||||
return
|
||||
|
||||
var/cost = cost(U.uses, U)
|
||||
var/cost = cost(U, user.mind.tcrystals)
|
||||
|
||||
var/goods = get_goods(U, get_turf(user), user, extra_args)
|
||||
if(!goods)
|
||||
return
|
||||
|
||||
purchase_log(U)
|
||||
purchase_log(user)
|
||||
user.mind.tcrystals -= cost
|
||||
U.used_TC += cost
|
||||
user.mind.used_TC += cost
|
||||
return goods
|
||||
|
||||
// Any additional arguments you wish to send to the get_goods
|
||||
/datum/uplink_item/proc/extra_args(var/mob/user)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/datum/uplink_item/proc/can_buy(obj/item/device/uplink/U)
|
||||
if(cost(U.uses, U) > U.uses)
|
||||
return 0
|
||||
/datum/uplink_item/proc/can_buy(var/obj/item/device/uplink/U, var/telecrystals)
|
||||
if(cost(U, telecrystals) > telecrystals)
|
||||
return FALSE
|
||||
|
||||
return can_view(U)
|
||||
return TRUE
|
||||
|
||||
/datum/uplink_item/proc/can_view(obj/item/device/uplink/U)
|
||||
// Making the assumption that if no uplink was supplied, then we don't care about antag roles
|
||||
if(!U || !antag_roles.len)
|
||||
return 1
|
||||
|
||||
// With no owner, there's no need to check antag status.
|
||||
if(!U.uplink_owner)
|
||||
return 0
|
||||
|
||||
for(var/antag_role in antag_roles)
|
||||
var/datum/antagonist/antag = all_antag_types[antag_role]
|
||||
if(!isnull(antag))
|
||||
if(antag.is_antagonist(U.uplink_owner))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/datum/uplink_item/proc/cost(var/telecrystals, obj/item/device/uplink/U)
|
||||
/datum/uplink_item/proc/cost(obj/item/device/uplink/U, mob/M)
|
||||
. = item_cost
|
||||
if(U)
|
||||
. = U.get_item_cost(src, .)
|
||||
@@ -100,19 +90,19 @@ var/datum/uplink/uplink = new()
|
||||
return desc
|
||||
|
||||
// get_goods does not necessarily return physical objects, it is simply a way to acquire the uplink item without paying
|
||||
/datum/uplink_item/proc/get_goods(var/obj/item/device/uplink/U, var/loc)
|
||||
return 0
|
||||
/datum/uplink_item/proc/get_goods(var/obj/item/device/uplink/U, var/loc, mob/user)
|
||||
return FALSE
|
||||
|
||||
/datum/uplink_item/proc/log_icon()
|
||||
return
|
||||
|
||||
/datum/uplink_item/proc/purchase_log(obj/item/device/uplink/U)
|
||||
/datum/uplink_item/proc/purchase_log(mob/M)
|
||||
feedback_add_details("traitor_uplink_items_bought", "[src]")
|
||||
log_and_message_admins("used \the [U.loc] to buy \a [src]")
|
||||
U.purchase_log[src] = U.purchase_log[src] + 1
|
||||
log_and_message_admins("\the [M] bought \a [src] through the uplink")
|
||||
M.mind.purchase_log[src] += 1
|
||||
|
||||
datum/uplink_item/dd_SortValue()
|
||||
return cost(INFINITY)
|
||||
return item_cost
|
||||
|
||||
/********************************
|
||||
* *
|
||||
@@ -133,7 +123,7 @@ datum/uplink_item/dd_SortValue()
|
||||
A.put_in_any_hand_if_possible(I)
|
||||
return I
|
||||
|
||||
/datum/uplink_item/item/get_goods(var/obj/item/device/uplink/U, var/loc)
|
||||
/datum/uplink_item/item/get_goods(var/obj/item/device/uplink/U, var/loc, var/mob/user)
|
||||
var/obj/item/I = new path(loc)
|
||||
return I
|
||||
|
||||
@@ -208,7 +198,7 @@ datum/uplink_item/dd_SortValue()
|
||||
|
||||
/proc/get_surplus_items(var/obj/item/device/uplink/U, var/remaining_TC, var/loc)
|
||||
var/list/bought_items = list()
|
||||
var/override = 1
|
||||
var/override = TRUE
|
||||
while(remaining_TC)
|
||||
var/datum/uplink_item/I = all_uplink_selection.get_random_item(remaining_TC, U, bought_items, override)
|
||||
if(!I)
|
||||
|
||||
Reference in New Issue
Block a user