Files
Aurora.3/code/modules/mining/coins.dm
Fluffy a3a4d46fa7 Hitby refactor (#19624)
Refactored hitby to be in line with TG's version.
Refactored item weight defines to a more clear naming scheme, also in
line with TG's version.
Refactored how the movement bumps are handled, ported signals to handle
them, in preparation for the movement update.
Fixed disposal hit bouncing the hitting atom on the wall.
Items do not push other items anymore if they are tiny.
2024-07-28 20:52:08 +00:00

115 lines
3.1 KiB
Plaintext

/*****************************Coin********************************/
/obj/item/coin
icon = 'icons/obj/coins.dmi'
name = "coin"
icon_state = "coin__heads"
randpixel = 8
desc = "A flat disc or piece of metal with an official stamp. An archaic type of currency."
obj_flags = OBJ_FLAG_CONDUCTABLE
force = 0
throwforce = 0.0
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS
drop_sound = 'sound/items/drop/ring.ogg'
pickup_sound = 'sound/items/pickup/ring.ogg'
var/string_attached
var/sides = 2
var/cmineral = null
var/last_flip = 0 //Spam limiter
/obj/item/coin/New()
randpixel_xy()
/obj/item/coin/gold
name = "gold coin"
icon_state = "coin_gold_heads"
cmineral = "gold"
/obj/item/coin/silver
name = "silver coin"
icon_state = "coin_silver_heads"
cmineral = "silver"
/obj/item/coin/diamond
name = "diamond coin"
icon_state = "coin_diamond_heads"
cmineral = "diamond"
/obj/item/coin/iron
name = "iron coin"
icon_state = "coin_iron_heads"
cmineral = "iron"
/obj/item/coin/phoron
name = "solid phoron coin"
icon_state = "coin_phoron_heads"
cmineral = "phoron"
/obj/item/coin/uranium
name = "uranium coin"
icon_state = "coin_uranium_heads"
cmineral = "uranium"
/obj/item/coin/platinum
name = "platinum coin"
icon_state = "coin_platinum_heads"
cmineral = "platinum"
/obj/item/coin/platinum
name = "mythril coin"
icon_state = "coin_mythril_heads"
cmineral = "mythril"
/obj/item/coin/battlemonsters
name = "battlemonsters coin"
icon_state = "coin_battlemonsters_heads"
cmineral = "battlemonsters"
/obj/item/coin/mining
name = "mining coin"
desc = "A flat disc or piece of metal with an official stamp. This coin can be used at a mining vendor to gain access to additional equipment."
icon_state = "coin_mining_heads"
cmineral = "mining"
/obj/item/coin/attackby(obj/item/attacking_item, mob/user)
if(attacking_item.iscoil())
var/obj/item/stack/cable_coil/CC = attacking_item
if(string_attached)
to_chat(user, SPAN_NOTICE("There already is a string attached to this coin."))
return
if(CC.use(1))
AddOverlays("coin_string_overlay")
string_attached = TRUE
to_chat(user, SPAN_NOTICE("You attach a string to the coin."))
else
to_chat(user, SPAN_NOTICE("This cable coil appears to be empty."))
return
else if(attacking_item.iswirecutter())
if(!string_attached)
..()
return
var/obj/item/stack/cable_coil/CC = new /obj/item/stack/cable_coil(get_turf(user))
CC.amount = 1
CC.update_icon()
ClearOverlays()
string_attached = null
to_chat(user, SPAN_NOTICE("You detach the string from the coin."))
else ..()
/obj/item/coin/attack_self(mob/user)
if(last_flip <= world.time - 20)
last_flip = world.time
var/result = rand(1, sides)
var/comment = ""
if(result == 1)
comment = "tails"
else if(result == 2)
comment = "heads"
flick("coin_[cmineral]_flip", src)
icon_state = "coin_[cmineral]_[comment]"
playsound(get_turf(src), 'sound/items/coinflip.ogg', 100, 1, -4)
user.visible_message(SPAN_NOTICE("\The [user] throws \the [src]. It lands on [comment]!"), \
SPAN_NOTICE("You throw \the [src]. It lands on [comment]!"))