Adds fishing for real this time (#13622)
* Fishing * test * put fish in your damn hands * fish types and bait types and * fixing things * Update rods.dm * more stuff * ok * yes * all this stuff * Update _basemap.dm * Update game_options.txt * Apply suggestions from code review Co-authored-by: tattax <71668564+tattax@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: tattax <71668564+tattax@users.noreply.github.com> * component * move fishing * Update yogstation.dme * new icons * yeah does what tatax yeah * um new fishing cloths * working more * Update fishingbonus.dm * yeah * yup * um ok * Update fish.dm * Update fishing.dm * yep Co-authored-by: tattax <71668564+tattax@users.noreply.github.com>
@@ -15,3 +15,12 @@
|
||||
barefootstep = FOOTSTEP_WATER
|
||||
clawfootstep = FOOTSTEP_WATER
|
||||
heavyfootstep = FOOTSTEP_WATER
|
||||
|
||||
/turf/open/water/safe
|
||||
initial_gas_mix = OPENTURF_DEFAULT_ATMOS
|
||||
planetary_atmos = FALSE
|
||||
|
||||
/turf/open/water/safe/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/fishable)
|
||||
|
||||
|
||||
BIN
icons/mob/inhands/equipment/fishing_lefthand.dmi
Normal file
|
After Width: | Height: | Size: 453 B |
BIN
sound/effects/water_emerge.ogg
Normal file
@@ -3321,6 +3321,8 @@
|
||||
#include "yogstation\code\datums\antagonists\vampire.dm"
|
||||
#include "yogstation\code\datums\components\crawl.dm"
|
||||
#include "yogstation\code\datums\components\daniel.dm"
|
||||
#include "yogstation\code\datums\components\fishable.dm"
|
||||
#include "yogstation\code\datums\components\fishingbonus.dm"
|
||||
#include "yogstation\code\datums\components\radioactive.dm"
|
||||
#include "yogstation\code\datums\components\randomcrits.dm"
|
||||
#include "yogstation\code\datums\components\uplink.dm"
|
||||
@@ -3433,6 +3435,9 @@
|
||||
#include "yogstation\code\game\objects\items\devices\radio\encryptionkey.dm"
|
||||
#include "yogstation\code\game\objects\items\devices\radio\headset.dm"
|
||||
#include "yogstation\code\game\objects\items\devices\radio\radio.dm"
|
||||
#include "yogstation\code\game\objects\items\fishing\bait.dm"
|
||||
#include "yogstation\code\game\objects\items\fishing\fish.dm"
|
||||
#include "yogstation\code\game\objects\items\fishing\rods.dm"
|
||||
#include "yogstation\code\game\objects\items\grenades\glitterbombs.dm"
|
||||
#include "yogstation\code\game\objects\items\holotool\holotool.dm"
|
||||
#include "yogstation\code\game\objects\items\holotool\modes.dm"
|
||||
@@ -3567,6 +3572,7 @@
|
||||
#include "yogstation\code\modules\clothing\chameleon.dm"
|
||||
#include "yogstation\code\modules\clothing\clothing.dm"
|
||||
#include "yogstation\code\modules\clothing\donator.dm"
|
||||
#include "yogstation\code\modules\clothing\fishing.dm"
|
||||
#include "yogstation\code\modules\clothing\head.dm"
|
||||
#include "yogstation\code\modules\clothing\mask.dm"
|
||||
#include "yogstation\code\modules\clothing\shoe.dm"
|
||||
@@ -3817,6 +3823,7 @@
|
||||
#include "yogstation\code\modules\surgery\organs\lungs.dm"
|
||||
#include "yogstation\code\modules\surgery\organs\shadowling_organs.dm"
|
||||
#include "yogstation\code\modules\uplink\uplink_item.dm"
|
||||
#include "yogstation\code\modules\vending\fishing.dm"
|
||||
#include "yogstation\code\modules\webhook\webhook.dm"
|
||||
#include "yogstation\code\modules\xenoarch\loot\gigadrill.dm"
|
||||
#include "yogstation\code\modules\xenoarch\loot\guns.dm"
|
||||
|
||||
28
yogstation/code/datums/components/fishable.dm
Normal file
@@ -0,0 +1,28 @@
|
||||
/datum/component/fishable
|
||||
dupe_mode = COMPONENT_DUPE_UNIQUE
|
||||
var/datum/fishing_loot/common_loot = new /datum/fishing_loot/water/common
|
||||
|
||||
/datum/component/fishable/proc/getCommonLoot()
|
||||
return pick(common_loot.rewards)
|
||||
|
||||
/datum/component/fishable/Initialize()
|
||||
if(!istype(parent, /turf))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
|
||||
//LOOT TABLES
|
||||
|
||||
/datum/fishing_loot
|
||||
var/list/rewards = list()
|
||||
|
||||
/datum/fishing_loot/water/common
|
||||
rewards = list(
|
||||
/obj/item/reagent_containers/food/snacks/fish/goldfish,
|
||||
/obj/item/reagent_containers/food/snacks/fish/goldfish/giant,
|
||||
/obj/item/reagent_containers/food/snacks/fish/salmon,
|
||||
/obj/item/reagent_containers/food/snacks/fish/bass,
|
||||
/obj/item/reagent_containers/food/snacks/fish/tuna,
|
||||
/obj/item/reagent_containers/food/snacks/fish/shrimp,
|
||||
/obj/item/reagent_containers/food/snacks/fish/squid,
|
||||
/obj/item/reagent_containers/food/snacks/fish/puffer,
|
||||
/obj/item/reagent_containers/food/snacks/bait/leech
|
||||
)
|
||||
24
yogstation/code/datums/components/fishingbonus.dm
Normal file
@@ -0,0 +1,24 @@
|
||||
/datum/component/fishingbonus
|
||||
dupe_mode = COMPONENT_DUPE_UNIQUE
|
||||
var/fishing_bonus = 0
|
||||
var/mob/living/carbon/wearer
|
||||
|
||||
/datum/component/fishingbonus/Initialize(fishing_bonus = 0)
|
||||
if(!isclothing(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
src.fishing_bonus = fishing_bonus
|
||||
RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/OnEquip)
|
||||
RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/OnUnequip)
|
||||
|
||||
/datum/component/fishingbonus/proc/OnEquip(datum/source, mob/living/carbon/equipper, slot)
|
||||
var/obj/item/parent_item = parent
|
||||
if(!parent_item)
|
||||
return
|
||||
if(parent_item.slot_flags == slotdefine2slotbit(slot))
|
||||
equipper.fishing_power += fishing_bonus
|
||||
wearer = equipper
|
||||
|
||||
/datum/component/fishingbonus/proc/OnUnequip(datum/source, mob/living/carbon/equipper, slot)
|
||||
if(wearer)
|
||||
equipper.fishing_power -= fishing_bonus
|
||||
wearer = null
|
||||
49
yogstation/code/game/objects/items/fishing/bait.dm
Normal file
@@ -0,0 +1,49 @@
|
||||
/obj/item/reagent_containers/food/snacks/bait
|
||||
name = "development bait"
|
||||
desc = "if you see this, get help"
|
||||
icon = 'yogstation/icons/obj/fishing/fishing.dmi'
|
||||
icon_state = "bait_worm"
|
||||
tastes = list("sour, rotten water" = 1)
|
||||
foodtype = GROSS //probably dont eat it
|
||||
var/fishing_power = 10
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/bait/apprentice
|
||||
name = "apprentice bait"
|
||||
desc = "A basic bait for an aspiring fisherman"
|
||||
icon_state = "bait_1"
|
||||
fishing_power = 10
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/bait/journeyman
|
||||
name = "journeyman bait"
|
||||
desc = "Advanced bait that only a skilled fisherman can use"
|
||||
icon_state = "bait_2"
|
||||
fishing_power = 20
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/bait/master
|
||||
name = "master bait"
|
||||
desc = "A masterfully crafted bait that only a master in fishing can harness"
|
||||
icon_state = "bait_3"
|
||||
fishing_power = 30
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/bait/master/Initialize(mapload) //HEE HEEE HAHAHAHAHH HEEHEH E E EHEEE
|
||||
. = ..()
|
||||
if(prob(1))
|
||||
desc = "Don't you dare say it"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/bait/worm
|
||||
name = "worm bait"
|
||||
desc = "Might be able to catch a lizard with this..."
|
||||
icon_state = "bait_worm"
|
||||
fishing_power = 15
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/bait/leech
|
||||
name = "leech"
|
||||
desc = "What isn't fun about a little recycling?"
|
||||
icon_state = "leech"
|
||||
fishing_power = 20
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/bait/type
|
||||
name = "type bait"
|
||||
desc = "Are you talking to me?"
|
||||
icon_state = "bait_t"
|
||||
fishing_power = 25
|
||||
144
yogstation/code/game/objects/items/fishing/fish.dm
Normal file
@@ -0,0 +1,144 @@
|
||||
/obj/item/reagent_containers/food/snacks/fish
|
||||
name = "development fish"
|
||||
desc = "if you see this, get help"
|
||||
icon = 'yogstation/icons/obj/fishing/fishing.dmi'
|
||||
icon_state = "bass"
|
||||
|
||||
//food handling
|
||||
tastes = list("fishy" = 1)
|
||||
foodtype = MEAT | SEAFOOD
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/carpmeat/fish
|
||||
|
||||
//fish handling stuff
|
||||
var/length = 0
|
||||
var/weight = 0
|
||||
var/min_length = 1
|
||||
var/max_length = 10
|
||||
var/min_weight = 1
|
||||
var/max_weight = 15
|
||||
|
||||
|
||||
throwforce = 10
|
||||
var/mob/showoffer
|
||||
var/mutable_appearance/showoff_overlay
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/fish/Initialize(mapload)
|
||||
. = ..()
|
||||
length = rand(min_length,max_length)
|
||||
weight = rand(min_weight,max_weight)
|
||||
list_reagents = list(/datum/reagent/consumable/nutriment = (3 * slices_num), /datum/reagent/consumable/nutriment/vitamin = (2 * slices_num))
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/fish/proc/GetChumValue()
|
||||
return //not used yet
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/fish/examine(mob/user)
|
||||
. = ..()
|
||||
. += "It's [length] inches and [weight] ounces!"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/fish/attack_self(mob/M)
|
||||
if(showoff_overlay)
|
||||
stop_overlay()
|
||||
return
|
||||
|
||||
M.setDir(SOUTH)
|
||||
showoff_overlay = mutable_appearance(icon,icon_state)
|
||||
M.add_overlay(showoff_overlay)
|
||||
showoffer = M
|
||||
M.visible_message("[M] shows off [src]. It's [length] inches long and weighs [weight] ounces!", \
|
||||
span_notice("You show off [src]. It's [length] inches long and weighs [weight] ounces!"))
|
||||
RegisterSignal(M,COMSIG_ATOM_DIR_CHANGE,.proc/stop_overlay,TRUE)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/fish/proc/stop_overlay()
|
||||
if(showoffer && showoff_overlay)
|
||||
UnregisterSignal(showoffer,COMSIG_ATOM_DIR_CHANGE)
|
||||
showoffer.cut_overlay(showoff_overlay)
|
||||
showoffer = null
|
||||
showoff_overlay = null
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/fish/goldfish
|
||||
name = "galactic goldfish"
|
||||
desc = "it's so... small!"
|
||||
icon_state = "fish_goldfish"
|
||||
min_length = 1
|
||||
max_length = 2
|
||||
min_weight = 2
|
||||
max_weight = 8
|
||||
slices_num = 1
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/fish/goldfish/giant
|
||||
name = "giant galactic goldfish"
|
||||
desc = "it's so... big!"
|
||||
icon_state = "fish_goldfish_big"
|
||||
min_length = 6
|
||||
max_length = 19
|
||||
min_weight = 24
|
||||
max_weight = 144
|
||||
slices_num = 2
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/fish/salmon
|
||||
name = "space salmon"
|
||||
desc = "i thought they were supposed to be red"
|
||||
icon_state = "fish_salmon"
|
||||
min_length = 28
|
||||
max_length = 32
|
||||
min_weight = 8
|
||||
max_weight = 12
|
||||
slices_num = 3
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/fish/bass
|
||||
name = "big bang bass"
|
||||
desc = "how am I supposed to play this thing?"
|
||||
icon_state = "fish_bass"
|
||||
min_length = 12
|
||||
max_length = 32
|
||||
min_weight = 128
|
||||
max_weight = 192
|
||||
slices_num = 3
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/fish/tuna
|
||||
name = "temporal tuna"
|
||||
desc = "you can tune a piano but you can't tuna fish"
|
||||
icon_state = "fish_tuna"
|
||||
min_length = 15
|
||||
max_length = 79
|
||||
min_weight = 18
|
||||
max_weight = 1000
|
||||
slices_num = 3
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/fish/shrimp
|
||||
name = "space shrimp"
|
||||
desc = "he looks a little shrimpy"
|
||||
icon_state = "fish_shrimp"
|
||||
min_length = 1
|
||||
max_length = 6
|
||||
min_weight = 1
|
||||
max_weight = 3
|
||||
slices_num = null //just eat as is
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/fish/squid
|
||||
name = "space squid"
|
||||
desc = "like the game?"
|
||||
icon_state = "fish_squid"
|
||||
min_length = 18
|
||||
max_length = 24
|
||||
min_weight = 4
|
||||
max_weight = 9
|
||||
slices_num = 3
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/fish/puffer
|
||||
name = "plasma pufferfish"
|
||||
desc = "it doesn't look like it's made of plasma..."
|
||||
icon_state = "fish_puffer"
|
||||
min_length = 1
|
||||
max_length = 1.4
|
||||
min_weight = 1
|
||||
max_weight = 2
|
||||
slices_num = 2
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/carpmeat/fish //basic fish fillet (no carpotoxin) for fish butchering
|
||||
name = "fish fillet"
|
||||
desc = "A fillet of spess fish meat."
|
||||
list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2)
|
||||
|
||||
|
||||
|
||||
156
yogstation/code/game/objects/items/fishing/rods.dm
Normal file
@@ -0,0 +1,156 @@
|
||||
/obj/item/twohanded/fishingrod
|
||||
name = "fishing rod"
|
||||
desc = "A rod used for fishing. Despite ordinary appearances, fishing has evolved to suit the cosmos with various features, like auto-reeling."
|
||||
icon = 'yogstation/icons/obj/fishing/fishing.dmi'
|
||||
icon_state = "fishing_rod"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/fishing_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
|
||||
usesound = 'sound/items/crowbar.ogg'
|
||||
slot_flags = ITEM_SLOT_BACK
|
||||
force = 2
|
||||
throwforce = 5
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
materials = list(/datum/material/iron=50)
|
||||
|
||||
var/fishing_power = 10
|
||||
var/obj/item/reagent_containers/food/snacks/bait/bait = null //what bait is attached to the rod
|
||||
var/fishing = FALSE
|
||||
var/bobber_image = 'yogstation/icons/obj/fishing/fishing.dmi'
|
||||
var/bobber_icon_state = "bobber"
|
||||
var/static/mutable_appearance/bobber = mutable_appearance('yogstation/icons/obj/fishing/fishing.dmi',"bobber")
|
||||
var/datum/component/fishable/fishing_component
|
||||
var/mob/fisher
|
||||
var/bite = FALSE
|
||||
|
||||
/obj/item/twohanded/fishingrod/examine(mob/user)
|
||||
. = ..()
|
||||
. += "Its current fishing power is [fishing_power]."
|
||||
|
||||
/obj/item/twohanded/fishingrod/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
var/datum/component/fishable/fc = target.GetComponent(/datum/component/fishable)
|
||||
if(!fc)
|
||||
return ..()
|
||||
if(!fishing)
|
||||
if(!wielded)
|
||||
to_chat(user, span_warning("You need to wield the rod in both hands before you can cast it!"))
|
||||
return
|
||||
cast(fc,user)
|
||||
else
|
||||
if(fc != fishing_component)
|
||||
to_chat(user, span_warning("You are not fishing here!"))
|
||||
return
|
||||
reel_in() //intentionally able to reel in with one hand
|
||||
|
||||
/obj/item/twohanded/fishingrod/process()
|
||||
if(!fishing)
|
||||
return PROCESS_KILL
|
||||
if(bite)
|
||||
to_chat(fisher, span_warning("Whatever was on the line drifts back into the deep..."))
|
||||
bite = FALSE
|
||||
return
|
||||
|
||||
var/power = 0
|
||||
if(iscarbon(fisher)) //sorry, non-carbons don't get to wear cool fishing outfits
|
||||
var/mob/living/carbon/carbonfisher = fisher
|
||||
power = carbonfisher.fishing_power
|
||||
if(prob(fishing_power + power))
|
||||
to_chat(fisher, span_boldnotice("Something bites! Reel it in!"))
|
||||
bite = TRUE
|
||||
do_fishing_alert(fisher)
|
||||
|
||||
/obj/item/twohanded/fishingrod/Destroy()
|
||||
STOP_PROCESSING(SSobj,src)
|
||||
return ..()
|
||||
|
||||
/obj/item/twohanded/fishingrod/proc/cast(datum/component/fishable/fc,mob/user)
|
||||
fishing = TRUE
|
||||
fishing_component = fc
|
||||
var/turf/fishing_turf = fishing_component.parent
|
||||
fishing_turf.add_overlay(bobber)
|
||||
fisher = user
|
||||
RegisterSignal(user,COMSIG_MOVABLE_MOVED, .proc/reel_in_forced,TRUE)
|
||||
RegisterSignal(src,COMSIG_MOVABLE_MOVED, .proc/reel_in_forced,TRUE)
|
||||
RegisterSignal(src,COMSIG_ITEM_DROPPED, .proc/reel_in_forced,TRUE)
|
||||
START_PROCESSING(SSobj,src)
|
||||
playsound(fishing_component, 'sound/effects/splash.ogg', 50, FALSE, -5)
|
||||
to_chat(fisher, span_italics("You cast out your fishing rod..."))
|
||||
|
||||
/obj/item/twohanded/fishingrod/proc/reel_in(var/forced = FALSE)
|
||||
if(!forced && bite) // we got something!!!
|
||||
playsound(fishing_component, 'sound/effects/water_emerge.ogg', 50, FALSE, -5)
|
||||
spawn_reward()
|
||||
if(bait && prob(max(50 - bait.fishing_power,0))) //50 - bait.fishing_power% chance to lose your bait
|
||||
to_chat(fisher, span_notice("Your [bait] is lost!"))
|
||||
cut_overlays()
|
||||
QDEL_NULL(bait)
|
||||
recalculate_power()
|
||||
else
|
||||
playsound(fishing_component, 'sound/effects/splash.ogg', 50, FALSE, -5)
|
||||
if(forced)
|
||||
to_chat(fisher, span_boldnotice("The auto-reel on the fishing rod activates!"))
|
||||
else
|
||||
to_chat(fisher, span_italics("You reel in your fishing rod."))
|
||||
|
||||
fishing = FALSE
|
||||
UnregisterSignal(fisher,COMSIG_MOVABLE_MOVED)
|
||||
UnregisterSignal(src,COMSIG_MOVABLE_MOVED)
|
||||
UnregisterSignal(src,COMSIG_ITEM_DROPPED)
|
||||
fisher = null
|
||||
STOP_PROCESSING(SSobj,src)
|
||||
var/turf/fishing_turf = fishing_component.parent
|
||||
fishing_turf.cut_overlay(bobber)
|
||||
fishing_component = null
|
||||
bite = FALSE //just to be safe
|
||||
|
||||
/obj/item/twohanded/fishingrod/proc/reel_in_forced()
|
||||
reel_in(forced = TRUE)
|
||||
|
||||
/obj/item/twohanded/fishingrod/proc/do_fishing_alert(atom/A)
|
||||
playsound(A.loc, 'sound/machines/chime.ogg', 50, FALSE, -5)
|
||||
var/image/I = image('icons/obj/closet.dmi', A, "cardboard_special", A.layer+1)
|
||||
flick_overlay_view(I, A, 8)
|
||||
I.alpha = 0
|
||||
animate(I, pixel_z = 32, alpha = 255, time = 2, easing = ELASTIC_EASING)
|
||||
|
||||
/obj/item/twohanded/fishingrod/proc/spawn_reward()
|
||||
var/obj/picked_reward = fishing_component.getCommonLoot()
|
||||
var/obj/reward_item = new picked_reward(fishing_component.parent)
|
||||
reward_item.alpha = 0
|
||||
reward_item.pixel_y = -12
|
||||
animate(reward_item,time = 0.25 SECONDS,pixel_y = 0,alpha = 255,easing = SINE_EASING)
|
||||
if(!fisher) //uh oh
|
||||
return
|
||||
fisher.visible_message(span_notice("[fisher] reels in a [reward_item]!"), span_notice("You reel in a [reward_item]!"))
|
||||
if(fisher.Adjacent(fishing_component.parent))
|
||||
unwield(fisher,show_message = FALSE)
|
||||
if(fisher.put_in_hands(reward_item))
|
||||
return
|
||||
reward_item.throw_at(get_step(fishing_component,get_dir(fishing_component,fisher)),2,3,fisher) //whip it at them!
|
||||
|
||||
|
||||
/obj/item/twohanded/fishingrod/attackby(obj/item/B, mob/user, params)
|
||||
if(!istype(B,/obj/item/reagent_containers/food/snacks/bait))
|
||||
return
|
||||
|
||||
if(bait)
|
||||
user.put_in_hands(bait)
|
||||
|
||||
if(!user.transferItemToLoc(B,src))
|
||||
return
|
||||
bait = B
|
||||
to_chat(user, span_notice("You attach the [bait] to the fishing rod."))
|
||||
cut_overlays()
|
||||
add_overlay("fishing_rod_[bait.icon_state]")
|
||||
recalculate_power()
|
||||
|
||||
/obj/item/twohanded/fishingrod/AltClick(mob/living/user)
|
||||
if(bait)
|
||||
user.put_in_hands(bait)
|
||||
to_chat(user, span_notice("You take the [bait] off the fishing rod."))
|
||||
bait = null
|
||||
recalculate_power()
|
||||
|
||||
/obj/item/twohanded/fishingrod/proc/recalculate_power()
|
||||
fishing_power = initial(fishing_power)
|
||||
if(bait)
|
||||
fishing_power += bait.fishing_power
|
||||
47
yogstation/code/modules/clothing/fishing.dm
Normal file
@@ -0,0 +1,47 @@
|
||||
/obj/item/clothing/head/fishing
|
||||
name = "fishing cap"
|
||||
desc = "She said she's down to fish!"
|
||||
icon_state = "fishing_cap"
|
||||
item_state = "fishing_cap"
|
||||
alternate_worn_icon = 'yogstation/icons/mob/head.dmi'
|
||||
icon = 'yogstation/icons/obj/clothing/hats.dmi'
|
||||
|
||||
/obj/item/clothing/head/fishingcap/Initialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/fishingbonus,5)
|
||||
|
||||
/obj/item/clothing/suit/fishing
|
||||
name = "fishing vest"
|
||||
desc = "As she banging my line, she wastin my time."
|
||||
icon_state = "fishing_vest"
|
||||
item_state = "fishing_vest"
|
||||
alternate_worn_icon = 'yogstation/icons/mob/suit.dmi'
|
||||
icon = 'yogstation/icons/obj/clothing/suits.dmi'
|
||||
|
||||
/obj/item/clothing/suit/fishing/Initialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/fishingbonus,10)
|
||||
|
||||
/obj/item/clothing/gloves/fishing
|
||||
name = "fishing gloves"
|
||||
desc = "Packin my tackle box down by the brook."
|
||||
icon_state = "fishing_gloves"
|
||||
item_state = "fishing_gloves"
|
||||
alternate_worn_icon = 'yogstation/icons/mob/hands.dmi'
|
||||
icon = 'yogstation/icons/obj/clothing/gloves.dmi'
|
||||
|
||||
/obj/item/clothing/gloves/fishing/Initialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/fishingbonus,5)
|
||||
|
||||
/obj/item/clothing/shoes/fishing
|
||||
name = "fishing sandals"
|
||||
desc = "We livin' the life, if we ain't going fishing then don't waste my time."
|
||||
icon_state = "fishing_sandals"
|
||||
item_state = "fishing_sandals"
|
||||
alternate_worn_icon = 'yogstation/icons/mob/feet.dmi'
|
||||
icon = 'yogstation/icons/obj/clothing/shoes.dmi'
|
||||
|
||||
/obj/item/clothing/shoes/fishing/Initialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/fishingbonus,5)
|
||||
@@ -1,2 +1,3 @@
|
||||
/mob/living/carbon
|
||||
var/list/stomach_contents = list() // Holds the vore-y contents of this thing's stomach. (Supposedly) only really for alien usage.
|
||||
var/list/stomach_contents = list() // Holds the vore-y contents of this thing's stomach. (Supposedly) only really for alien usage.
|
||||
var/fishing_power = 0 //all carbons can fish!! yipeee!!!!!!!
|
||||
|
||||
22
yogstation/code/modules/vending/fishing.dm
Normal file
@@ -0,0 +1,22 @@
|
||||
/obj/machinery/vending/fishing
|
||||
name = "\improper Tackle Box 2000"
|
||||
desc = "Fishing peaked in 2000!"
|
||||
icon = 'yogstation/icons/obj/vending.dmi'
|
||||
icon_state = "fishing"
|
||||
icon_deny = "fishing-deny"
|
||||
product_slogans = "Don't tell my wife which bank I went to!;Fish fear me. Women love me.;If you want me to listen to you... talk about FISHING!;Good things come to those who bait.;Why did the lizard cross the road?"
|
||||
vend_reply = "Go get 'em, tiger!"
|
||||
products = list(/obj/item/twohanded/fishingrod = 3,
|
||||
/obj/item/reagent_containers/food/snacks/bait/apprentice = 15,
|
||||
/obj/item/reagent_containers/food/snacks/bait/journeyman = 10,
|
||||
/obj/item/clothing/head/fishing = 3,
|
||||
/obj/item/clothing/suit/fishing = 3,
|
||||
/obj/item/clothing/gloves/fishing = 3,
|
||||
/obj/item/clothing/shoes/fishing = 3
|
||||
)
|
||||
contraband = list(/obj/item/reagent_containers/food/snacks/bait/type = 3)
|
||||
premium = list(/obj/item/reagent_containers/food/snacks/bait/master = 5)
|
||||
|
||||
default_price = 50
|
||||
extra_price = 75
|
||||
payment_department = ACCOUNT_SRV
|
||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 646 B After Width: | Height: | Size: 800 B |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 608 B After Width: | Height: | Size: 728 B |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
BIN
yogstation/icons/obj/fishing/fishing.dmi
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.4 KiB |