From 05c6654fce64de1f9db767e42d1ac8780652b04a Mon Sep 17 00:00:00 2001
From: DGamerL <108773801+DGamerL@users.noreply.github.com>
Date: Sun, 17 Sep 2023 19:24:19 +0200
Subject: [PATCH] Adds a new spell, Summon Cheese (#22393)
* Here we go so Cheese
Cheese
Cheese
Butter
Spread it
* I hate that this is so much better
Cheese
* CC mapping changes
* Update code/game/objects/items/granters/action_granters/summon_cheese.dm
Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
---------
Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
---
_maps/map_files/generic/centcomm.dmm | 7 ++-
code/game/objects/items/granters/_granters.dm | 13 ++++++
.../granters/action_granters/summon_cheese.dm | 41 ++++++++++++++++++
.../mission_code/ruins/wizardcrash.dm | 10 ++---
icons/mob/actions/actions.dmi | Bin 146040 -> 146358 bytes
icons/obj/library.dmi | Bin 26767 -> 26973 bytes
paradise.dme | 1 +
7 files changed, 66 insertions(+), 6 deletions(-)
create mode 100644 code/game/objects/items/granters/action_granters/summon_cheese.dm
diff --git a/_maps/map_files/generic/centcomm.dmm b/_maps/map_files/generic/centcomm.dmm
index 2da9e445d72..975bb1dc2d1 100644
--- a/_maps/map_files/generic/centcomm.dmm
+++ b/_maps/map_files/generic/centcomm.dmm
@@ -10424,6 +10424,11 @@
/obj/item/flag/cargo,
/turf/simulated/floor/plasteel/dark,
/area/centcom/control)
+"Oo" = (
+/obj/structure/bookcase/random,
+/obj/item/book/granter/spell/summon_cheese,
+/turf/simulated/floor/carpet/red,
+/area/wizard_station)
"Op" = (
/obj/effect/landmark/spawner/tdomeobserve,
/turf/simulated/floor/plasteel{
@@ -61255,7 +61260,7 @@ zv
xH
xH
ZH
-ZU
+Oo
ZU
xH
xH
diff --git a/code/game/objects/items/granters/_granters.dm b/code/game/objects/items/granters/_granters.dm
index 01e40c8070e..cd1c4fa196c 100644
--- a/code/game/objects/items/granters/_granters.dm
+++ b/code/game/objects/items/granters/_granters.dm
@@ -104,3 +104,16 @@
// Action goes on the mind as the user actually learns the thing in your brain
var/datum/action/new_action = new granted_action(user.mind || user)
new_action.Grant(user)
+
+// Generic action giver
+/obj/item/book/granter/spell
+ /// The typepath of spell that is given
+ var/obj/effect/proc_holder/spell/granted_spell
+ /// The name of the spell, formatted in a more text-friendly way
+ var/spell_name = ""
+
+/obj/item/book/granter/spell/on_reading_finished(mob/living/user)
+ if(!user.mind)
+ return
+ to_chat(user, "You feel like you've got a good handle on [spell_name]!")
+ user.mind.AddSpell(new granted_spell(null))
diff --git a/code/game/objects/items/granters/action_granters/summon_cheese.dm b/code/game/objects/items/granters/action_granters/summon_cheese.dm
new file mode 100644
index 00000000000..b4e4d0a01b0
--- /dev/null
+++ b/code/game/objects/items/granters/action_granters/summon_cheese.dm
@@ -0,0 +1,41 @@
+/obj/item/book/granter/spell/summon_cheese
+ name = "Lusty Xenomorph Maid vol. III - Cheese Bakery"
+ desc = "Wonderful! Time for a celebration... Cheese for everyone!"
+ icon_state = "cheese_book"
+ spell_name = "summon cheese"
+ granted_spell = /obj/effect/proc_holder/spell/aoe/conjure/summon_cheese
+ remarks = list(
+ "Always forward, never back...",
+ "Are these pages... cheese slices?..",
+ "Healthy snacks for unsuspecting victims...",
+ "I never knew so many types of cheese existed...",
+ "Madness reeks of goat cheese...",
+ "Was it order or biscuits?..",
+ "Who wouldn't like that?..",
+ "Why cheese, of all things?..",
+ "Why do I need a reason for everything?..",
+ "Cheddar days are coming...",
+ "Leicester the Red's gouda guide to getting feta at Caseiculture...",
+ "A passage from Cheesus Christ, the gouda saint...",
+ "What is the cheese tax and how do I pay it?!..."
+ )
+
+/obj/item/book/granter/spell/summon_cheese/recoil(mob/living/user)
+ to_chat(user, "[src] turns into a wedge of cheese!")
+ var/obj/item/reagent_containers/food/snacks/cheesewedge/book_cheese = new
+ user.drop_item()
+ user.put_in_hands(book_cheese)
+ qdel(src)
+
+/obj/effect/proc_holder/spell/aoe/conjure/summon_cheese
+ name = "Summon Cheese"
+ desc = "Summon cheesy goodness around you!"
+ base_cooldown = 1 MINUTES
+ clothes_req = FALSE
+ overlay = null
+ action_icon_state = "cheese_wedge"
+ action_background_icon_state = "bg_spell"
+ summon_type = list(/obj/item/reagent_containers/food/snacks/cheesewedge)
+ summon_amt = 9
+ aoe_range = 1
+ summon_ignore_prev_spawn_points = TRUE
diff --git a/code/modules/awaymissions/mission_code/ruins/wizardcrash.dm b/code/modules/awaymissions/mission_code/ruins/wizardcrash.dm
index bbf91842852..e39220515d8 100644
--- a/code/modules/awaymissions/mission_code/ruins/wizardcrash.dm
+++ b/code/modules/awaymissions/mission_code/ruins/wizardcrash.dm
@@ -15,11 +15,11 @@
/obj/effect/spawner/lootdrop/wizardcrash
loot = list(
- /obj/item/guardiancreator = 1, //jackpot.
- /obj/item/spellbook/oneuse/knock = 1, //tresspassing charges incoming
- /obj/item/gun/magic/wand/resurrection = 1, //medbay's best friend
- /obj/item/spellbook/oneuse/charge = 20, //and now for less useful stuff to dilute the good loot chances
+ /obj/item/guardiancreator = 1, // jackpot.
+ /obj/item/spellbook/oneuse/knock = 1, // tresspassing charges incoming
+ /obj/item/gun/magic/wand/resurrection = 1, // medbay's best friend
+ /obj/item/spellbook/oneuse/charge = 20, // and now for less useful stuff to dilute the good loot chances
/obj/item/spellbook/oneuse/summonitem = 20,
/obj/item/spellbook/oneuse/forcewall = 10,
- /obj/item/soulstone = 15 //spooky wizard stuff
+ /obj/item/book/granter/spell/summon_cheese = 20 // hungry wizard stuff
)
diff --git a/icons/mob/actions/actions.dmi b/icons/mob/actions/actions.dmi
index 43ace5193958081f1c1dd054c4af589e927e331f..66c82897c2a9dee0593e518df330d800a858ec99 100644
GIT binary patch
delta 10024
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