Files
S.P.L.U.R.T-Station-13/code/game/machinery/wishgranter.dm
2021-10-28 12:17:29 +08:00

135 lines
5.9 KiB
Plaintext

/obj/machinery/wish_granter
name = "wish granter"
desc = "You're not so sure about this, anymore..."
icon = 'icons/obj/device.dmi'
icon_state = "syndbeacon"
use_power = NO_POWER_USE
density = TRUE
var/charges = 1
var/insisting = 0
/obj/machinery/wish_granter/on_attack_hand(mob/living/carbon/user)
if(charges <= 0)
to_chat(user, "The Wish Granter lies silent.")
return
else if(!ishuman(user))
to_chat(user, "You feel a dark stirring inside of the Wish Granter, something you want nothing of. Your instincts are better than any man's.")
return
else if (!insisting)
to_chat(user, "Your first touch makes the Wish Granter stir, listening to you. Are you really sure you want to do this?")
insisting++
else
if(is_special_character(user))
to_chat(user, "You speak. [pick("I want power","Humanity is corrupt, mankind must be destroyed", "I want to rule the world","I want immortality")]. The Wish Granter answers.")
to_chat(user, "Your head pounds for a moment, before your vision clears. The Wish Granter, sensing the darkness in your heart, has given you limitless power, and it's all yours!")
user.dna.add_mutation(HULK)
user.dna.add_mutation(XRAY)
user.dna.add_mutation(SPACEMUT)
user.dna.add_mutation(TK)
user.action_cooldown_mod *= 0.5
to_chat(user, "Things around you feel slower!")
charges--
insisting = FALSE
to_chat(user, "You have a very great feeling about this!")
else
to_chat(user, "The Wish Granter awaits your wish.")
var/wish = input("You want...","Wish") as null|anything in list("Power","Wealth","The Station To Disappear","To Kill","Nothing")
switch(wish)
if("Power") //Gives infinite power in exchange for infinite power going off in your face!
if(charges <= 0)
return
to_chat(user, "<B>Your wish is granted, but at a terrible cost...</B>")
to_chat(user, "The Wish Granter punishes you for your selfishness, warping itself into a delaminating supermatter shard!")
var/obj/item/stock_parts/cell/infinite/powah = new /obj/item/stock_parts/cell/infinite(get_turf(user))
if(user.put_in_hands(powah))
to_chat(user, "[powah] materializes into your hands!")
else
to_chat(user, "[powah] materializes onto the floor.")
var/obj/machinery/power/supermatter_crystal/powerwish = new /obj/machinery/power/supermatter_crystal(loc)
powerwish.damage = 700 //right at the emergency threshold
powerwish.produces_gas = FALSE
charges--
insisting = FALSE
if(!charges)
qdel(src)
if("Wealth") //Gives 1 million space bucks in exchange for being turned into gold!
if(charges <= 0)
return
to_chat(user, "<B>Your wish is granted, but at a cost...</B>")
to_chat(user, "The Wish Granter punishes you for your selfishness, warping your body to match the greed in your heart.")
new /obj/structure/closet/crate/trashcart/moneywish(loc)
new /obj/structure/closet/crate/trashcart/moneywish(loc)
user.set_species(/datum/species/golem/gold)
charges--
insisting = FALSE
if(!charges)
qdel(src)
if("The Station To Disappear") //teleports you to the station and makes you blind, making the station disappear for you!
if(charges <= 0)
return
to_chat(user, "<B>Your wish is 'granted', but at a terrible cost...</B>")
to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul and warping your eyes to match the darkness in your heart.")
user.dna.add_mutation(BLINDMUT)
var/obj/item/organ/eyes/eyes = user.getorganslot(ORGAN_SLOT_EYES)
if(eyes)
eyes.applyOrganDamage(eyes.maxHealth)
var/list/destinations = list()
for(var/obj/item/beacon/B in GLOB.teleportbeacons)
var/turf/T = get_turf(B)
if(is_station_level(T.z))
destinations += B
var/chosen_beacon = pick(destinations)
var/obj/effect/portal/jaunt_tunnel/J = new (get_turf(src), 100, null, FALSE, get_turf(chosen_beacon))
try_move_adjacent(J)
playsound(src,'sound/effects/sparks4.ogg',50,1)
charges--
insisting = FALSE
if(!charges)
qdel(src)
if("To Kill") //Makes you kill things in exchange for rewards!
if(charges <= 0)
return
to_chat(user, "<B>Your wish is granted, but at a terrible cost...</B>")
to_chat(user, "The Wish Granter punishes you for your wickedness, warping itself into a dastardly creature for you to kill! ...but it almost seems to reward you for this.")
var/obj/item/melee/transforming/energy/sword/cx/killreward = new /obj/item/melee/transforming/energy/sword/cx(get_turf(user))
if(user.put_in_hands(killreward))
to_chat(user, "[killreward] materializes into your hands!")
else
to_chat(user, "[killreward] materializes onto the floor.")
user.action_cooldown_mod *= 0.8
to_chat(user, "Things around you feel slightly slower!")
var/mob/living/simple_animal/hostile/venus_human_trap/killwish = new /mob/living/simple_animal/hostile/venus_human_trap(loc)
killwish.maxHealth = 1500
killwish.health = killwish.maxHealth
killwish.vine_grab_distance = 6
killwish.melee_damage_upper = 30
killwish.loot = list(/obj/item/dualsaber/hypereutactic)
charges--
insisting = FALSE
if(!charges)
qdel(src)
if("Nothing") //Makes the wish granter disappear
if(charges <= 0)
return
to_chat(user, "<B>The Wish Granter vanishes from sight!</B>")
to_chat(user, "You feel as if you just narrowly avoided a terrible fate...")
charges--
insisting = FALSE
qdel(src)
//ITEMS THAT IT USES
/obj/structure/closet/crate/trashcart/moneywish
desc = "A heavy, metal trashcart with wheels. Filled with cash."
name = "loaded trash cart"
/obj/structure/closet/crate/trashcart/moneywish/PopulateContents() //25*20*1000=500,000
for(var/i in 1 to 25)
var/obj/item/stack/spacecash/c1000/lodsamoney = new /obj/item/stack/spacecash/c1000(src)
lodsamoney.amount = lodsamoney.max_amount