diff --git a/code/controllers/configuration/entries/dynamic.dm b/code/controllers/configuration/entries/dynamic.dm index a59f3a6954..8a45894728 100644 --- a/code/controllers/configuration/entries/dynamic.dm +++ b/code/controllers/configuration/entries/dynamic.dm @@ -105,6 +105,10 @@ config_entry_value = 10 min_val = 0 +/datum/config_entry/number/dynamic_apprentice_cost + config_entry_value = 10 + min_val = 0 + /datum/config_entry/number/dynamic_warops_requirement config_entry_value = 60 min_val = 0 diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm index ef0974f73c..25b1cbb7af 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook.dm @@ -370,6 +370,20 @@ item_path = /obj/item/antag_spawner/contract category = "Assistance" +/datum/spellbook_entry/item/contract/IsAvailible() + if(istype(SSticker.mode,/datum/game_mode/dynamic)) + var/datum/game_mode/dynamic/mode = SSticker.mode + if(mode.threat < CONFIG_GET(number/dynamic_apprentice_cost)) + return 0 + +/datum/spellbook_entry/item/contract/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) + if(istype(SSticker.mode,/datum/game_mode/dynamic)) + var/datum/game_mode/dynamic/mode = SSticker.mode + var/threat_spent = CONFIG_GET(number/dynamic_apprentice_cost) + mode.spend_threat(threat_spent) + mode.log_threat("Wizard spent [threat_spent] on apprentice contract.") + return ..() + /datum/spellbook_entry/item/guardian name = "Guardian Deck" desc = "A deck of guardian tarot cards, capable of binding a personal guardian to your body. There are multiple types of guardian available, but all of them will transfer some amount of damage to you. \ @@ -389,6 +403,20 @@ limit = 3 category = "Assistance" +/datum/spellbook_entry/item/bloodbottle/IsAvailible() + if(istype(SSticker.mode,/datum/game_mode/dynamic)) + var/datum/game_mode/dynamic/mode = SSticker.mode + if(mode.threat < CONFIG_GET(keyed_list/dynamic_cost)["slaughter_demon"]) + return 0 + +/datum/spellbook_entry/item/bloodbottle/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) + if(istype(SSticker.mode,/datum/game_mode/dynamic)) + var/datum/game_mode/dynamic/mode = SSticker.mode + var/threat_spent = CONFIG_GET(keyed_list/dynamic_cost)["slaughter_demon"] + mode.spend_threat(threat_spent) + mode.log_threat("Wizard spent [threat_spent] on slaughter demon.") + return ..() + /datum/spellbook_entry/item/hugbottle name = "Bottle of Tickles" desc = "A bottle of magically infused fun, the smell of which will \ @@ -403,6 +431,20 @@ limit = 3 category = "Assistance" +/datum/spellbook_entry/item/hugbottle/IsAvailible() + if(istype(SSticker.mode,/datum/game_mode/dynamic)) + var/datum/game_mode/dynamic/mode = SSticker.mode + if(mode.threat < round(CONFIG_GET(keyed_list/dynamic_cost)["slaughter_demon"]/3)) + return 0 + +/datum/spellbook_entry/item/hugbottle/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) + if(istype(SSticker.mode,/datum/game_mode/dynamic)) + var/datum/game_mode/dynamic/mode = SSticker.mode + var/threat_spent = CONFIG_GET(keyed_list/dynamic_cost)["slaughter_demon"]/3 + mode.spend_threat(threat_spent) + mode.log_threat("Wizard spent [threat_spent] on laughter demon.") + return ..() + /datum/spellbook_entry/item/mjolnir name = "Mjolnir" desc = "A mighty hammer on loan from Thor, God of Thunder. It crackles with barely contained power." diff --git a/config/dynamic_config.txt b/config/dynamic_config.txt index 921a630564..e27844d336 100644 --- a/config/dynamic_config.txt +++ b/config/dynamic_config.txt @@ -283,16 +283,19 @@ DYNAMIC_ASSASSINATE_COST 2 DYNAMIC_SUMMON_GUNS_REQUIREMENT 10 ## How much summon guns reduces the round's remaining threat. Setting to 0 makes it cost none. -DYNAMIC_SUMMON_GUNS_COST 5 +DYNAMIC_SUMMON_GUNS_COST 10 ## As above, but for summon magic DYNAMIC_SUMMON_MAGIC_REQUIREMENT 10 -DYNAMIC_SUMMON_MAGIC_COST 5 +DYNAMIC_SUMMON_MAGIC_COST 10 ## As above, but for summon events DYNAMIC_SUMMON_EVENTS_REQUIREMENT 20 DYNAMIC_SUMMON_EVENTS_COST 10 +## As above, but for apprentice. Note that this is just a cost, since apprentices aren't as universally disruptive as above. +DYNAMIC_APPRENTICE_COST 10 + ## This requirement uses threat level, rather than current threat, which is why it's higher. DYNAMIC_WAROPS_REQUIREMENT 60