mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-13 16:13:19 +01:00
825c2c8866
* Part 1
* Testing 1
* Revert "Testing 1"
This reverts commit fc06554b28.
* Part 1.1
* Part 2 - UI Style List
* Preferences lists
* Preferences lists - DONE
* More inputs
* MOOOOOORE
* UI style else
* Last ones
* Double name fix
* Pre-selected Search
* Return Pick Darkness
* Return Pick Darkness
* Missing users
* Some review changes
* Revert MULE lists
* I just hate MERGE CONFLICT label
* List window tweaks
* I think there it is
* why i am stopid
* Update tgui.bundle.js
145 lines
5.0 KiB
Plaintext
145 lines
5.0 KiB
Plaintext
/obj/structure/closet/crate/necropolis/bubblegum
|
|
name = "bubblegum chest"
|
|
|
|
/obj/structure/closet/crate/necropolis/bubblegum/populate_contents()
|
|
new /obj/item/clothing/suit/space/hostile_environment(src)
|
|
new /obj/item/clothing/head/helmet/space/hostile_environment(src)
|
|
new /obj/item/melee/spellblade/random(src)
|
|
|
|
/obj/structure/closet/crate/necropolis/bubblegum/crusher
|
|
name = "bloody bubblegum chest"
|
|
|
|
/obj/structure/closet/crate/necropolis/bubblegum/crusher/populate_contents()
|
|
. = ..()
|
|
new /obj/item/crusher_trophy/demon_claws(src)
|
|
|
|
/obj/structure/closet/crate/necropolis/bubblegum/bait/populate_contents()
|
|
return
|
|
|
|
/obj/effect/bubblegum_trigger
|
|
var/list/targets_to_fuck_up = list()
|
|
|
|
/obj/effect/bubblegum_trigger/Initialize(mapload, target_list)
|
|
. = ..()
|
|
addtimer(CALLBACK(src, PROC_REF(activate)), 15 SECONDS) //We try to auto engage the fun 15 seconds after death.
|
|
targets_to_fuck_up = target_list
|
|
|
|
/obj/effect/bubblegum_trigger/proc/activate()
|
|
if(!length(targets_to_fuck_up))
|
|
return
|
|
var/spawn_locs = list()
|
|
for(var/obj/effect/landmark/spawner/bubblegum_arena/R in GLOB.landmarks_list)
|
|
spawn_locs += get_turf(R)
|
|
for(var/mob/living/M in targets_to_fuck_up)
|
|
var/turf/T = get_turf(M)
|
|
M.Immobilize(1 SECONDS)
|
|
to_chat(M, "<span class='colossus'><b>NO! I REFUSE TO LET YOU THINK YOU HAVE WON. I SHALL END YOUR INSIGNIFICANT LIFE!</b></span>")
|
|
new /obj/effect/temp_visual/bubblegum_hands/leftpaw(T)
|
|
new /obj/effect/temp_visual/bubblegum_hands/leftthumb(T)
|
|
sleep(8)
|
|
playsound(T, 'sound/misc/enter_blood.ogg', 100, TRUE, -1)
|
|
var/turf/target_turf = pick(spawn_locs)
|
|
M.forceMove(target_turf)
|
|
playsound(target_turf, 'sound/misc/exit_blood.ogg', 100, TRUE, -1)
|
|
for(var/obj/effect/landmark/spawner/bubblegum/B in GLOB.landmarks_list)
|
|
new /mob/living/simple_animal/hostile/megafauna/bubblegum/round_2(get_turf(B))
|
|
|
|
|
|
/obj/effect/bubblegum_exit/Initialize(mapload, target_list)
|
|
. = ..()
|
|
addtimer(CALLBACK(src, PROC_REF(activate)), 10 SECONDS)
|
|
|
|
/obj/effect/bubblegum_exit/proc/activate()
|
|
var/spawn_exit = list()
|
|
for(var/obj/effect/landmark/spawner/bubblegum_exit/E in GLOB.landmarks_list)
|
|
for(var/turf/T in range(4, E))
|
|
if(T.density)
|
|
continue
|
|
spawn_exit += get_turf(T)
|
|
var/area/probably_bubblearena = get_area(src)
|
|
for(var/mob/living/M in probably_bubblearena)
|
|
var/turf/T = get_turf(M)
|
|
M.Immobilize(1 SECONDS)
|
|
to_chat(M, "<span class='colossus'><b>Now... get out of my home.</b></span>")
|
|
new /obj/effect/temp_visual/bubblegum_hands/leftpaw(T)
|
|
new /obj/effect/temp_visual/bubblegum_hands/leftthumb(T)
|
|
sleep(8)
|
|
playsound(T, 'sound/misc/enter_blood.ogg', 100, TRUE, -1)
|
|
var/turf/target_turf = pick(spawn_exit)
|
|
M.forceMove(target_turf)
|
|
playsound(target_turf, 'sound/misc/exit_blood.ogg', 100, TRUE, -1)
|
|
for(var/obj/O in probably_bubblearena) //Mobs are out, lets get items / limbs / brains. Lets also exclude blood..
|
|
if(iseffect(O))
|
|
continue
|
|
if(istype(O, /obj/structure/stone_tile)) //Taking the tiles from the arena is funny, but a bit stupid
|
|
continue
|
|
var/turf/target_turf = pick(spawn_exit)
|
|
O.forceMove(target_turf)
|
|
|
|
|
|
// Mayhem
|
|
|
|
/obj/item/mayhem
|
|
name = "mayhem in a bottle"
|
|
desc = "A magically infused bottle of blood, the scent of which will drive anyone nearby into a murderous frenzy."
|
|
icon = 'icons/obj/wizard.dmi'
|
|
icon_state = "vial"
|
|
|
|
/obj/item/mayhem/attack_self(mob/user)
|
|
for(var/mob/living/carbon/human/H in range(7,user))
|
|
spawn()
|
|
var/obj/effect/mine/pickup/bloodbath/B = new(H)
|
|
B.mineEffect(H)
|
|
to_chat(user, "<span class='notice'>You shatter the bottle!</span>")
|
|
playsound(user.loc, 'sound/effects/glassbr1.ogg', 100, 1)
|
|
qdel(src)
|
|
|
|
// Blood Contract
|
|
|
|
/obj/item/blood_contract
|
|
name = "blood contract"
|
|
icon = 'icons/obj/wizard.dmi'
|
|
icon_state = "scroll2"
|
|
color = "#FF0000"
|
|
desc = "Mark your target for death."
|
|
var/used = FALSE
|
|
|
|
/obj/item/blood_contract/attack_self(mob/user)
|
|
if(used)
|
|
return
|
|
|
|
used = TRUE
|
|
var/choice = tgui_input_list(user, "Who do you want dead?", "Choose Your Victim", GLOB.player_list)
|
|
|
|
if(!choice)
|
|
used = FALSE
|
|
return
|
|
else if(!isliving(choice))
|
|
to_chat(user, "[choice] is already dead!")
|
|
used = FALSE
|
|
return
|
|
else if(choice == user)
|
|
to_chat(user, "You feel like writing your own name into a cursed death warrant would be unwise.")
|
|
used = FALSE
|
|
return
|
|
else
|
|
var/mob/living/L = choice
|
|
|
|
message_admins("[key_name_admin(L)] has been marked for death by [key_name_admin(user)].")
|
|
log_admin("[key_name(L)] has been marked for death by [key_name(user)].")
|
|
|
|
L.mind.add_mind_objective(/datum/objective/survive)
|
|
to_chat(L, "<span class='userdanger'>You've been marked for death! Don't let the demons get you!</span>")
|
|
L.color = "#FF0000"
|
|
spawn()
|
|
var/obj/effect/mine/pickup/bloodbath/B = new(L)
|
|
B.mineEffect(L)
|
|
|
|
for(var/mob/living/carbon/human/H in GLOB.player_list)
|
|
if(H.stat == DEAD || H == L)
|
|
continue
|
|
to_chat(H, "<span class='userdanger'>You have an overwhelming desire to kill [L]. [L.p_they(TRUE)] [L.p_have()] been marked red! Go kill [L.p_them()]!</span>")
|
|
H.put_in_hands(new /obj/item/kitchen/knife/butcher(H))
|
|
|
|
qdel(src)
|