mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Restore power cell sprite to "V2" and add cells to protolathe
-Restored power cell sprites to the "V2" sprites as I called them. -Disabled base and virgo power cell/device/power_cell_research files and moved them into chomp modularity folder instead. Added to the protolathe (I hope because I forgot to last time): -Giga device cells -Giga large cells -Rechargeable weapon cell -EMP-proof device cell -EMP-proof weapon device cell -Potato device cell All the giga and recharging cells will require precursor tech 1.
This commit is contained in:
234
modular_chomp/code/modules/power/cells/device_cells.dm
Normal file
234
modular_chomp/code/modules/power/cells/device_cells.dm
Normal file
@@ -0,0 +1,234 @@
|
||||
/*
|
||||
* Device
|
||||
*/
|
||||
/obj/item/weapon/cell/device
|
||||
name = "device power cell"
|
||||
desc = "A small power cell designed to power handheld devices."
|
||||
icon = 'modular_chomp/icons/obj/power_cells.dmi'
|
||||
icon_state = "m_st"
|
||||
item_state = "egg6"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
force = 0
|
||||
throw_speed = 5
|
||||
throw_range = 7
|
||||
maxcharge = 480
|
||||
charge_amount = 5
|
||||
matter = list(MAT_STEEL = 350, MAT_GLASS = 50)
|
||||
preserve_item = 1
|
||||
|
||||
/obj/item/weapon/cell/device/empty/Initialize()
|
||||
. = ..()
|
||||
charge = 0
|
||||
update_icon()
|
||||
|
||||
/*
|
||||
* EMP Proof Device
|
||||
*/
|
||||
/obj/item/weapon/cell/device/empproof
|
||||
name = "shielded device power cell"
|
||||
desc = "A small power cell designed to power handheld devices. Shielded from EMPs."
|
||||
icon_state = "s_st"
|
||||
matter = list(MAT_STEEL = 400, MAT_GLASS = 60)
|
||||
emp_proof = TRUE
|
||||
origin_tech = list(TECH_POWER = 3)
|
||||
|
||||
/obj/item/weapon/cell/device/empproof/empty/Initialize()
|
||||
. = ..()
|
||||
charge = 0
|
||||
update_icon()
|
||||
|
||||
/*
|
||||
* Weapon
|
||||
*/
|
||||
/obj/item/weapon/cell/device/weapon
|
||||
name = "advanced device power cell" //This was a yawn change. I quite like this, makes more sense.
|
||||
desc = "A small upgraded power cell designed to power handheld devices."
|
||||
icon_state = "m_sup"
|
||||
maxcharge = 2400
|
||||
charge_amount = 20
|
||||
origin_tech = list(TECH_POWER = 2)
|
||||
|
||||
/obj/item/weapon/cell/device/weapon/empty/Initialize()
|
||||
. = ..()
|
||||
charge = 0
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/cell/device/super
|
||||
name = "super device power cell"
|
||||
desc = "A small upgraded power cell designed to power handheld devices."
|
||||
icon_state = "m_hy" //CHOMP Add
|
||||
maxcharge = 3600
|
||||
charge_amount = 20
|
||||
origin_tech = list(TECH_POWER = 3)
|
||||
|
||||
/obj/item/weapon/cell/device/super/empty/Initialize()
|
||||
. = ..()
|
||||
charge = 0
|
||||
update_icon()
|
||||
|
||||
/*
|
||||
* Hyper
|
||||
*/
|
||||
/obj/item/weapon/cell/device/hyper
|
||||
name = "hyper device power cell"
|
||||
desc = "A small upgraded power cell designed to hold much more power for handheld devices."
|
||||
icon_state = "meb_m_st" //CHOMP Add
|
||||
maxcharge = 4800
|
||||
charge_amount = 20
|
||||
origin_tech = list(TECH_POWER = 4)
|
||||
|
||||
/obj/item/weapon/cell/device/hyper/empty/Initialize()
|
||||
. = ..()
|
||||
charge = 0
|
||||
update_icon()
|
||||
|
||||
/*
|
||||
* Giga
|
||||
*/
|
||||
/obj/item/weapon/cell/device/giga
|
||||
name = "giga device power cell"
|
||||
desc = "A small power cell that holds a blistering amount of energy, constructed by clever scientists using secrets gleaned from alien technology."
|
||||
icon_state = "meb_m_hi"
|
||||
maxcharge = 6000
|
||||
charge_amount = 20
|
||||
origin_tech = list(TECH_POWER = 5, TECH_PRECURSOR = 1)
|
||||
|
||||
/obj/item/weapon/cell/device/giga/empty/Initialize()
|
||||
. = ..()
|
||||
charge = 0
|
||||
update_icon()
|
||||
|
||||
/*
|
||||
* EMP Proof Weapon
|
||||
*/
|
||||
/obj/item/weapon/cell/device/weapon/empproof
|
||||
name = "shielded weapon power cell"
|
||||
desc = "A small power cell designed to power handheld weaponry. Shielded from EMPs."
|
||||
icon_state = "s_hi"
|
||||
maxcharge = 2400
|
||||
charge_amount = 20
|
||||
matter = list(MAT_STEEL = 400, MAT_GLASS = 60)
|
||||
emp_proof = TRUE
|
||||
origin_tech = list(TECH_POWER = 4)
|
||||
|
||||
/obj/item/weapon/cell/device/weapon/empproof/empty/Initialize()
|
||||
. = ..()
|
||||
charge = 0
|
||||
update_icon()
|
||||
|
||||
/*
|
||||
* Self-charging Weapon
|
||||
*/
|
||||
/obj/item/weapon/cell/device/weapon/recharge
|
||||
name = "self-charging weapon power cell"
|
||||
desc = "A small power cell designed to power handheld weaponry. This one recharges itself."
|
||||
icon_state = "meb_m_nu"
|
||||
matter = list(MAT_STEEL = 400, MAT_GLASS = 80)
|
||||
self_recharge = TRUE
|
||||
charge_amount = 120
|
||||
charge_delay = 75
|
||||
origin_tech = list(TECH_POWER = 5, TECH_PRECURSOR = 1)
|
||||
|
||||
/*
|
||||
* Captain's Self-charging Weapon
|
||||
*/
|
||||
/obj/item/weapon/cell/device/weapon/recharge/captain
|
||||
icon_state = "infinite_m"
|
||||
matter = list(MAT_STEEL = 400, MAT_GLASS = 100)
|
||||
charge_amount = 160 //Recharges a lot more quickly...
|
||||
charge_delay = 100 //... but it takes a while to get started
|
||||
|
||||
/*
|
||||
* Alien Void Cell
|
||||
*/
|
||||
/datum/category_item/catalogue/anomalous/precursor_a/alien_void_cell
|
||||
name = "Precursor Alpha Object - Void Cell"
|
||||
desc = "This is a very enigmatic and small machine. It is able to output a direct electrical current \
|
||||
from itself to another device or machine that it is connected to. Its shape has a similar form as \
|
||||
a battery cell, which might imply that the species who created these had a desire for some form of \
|
||||
a modular power supply.\
|
||||
<br><br>\
|
||||
These appear to be limited in throughput, only able to put out so much energy at a time. It is unknown \
|
||||
if this was intentional, or was a design constraint that the creators of this object had to work around. \
|
||||
Regardless, it will likely function inside of various devices which run off of conventional power cells.\
|
||||
<br><br>\
|
||||
Scanning similar objects may yield more information."
|
||||
value = CATALOGUER_REWARD_EASY
|
||||
|
||||
/obj/item/weapon/cell/device/weapon/recharge/alien
|
||||
name = "void cell"
|
||||
desc = "An alien technology that produces energy seemingly out of nowhere. Its small, cylinderal shape means it might be able to be used with human technology, perhaps?"
|
||||
catalogue_data = list(/datum/category_item/catalogue/anomalous/precursor_a/alien_void_cell)
|
||||
icon = 'icons/obj/abductor.dmi'
|
||||
icon_state = "cell"
|
||||
charge_amount = 120 // 5%.
|
||||
charge_delay = 50 // Every five seconds, bit faster than the default.
|
||||
origin_tech = list(TECH_POWER = 8, TECH_ENGINEERING = 6)
|
||||
|
||||
/obj/item/weapon/cell/device/weapon/recharge/alien/update_icon()
|
||||
return // No overlays please.
|
||||
|
||||
//CHOMP Add Putting virgo code into our code to make sure this does not change.
|
||||
//The device cell
|
||||
/obj/item/weapon/cell/device/weapon/recharge/alien
|
||||
name = "void cell (device)"
|
||||
var/swaps_to = /obj/item/weapon/cell/void
|
||||
standard_overlays = FALSE
|
||||
|
||||
/obj/item/weapon/cell/device/weapon/recharge/alien/attack_self(var/mob/user)
|
||||
user.remove_from_mob(src)
|
||||
to_chat(user, "<span class='notice'>You swap [src] to 'machinery cell' mode.</span>")
|
||||
var/obj/item/weapon/cell/newcell = new swaps_to(null)
|
||||
user.put_in_active_hand(newcell)
|
||||
var/percentage = charge/maxcharge
|
||||
newcell.charge = newcell.maxcharge * percentage
|
||||
qdel(src)
|
||||
|
||||
//The machine cell
|
||||
/obj/item/weapon/cell/void
|
||||
name = "void cell (machinery)"
|
||||
desc = "An alien technology that produces energy seemingly out of nowhere. Its small, cylinderal shape means it might be able to be used with human technology, perhaps?"
|
||||
origin_tech = list(TECH_POWER = 8, TECH_ENGINEERING = 6)
|
||||
icon = 'icons/obj/abductor.dmi'
|
||||
icon_state = "cell"
|
||||
maxcharge = 4800 //10x the device version
|
||||
charge_amount = 1200 //10x the device version
|
||||
self_recharge = TRUE
|
||||
charge_delay = 50
|
||||
matter = null
|
||||
standard_overlays = FALSE
|
||||
var/swaps_to = /obj/item/weapon/cell/device/weapon/recharge/alien
|
||||
|
||||
/obj/item/weapon/cell/void/attack_self(var/mob/user)
|
||||
user.remove_from_mob(src)
|
||||
to_chat(user, "<span class='notice'>You swap [src] to 'device cell' mode.</span>")
|
||||
var/obj/item/weapon/cell/newcell = new swaps_to(null)
|
||||
user.put_in_active_hand(newcell)
|
||||
var/percentage = charge/maxcharge
|
||||
newcell.charge = newcell.maxcharge * percentage
|
||||
qdel(src)
|
||||
|
||||
// Bloo friendlier hybrid tech
|
||||
/obj/item/weapon/cell/device/weapon/recharge/alien/hybrid
|
||||
icon = 'icons/obj/power_vr.dmi'
|
||||
icon_state = "cellb"
|
||||
swaps_to = /obj/item/weapon/cell/void/hybrid
|
||||
|
||||
/obj/item/weapon/cell/void/hybrid
|
||||
icon = 'icons/obj/power_vr.dmi'
|
||||
icon_state = "cellb"
|
||||
swaps_to = /obj/item/weapon/cell/device/weapon/recharge/alien/hybrid
|
||||
|
||||
|
||||
//YAWN Addtion
|
||||
/obj/item/weapon/cell/device/weapon/recharge/alien/omni
|
||||
name = "omni weapon power cell"
|
||||
desc = "A mix between alien technology and phoron tech. Seems to fit in almost any cell slot..."
|
||||
charge_amount = 90 // 5%.
|
||||
maxcharge = 1800
|
||||
charge_delay = 50 SECONDS
|
||||
origin_tech = list(TECH_POWER = 6, TECH_ENGINEERING = 4, TECH_PHORON = 3)
|
||||
|
||||
/obj/item/weapon/cell/device/weapon/recharge/alien/omni/empty/Initialize()
|
||||
. = ..()
|
||||
charge = 0
|
||||
74
modular_chomp/code/modules/power/cells/esoteric_cells.dm
Normal file
74
modular_chomp/code/modules/power/cells/esoteric_cells.dm
Normal file
@@ -0,0 +1,74 @@
|
||||
//I don't know what this is, but whatever it is, I am taking it from virgo code so they stop messing with cells.
|
||||
/obj/item/weapon/cell/spike
|
||||
name = "modified power cell"
|
||||
desc = "A modified power cell sitting in a highly conductive chassis."
|
||||
origin_tech = list(TECH_POWER = 2)
|
||||
icon_state = "modded"
|
||||
maxcharge = 10000
|
||||
matter = list(MAT_STEEL = 1000, MAT_GLASS = 80, MAT_SILVER = 100)
|
||||
self_recharge = TRUE
|
||||
charge_amount = 150
|
||||
|
||||
/obj/item/weapon/cell/spike/process()
|
||||
..()
|
||||
|
||||
var/turf/Center = get_turf(src)
|
||||
|
||||
var/shock_count = 0
|
||||
for(var/turf/T in range(Center, 1))
|
||||
|
||||
if(prob(round(charge / 250)) && charge >= (maxcharge / 4))
|
||||
|
||||
if(locate(/obj/effect/temporary_effect/pulse/staticshock) in T)
|
||||
continue
|
||||
|
||||
var/conductive = FALSE
|
||||
|
||||
if(istype(T, /turf/simulated/wall))
|
||||
var/turf/simulated/wall/WT = T
|
||||
|
||||
if(WT.material.conductive)
|
||||
conductive = TRUE
|
||||
else if(WT.girder_material.conductive)
|
||||
conductive = TRUE
|
||||
else if(WT.reinf_material && WT.reinf_material.conductive)
|
||||
conductive = TRUE
|
||||
|
||||
if(istype(T, /turf/simulated/floor))
|
||||
var/turf/simulated/floor/F = T
|
||||
if(istype(F.flooring, /decl/flooring/reinforced))
|
||||
conductive = TRUE
|
||||
|
||||
if(conductive)
|
||||
shock_count += 1
|
||||
new /obj/effect/temporary_effect/pulse/staticshock(T)
|
||||
|
||||
if(shock_count)
|
||||
while(shock_count)
|
||||
use(200)
|
||||
shock_count--
|
||||
|
||||
/obj/effect/temporary_effect/pulse/staticshock
|
||||
name = "electric field"
|
||||
desc = "Caution: Do not touch."
|
||||
pulses_remaining = 10
|
||||
pulse_delay = 2 SECONDS
|
||||
icon_state = "blue_static"
|
||||
|
||||
/obj/effect/temporary_effect/pulse/staticshock/on_pulse()
|
||||
..()
|
||||
|
||||
for(var/mob/living/L in view(1, src))
|
||||
if(!issilicon(L) && prob(L.mob_size))
|
||||
var/obj/item/projectile/beam/shock/weak/P = new (get_turf(src))
|
||||
P.launch_projectile_from_turf(L, BP_TORSO)
|
||||
|
||||
var/obj/item/weapon/plastique/C4 = locate() in get_turf(src)
|
||||
|
||||
if(C4)
|
||||
C4.visible_message("<span class='danger'>The current fries \the [C4]!</span>")
|
||||
|
||||
if(prob(10))
|
||||
C4.explode(get_turf(src))
|
||||
else
|
||||
qdel(C4)
|
||||
226
modular_chomp/code/modules/power/cells/power_cells.dm
Normal file
226
modular_chomp/code/modules/power/cells/power_cells.dm
Normal file
@@ -0,0 +1,226 @@
|
||||
/*
|
||||
* Crap
|
||||
*/
|
||||
/obj/item/weapon/cell/crap
|
||||
name = "\improper rechargable AA battery"
|
||||
desc = "You can't top the plasma top." //TOTALLY TRADEMARK INFRINGEMENT
|
||||
origin_tech = list(TECH_POWER = 0)
|
||||
icon_state = "crap"
|
||||
maxcharge = 500
|
||||
matter = list(MAT_STEEL = 700, MAT_GLASS = 40)
|
||||
|
||||
/obj/item/weapon/cell/crap/empty/New()
|
||||
..()
|
||||
charge = 0
|
||||
|
||||
/*
|
||||
* Security Borg
|
||||
*/
|
||||
/obj/item/weapon/cell/secborg
|
||||
name = "security borg rechargable D battery"
|
||||
origin_tech = list(TECH_POWER = 0)
|
||||
icon_state = "secborg"
|
||||
maxcharge = 600 //600 max charge / 100 charge per shot = six shots
|
||||
matter = list(MAT_STEEL = 700, MAT_GLASS = 40)
|
||||
|
||||
/obj/item/weapon/cell/secborg/empty/New()
|
||||
..()
|
||||
charge = 0
|
||||
update_icon()
|
||||
|
||||
/*
|
||||
* APC
|
||||
*/
|
||||
/obj/item/weapon/cell/apc
|
||||
name = "heavy-duty power cell"
|
||||
origin_tech = list(TECH_POWER = 1)
|
||||
icon_state = "apc"
|
||||
maxcharge = 5000
|
||||
matter = list(MAT_STEEL = 700, MAT_GLASS = 50)
|
||||
|
||||
/*
|
||||
* High
|
||||
*/
|
||||
/obj/item/weapon/cell/high
|
||||
name = "high-capacity power cell"
|
||||
origin_tech = list(TECH_POWER = 2)
|
||||
icon_state = "b_hi"
|
||||
maxcharge = 10000
|
||||
matter = list(MAT_STEEL = 700, MAT_GLASS = 60)
|
||||
|
||||
/obj/item/weapon/cell/high/empty/New()
|
||||
..()
|
||||
charge = 0
|
||||
update_icon()
|
||||
|
||||
/*
|
||||
* Super
|
||||
*/
|
||||
/obj/item/weapon/cell/super
|
||||
name = "super-capacity power cell"
|
||||
origin_tech = list(TECH_POWER = 5)
|
||||
icon_state = "b_sup"
|
||||
maxcharge = 20000
|
||||
matter = list(MAT_STEEL = 700, MAT_GLASS = 70)
|
||||
|
||||
/obj/item/weapon/cell/super/empty/New()
|
||||
..()
|
||||
charge = 0
|
||||
update_icon()
|
||||
|
||||
/*
|
||||
* Hyper
|
||||
*/
|
||||
/obj/item/weapon/cell/hyper
|
||||
name = "hyper-capacity power cell"
|
||||
origin_tech = list(TECH_POWER = 6)
|
||||
icon_state = "b_hy"
|
||||
maxcharge = 30000
|
||||
matter = list(MAT_STEEL = 700, MAT_GLASS = 80)
|
||||
|
||||
/obj/item/weapon/cell/hyper/empty/New()
|
||||
..()
|
||||
charge = 0
|
||||
update_icon()
|
||||
|
||||
/*
|
||||
* Giga
|
||||
*/
|
||||
/obj/item/weapon/cell/giga
|
||||
name = "giga-capacity power cell made with a dash of precursor technology"
|
||||
origin_tech = list(TECH_POWER = 6, TECH_PRECURSOR = 1)
|
||||
icon_state = "meb_b_hi"
|
||||
maxcharge = 40000
|
||||
matter = list(MAT_STEEL = 1000, MAT_GLASS = 100)
|
||||
|
||||
/obj/item/weapon/cell/giga/empty/New()
|
||||
..()
|
||||
charge = 0
|
||||
update_icon()
|
||||
/*
|
||||
* Mecha
|
||||
*/
|
||||
/obj/item/weapon/cell/mech
|
||||
name = "mecha power cell"
|
||||
icon_state = "exs_s"
|
||||
charge = 15000
|
||||
maxcharge = 15000
|
||||
matter = list(MAT_STEEL = 800, MAT_GLASS = 60)
|
||||
|
||||
/obj/item/weapon/cell/mech/high
|
||||
name = "high-capacity mecha power cell"
|
||||
origin_tech = list(TECH_POWER = 3)
|
||||
icon_state = "exs_m"
|
||||
charge = 20000
|
||||
maxcharge = 20000
|
||||
matter = list(MAT_STEEL = 800, MAT_GLASS = 80)
|
||||
|
||||
/obj/item/weapon/cell/mech/super
|
||||
name = "super-capacity mecha power cell"
|
||||
origin_tech = list(TECH_POWER = 6)
|
||||
icon_state = "exs_l"
|
||||
charge = 25000
|
||||
maxcharge = 25000
|
||||
matter = list(MAT_STEEL = 800, MAT_GLASS = 100)
|
||||
|
||||
/*
|
||||
* Infinite
|
||||
*/
|
||||
/obj/item/weapon/cell/infinite
|
||||
name = "infinite-capacity power cell!"
|
||||
icon_state = "infinite_b"
|
||||
origin_tech = null
|
||||
maxcharge = 30000 //determines how badly mobs get shocked
|
||||
matter = list(MAT_STEEL = 700, MAT_GLASS = 80)
|
||||
|
||||
/obj/item/weapon/cell/infinite/check_charge()
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/cell/infinite/use()
|
||||
return 1
|
||||
|
||||
/*
|
||||
* Potato
|
||||
*/
|
||||
/obj/item/weapon/cell/potato
|
||||
name = "potato battery"
|
||||
desc = "A rechargable starch based power cell."
|
||||
origin_tech = list(TECH_POWER = 0)
|
||||
icon_state = "potato"
|
||||
charge = 100
|
||||
maxcharge = 300
|
||||
minor_fault = 1
|
||||
|
||||
/*
|
||||
* Slime
|
||||
*/
|
||||
/obj/item/weapon/cell/slime
|
||||
name = "charged slime core"
|
||||
desc = "A yellow slime core infused with phoron, it crackles with power."
|
||||
origin_tech = list(TECH_POWER = 4, TECH_BIO = 5)
|
||||
icon = 'icons/mob/slimes.dmi' //'icons/obj/harvest.dmi'
|
||||
icon_state = "yellow slime extract" //"potato_battery"
|
||||
description_info = "This 'cell' holds a max charge of 10k and self recharges over time."
|
||||
maxcharge = 10000
|
||||
matter = null
|
||||
self_recharge = TRUE
|
||||
standard_overlays = FALSE
|
||||
|
||||
/*
|
||||
* Emergency Light
|
||||
*/
|
||||
/obj/item/weapon/cell/emergency_light
|
||||
name = "miniature power cell"
|
||||
desc = "A tiny power cell with a very low power capacity. Used in light fixtures to power them in the event of an outage."
|
||||
maxcharge = 120 //Emergency lights use 0.2 W per tick, meaning ~10 minutes of emergency power from a cell
|
||||
matter = list(MAT_GLASS = 20)
|
||||
icon_state = "em_light"
|
||||
w_class = ITEMSIZE_TINY
|
||||
|
||||
/obj/item/weapon/cell/emergency_light/Initialize()
|
||||
. = ..()
|
||||
var/area/A = get_area(src)
|
||||
if(!A.lightswitch || !A.light_power)
|
||||
charge = 0 //For naturally depowered areas, we start with no power
|
||||
|
||||
/*
|
||||
* Backup Battery
|
||||
*
|
||||
* Not actually a cell, but if people look for it, they'll probably look near other cells
|
||||
*/
|
||||
/obj/item/device/fbp_backup_cell
|
||||
name = "backup battery"
|
||||
desc = "A small one-time-use chemical battery for synthetic crew when they are low on power in emergency situations."
|
||||
icon = 'icons/obj/power_cells.dmi'
|
||||
icon_state = "backup"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
var/amount = 100
|
||||
var/used = FALSE
|
||||
|
||||
/obj/item/device/fbp_backup_cell/Initialize()
|
||||
. = ..()
|
||||
add_overlay("[icon_state]_100")
|
||||
|
||||
/obj/item/device/fbp_backup_cell/attack(mob/living/M as mob, mob/user as mob)
|
||||
if(!used && ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.isSynthetic())
|
||||
if(H.nutrition <= amount)
|
||||
use(user,H)
|
||||
else
|
||||
to_chat(user,"<span class='warning'>The difference in potential is too great. [user == M ? "You have" : "[H] has"] too much charge to use such a small battery.</span>")
|
||||
else if(M == user)
|
||||
to_chat(user,"<span class='warning'>You lick the cell, and your tongue tingles slightly.</span>")
|
||||
else
|
||||
to_chat(user,"<span class='warning'>This cell is meant for use on humanoid synthetics only.</span>")
|
||||
|
||||
. = ..()
|
||||
|
||||
/obj/item/device/fbp_backup_cell/proc/use(var/mob/living/user, var/mob/living/target)
|
||||
if(used)
|
||||
return
|
||||
used = TRUE
|
||||
desc += " This one has already been used."
|
||||
cut_overlays()
|
||||
target.adjust_nutrition(amount)
|
||||
user.custom_emote(message = "connects \the [src] to [user == target ? "their" : "[target]'s"] charging port, expending it.")
|
||||
Reference in New Issue
Block a user