mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-19 12:05:59 +01:00
Adds more SeCrEt ChEmS (#95952)
This commit is contained in:
@@ -565,7 +565,6 @@
|
||||
unsuitable_cold_damage = 1
|
||||
unsuitable_heat_damage = 1
|
||||
menu_description = "Stronger assassin spider variant with an unmatched speed, high amount of health and very deadly poison, but deals very low amount of damage. It also has ability to ventcrawl."
|
||||
apply_spider_antag = FALSE
|
||||
innate_actions = list(
|
||||
/datum/action/cooldown/mob_cooldown/lay_web/sticky_web,
|
||||
/datum/action/cooldown/mob_cooldown/lay_web/web_spikes,
|
||||
@@ -591,7 +590,6 @@
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 20
|
||||
ai_controller = /datum/ai_controller/basic_controller/giant_spider/retaliate
|
||||
apply_spider_antag = FALSE
|
||||
|
||||
/mob/living/basic/spider/giant/sgt_araneus/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -51,8 +51,6 @@
|
||||
var/directive = ""
|
||||
/// Short description of what this mob is capable of, for radial menu uses
|
||||
var/menu_description = "Tanky and strong for the defense of the nest and other spiders."
|
||||
/// If true then you shouldn't be told that you're a spider antagonist as soon as you are placed into this mob
|
||||
var/apply_spider_antag = TRUE
|
||||
/// Commands you can give this spider once it is tamed
|
||||
var/static/list/tamed_commands = list(
|
||||
/datum/pet_command/idle,
|
||||
@@ -221,7 +219,6 @@
|
||||
response_harm_continuous = "splats"
|
||||
response_harm_simple = "splat"
|
||||
ai_controller = /datum/ai_controller/basic_controller/giant_spider/pest
|
||||
apply_spider_antag = FALSE
|
||||
///list of pet commands we follow
|
||||
var/static/list/pet_commands = list(
|
||||
/datum/pet_command/idle,
|
||||
|
||||
@@ -2980,14 +2980,10 @@
|
||||
/datum/reagent/metalgen
|
||||
name = "Metalgen"
|
||||
data = list("material"=null)
|
||||
description = "A purple metal morphic liquid, said to impose its metallic properties on whatever it touches."
|
||||
description = "A purple, metallic liquid, said to impose its metallic properties on whatever it touches."
|
||||
color = "#b000aa"
|
||||
taste_mult = 0 // oderless and tasteless
|
||||
chemical_flags = REAGENT_NO_RANDOM_RECIPE
|
||||
/// The material flags used to apply the transmuted materials
|
||||
var/applied_material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS
|
||||
/// The amount of materials to apply to the transmuted objects if they don't contain materials
|
||||
var/default_material_amount = 100
|
||||
|
||||
/datum/reagent/metalgen/expose_obj(obj/exposed_obj, reac_volume, methods=TOUCH, show_message=TRUE)
|
||||
. = ..()
|
||||
@@ -3007,6 +3003,10 @@
|
||||
if(!metal_ref)
|
||||
return
|
||||
|
||||
metal_transmute(target, metal_ref)
|
||||
|
||||
/// Change the material type of an object or turf, but with visuals and effects related to the material
|
||||
/proc/metal_transmute(atom/target, metal_type, default_material_amount = 100, applied_material_flags = MATERIAL_METALGEN)
|
||||
if(is_type_in_typecache(target, GLOB.blacklisted_metalgen_types)) //some stuff can lead to exploits if transmuted
|
||||
return
|
||||
|
||||
@@ -3021,12 +3021,12 @@
|
||||
// Delete existing materials first before changing the material flags
|
||||
if(length(target.custom_materials))
|
||||
target.set_custom_materials()
|
||||
var/list/metal_dat = list((metal_ref) = metal_amount)
|
||||
var/list/metal_dat = list((metal_type) = metal_amount)
|
||||
target.material_flags = applied_material_flags
|
||||
if (target.has_material_slots())
|
||||
var/list/new_slots = target.get_material_slots()
|
||||
for (var/slot_type in new_slots)
|
||||
new_slots[slot_type] = metal_ref
|
||||
new_slots[slot_type] = metal_type
|
||||
// Safe to call and doesn't do anything as no materials are currently present on the target
|
||||
target.set_material_slots(new_slots)
|
||||
target.set_custom_materials(metal_dat)
|
||||
@@ -3534,3 +3534,48 @@
|
||||
/datum/reagent/luminescent_fluid/pink
|
||||
name = "Pink Luminiscent Fluid"
|
||||
color = LIGHT_COLOR_PINK
|
||||
|
||||
/// Reagent that polymorphs you
|
||||
/datum/reagent/polyjuice
|
||||
name = "Polyjuice"
|
||||
description = "A vibrant liquid which causes sudden and irreversible changes in the body plan of living creatures."
|
||||
color = "#ff00ea"
|
||||
metabolization_rate = REAGENTS_METABOLISM
|
||||
taste_description = "magic"
|
||||
chemical_flags = REAGENT_NO_RANDOM_RECIPE
|
||||
randomized_spawns = REAGENT_SPAWN_MAINTENANCE_PILL
|
||||
|
||||
/// Cycle to polymorph
|
||||
var/polymorph_cycle = 10
|
||||
|
||||
/datum/reagent/polyjuice/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, metabolization_ratio)
|
||||
. = ..()
|
||||
|
||||
if(current_cycle > polymorph_cycle)
|
||||
affected_mob.wabbajack()
|
||||
|
||||
/// Turns you into STONE
|
||||
/datum/reagent/metalgen/gorgium
|
||||
name = "Gorgium"
|
||||
description = "Turns the affected... into STONE!!!"
|
||||
color = "#929292"
|
||||
metabolization_rate = 10 * REAGENTS_METABOLISM
|
||||
taste_description = "rocks"
|
||||
chemical_flags = REAGENT_NO_RANDOM_RECIPE
|
||||
randomized_spawns = REAGENT_SPAWN_MAINTENANCE_PILL
|
||||
|
||||
data = list("material" = /datum/material/rock)
|
||||
|
||||
/// Less than this and it wont petrify
|
||||
var/min_volume_to_pretrify = 3
|
||||
/// So 1u of exposure is 5 seconds of statue time
|
||||
var/reagent_to_time_conversion = 5 SECONDS
|
||||
|
||||
/datum/reagent/metalgen/gorgium/expose_mob(mob/living/exposed_mob, methods, reac_volume, show_message, touch_protection)
|
||||
. = ..()
|
||||
|
||||
if(reac_volume < min_volume_to_pretrify)
|
||||
return
|
||||
|
||||
exposed_mob.Stun(4 SECONDS)
|
||||
exposed_mob.petrify(reac_volume * reagent_to_time_conversion)
|
||||
|
||||
@@ -1671,3 +1671,46 @@
|
||||
volume = round(volume/2, 0.01)
|
||||
|
||||
#undef CRITICAL_CAPACITY
|
||||
|
||||
/// Gibs you (lol), after an easily curable disease because WERE COWARDS
|
||||
/datum/reagent/toxin/gibbium
|
||||
name = "Gibbium"
|
||||
description = "Guess what this does."
|
||||
silent_toxin = TRUE
|
||||
color = "#ff0000"
|
||||
metabolization_rate = 4 * REAGENTS_METABOLISM
|
||||
toxpwr = 0
|
||||
taste_description = "regret"
|
||||
chemical_flags = REAGENT_NO_RANDOM_RECIPE
|
||||
randomized_spawns = REAGENT_SPAWN_MAINTENANCE_PILL
|
||||
/// On what cycle to gib the person
|
||||
var/gib_cycle = 5
|
||||
|
||||
/datum/reagent/toxin/gibbium/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, metabolization_ratio)
|
||||
. = ..()
|
||||
|
||||
if(current_cycle >= gib_cycle)
|
||||
affected_mob.ForceContractDisease(new /datum/disease/gbs/no_transmission ())
|
||||
|
||||
/datum/reagent/toxin/spider_serum
|
||||
name = "Spider Serum"
|
||||
description = "A horrible mutagen that transmutes flesh into spiders."
|
||||
color = "#000000"
|
||||
taste_description = "unending nightmares"
|
||||
chemical_flags = REAGENT_NO_RANDOM_RECIPE
|
||||
randomized_spawns = REAGENT_SPAWN_MAINTENANCE_PILL
|
||||
toxpwr = 0
|
||||
/// The cycle for when to do the "transformation"
|
||||
var/transformation_cycle = 30
|
||||
|
||||
/datum/reagent/toxin/spider_serum/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, metabolization_ratio)
|
||||
. = ..()
|
||||
|
||||
if(prob(10))
|
||||
new /mob/living/basic/spider/growing/spiderling (get_turf(affected_mob))
|
||||
affected_mob.vomit(VOMIT_CATEGORY_BLOOD, lost_nutrition = 20)
|
||||
to_chat(affected_mob, span_warning("You feel tiny legs climbing up your throat."))
|
||||
|
||||
if(current_cycle >= transformation_cycle)
|
||||
affected_mob.mind?.add_antag_datum(/datum/antagonist/spider)
|
||||
affected_mob.change_mob_type(/mob/living/basic/spider/giant, delete_old_mob = TRUE)
|
||||
|
||||
@@ -197,8 +197,23 @@
|
||||
if(RNGCHEM_CATALYSTS)
|
||||
return list(/datum/reagent/wittel)
|
||||
|
||||
///Random recipe that turns stuff into ROCKS
|
||||
/datum/chemical_reaction/randomized/gorgium
|
||||
persistence_period = 7
|
||||
results = list(/datum/reagent/metalgen/gorgium = 20)
|
||||
|
||||
/datum/chemical_reaction/randomized/gorgium/GetPossibleReagents(kind)
|
||||
var/list/possible_ingredients = list()
|
||||
for(var/datum/reagent/reagent as anything in valid_subtypesof(/datum/reagent))
|
||||
var/chemical_flags = reagent::chemical_flags
|
||||
if(VALID_RANDOM_RECIPE_REAGENT(chemical_flags))
|
||||
possible_ingredients += reagent
|
||||
return possible_ingredients
|
||||
|
||||
/obj/item/paper/secretrecipe
|
||||
name = "Old Recipe"
|
||||
/// The recipes we can spawn with
|
||||
var/list/possible_recipes = list(/datum/chemical_reaction/randomized/metalgen, /datum/chemical_reaction/randomized/secret_sauce)
|
||||
|
||||
/obj/item/paper/secretrecipe/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -223,7 +238,7 @@
|
||||
/obj/item/paper/secretrecipe/proc/UpdateInfo()
|
||||
PRIVATE_PROC(TRUE)
|
||||
|
||||
var/datum/chemical_reaction/recipe = GLOB.chemical_reactions_list[pick(valid_subtypesof(/datum/chemical_reaction/randomized))]
|
||||
var/datum/chemical_reaction/recipe = GLOB.chemical_reactions_list[pick(possible_recipes)]
|
||||
if(!recipe)
|
||||
add_raw_text("This recipe is illegible.")
|
||||
update_appearance()
|
||||
@@ -261,6 +276,26 @@
|
||||
add_raw_text(dat.Join(""))
|
||||
update_appearance()
|
||||
|
||||
/// Paper that spawns a recipe for the petrification serum
|
||||
/obj/item/paper/secretrecipe/gorgium
|
||||
name = "paper" //gets affixed by rock
|
||||
possible_recipes = list(/datum/chemical_reaction/randomized/gorgium)
|
||||
|
||||
/obj/item/paper/secretrecipe/gorgium/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
metal_transmute(src, /datum/material/rock)
|
||||
|
||||
/// Recipe that always has metalgen
|
||||
/obj/item/paper/secretrecipe/metalgen
|
||||
name = "paper" //gets affixed by uranium
|
||||
possible_recipes = list(/datum/chemical_reaction/randomized/metalgen)
|
||||
|
||||
/obj/item/paper/secretrecipe/metalgen/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
metal_transmute(src, /datum/material/uranium)
|
||||
|
||||
#undef RNGCHEM_INPUT
|
||||
#undef RNGCHEM_CATALYSTS
|
||||
#undef VALID_RANDOM_RECIPE_REAGENT
|
||||
|
||||
Reference in New Issue
Block a user