mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 06:29:23 +01:00
Adds a treasure chest to the ocean/beach fishing spot. (#85276)
## About The Pull Request This PR adds a treasure chest that can be fished from the ocean if you're lucky enough (or have enough explosives or lobstrosities to do it for you). The treasure chest is basically a mystery box (like the ones from the deathmatch) with a couple catches; the treasure chest can be opened up to 18 times in total before breaking down, however, it can only be opened up to 3 times per spaceman, encouraging the player to share it with others. Here the possible loot by the by: - A toolbox containing a master fishing rod, all the hooks and reels, fish feed, an experi-scanner, an aquarium kit and a can of super baits - A box containing a lazarus injector, a cup and a bottle of strange reagent which you can use to revive fish now - A circuit board for a pre-emagged fishing portal generator - A master fishing rod - A can of super fishing baits - A fish case containing Tiziran fish - A fish case containing Syndicate fish - An old, yet fairly strong cutlass - An old laser gun which fires only 5 shots before running out - A crank laser musket - A smoothbore disabler - A surplus bolt action rifle - A ration pack - A can of squid ink - A bottle of aged rum that forces you to switch to the piratespeak language - A money bag with some doubloons inside - A piratespeak manual - Pirate armored coat - Pirate armored hat - A pre-loaded cannon - Four trash cannon balls - Four cannon balls ## Why It's Good For The Game Mystery boxes are fun, from the little fanfare they play to the potential loot they can give, and I had an old treasure chest I had sprited for fun years ago around so I've come up with an entertaining idea. If you think the loot list is a bit too hot, I can cool it down a bit. Also yeah, I wanted to make fish revivable with strange reagent, since you can already do it with lazarus injectors even though using a lazarus injector for this would be a severe waste of mining points. ## Changelog 🆑 add: Added a treasure chest you can rarely fish from the ocean/beach, with loot being a mix of fishing and piratey stuff. add: You can revive fish with strange reagent now. /🆑
This commit is contained in:
@@ -143,6 +143,7 @@
|
||||
/obj/item/storage/box/aquarium_props
|
||||
name = "aquarium props box"
|
||||
desc = "All you need to make your aquarium look good."
|
||||
illustration = "fish"
|
||||
|
||||
/obj/item/storage/box/aquarium_props/PopulateContents()
|
||||
for(var/prop_type in subtypesof(/obj/item/aquarium_prop))
|
||||
|
||||
@@ -3,13 +3,16 @@
|
||||
desc = "there's a lot of them in there, getting them out takes a while though"
|
||||
icon = 'icons/obj/fishing.dmi'
|
||||
icon_state = "bait_can"
|
||||
base_icon_state = "bait_can"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
/// Tracking until we can take out another bait item
|
||||
COOLDOWN_DECLARE(bait_removal_cooldown)
|
||||
/// What bait item it produces
|
||||
var/bait_type
|
||||
var/obj/item/bait_type = /obj/item/food/bait
|
||||
/// Time between bait retrievals
|
||||
var/cooldown_time = 10 SECONDS
|
||||
var/cooldown_time = 5 SECONDS
|
||||
/// How many uses does it have left.
|
||||
var/uses_left = 20
|
||||
|
||||
/obj/item/bait_can/attack_self(mob/user, modifiers)
|
||||
. = ..()
|
||||
@@ -17,19 +20,44 @@
|
||||
if(fresh_bait)
|
||||
user.put_in_hands(fresh_bait)
|
||||
|
||||
/obj/item/bait_can/examine(mob/user)
|
||||
. = ..()
|
||||
. += span_info("It[uses_left ? " has got [uses_left] [bait_type::name] left" : "'s empty"].")
|
||||
|
||||
/obj/item/bait_can/update_icon_state()
|
||||
. = ..()
|
||||
icon_state = base_icon_state
|
||||
if(uses_left <= initial(uses_left))
|
||||
if(!uses_left)
|
||||
icon_state = "[icon_state]_empty"
|
||||
else
|
||||
icon_state = "[icon_state]_open"
|
||||
|
||||
/obj/item/bait_can/proc/retrieve_bait(mob/user)
|
||||
if(!uses_left)
|
||||
user.balloon_alert(user, "empty")
|
||||
return
|
||||
if(!COOLDOWN_FINISHED(src, bait_removal_cooldown))
|
||||
user.balloon_alert(user, "wait a bit") //I can't think of generic ic reason.
|
||||
user.balloon_alert(user, "wait a bit")
|
||||
return
|
||||
COOLDOWN_START(src, bait_removal_cooldown, cooldown_time)
|
||||
update_appearance()
|
||||
uses_left--
|
||||
return new bait_type(src)
|
||||
|
||||
/obj/item/bait_can/worm
|
||||
name = "can o' worm"
|
||||
desc = "this can got worms."
|
||||
desc = "This can got worms."
|
||||
bait_type = /obj/item/food/bait/worm
|
||||
|
||||
/obj/item/bait_can/worm/premium
|
||||
name = "can o' worm deluxe"
|
||||
desc = "this can got fancy worms."
|
||||
desc = "This can got fancy worms."
|
||||
bait_type = /obj/item/food/bait/worm/premium
|
||||
|
||||
/obj/item/bait_can/super_baits
|
||||
name = "can o' super-baits"
|
||||
desc = "This can got the nectar of god."
|
||||
bait_type = /obj/item/food/bait/doughball/synthetic/super
|
||||
uses_left = 12
|
||||
|
||||
|
||||
@@ -390,6 +390,20 @@
|
||||
update_appearance()
|
||||
SEND_SIGNAL(src, COMSIG_FISH_STATUS_CHANGED)
|
||||
|
||||
/obj/item/fish/expose_reagents(list/reagents, datum/reagents/source, methods = TOUCH, volume_modifier = 1, show_message = TRUE)
|
||||
. = ..()
|
||||
if(. & COMPONENT_NO_EXPOSE_REAGENTS || status != FISH_DEAD)
|
||||
return
|
||||
var/datum/reagent/medicine/strange_reagent/revival = locate() in reagents
|
||||
if(!revival)
|
||||
return
|
||||
if(reagents[revival] >= 2 * w_class)
|
||||
set_status(FISH_ALIVE)
|
||||
else
|
||||
balloon_alert_to_viewers("twitches for a moment!")
|
||||
animate(src, pixel_x = 1, time = 0.1 SECONDS, loop = 2, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL)
|
||||
animate(pixel_x = -1, flags = ANIMATION_RELATIVE)
|
||||
|
||||
/obj/item/fish/proc/use_lazarus(datum/source, obj/item/lazarus_injector/injector, mob/user)
|
||||
SIGNAL_HANDLER
|
||||
if(injector.revive_type != SENTIENCE_ORGANIC)
|
||||
|
||||
@@ -260,7 +260,6 @@
|
||||
// Can hold fishing rod despite the size
|
||||
var/static/list/exception_cache = typecacheof(list(
|
||||
/obj/item/fishing_rod,
|
||||
/obj/item/fishing_line,
|
||||
))
|
||||
atom_storage.exception_hold = exception_cache
|
||||
|
||||
@@ -286,30 +285,73 @@
|
||||
new /obj/item/fishing_hook(src)
|
||||
new /obj/item/fishing_line(src)
|
||||
|
||||
/obj/item/storage/toolbox/fishing/master
|
||||
name = "super fishing toolbox"
|
||||
desc = "Contains EVERYTHING (almost) you need for your fishing trip."
|
||||
icon_state = "gold"
|
||||
inhand_icon_state = "toolbox_gold"
|
||||
|
||||
/obj/item/storage/toolbox/fishing/master/PopulateContents()
|
||||
new /obj/item/fishing_rod/telescopic/master(src)
|
||||
new /obj/item/storage/box/fishing_hooks/master(src)
|
||||
new /obj/item/storage/box/fishing_lines/master(src)
|
||||
new /obj/item/bait_can/super_baits(src)
|
||||
new /obj/item/fish_feed(src)
|
||||
new /obj/item/aquarium_kit(src)
|
||||
new /obj/item/fish_analyzer(src)
|
||||
new /obj/item/experi_scanner(src)
|
||||
|
||||
/obj/item/storage/box/fishing_hooks
|
||||
name = "fishing hook set"
|
||||
illustration = "fish"
|
||||
|
||||
/obj/item/storage/box/fishing_hooks/PopulateContents()
|
||||
. = ..()
|
||||
new /obj/item/fishing_hook/magnet(src)
|
||||
new /obj/item/fishing_hook/shiny(src)
|
||||
new /obj/item/fishing_hook/weighted(src)
|
||||
|
||||
/obj/item/storage/box/fishing_hooks/master
|
||||
|
||||
/obj/item/storage/box/fishing_hooks/master/PopulateContents()
|
||||
. = ..()
|
||||
new /obj/item/fishing_hook/stabilized(src)
|
||||
new /obj/item/fishing_hook/jaws(src)
|
||||
|
||||
/obj/item/storage/box/fishing_lines
|
||||
name = "fishing line set"
|
||||
illustration = "fish"
|
||||
|
||||
/obj/item/storage/box/fishing_lines/PopulateContents()
|
||||
. = ..()
|
||||
new /obj/item/fishing_line/bouncy(src)
|
||||
new /obj/item/fishing_line/reinforced(src)
|
||||
new /obj/item/fishing_line/cloaked(src)
|
||||
|
||||
/obj/item/storage/box/fishing_lines/master
|
||||
|
||||
/obj/item/storage/box/fishing_lines/master/PopulateContents()
|
||||
. = ..()
|
||||
new /obj/item/fishing_line/auto_reel(src)
|
||||
|
||||
/obj/item/storage/box/fish_debug
|
||||
name = "box full of fish"
|
||||
illustration = "fish"
|
||||
|
||||
/obj/item/storage/box/fish_debug/PopulateContents()
|
||||
for(var/fish_type in subtypesof(/obj/item/fish))
|
||||
new fish_type(src)
|
||||
|
||||
///From the fishing mystery box. It's basically a lazarus and a few bottles of strange reagents.
|
||||
/obj/item/storage/box/fish_revival_kit
|
||||
name = "fish revival kit"
|
||||
desc = "Become a fish doctor today."
|
||||
illustration = "fish"
|
||||
|
||||
/obj/item/storage/box/fish_revival_kit/PopulateContents()
|
||||
new /obj/item/lazarus_injector(src)
|
||||
new /obj/item/reagent_containers/cup/bottle/strange_reagent(src)
|
||||
new /obj/item/reagent_containers/cup(src) //to splash the reagents on the fish.
|
||||
new /obj/item/storage/fish_case(src)
|
||||
new /obj/item/storage/fish_case(src)
|
||||
|
||||
#undef MAGNET_HOOK_BONUS_MULTIPLIER
|
||||
#undef RESCUE_HOOK_FISH_MULTIPLIER
|
||||
|
||||
@@ -100,3 +100,7 @@
|
||||
if(!choice || !can_interact(user))
|
||||
return
|
||||
activate(available_fish_sources[choice])
|
||||
|
||||
/obj/machinery/fishing_portal_generator/emagged
|
||||
obj_flags = parent_type::obj_flags | EMAGGED
|
||||
circuit = /obj/item/circuitboard/machine/fishing_portal_generator/emagged
|
||||
|
||||
@@ -9,9 +9,11 @@
|
||||
/obj/item/fish/lanternfish = 5,
|
||||
/obj/item/fish/zipzap = 5,
|
||||
/obj/item/fish/clownfish/lube = 3,
|
||||
/obj/structure/mystery_box/fishing = 1,
|
||||
)
|
||||
fish_counts = list(
|
||||
/obj/item/fish/clownfish/lube = 2,
|
||||
/obj/structure/mystery_box/fishing = 1,
|
||||
)
|
||||
fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 5
|
||||
explosive_malus = TRUE
|
||||
|
||||
Reference in New Issue
Block a user