mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-19 12:05:59 +01:00
[MIRROR] Remove the voodoo doll (#4229)
* Remove the voodoo doll (#57780) A clunky to use grief tool that is near exclusively used to just make people say slurs and WGW and copypastas and rule breaking stuff and yadda yadda. * Remove the voodoo doll * Update maint_loot_oddity.dm Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: Gandalf <jzo123@hotmail.com>
This commit is contained in:
@@ -2836,7 +2836,6 @@
|
||||
/area/awaymission/academy/academycellar)
|
||||
"lk" = (
|
||||
/obj/structure/safe/floor,
|
||||
/obj/item/voodoo,
|
||||
/obj/item/gun/magic/wand/fireball,
|
||||
/obj/item/clothing/suit/space/hardsuit/wizard,
|
||||
/turf/open/floor/wood,
|
||||
|
||||
@@ -287,130 +287,6 @@
|
||||
H.put_in_hands(new /obj/item/claymore(H), TRUE)
|
||||
H.equip_to_slot_or_del(new /obj/item/spear(H), ITEM_SLOT_BACK)
|
||||
|
||||
|
||||
/obj/item/voodoo
|
||||
name = "wicker doll"
|
||||
desc = "Something creepy about it."
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
icon_state = "voodoo"
|
||||
inhand_icon_state = "electronic"
|
||||
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
|
||||
var/mob/living/carbon/human/target = null
|
||||
var/list/mob/living/carbon/human/possible = list()
|
||||
var/obj/item/voodoo_link = null
|
||||
var/cooldown_time = 30 //3s
|
||||
var/cooldown = 0
|
||||
max_integrity = 10
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
/obj/item/voodoo/attackby(obj/item/I, mob/user, params)
|
||||
if(target && cooldown < world.time)
|
||||
if(I.get_temperature())
|
||||
to_chat(target, "<span class='userdanger'>You suddenly feel very hot!</span>")
|
||||
target.adjust_bodytemperature(50)
|
||||
GiveHint(target)
|
||||
else if(I.get_sharpness() == SHARP_POINTY)
|
||||
to_chat(target, "<span class='userdanger'>You feel a stabbing pain in [parse_zone(user.zone_selected)]!</span>")
|
||||
target.Paralyze(40)
|
||||
GiveHint(target)
|
||||
else if(istype(I, /obj/item/bikehorn))
|
||||
to_chat(target, "<span class='userdanger'>HONK</span>")
|
||||
SEND_SOUND(target, 'sound/items/airhorn.ogg')
|
||||
var/obj/item/organ/ears/ears = user.getorganslot(ORGAN_SLOT_EARS)
|
||||
if(ears)
|
||||
ears.adjustEarDamage(0, 3)
|
||||
GiveHint(target)
|
||||
cooldown = world.time +cooldown_time
|
||||
return
|
||||
|
||||
if(!voodoo_link)
|
||||
if(I.loc == user && istype(I) && I.w_class <= WEIGHT_CLASS_SMALL)
|
||||
if (user.transferItemToLoc(I,src))
|
||||
voodoo_link = I
|
||||
to_chat(user, "You attach [I] to the doll.")
|
||||
update_targets()
|
||||
|
||||
/obj/item/voodoo/check_eye(mob/user)
|
||||
if(loc != user)
|
||||
user.reset_perspective(null)
|
||||
user.unset_machine()
|
||||
|
||||
/obj/item/voodoo/attack_self(mob/user)
|
||||
if(!target && possible.len)
|
||||
target = input(user, "Select your victim!", "Voodoo") as null|anything in sortNames(possible)
|
||||
return
|
||||
|
||||
if(user.zone_selected == BODY_ZONE_CHEST)
|
||||
if(voodoo_link)
|
||||
target = null
|
||||
voodoo_link.forceMove(drop_location())
|
||||
to_chat(user, "<span class='notice'>You remove the [voodoo_link] from the doll.</span>")
|
||||
voodoo_link = null
|
||||
update_targets()
|
||||
return
|
||||
|
||||
if(target && cooldown < world.time)
|
||||
switch(user.zone_selected)
|
||||
if(BODY_ZONE_PRECISE_MOUTH)
|
||||
var/wgw = sanitize(input(user, "What would you like the victim to say", "Voodoo", null) as text)
|
||||
target.say(wgw, forced = "voodoo doll")
|
||||
log_game("[key_name(user)] made [key_name(target)] say [wgw] with a voodoo doll.")
|
||||
if(BODY_ZONE_PRECISE_EYES)
|
||||
user.set_machine(src)
|
||||
user.reset_perspective(target)
|
||||
addtimer(CALLBACK(src, .proc/reset, user), 10 SECONDS)
|
||||
if(BODY_ZONE_R_LEG,BODY_ZONE_L_LEG)
|
||||
to_chat(user, "<span class='notice'>You move the doll's legs around.</span>")
|
||||
var/turf/T = get_step(target,pick(GLOB.cardinals))
|
||||
target.Move(T)
|
||||
if(BODY_ZONE_R_ARM,BODY_ZONE_L_ARM)
|
||||
target.click_random_mob()
|
||||
GiveHint(target)
|
||||
if(BODY_ZONE_HEAD)
|
||||
to_chat(user, "<span class='notice'>You smack the doll's head with your hand.</span>")
|
||||
target.Dizzy(10)
|
||||
to_chat(target, "<span class='warning'>You suddenly feel as if your head was hit with a hammer!</span>")
|
||||
GiveHint(target,user)
|
||||
cooldown = world.time + cooldown_time
|
||||
|
||||
/obj/item/voodoo/proc/reset(mob/user)
|
||||
if(QDELETED(user))
|
||||
return
|
||||
user.reset_perspective(null)
|
||||
user.unset_machine()
|
||||
|
||||
/obj/item/voodoo/proc/update_targets()
|
||||
possible = list()
|
||||
if(!voodoo_link)
|
||||
return
|
||||
var/list/prints = voodoo_link.return_fingerprints()
|
||||
if(!length(prints))
|
||||
return FALSE
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
if(prints[md5(H.dna.uni_identity)])
|
||||
possible |= H
|
||||
|
||||
/obj/item/voodoo/proc/GiveHint(mob/victim,force=0)
|
||||
if(prob(50) || force)
|
||||
var/way = dir2text(get_dir(victim,get_turf(src)))
|
||||
to_chat(victim, "<span class='notice'>You feel a dark presence from [way].</span>")
|
||||
if(prob(20) || force)
|
||||
var/area/A = get_area(src)
|
||||
to_chat(victim, "<span class='notice'>You feel a dark presence from [A.name].</span>")
|
||||
|
||||
/obj/item/voodoo/suicide_act(mob/living/carbon/user)
|
||||
user.visible_message("<span class='suicide'>[user] links the voodoo doll to [user.p_them()]self and sits on it, infinitely crushing [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
user.gib()
|
||||
return(BRUTELOSS)
|
||||
|
||||
/obj/item/voodoo/fire_act(exposed_temperature, exposed_volume)
|
||||
if(target)
|
||||
target.adjust_fire_stacks(20)
|
||||
target.IgniteMob()
|
||||
GiveHint(target,1)
|
||||
return ..()
|
||||
|
||||
//Provides a decent heal, need to pump every 6 seconds
|
||||
/obj/item/organ/heart/cursed/wizard
|
||||
pump_delay = 60
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
/obj/item/clothing/glasses/godeye,
|
||||
/obj/item/melee/ghost_sword,
|
||||
/obj/item/clothing/suit/space/hardsuit/cult,
|
||||
/obj/item/voodoo,
|
||||
/obj/item/grenade/clusterbuster/inferno,
|
||||
/obj/item/clothing/neck/necklace/memento_mori,
|
||||
/obj/item/organ/heart/cursed/wizard,
|
||||
|
||||
@@ -69,15 +69,13 @@
|
||||
if(16)
|
||||
new /obj/item/immortality_talisman(src)
|
||||
if(17)
|
||||
new /obj/item/voodoo(src)
|
||||
if(18)
|
||||
new /obj/item/book/granter/spell/summonitem(src)
|
||||
if(19)
|
||||
if(18)
|
||||
new /obj/item/book_of_babel(src)
|
||||
if(20)
|
||||
if(19)
|
||||
new /obj/item/borg/upgrade/modkit/lifesteal(src)
|
||||
new /obj/item/bedsheet/cult(src)
|
||||
if(21)
|
||||
if(20)
|
||||
new /obj/item/clothing/neck/necklace/memento_mori(src)
|
||||
spawned_loot = TRUE
|
||||
qdel(item)
|
||||
|
||||
@@ -69,7 +69,6 @@ GLOBAL_LIST_INIT(summoned_magic, list(
|
||||
/obj/item/gun/magic/staff/healing,
|
||||
/obj/item/gun/magic/staff/door,
|
||||
/obj/item/scrying,
|
||||
/obj/item/voodoo,
|
||||
/obj/item/warpwhistle,
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/wizard,
|
||||
/obj/item/immortality_talisman,
|
||||
@@ -94,7 +93,6 @@ GLOBAL_LIST_INIT(summoned_magic_objectives, list(
|
||||
/obj/item/scrying,
|
||||
/obj/item/spellbook,
|
||||
/obj/item/storage/belt/wands/full,
|
||||
/obj/item/voodoo,
|
||||
/obj/item/warpwhistle))
|
||||
|
||||
// If true, it's the probability of triggering "survivor" antag.
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
@@ -65,6 +65,5 @@ GLOBAL_LIST_INIT(oddity_loot, list(//oddity: strange or crazy items
|
||||
/obj/item/storage/toolbox/syndicate = 100,
|
||||
/obj/item/storage/toolbox/infiltrator = 100,
|
||||
/obj/item/toy/sprayoncan = 200,
|
||||
/obj/item/voodoo = 100,
|
||||
/obj/item/warpwhistle = 5
|
||||
))
|
||||
|
||||
Reference in New Issue
Block a user