From 49afcce327b75aeb706a6038b94d22f40d32adad Mon Sep 17 00:00:00 2001
From: DGamerL <108773801+DGamerL@users.noreply.github.com>
Date: Tue, 31 Oct 2023 19:46:43 +0100
Subject: [PATCH] Purging the wishgranter (#22976)
* Everything except the map
* Deletes the ruin
* Makes CI not fail
* I pray this fixes it
---
.../LavaRuins/lavaland_surface_cube.dmm | 980 ------------------
code/datums/ruins/lavaland.dm | 8 -
code/game/machinery/wishgranter.dm | 90 --
.../wishgranter/wishgranter_avatar.dm | 64 --
code/modules/mob/living/carbon/superheroes.dm | 1 -
config/example/config.toml | 2 -
paradise.dme | 2 -
7 files changed, 1147 deletions(-)
delete mode 100644 _maps/map_files/RandomRuins/LavaRuins/lavaland_surface_cube.dmm
delete mode 100644 code/game/machinery/wishgranter.dm
delete mode 100644 code/modules/antagonists/wishgranter/wishgranter_avatar.dm
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_cube.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_cube.dmm
deleted file mode 100644
index 66bd2dd2c11..00000000000
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_cube.dmm
+++ /dev/null
@@ -1,980 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/simulated/mineral/volcanic/lava_land_surface,
-/area/lavaland/surface/outdoors)
-"b" = (
-/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors)
-"c" = (
-/obj/effect/decal/remains/human,
-/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors)
-"d" = (
-/turf/simulated/wall/indestructible/riveted,
-/area/lavaland/surface/outdoors)
-"e" = (
-/obj/machinery/wish_granter,
-/obj/effect/mapping_helpers/no_lava,
-/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors)
-
-(1,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-b
-a
-b
-b
-b
-b
-b
-b
-a
-a
-a
-a
-a
-a
-a
-b
-a
-"}
-(2,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-b
-a
-b
-b
-c
-b
-b
-b
-b
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(3,1,1) = {"
-a
-b
-a
-a
-a
-a
-b
-a
-a
-a
-a
-a
-a
-a
-b
-a
-b
-b
-b
-a
-a
-b
-b
-a
-a
-b
-b
-a
-a
-a
-"}
-(4,1,1) = {"
-a
-a
-a
-a
-b
-b
-b
-a
-a
-a
-a
-a
-a
-a
-b
-b
-b
-a
-a
-b
-b
-b
-b
-b
-b
-b
-b
-a
-b
-b
-"}
-(5,1,1) = {"
-a
-a
-b
-b
-b
-b
-b
-a
-a
-a
-a
-a
-a
-a
-a
-a
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-a
-a
-b
-"}
-(6,1,1) = {"
-b
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-a
-b
-"}
-(7,1,1) = {"
-b
-a
-a
-a
-a
-a
-a
-a
-a
-a
-b
-b
-b
-b
-b
-b
-b
-c
-b
-b
-c
-b
-b
-b
-c
-b
-b
-b
-b
-a
-"}
-(8,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-a
-"}
-(9,1,1) = {"
-a
-a
-b
-a
-a
-a
-a
-a
-a
-a
-b
-b
-b
-b
-c
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-"}
-(10,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-b
-b
-b
-b
-b
-c
-b
-b
-b
-b
-b
-b
-b
-b
-c
-b
-b
-b
-"}
-(11,1,1) = {"
-a
-a
-a
-b
-a
-a
-a
-a
-a
-a
-a
-a
-a
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-c
-b
-b
-b
-b
-b
-b
-"}
-(12,1,1) = {"
-a
-a
-b
-a
-a
-a
-b
-b
-a
-a
-c
-b
-b
-b
-b
-b
-c
-b
-c
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-"}
-(13,1,1) = {"
-a
-a
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-c
-c
-b
-c
-c
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-c
-b
-"}
-(14,1,1) = {"
-a
-a
-b
-c
-b
-b
-b
-b
-c
-b
-c
-d
-d
-d
-d
-d
-b
-b
-b
-b
-b
-b
-c
-b
-b
-b
-b
-b
-b
-b
-"}
-(15,1,1) = {"
-a
-a
-b
-b
-b
-b
-c
-b
-b
-b
-b
-d
-d
-d
-d
-d
-b
-c
-b
-b
-c
-b
-a
-b
-b
-b
-b
-b
-b
-b
-"}
-(16,1,1) = {"
-a
-a
-b
-b
-b
-b
-b
-b
-b
-c
-b
-d
-d
-e
-d
-d
-b
-b
-a
-a
-b
-b
-a
-a
-b
-b
-b
-b
-b
-b
-"}
-(17,1,1) = {"
-a
-a
-b
-b
-b
-b
-b
-c
-b
-b
-c
-d
-d
-d
-d
-d
-c
-c
-a
-a
-a
-a
-a
-a
-a
-b
-b
-a
-b
-b
-"}
-(18,1,1) = {"
-a
-a
-b
-a
-a
-a
-b
-b
-b
-b
-b
-d
-d
-d
-d
-d
-b
-c
-b
-a
-a
-a
-a
-a
-b
-b
-b
-c
-a
-a
-"}
-(19,1,1) = {"
-a
-a
-b
-a
-a
-a
-b
-b
-b
-b
-b
-c
-b
-c
-c
-b
-c
-b
-b
-a
-a
-a
-a
-a
-b
-a
-b
-b
-a
-a
-"}
-(20,1,1) = {"
-a
-a
-b
-b
-b
-b
-b
-b
-c
-b
-b
-b
-c
-b
-b
-b
-b
-b
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(21,1,1) = {"
-a
-a
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-c
-b
-b
-b
-b
-b
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(22,1,1) = {"
-a
-a
-b
-b
-b
-b
-a
-b
-b
-b
-a
-b
-b
-b
-b
-b
-b
-b
-b
-b
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(23,1,1) = {"
-a
-a
-a
-a
-a
-a
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-c
-b
-b
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(24,1,1) = {"
-a
-a
-a
-a
-a
-a
-c
-b
-b
-b
-b
-b
-b
-b
-c
-b
-b
-b
-b
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(25,1,1) = {"
-a
-a
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(26,1,1) = {"
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-c
-b
-b
-b
-b
-b
-a
-a
-a
-a
-a
-b
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(27,1,1) = {"
-b
-b
-b
-a
-a
-a
-a
-a
-a
-a
-a
-b
-c
-b
-b
-a
-b
-b
-b
-b
-b
-b
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(28,1,1) = {"
-b
-b
-b
-a
-a
-a
-a
-a
-a
-a
-a
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-b
-c
-b
-b
-b
-b
-b
-b
-b
-"}
-(29,1,1) = {"
-b
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-b
-b
-b
-b
-b
-b
-b
-b
-b
-a
-a
-a
-a
-b
-a
-b
-b
-b
-b
-"}
-(30,1,1) = {"
-b
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm
index e748e07ef94..d3d82d73aad 100644
--- a/code/datums/ruins/lavaland.dm
+++ b/code/datums/ruins/lavaland.dm
@@ -20,14 +20,6 @@
description = "WELCOME TO CLOWN PLANET! HONK HONK HONK etc.!"
suffix = "lavaland_biodome_clown_planet.dmm"
-/datum/map_template/ruin/lavaland/cube
- name = "The Wishgranter Cube"
- id = "wishgranter-cube"
- description = "Nothing good can come from this. Learn from their mistakes and turn around."
- suffix = "lavaland_surface_cube.dmm"
- cost = 10
- allow_duplicates = FALSE
-
/datum/map_template/ruin/lavaland/seed_vault
name = "Seed Vault"
id = "seed-vault"
diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm
deleted file mode 100644
index e7de14d163d..00000000000
--- a/code/game/machinery/wishgranter.dm
+++ /dev/null
@@ -1,90 +0,0 @@
-/obj/machinery/wish_granter
- name = "wish granter"
- desc = "You're not so sure about this, anymore..."
- icon = 'icons/obj/device.dmi'
- icon_state = "syndbeacon"
-
- power_state = NO_POWER_USE
- anchored = TRUE
- density = TRUE
-
- var/charges = 1
- var/insisting = FALSE
-
-/obj/machinery/wish_granter/attack_hand(mob/living/carbon/user)
- . = ..()
-
- if(.)
- return ..()
-
- if(charges <= 0)
- to_chat(user, "The Wish Granter lies silent.")
- return TRUE
-
- 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(is_special_character(user))
- to_chat(user, "Even to a heart as dark as yours, you know nothing good will come of this. Something instinctual makes you pull away.")
-
- 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 = TRUE
-
- else
- to_chat(user, "You speak. [pick("I want the station to disappear", "Humanity is corrupt, mankind must be destroyed", "I want to be rich", "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. You are the avatar of the Wish Granter, and your power is LIMITLESS! And it's all yours. You need to make sure no one can take it from you. No one can know, first.")
-
- charges--
- insisting = FALSE
-
- user.mind.add_antag_datum(/datum/antagonist/wishgranter)
-
- to_chat(user, "You have a very bad feeling about this.")
-
-/obj/machinery/wish_granter/super
- name = "super wish granter"
- var/list/types = list()
-
-/obj/machinery/wish_granter/super/attack_hand(mob/living/carbon/user)
- . = ..()
-
- if(.)
- return ..()
-
- 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 TRUE
-
- if(is_special_character(user) || jobban_isbanned(user, ROLE_TRAITOR) || jobban_isbanned(user, ROLE_SYNDICATE))
- to_chat(user, "Something instinctual makes you pull away.")
- return TRUE
-
- to_chat(user, "Your touch makes the Wish Granter stir. Are you really sure you want to do this?")
-
- for(var/supname in GLOB.all_superheroes)
- types += supname
-
- var/wish
- if(types.len == 1)
- wish = pick(types)
- else
- wish = input("You want to become...", "Wish") as null|anything in types
-
- if(!wish || user.stat == DEAD || (get_dist(src, user) > 4)) // Another check after the input to check if someone already used it, closed it, or if they're dead, or if they ran off.
- return
-
- var/datum/superheroes/S = GLOB.all_superheroes[wish]
- if(S.activated)
- to_chat(user,"There can only be one! Pick something else!")
- return
-
- S.create(user)
- S.activated = TRUE //sets this superhero as taken so we don't have duplicates
-
- playsound(src.loc, 'sound/effects/bamf.ogg', 50, 1)
- visible_message("The wishgranter fades into mist..")
- add_attack_logs(user, user, "Became [GLOB.all_superheroes[wish]]")
- notify_ghosts("[GLOB.all_superheroes[wish]] has appeared in [get_area(user)].", source = user)
- qdel(src)
diff --git a/code/modules/antagonists/wishgranter/wishgranter_avatar.dm b/code/modules/antagonists/wishgranter/wishgranter_avatar.dm
deleted file mode 100644
index 3c3f38e2ee0..00000000000
--- a/code/modules/antagonists/wishgranter/wishgranter_avatar.dm
+++ /dev/null
@@ -1,64 +0,0 @@
-/datum/antagonist/wishgranter
- name = "Wishgranter Avatar"
- special_role = "Avatar of the Wish Granter"
-
-/datum/antagonist/wishgranter/give_objectives()
- add_antag_objective(/datum/objective/hijack)
-
-/datum/antagonist/wishgranter/greet()
- . = ..()
- . += "Your inhibitions are swept away, the bonds of loyalty broken, you are free to murder as you please!"
-
-/datum/antagonist/wishgranter/apply_innate_effects(mob/living/mob_override)
- var/mob/living/carbon/human/H = ..()
- if(!istype(H))
- return
- H.ignore_gene_stability = TRUE
- H.dna.SetSEState(GLOB.hulkblock, TRUE)
- singlemutcheck(H, GLOB.hulkblock, MUTCHK_FORCED)
-
- H.dna.SetSEState(GLOB.fireblock, TRUE)
- singlemutcheck(H, GLOB.fireblock, MUTCHK_FORCED)
-
- H.dna.SetSEState(GLOB.coldblock, TRUE)
- singlemutcheck(H, GLOB.coldblock, MUTCHK_FORCED)
-
- H.dna.SetSEState(GLOB.teleblock, TRUE)
- singlemutcheck(H, GLOB.teleblock, MUTCHK_FORCED)
-
- H.dna.SetSEState(GLOB.breathlessblock, TRUE)
- singlemutcheck(H, GLOB.breathlessblock, MUTCHK_FORCED)
-
- H.dna.SetSEState(GLOB.regenerateblock, TRUE)
- singlemutcheck(H, GLOB.regenerateblock, MUTCHK_FORCED)
-
- H.dna.SetSEState(GLOB.shockimmunityblock, TRUE)
- singlemutcheck(H, GLOB.shockimmunityblock, MUTCHK_FORCED)
-
- H.dna.SetSEState(GLOB.smallsizeblock, TRUE)
- singlemutcheck(H, GLOB.smallsizeblock, MUTCHK_FORCED)
-
- H.dna.SetSEState(GLOB.soberblock, TRUE)
- singlemutcheck(H, GLOB.soberblock, MUTCHK_FORCED)
-
- H.dna.SetSEState(GLOB.psyresistblock, TRUE)
- singlemutcheck(H, GLOB.psyresistblock, MUTCHK_FORCED)
-
- H.dna.SetSEState(GLOB.shadowblock, TRUE)
- singlemutcheck(H, GLOB.shadowblock, MUTCHK_FORCED)
-
- H.dna.SetSEState(GLOB.cryoblock, TRUE)
- singlemutcheck(H, GLOB.cryoblock, MUTCHK_FORCED)
-
- H.dna.SetSEState(GLOB.eatblock, TRUE)
- singlemutcheck(H, GLOB.eatblock, MUTCHK_FORCED)
-
- H.dna.SetSEState(GLOB.jumpblock, TRUE)
- singlemutcheck(H, GLOB.jumpblock, MUTCHK_FORCED)
-
- H.dna.SetSEState(GLOB.immolateblock, TRUE)
- singlemutcheck(H, GLOB.immolateblock, MUTCHK_FORCED)
-
- ADD_TRAIT(H, TRAIT_LASEREYES, "wishgranter")
- H.update_mutations()
- H.update_body()
diff --git a/code/modules/mob/living/carbon/superheroes.dm b/code/modules/mob/living/carbon/superheroes.dm
index 3fa20d25a33..ba0c7a9942a 100644
--- a/code/modules/mob/living/carbon/superheroes.dm
+++ b/code/modules/mob/living/carbon/superheroes.dm
@@ -8,7 +8,6 @@
var/desc
var/class
var/list/default_spells = list()
- var/activated = FALSE //for wishgranters to not give an option if someone already has it.
/datum/superheroes/proc/create(mob/living/carbon/human/H)
assign_mutations(H)
diff --git a/config/example/config.toml b/config/example/config.toml
index cbe76ac40b5..4a5415e5c5e 100644
--- a/config/example/config.toml
+++ b/config/example/config.toml
@@ -676,8 +676,6 @@ active_lava_ruins = [
##MISC
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_excavation.dmm",
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_facility.dmm",
- # Cube blacklisted on production because it contains a wishgranter that gives you hijack on use
- "_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_cube.dmm",
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm",
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_dead_ratvar.dmm",
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_elite_tumor.dmm",
diff --git a/paradise.dme b/paradise.dme
index 53e180fdf4f..92bb8c39d04 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -785,7 +785,6 @@
#include "code\game\machinery\turret_control.dm"
#include "code\game\machinery\wall_holosign.dm"
#include "code\game\machinery\washing_machine.dm"
-#include "code\game\machinery\wishgranter.dm"
#include "code\game\machinery\airlock_control\_airlock_control_defines.dm"
#include "code\game\machinery\airlock_control\airlock_button.dm"
#include "code\game\machinery\airlock_control\airlock_controllers.dm"
@@ -1409,7 +1408,6 @@
#include "code\modules\antagonists\vampire\vampire_powers\hemomancer_powers.dm"
#include "code\modules\antagonists\vampire\vampire_powers\umbrae_powers.dm"
#include "code\modules\antagonists\vampire\vampire_powers\vampire_powers.dm"
-#include "code\modules\antagonists\wishgranter\wishgranter_avatar.dm"
#include "code\modules\arcade\arcade_base.dm"
#include "code\modules\arcade\arcade_prize.dm"
#include "code\modules\arcade\claw_game.dm"