mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-18 18:44:48 +01:00
Adds The Qani-Laaca Sensory Computer and mephedrone. Ready for review into merge (#23926)
* Surely this will not have any critical balance implications * Apply suggestions from code review Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * oops * marm fixes * fixes signal * how on earth did I do that * adds twitch to nanocalcium * respect armor, lowers throw * IPC can use, fuck up heartless people * no crawl slowdown / meth * *slightly* turns down the drug effect * renames it will deal with pr desc soon * finishes it * rnd version empable * Apply suggestions from code review Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Nerfs twitches visuals, due to a reported novastation bug where the visuals would endlessly stack * Apply suggestions from code review Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> * C-C-C-Changes * Epilepsy Warning: Drug has vibrant visual effects! * safety * Apply suggestions from code review Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com> * removes twitch name, make mix explode * oops --------- Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
/**
|
||||
* When attached to something, will make that thing shatter into shards on throw impact or z level falling
|
||||
*/
|
||||
/datum/element/shatters_when_thrown
|
||||
element_flags = ELEMENT_BESPOKE
|
||||
|
||||
/// What type of item is spawned as a 'shard' once the shattering happens
|
||||
var/obj/item/shard_type
|
||||
/// How many shards total are made when the thing we're attached to shatters
|
||||
var/number_of_shards
|
||||
/// What sound plays when the thing we're attached to shatters
|
||||
var/shattering_sound
|
||||
|
||||
/datum/element/shatters_when_thrown/Attach(datum/target, shard_type = /obj/item/shard, number_of_shards = 5, shattering_sound = "shatter")
|
||||
. = ..()
|
||||
|
||||
if(!ismovable(target))
|
||||
return ELEMENT_INCOMPATIBLE
|
||||
|
||||
src.shard_type = shard_type
|
||||
src.number_of_shards = number_of_shards
|
||||
src.shattering_sound = shattering_sound
|
||||
|
||||
RegisterSignal(target, COMSIG_MOVABLE_IMPACT, PROC_REF(on_throw_impact))
|
||||
|
||||
/datum/element/shatters_when_thrown/Detach(datum/target)
|
||||
. = ..()
|
||||
|
||||
UnregisterSignal(target,COMSIG_MOVABLE_IMPACT)
|
||||
|
||||
/// Tells the parent to shatter if we are thrown and impact something
|
||||
/datum/element/shatters_when_thrown/proc/on_throw_impact(datum/source, atom/hit_atom)
|
||||
SIGNAL_HANDLER
|
||||
INVOKE_ASYNC(src, PROC_REF(shatter), source, hit_atom)
|
||||
|
||||
/// Handles the actual shattering part, throwing shards of whatever is defined on the component everywhere
|
||||
/datum/element/shatters_when_thrown/proc/shatter(atom/movable/source, atom/hit_atom)
|
||||
var/generator/scatter_gen = generator("circle", 0, 48, NORMAL_RAND)
|
||||
var/scatter_turf = get_turf(hit_atom)
|
||||
|
||||
for(var/obj/item/scattered_item as anything in source.contents)
|
||||
scattered_item.forceMove(scatter_turf)
|
||||
var/list/scatter_vector = scatter_gen.Rand()
|
||||
scattered_item.pixel_x = scatter_vector[1]
|
||||
scattered_item.pixel_y = scatter_vector[2]
|
||||
|
||||
for(var/iteration in 1 to number_of_shards)
|
||||
var/obj/item/shard = new shard_type(scatter_turf)
|
||||
shard.pixel_x = rand(-6, 6)
|
||||
shard.pixel_y = rand(-6, 6)
|
||||
playsound(scatter_turf, shattering_sound, 60, TRUE)
|
||||
if(isobj(source))
|
||||
var/obj/obj_source = source
|
||||
obj_source.deconstruct(FALSE)
|
||||
return
|
||||
qdel(source)
|
||||
@@ -827,7 +827,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
name = "Binyat Wireless Hacking System Autoimplanter"
|
||||
desc = "This implant will allow you to wirelessly emag from a distance. However, it will slightly burn you \
|
||||
on use, and will be quite visual as you are emaging the object. \
|
||||
Will not show on unupgraded body scanners."
|
||||
Will not show on unupgraded body scanners. Incompatible with the Qani-Laaca Sensory Computer."
|
||||
reference = "HKR"
|
||||
item = /obj/item/autosurgeon/organ/syndicate/hackerman_deck
|
||||
cost = 30 // Probably slightly less useful than an emag with heat / cooldown, but I am not going to make it cheaper or everyone picks it over emag
|
||||
|
||||
@@ -529,6 +529,18 @@
|
||||
surplus = 0
|
||||
cant_discount = TRUE
|
||||
|
||||
/datum/uplink_item/cyber_implants/sensory_enhancer
|
||||
name = "Qani-Laaca Sensory Computer Autoimplanter"
|
||||
desc = "Epilepsy Warning: Drug has vibrant visual effects! \
|
||||
This spinal implant will inject mephedrone into your system, a powerful stimulant that causes slight heart damage.\
|
||||
This stimulant will provide faster movement speed, slight pain resistance, immunity to crawling slowdown, and faster attack speed, though no antistun.\
|
||||
Overdosing will cause massive heart damage, but will allow the user to dodge bullets for a minute and attack even faster.\
|
||||
Two minute normal uptime, 5 minute cooldown, unlimited uses. Incompatible with the Binyat Wireless Hacking System."
|
||||
reference = "QLSC"
|
||||
item = /obj/item/autosurgeon/organ/syndicate/sensory_enhancer
|
||||
cost = 40
|
||||
excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST) //No, nukies do not get to dodge bullets.
|
||||
|
||||
/datum/uplink_item/badass/syndiecards
|
||||
name = "Syndicate Playing Cards"
|
||||
desc = "A special deck of space-grade playing cards with a mono-molecular edge and metal reinforcement, making them lethal weapons both when wielded as a blade and when thrown. \
|
||||
|
||||
Reference in New Issue
Block a user