mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-01 13:12:23 +00:00
* non airlock stuff * pain unending * comment local test define back out * this needs a room to spawn mobs in
366 lines
16 KiB
Plaintext
366 lines
16 KiB
Plaintext
/datum/game_test/room_test/attack_chain_applicator/Run()
|
|
var/datum/test_puppeteer/player = new(src)
|
|
var/datum/test_puppeteer/target = player.spawn_puppet_nearby()
|
|
var/obj/item/reagent_containers/applicator/mender = player.spawn_obj_in_hand(/obj/item/reagent_containers/applicator/burn)
|
|
|
|
mender.delay = 0
|
|
target.puppet.apply_damage(1, BURN)
|
|
player.click_on(target)
|
|
TEST_ASSERT(target.check_attack_log("Automends with"), "player failed to use mender on target")
|
|
TEST_ASSERT_EQUAL(target.puppet.health, target.puppet.getMaxHealth(), "mender failed to mend damage")
|
|
|
|
player.puppet.attack_log_old = null
|
|
player.puppet.apply_damage(1, BURN)
|
|
player.use_item_in_hand()
|
|
TEST_ASSERT(player.check_attack_log("Automends with"), "player failed to use mender on target")
|
|
TEST_ASSERT_EQUAL(player.puppet.health, player.puppet.getMaxHealth(), "mender failed to mend damage")
|
|
|
|
mender.reagents.total_volume = 0
|
|
player.click_on(target)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "[mender] is empty")
|
|
|
|
var/obj/item/storage/backpack/backpack = player.spawn_obj_nearby(/obj/item/storage/backpack)
|
|
player.click_on(backpack)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You put")
|
|
|
|
// ToasTODO: Add an AltClick test
|
|
|
|
// Test recipe for testing reagent containers in old kitchen machinery
|
|
/datum/recipe/microwave/test_recipe
|
|
duplicate = FALSE
|
|
reagents = list("sodiumchloride" = 50)
|
|
items = list(/obj/item/food/grown/apple)
|
|
result = /obj/item/food/badrecipe
|
|
|
|
/datum/game_test/room_test/attack_chain_condiment/Run()
|
|
var/datum/test_puppeteer/player = new(src)
|
|
var/obj/item/reagent_containers/saltshaker = player.spawn_obj_in_hand(/obj/item/reagent_containers/condiment/saltshaker)
|
|
|
|
var/obj/structure/reagent_dispensers/watertank = player.spawn_obj_nearby(/obj/structure/reagent_dispensers/watertank)
|
|
player.click_on(watertank)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "[saltshaker] is full!")
|
|
|
|
var/obj/machinery/kitchen_machine/microwave = player.spawn_obj_nearby(/obj/machinery/kitchen_machine/microwave)
|
|
player.click_on(microwave)
|
|
TEST_ASSERT_ANY_CHATLOG(player, "You transfer")
|
|
TEST_ASSERT_NOT_CHATLOG(player, "You hit")
|
|
|
|
player.click_on(player)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You swallow some")
|
|
|
|
saltshaker.reagents.total_volume = 0
|
|
player.click_on(microwave)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "is empty!")
|
|
player.click_on(player)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "None of [saltshaker] left, oh no!")
|
|
|
|
player.click_on(watertank)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You fill")
|
|
|
|
var/obj/item/storage/backpack = player.spawn_obj_nearby(/obj/item/storage/backpack)
|
|
player.click_on(backpack)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You put")
|
|
|
|
var/obj/item/food/sliced/margherita_pizza = player.spawn_obj_nearby(/obj/item/food/sliced/margherita_pizza)
|
|
player.spawn_obj_in_hand(/obj/item/reagent_containers/condiment/pack)
|
|
player.click_on(margherita_pizza)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You tear open")
|
|
|
|
player.spawn_obj_in_hand(/obj/item/reagent_containers/condiment/pack)
|
|
player.click_on(backpack)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You put")
|
|
|
|
/datum/game_test/room_test/attack_chain_drinks/Run()
|
|
var/datum/test_puppeteer/player = new(src)
|
|
var/obj/structure/reagent_dispensers/watertank/watertank = player.spawn_obj_nearby(/obj/structure/reagent_dispensers/watertank)
|
|
var/obj/item/reagent_containers/glass/bucket/bucket = player.spawn_obj_nearby(/obj/item/reagent_containers/glass/bucket)
|
|
var/obj/item/storage/backpack/backpack = player.spawn_obj_nearby(/obj/item/storage/backpack)
|
|
|
|
// Drinks
|
|
var/obj/item/reagent_containers/drinks/coffee/coffee = player.spawn_obj_in_hand(/obj/item/reagent_containers/drinks/coffee)
|
|
player.click_on(player)
|
|
TEST_ASSERT_ANY_CHATLOG(player, "You swallow a gulp of [coffee]")
|
|
|
|
player.click_on(bucket)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You transfer")
|
|
|
|
coffee.reagents.total_volume = 0
|
|
player.click_on(player)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "None of [coffee] left, oh no!")
|
|
|
|
player.click_on(bucket)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "[coffee] is empty.")
|
|
|
|
player.click_on(watertank)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You fill [coffee] with")
|
|
|
|
player.click_on(backpack)
|
|
TEST_ASSERT(coffee in backpack.contents, "player failed to put [coffee] in backpack")
|
|
|
|
bucket.reagents.total_volume = 0
|
|
qdel(coffee)
|
|
|
|
// Cans
|
|
var/obj/item/reagent_containers/drinks/cans/can = player.spawn_obj_in_hand(/obj/item/reagent_containers/drinks/cans/cola)
|
|
|
|
player.click_on(player)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You need to open [can] first!")
|
|
|
|
player.use_item_in_hand()
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You open the drink with an audible pop!")
|
|
|
|
player.click_on(watertank)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You fill [can] with")
|
|
|
|
player.click_on(player)
|
|
TEST_ASSERT_ANY_CHATLOG(player, "You swallow a gulp of [can]")
|
|
|
|
player.click_on(bucket)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You transfer")
|
|
|
|
player.set_zone("head")
|
|
player.set_intent("harm")
|
|
can.reagents.total_volume = 0
|
|
player.click_on(player)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You crush [can] on your forehead.")
|
|
|
|
can = player.spawn_obj_in_hand(/obj/item/reagent_containers/drinks/cans/cola)
|
|
player.set_intent("help")
|
|
player.click_on(backpack)
|
|
TEST_ASSERT(can in backpack.contents, "player failed to put can in backpack")
|
|
qdel(can)
|
|
|
|
// Bottles
|
|
var/obj/item/reagent_containers/drinks/bottle/whiskey/bottle = player.spawn_obj_in_hand(/obj/item/reagent_containers/drinks/bottle/whiskey)
|
|
player.click_on(bucket)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You transfer")
|
|
|
|
player.click_on(player)
|
|
TEST_ASSERT_ANY_CHATLOG(player, "You swallow a gulp of [bottle]")
|
|
|
|
player.click_on(watertank)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You fill [bottle] with")
|
|
|
|
player.set_intent("harm")
|
|
player.click_on(player)
|
|
TEST_ASSERT(player.check_attack_log("Hit with [bottle]"), "player failed to smash a bottle on harm intent")
|
|
TEST_ASSERT_NOTEQUAL(player.puppet.health, player.puppet.getMaxHealth(), "bottle smash didnt deal damage")
|
|
player.puppet.drop_item()
|
|
player.set_intent("help")
|
|
|
|
bottle = player.spawn_obj_in_hand(/obj/item/reagent_containers/drinks/bottle/whiskey)
|
|
player.click_on(backpack)
|
|
TEST_ASSERT(bottle in backpack.contents, "player failed to put bottle in backpack")
|
|
qdel(bottle)
|
|
|
|
// Molotov
|
|
var/obj/item/reagent_containers/drinks/bottle/molotov/molotov = player.spawn_obj_nearby(/obj/item/reagent_containers/drinks/bottle/molotov)
|
|
molotov.list_reagents = list("vodka" = 100)
|
|
|
|
var/lighter = player.spawn_obj_in_hand(/obj/item/lighter/zippo)
|
|
player.use_item_in_hand()
|
|
player.click_on(molotov)
|
|
TEST_ASSERT(molotov.active, "player failed to light molotov")
|
|
|
|
player.puppet.drop_item()
|
|
player.click_on(molotov)
|
|
player.use_item_in_hand()
|
|
TEST_ASSERT(!molotov.active, "player failed to extinguish molotov")
|
|
|
|
player.click_on(backpack)
|
|
TEST_ASSERT(molotov in backpack.contents, "player failed to put molotov in backpack")
|
|
qdel(molotov)
|
|
|
|
// Drinking glass
|
|
var/obj/item/reagent_containers/drinks/drinkingglass/glass = player.spawn_obj_nearby(/obj/item/reagent_containers/drinks/drinkingglass)
|
|
var/obj/item/food/egg/egg = player.spawn_obj_in_hand(/obj/item/food/egg)
|
|
player.click_on(glass)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You break [egg] in")
|
|
|
|
player.click_on(glass)
|
|
player.click_on(backpack)
|
|
TEST_ASSERT(glass in backpack.contents, "player failed to put drinking glass in backpack")
|
|
qdel(glass)
|
|
|
|
// Shot glass - For some reason the shotglass doesn't get clicked. Works ingame
|
|
var/obj/item/reagent_containers/drinks/drinkingglass/shotglass/shotglass = player.spawn_obj_nearby(/obj/item/reagent_containers/drinks/drinkingglass/shotglass)
|
|
shotglass.reagents.add_reagent("vodka", 15)
|
|
|
|
player.click_on(lighter)
|
|
player.click_on(shotglass)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "The shot glass of Vodka begins to burn with a blue hue!")
|
|
|
|
player.puppet.drop_item()
|
|
player.click_on(shotglass)
|
|
player.use_item_in_hand()
|
|
TEST_ASSERT_LAST_CHATLOG(player, "The dancing flame on the flaming shot glass of Vodka dies out.")
|
|
|
|
/datum/game_test/room_test/attack_chain_medcontainers/Run()
|
|
var/datum/test_puppeteer/player = new(src)
|
|
var/datum/test_puppeteer/target = player.spawn_puppet_nearby()
|
|
|
|
var/obj/structure/table/table = player.spawn_obj_nearby(/obj/structure/table)
|
|
|
|
// Pills
|
|
var/obj/pill = player.spawn_obj_in_hand(/obj/item/reagent_containers/pill/salicylic)
|
|
player.click_on_self()
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You swallow [pill].")
|
|
var/obj/beaker = player.spawn_obj_nearby(/obj/item/reagent_containers/glass/beaker)
|
|
player.puppet.swap_hand()
|
|
pill = player.spawn_obj_in_hand(/obj/item/reagent_containers/pill/salicylic)
|
|
player.click_on(beaker)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You break open [pill] in [beaker].")
|
|
pill = player.spawn_obj_in_hand(/obj/item/reagent_containers/pill/salicylic)
|
|
player.click_on(beaker)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You dissolve [pill] in [beaker].")
|
|
pill = player.spawn_obj_in_hand(/obj/item/reagent_containers/pill/salicylic)
|
|
player.use_item_in_hand()
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You swallow [pill].")
|
|
pill = player.spawn_obj_in_hand(/obj/item/reagent_containers/pill/salicylic)
|
|
player.click_on(table)
|
|
TEST_ASSERT(pill in get_turf(table), "pill not placed on table")
|
|
|
|
// Patches
|
|
var/obj/item/reagent_containers/patch/patch = player.spawn_obj_in_hand(/obj/item/reagent_containers/patch/silver_sulf)
|
|
player.click_on_self()
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You apply [patch].")
|
|
patch = player.spawn_obj_in_hand(/obj/item/reagent_containers/patch/silver_sulf)
|
|
patch.instant_application = TRUE
|
|
player.click_on(target)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "[player.puppet] forces [target.puppet] to apply [patch].")
|
|
|
|
// Beakers
|
|
beaker = player.spawn_obj_in_hand(/obj/item/reagent_containers/glass/beaker)
|
|
var/obj/machinery/clonepod/clonepod = player.spawn_obj_nearby(/obj/machinery/clonepod)
|
|
beaker.reagents.add_reagent("sanguine_reagent", 10)
|
|
player.click_on(clonepod)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You transfer 10 units of the solution to [clonepod].")
|
|
player.click_on(table)
|
|
TEST_ASSERT(beaker in get_turf(table), "beaker not placed on table")
|
|
|
|
// Pill bottles
|
|
var/obj/pill_bottle = player.spawn_obj_in_hand(/obj/item/storage/pill_bottle)
|
|
player.puppet.swap_hand()
|
|
pill = player.spawn_obj_in_hand(/obj/item/reagent_containers/pill/salicylic)
|
|
player.click_on(pill_bottle)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You put [pill] into [pill_bottle].")
|
|
|
|
/datum/game_test/room_test/attack_chain_syringes/Run()
|
|
var/datum/test_puppeteer/player = new(src)
|
|
var/datum/test_puppeteer/target = player.spawn_puppet_nearby()
|
|
|
|
var/obj/item/reagent_containers/syringe/syringe = player.spawn_obj_in_hand(/obj/item/reagent_containers/syringe)
|
|
var/obj/beaker = player.spawn_obj_nearby(/obj/item/reagent_containers/glass/beaker)
|
|
beaker.reagents.add_reagent("plasma_dust", 10)
|
|
player.click_on(beaker)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You fill the syringe with 5 units of the solution.")
|
|
qdel(syringe)
|
|
|
|
syringe = player.spawn_obj_in_hand(/obj/item/reagent_containers/syringe)
|
|
player.click_on(target)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "[player.puppet] takes a blood sample from [target.puppet]")
|
|
qdel(syringe)
|
|
|
|
syringe = player.spawn_obj_in_hand(/obj/item/reagent_containers/syringe)
|
|
syringe.syringe_draw_time = 0
|
|
player.click_on_self()
|
|
TEST_ASSERT_LAST_CHATLOG(player, "[player.puppet] takes a blood sample from [player.puppet]")
|
|
var/obj/slime_extract = player.spawn_obj_nearby(/obj/item/slime_extract/grey)
|
|
player.click_on(slime_extract)
|
|
TEST_ASSERT_ANY_CHATLOG(player, "the used slime extract's power is consumed in the reaction")
|
|
|
|
player.click_on(beaker)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You inject 5 units of the solution")
|
|
|
|
/datum/game_test/room_test/attack_chain_iv_bags/Run()
|
|
var/datum/test_puppeteer/player = new(src)
|
|
var/datum/test_puppeteer/target = player.spawn_puppet_nearby()
|
|
|
|
var/obj/machinery/iv_drip/iv_drip = player.spawn_obj_nearby(/obj/machinery/iv_drip)
|
|
var/obj/blood_bag = player.spawn_obj_in_hand(/obj/item/reagent_containers/iv_bag)
|
|
player.click_on(iv_drip)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You attach [blood_bag] to [iv_drip].")
|
|
var/obj/beaker = player.spawn_obj_in_hand(/obj/item/reagent_containers/glass/beaker/cryoxadone)
|
|
player.click_on(iv_drip)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You transfer 10 units of the solution to [blood_bag].")
|
|
player.put_away(beaker)
|
|
target.puppet.forceMove(get_turf(iv_drip))
|
|
iv_drip.drag_drop_onto(target.puppet, player.puppet)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "[player.puppet] inserts [blood_bag]'s needle into [target.puppet]'s arm")
|
|
|
|
blood_bag = player.spawn_obj_in_hand(/obj/item/reagent_containers/iv_bag)
|
|
player.puppet.swap_hand()
|
|
player.retrieve(beaker)
|
|
player.click_on(blood_bag)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You transfer 10 units of the solution to [blood_bag]")
|
|
|
|
player.puppet.swap_hand()
|
|
player.click_on(beaker)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You transfer 1 units of the solution to [beaker]")
|
|
|
|
/datum/game_test/room_test/attack_chain_chemistry_bags/Run()
|
|
var/datum/test_puppeteer/player = new(src)
|
|
|
|
var/obj/table = player.spawn_obj_nearby(/obj/structure/table)
|
|
var/turf/T = get_turf(table)
|
|
var/obj/last_patch
|
|
for(var/i in 1 to 5)
|
|
last_patch = new /obj/item/reagent_containers/patch/styptic(T)
|
|
var/obj/chem_bag = player.spawn_obj_in_hand(/obj/item/storage/bag/chemistry)
|
|
player.click_on(last_patch)
|
|
TEST_ASSERT_EQUAL(length(chem_bag.contents), 5, "chem bag failed to pick up patches")
|
|
|
|
var/obj/chem_fridge = player.spawn_obj_nearby(/obj/machinery/smartfridge/medbay)
|
|
player.click_on(chem_fridge)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You load [chem_fridge] with [chem_bag]")
|
|
|
|
player.puppet.swap_hand()
|
|
var/obj/patch = player.spawn_obj_in_hand(/obj/item/reagent_containers/patch/styptic)
|
|
player.click_on(chem_bag)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You put [patch] into [chem_bag]")
|
|
|
|
/datum/game_test/room_test/attack_chain_rags/Run()
|
|
var/datum/test_puppeteer/player = new(src)
|
|
var/turf/simulated/floor/floor = get_turf(player.puppet)
|
|
new/obj/effect/decal/cleanable/dirt(floor)
|
|
var/obj/item/reagent_containers/glass/rag/rag = player.spawn_obj_in_hand(/obj/item/reagent_containers/glass/rag)
|
|
rag.wipespeed = 0
|
|
player.click_on(floor)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You clean the floor with the damp rag.")
|
|
|
|
var/datum/test_puppeteer/target = player.spawn_puppet_nearby()
|
|
rag.reagents.add_reagent("omnizine", 10)
|
|
player.click_on(target)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You smother [target.puppet] with [rag]")
|
|
|
|
/datum/game_test/room_test/attack_chain_hyposprays/Run()
|
|
var/datum/test_puppeteer/player = new(src)
|
|
var/obj/autoinjector = player.spawn_obj_in_hand(/obj/item/reagent_containers/hypospray/autoinjector/stimpack)
|
|
player.click_on_self()
|
|
TEST_ASSERT_ANY_CHATLOG(player, "You feel a tiny prick")
|
|
TEST_ASSERT_ANY_CHATLOG(player, "You inject [player.puppet] with [autoinjector]")
|
|
var/mob/target = player.spawn_mob_nearby(/mob/living/carbon/human)
|
|
player.put_away(autoinjector)
|
|
autoinjector = player.spawn_obj_in_hand(/obj/item/reagent_containers/hypospray/autoinjector/stimpack)
|
|
player.click_on(target)
|
|
TEST_ASSERT_ANY_CHATLOG(player, "You inject [target] with [autoinjector]")
|
|
|
|
/datum/game_test/room_test/attack_chain_droppers/Run()
|
|
var/datum/test_puppeteer/player = new(src)
|
|
var/datum/test_puppeteer/target = player.spawn_puppet_nearby()
|
|
var/obj/item/reagent_containers/dropper/dropper = player.spawn_obj_in_hand(/obj/item/reagent_containers/dropper)
|
|
dropper.mob_drip_delay = 0
|
|
var/obj/item/beaker = player.spawn_obj_nearby(/obj/item/reagent_containers/glass/beaker/waterbottle)
|
|
player.click_on(beaker)
|
|
TEST_ASSERT_LAST_CHATLOG(player, "You fill [dropper] with 1 units of the solution.")
|
|
player.click_on(target)
|
|
TEST_ASSERT_ANY_CHATLOG(player, "[player.puppet] drips something into [target.puppet]'s eyes")
|
|
TEST_ASSERT_NOT_CHATLOG(player, "You cannot directly remove reagents from [target.puppet]")
|
|
|
|
/datum/game_test/room_test/attack_chain_spray/Run()
|
|
var/datum/test_puppeteer/player = new(src)
|
|
var/obj/item/reagent_containers/spray/spray = player.spawn_obj_in_hand(/obj/item/reagent_containers/spray)
|
|
var/obj/structure/table = player.spawn_obj_nearby(/obj/structure/table)
|
|
player.click_on(table)
|
|
TEST_ASSERT(spray in get_turf(table), "spray bottle not placed on table")
|