[MIRROR] Entrepreneur Expansion (Part 1) (#8279)

Co-authored-by: SatinIsle <98125273+SatinIsle@users.noreply.github.com>
Co-authored-by: Raeschen <rycoop29@gmail.com>
This commit is contained in:
CHOMPStation2
2024-04-21 23:51:50 -07:00
committed by GitHub
parent f5749c0df3
commit 7c5f5115ce
15 changed files with 658 additions and 9 deletions

View File

@@ -250,6 +250,7 @@ var/global/list/edible_trash = list(/obj/item/broken_device,
/obj/item/weapon/storage/wallet,
/obj/item/weapon/storage/vore_egg,
/obj/item/weapon/bikehorn/tinytether,
/obj/item/weapon/entrepreneur,
/obj/item/capture_crystal,
/obj/item/weapon/material/kitchen, //chompstation addition start
/obj/item/weapon/storage/mre,

View File

@@ -23,4 +23,70 @@
/decl/hierarchy/outfit/job/assistant/entrepreneur
id_type = /obj/item/weapon/card/id/civilian/entrepreneur
l_hand = /obj/item/device/ticket_printer/train
uniform = /obj/item/clothing/under/tropical/pink
/decl/hierarchy/outfit/job/assistant/entrepreneur/lawyer
uniform = /obj/item/clothing/under/lawyer/red
r_hand = /obj/item/weapon/clipboard
l_pocket = /obj/item/weapon/pen/fountain3
/decl/hierarchy/outfit/job/assistant/entrepreneur/private_eye
l_hand = /obj/item/weapon/storage/box/private_investigator
suit = /obj/item/clothing/suit/storage/trench
head = /obj/item/clothing/head/fedora/brown
/decl/hierarchy/outfit/job/assistant/entrepreneur/bodyguard
glasses = /obj/item/clothing/glasses/sunglasses
l_pocket = /obj/item/weapon/reagent_containers/spray/pepper
suit = /obj/item/clothing/accessory/sweater/blackneck
/decl/hierarchy/outfit/job/assistant/entrepreneur/personal_physician
suit = /obj/item/clothing/suit/storage/toggle/labcoat
l_pocket = /obj/item/clothing/accessory/stethoscope
r_pocket = /obj/item/device/healthanalyzer
/decl/hierarchy/outfit/job/assistant/entrepreneur/dentist
l_hand = /obj/item/weapon/storage/box/dentist
suit = /obj/item/clothing/suit/storage/toggle/labcoat
/decl/hierarchy/outfit/job/assistant/entrepreneur/fitness_instructor
l_hand = /obj/item/weapon/storage/box/fitness_trainer
/decl/hierarchy/outfit/job/assistant/entrepreneur/yoga_teacher
uniform = /obj/item/clothing/under/pants/yogapants
l_hand = /obj/item/weapon/storage/box/yoga_teacher
/decl/hierarchy/outfit/job/assistant/entrepreneur/masseuse
r_hand = /obj/item/roller/massage
/decl/hierarchy/outfit/job/assistant/entrepreneur/tradesperson
r_hand = /obj/item/weapon/storage/toolbox/brass
/decl/hierarchy/outfit/job/assistant/entrepreneur/streamer
l_pocket = /obj/item/device/tvcamera/streamer
/decl/hierarchy/outfit/job/assistant/entrepreneur/influencer
l_pocket = /obj/item/device/camera/selfie
/decl/hierarchy/outfit/job/assistant/entrepreneur/paranormal_investigator
l_hand = /obj/item/weapon/storage/box/paranormal_investigator
/decl/hierarchy/outfit/job/assistant/entrepreneur/stylist
l_hand = /obj/item/weapon/storage/box/stylist
/decl/hierarchy/outfit/job/assistant/entrepreneur/fisher
r_hand = /obj/item/weapon/material/fishing_rod/modern
l_pocket = /obj/item/weapon/material/fishing_net
head = /obj/item/clothing/head/fishing
r_pocket = /obj/item/weapon/storage/box/wormcan
/decl/hierarchy/outfit/job/assistant/entrepreneur/personal_secretary
uniform = /obj/item/clothing/under/lawyer/blue
r_hand = /obj/item/weapon/clipboard
l_pocket = /obj/item/weapon/pen/fountain3
/decl/hierarchy/outfit/job/assistant/entrepreneur/fortune_teller
l_hand = /obj/item/weapon/storage/box/fortune_teller
/decl/hierarchy/outfit/job/assistant/entrepreneur/spirit_healer
l_hand = /obj/item/weapon/storage/box/spirit_healer

View File

@@ -341,71 +341,91 @@
/datum/alt_title/lawyer
title = "Lawyer"
title_blurb = "A Lawyer is knowledgable in various legal systems, including station's operations. They can try to offer their legal counsel, although nobody is really obliged to listen."
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_secretary
/datum/alt_title/private_eye
title = "Private Eye"
title_blurb = "A Private Eye is a detective that has no credentials or equipment. But if someone wants something found without security's knowledge, they are the one to go to."
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/private_eye
/datum/alt_title/bodyguard
title = "Bodyguard"
title_blurb = "A Bodyguard offers service of personal protection. They may not be allowed any weapons, but their own body is weapon enough."
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/bodyguard
/datum/alt_title/personal_physician
title = "Personal Physician"
title_blurb = "A Personal Physicial is a doctor dedicated less to Hippocratic Oath and more to the moneymaking grind. Their license may be expired, but the grindset never will be."
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_physician
/datum/alt_title/dentist
title = "Dentist"
title_blurb = "A Dentist is a doctor that specializes in oral care. Company may not recognize them as a proper doctor, but surely their customers will."
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/dentist
/datum/alt_title/fitness_instructor
title = "Fitness Instructor"
title_blurb = "A Fitness Instructor dedicates themselves to improving the health of the crew through physical activity, and boy, do they need the help."
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fitness_instructor
/datum/alt_title/yoga_teacher
title = "Yoga Teacher"
title_blurb = "A Yoga Teacher is similar to fitness instructor, but rather than turning the round bodies into firm ones, they focus on helping people find balance and harmony."
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/yoga_teacher
/datum/alt_title/masseuse
title = "Masseuse"
title_blurb = "A Masseuse is master of physical therapy and working others' bodies with their hands."
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/masseuse
/datum/alt_title/tradesperson
title = "Tradesperson"
title_blurb = "A Tradesperson is someone attempting to make money via the most obvious act of all - buying and selling. Now if only customs allowed you to bring your goods along..."
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/tradesperson
/datum/alt_title/streamer
title = "Streamer"
title_blurb = "A Streamer is here to entertain. Not the crew! Their audience across exonet!"
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/streamer
/datum/alt_title/influencer
title = "Influencer"
title_blurb = "An Influencer has lucked out with some exonet following, and was given permission to go onstation to provide free exposure. Don't let it go to your head."
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/influencer
/datum/alt_title/paranormal_investigator
title = "Paranormal Investigator"
title_blurb = "A Paranormal Investigator looks beyond what is accepted by modern science, and searches for the true unknown. Aliens, alternate dimensions, ghosts... The truth is out there!"
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/paranormal_investigator
/datum/alt_title/personal_secretary
title = "Personal Secretary"
title_blurb = "A Personal Secretary offers services of general assistance. Although it's doubtful anyone will ever actually need those."
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_secretary
/datum/alt_title/stylist
title = "Stylist"
title_blurb = "A Stylist offers fashion advice, as well as helps with adjusting appearance of the crew to better suit their beauty standards."
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/stylist
/datum/alt_title/fisher
title = "Fisher"
title_blurb = "A Fisher is a capable angler, who is good at obtaining large amounts of marine goods. Whether you generously give them to station or attempt to make a quick thaler by selling, it's up to you!"
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fisher
/datum/alt_title/fortune_teller
title = "Fortune Teller"
title_blurb = "A Fortune Teller peers into the future, and offers these visions to others. Occasionally those visions may even come true!"
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fortune_teller
/datum/alt_title/spirit_healer
title = "Spirit Healer"
title_blurb = "A Spirit Healer offers alternative forms of medicine. Rituals, magic rocks, seances... It totally works. What's that about placebo?"
title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/spirit_healer
// ChompADD
/datum/alt_title/fitnessinstructor
title = "Fitness Instructor"
title_blurb = "A Fitness Instructor dedicates themselves to improving the health of the crew through physical activity, and boy, do they need the help."
// ChompADD END

View File

@@ -0,0 +1,529 @@
//Items for the entrepreneurs
/obj/item/weapon/entrepreneur
name = "crystal ball"
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "crystal_ball"
desc = "A perfect sphere that is partially translucent, allowing one to see into it's mysterious depths."
/obj/item/weapon/entrepreneur/crystal_ball
/obj/item/weapon/entrepreneur/horoscope
name = "horoscope book"
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "horoscope"
desc = "A book with a years worth of horoscope readings in it, each one perfectly tailored to the phase of the stars and planets for every sign."
var/list/stars_list = list("Due to Mercuary being in retrograde, you are recieving a powerful energy.",
"The sun, Sol, of the Sol system, the birthplace of humanity, is your sign right now.",
"Jupiter is in antegrade, affecting your energy directly.",
"La luna has swung into virgo, be prepared!",
"The moon of Earth is lingering in your lazy, hazy twelfth house.",
"The moon starts the day in your intrepid ninth house!",
"Menhir hovers about your secluded third house.",
"Due to how Caledonia is in prograde, you are benefitting from it's energy.",
"Mercuary hovers in your second house, unfortunately.",
"Mars lingers in Scorpio now, this has a direct effect on your energy.",
"Menhir has swung into Leo!",
"The sun, Virgo-Erigone, lines up just right with Sol today.",
"Don't let the fact that Mars and Menhir are collaborating affect your day!",
"The moon is swinging between Cancer and Aries for you today.",
"Venus holds the key for you, resting right in your fourth house.",
"The wolftaur home of Elea lingers in Capricorn today.",
"The Salvoran star, Holloway, glows extra bright for you.",
"Mohges is caught in retrograde, Unathi are feeling it everywhere.",
"Qerr'balak is in the prograde of your first house.",
"Tal hovers above your ninth house.",
"Creatures from another plane watch you from afar.",
"Abundance in All Things Serene is in antegrade right now, you aren't benefiting from it any longer.",
"Paraiso is confiding with you today, you'll do well to bear it.",
"Sars Mara is no longer in Pisces, this will change your energy from the past few days.",
"The planet Salthan is bordering on Taurus now.",
"Procyon glistens for you betwixt the other stars.",
"Proxima Centauri is edging for you, take heed of it.",
"Sirius is cusping beyond your tenth house, you're getting a dose of its energy.",
"Sanctum and Infernum line up for you, chaos will no doubt ensue.",
"Infernum swings into Cancer for you, expect something firey!",
"Elysian stars turn their attention away from you now.",
"The stars of Elysium have caught you in their sights.",
"The burning planet of Zehtir in the virgo-erigone system twists against Gemini.",
"The purple soul of Geret Baht hungers for you.")
var/list/prediction_list = list("This leads you to listen to your own wants above those of others.",
"Prepare for this to lead you towards dark temptations.",
"Your soul is being filled with a glorious love for life.",
"Expect this to boost your confidence for a short while!",
"This is going to drain your energy and you will need to recover it somehow.",
"The effect will be strongest in the morning, but will settle down by the evening.",
"Don't let this get in the way of being your best self.",
"Consumption is on the menu for today, don't try to deny it.",
"An undeniable need for enhancement lingers within you.",
"A sense of adventure may blossom, but you are in danger of over-committing!",
"The sense of spontaneous spontaneity beats in your heart, don't let it go to waste!",
"Love is your world, combine with those around you, don't push them away.",
"Sullen moons make for a quiet day, but it is not as though you can't take advantage of the silence.",
"Some people are likely to be hidden away, people close to you.",
"Desire beats with in you, do not deny the call.",
"Beware of gluttony, it surrounds you today.",
"Power is unbalanced in your life, seize it for yourself lest others take it from you.",
"Joy, so much joy, all for yourself and to share with those you love.",
"You will make a new friend, it is someone you may not expect to encounter.",
"The universe pleads for you to plunder its riches, take what you deserve.",
"Punishment will be dished out today, and you are at the centre of it.",
"Allow yourself to make a real connection with another person today, it can only have good outcomes.",
"You may find yourself frustrated, but other people can take it from you.",
"Don't let yourself be consumed, the stars are tempting it.",
"Hope is on the horizon, chase it down and don't let it get away from you.",
"You might find yourself feeling drained due to those alignments or other factors in your life.",
"Pride will be the undoing of you today, but you can still harness it.",
"Perhaps you are feeling cute? Or perhaps something cute has taken your eye?",
"You will feel a growing warmth in your very core.",
"Expect a feeling of intense fulfilment.",
"There's a high likelyhood of you getting caught up in a sticky situation, one way or another.",
"Liberty is strong today, but beware it is fleeting for some.")
var/list/advice_list = list("You will have a lot of compassionate energy today. Use it on a needy friend.",
"It's wisest if you just admit to any anxieties or insecurities you have up front.",
"New beginnings are important, but don't lose your appreciation for old connections.",
"Your creativity could use a nice workout -- the kitchen is the perfect place for it.",
"Leaving too many questions unanswered will cause someone's imagination to spin in a weird direction.",
"Where you are going with someone isn't clear, but it's clear you are going together.",
"It's time to lavish yourself with the attention you deserve. Treat yourself right.",
"Ride your emotions like a roller coaster with your hands held straight up!",
"If you want to put one of your innovative ideas into action right now, you have to be open to the possibility of asking for help from someone in a higher position than you.",
"In any and all confrontations you have today, be sure to take the high road.",
"Indulge in nourishing meals that fuel your energy while allowing yourself a guilt-free treat every now and then.",
"Explore new cuisines and flavors to stimulate your taste buds and keep your meals exciting this month.",
"Whether dining alone or with loved ones, take a moment to appreciate the food on your plate and the hands that prepared it.",
"Tune into your body's needs and cravings without judgment, allowing yourself the freedom to enjoy food in a way that feels nourishing and satisfying.",
"Boldly pursue your goals and assert your authority in all endeavors today!",
"Try releasing control over outcomes and trusting in the universe to guide you towards your highest good.",
"Surrender to the natural rhythms of life and have faith that everything will unfold according to plan when the time is right.",
"Nurture your relationships and cultivate deep bonds with those who bring warmth and affection into your life and body.",
"Take the time to sit back and digest the things that have happened to you lately.",
"It never hurts to really absorb what you have taken in.",
"Focus on nurturing trust and intimacy in your relationships rather than letting insecurity devour you.",
"Keep your communication clear and your words sweet, lest you find yourself eaten alive by misunderstandings.",
"Remember to take time to savor life's simple pleasures along the way.",
"Be wary of being consumed by your own ego. Remember to share the spotlight and let others take a bite of the limelight too.",
"Listen to others reminisce about the past. You will gain some incredible insight.",
"Recognise your ability to communicate with others, and how this draws others to you.",
"Going out could be more trouble than it's worth. Protest with your vote or your wallet instead.",
"Walk side by side with others, eventually you will become one.",
"Take a break from your usual routine, focus on yourself and treat yourself a little.",
"This is a good day to get out and make connections with people. Maybe treat them a bit too!")
var/aries = ""
var/taurus = ""
var/gemini = ""
var/cancer = ""
var/leo = ""
var/virgo = ""
var/libra = ""
var/scorpio = ""
var/sagittarius = ""
var/capricorn = ""
var/aquarius = ""
var/pisces = ""
var/list/zodiacs = list("aries","taurus","gemini","cancer","leo","virgo","libra","scorpio","sagittarius","capricorn","aquarius","pisces")
/obj/item/weapon/entrepreneur/horoscope/Initialize()
. = ..()
var/stars = pick(stars_list)
var/prediction = pick(prediction_list)
var/advice = pick(advice_list)
aries = "[stars] [prediction] [advice]"
stars = pick(stars_list)
prediction = pick(prediction_list)
advice = pick(advice_list)
taurus = "[stars] [prediction] [advice]"
stars = pick(stars_list)
prediction = pick(prediction_list)
advice = pick(advice_list)
gemini = "[stars] [prediction] [advice]"
stars = pick(stars_list)
prediction = pick(prediction_list)
advice = pick(advice_list)
cancer = "[stars] [prediction] [advice]"
stars = pick(stars_list)
prediction = pick(prediction_list)
advice = pick(advice_list)
leo = "[stars] [prediction] [advice]"
stars = pick(stars_list)
prediction = pick(prediction_list)
advice = pick(advice_list)
virgo = "[stars] [prediction] [advice]"
stars = pick(stars_list)
prediction = pick(prediction_list)
advice = pick(advice_list)
libra = "[stars] [prediction] [advice]"
stars = pick(stars_list)
prediction = pick(prediction_list)
advice = pick(advice_list)
scorpio = "[stars] [prediction] [advice]"
stars = pick(stars_list)
prediction = pick(prediction_list)
advice = pick(advice_list)
sagittarius = "[stars] [prediction] [advice]"
stars = pick(stars_list)
prediction = pick(prediction_list)
advice = pick(advice_list)
capricorn = "[stars] [prediction] [advice]"
stars = pick(stars_list)
prediction = pick(prediction_list)
advice = pick(advice_list)
aquarius = "[stars] [prediction] [advice]"
stars = pick(stars_list)
prediction = pick(prediction_list)
advice = pick(advice_list)
pisces = "[stars] [prediction] [advice]"
/obj/item/weapon/entrepreneur/horoscope/attack_self(var/mob/user)
var/zodiac = tgui_input_list(user, "Which of todays zodiacs do you want to read?", "Zodiac", zodiacs)
if(zodiac)
switch(zodiac)
if("aries")
to_chat(user, "<span class='notice'>Today's reading for Aries: [aries]</span>")
if("taurus")
to_chat(user, "<span class='notice'>Today's reading for Taurus: [taurus]</span>")
if("gemini")
to_chat(user, "<span class='notice'>Today's reading for Gemini: [gemini]</span>")
if("cancer")
to_chat(user, "<span class='notice'>Today's reading for Cancer: [cancer]</span>")
if("leo")
to_chat(user, "<span class='notice'>Today's reading for Leo: [leo]</span>")
if("virgo")
to_chat(user, "<span class='notice'>Today's reading for Virgo: [virgo]</span>")
if("libra")
to_chat(user, "<span class='notice'>Today's reading for Libra: [libra]</span>")
if("scorpio")
to_chat(user, "<span class='notice'>Today's reading for Scorpio: [scorpio]</span>")
if("sagittarius")
to_chat(user, "<span class='notice'>Today's reading for Sagittarius: [sagittarius]</span>")
if("capricorn")
to_chat(user, "<span class='notice'>Today's reading for Capricorn: [capricorn]</span>")
if("aquarius")
to_chat(user, "<span class='notice'>Today's reading for Aquarius: [aquarius]</span>")
if("pisces")
to_chat(user, "<span class='notice'>Today's reading for Pisces: [pisces]</span>")
///////Dentist tools, basically just fluff for RP
/obj/item/weapon/entrepreneur/dentist_mirror
name = "dental mirror"
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "mirror"
desc = "A small mirror at the end of a short, stainless steel rod."
w_class = ITEMSIZE_TINY
/obj/item/weapon/entrepreneur/dentist_mirror/attack(mob/M, mob/user)
if(user.a_intent == I_HELP) //A tad messy, but this should stop people from smacking their patients in surgery
to_chat(user, "<span class='notice'>You use the mirror to get a good look inside of [M]'s mouth.</span>")
to_chat(M, "<span class='notice'>[user] uses a small mirror to look inside of your mouth.</span>")
return 0
..()
/obj/item/weapon/entrepreneur/dentist_probe
name = "dental probe"
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "probe"
desc = "A short stainless steel rod that ends with a narrow pointy bit for poking."
w_class = ITEMSIZE_TINY
/obj/item/weapon/entrepreneur/dentist_probe/attack(mob/M, mob/user)
if(user.a_intent == I_HELP) //A tad messy, but this should stop people from smacking their patients in surgery
to_chat(user, "<span class='notice'>You use the probe to poke about inside of [M]'s mouth.</span>")
to_chat(M, "<span class='notice'>[user] examines the inside of your mouth with a sharp probe, it hurts a little being prodded.</span>")
return 0
..()
/obj/item/weapon/entrepreneur/dentist_sickle
name = "dental sickle"
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "sickle"
desc = "A narrow, sharp hook at the end of a short, stainless steel rod."
w_class = ITEMSIZE_TINY
/obj/item/weapon/entrepreneur/dentist_sickle/attack(mob/M, mob/user)
if(user.a_intent == I_HELP) //A tad messy, but this should stop people from smacking their patients in surgery
to_chat(user, "<span class='notice'>You loosen some stuck debris from [M]'s mouth with the hook.</span>")
to_chat(M, "<span class='notice'>[user] uses a hook to scrape out something stuck in your mouth, it's pretty uncomfortable.</span>")
return 0
..()
/obj/item/weapon/entrepreneur/dentist_scaler
name = "dental scaler"
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "scaler"
desc = "A flat and thin scraper at the end of a short, stainless steel rod."
w_class = ITEMSIZE_TINY
/obj/item/weapon/entrepreneur/dentist_scaler/attack(mob/M, mob/user)
if(user.a_intent == I_HELP) //A tad messy, but this should stop people from smacking their patients in surgery
to_chat(user, "<span class='notice'>You scrape debris out from [M]'s mouth.</span>")
to_chat(M, "<span class='notice'>[user] scrapes debris from out of your mouth.</span>")
return 0
..()
////// Exercise mat, yoga and trainer stuff
/obj/item/weapon/bedsheet/pillow/exercise
name = "exercise mat"
desc = "A thick, flexible but tough mat designed for people to exercise on."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "exercise_mat"
/obj/item/weapon/bedsheet/pillow/exercise/attackby(var/obj/item/component, mob/user as mob)
return
/obj/item/weapon/entrepreneur/dumbbell
name = "dumbbell"
desc = "A small but heavy pair of weights connected by a bar, desgined to be held in one hand."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "dumbbell"
/obj/item/weapon/entrepreneur/dumbbell/attack_self(var/mob/user)
var/mob/living/M = user
if(M.nutrition <= 100)
to_chat(user, "<span class='notice'>You are too hungry to exercise right now.</span>")
return 0
if(!do_after(user, 3 SECONDS, src, exclusive = TASK_USER_EXCLUSIVE))
return 0
M.adjust_nutrition(-10)
to_chat(user, "<span class='notice'>You successfully perform a [src] exercise!</span>")
if(M.weight > 50)
M.weight -= 0.5
//////Paranormal Investigator stuff
/obj/item/weapon/entrepreneur/emf
name = "EMF scanner"
desc = "A handheld device used for detecting disturbances to electromagnetic fields."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "emf"
var/emf = 5
var/turf/last_used = 0
var/emf_change = 0
/obj/item/weapon/entrepreneur/emf/attack_self(var/mob/user)
if(!last_used)
emf = rand(1,100)
last_used = get_turf(user)
var/current_used = get_turf(user)
var/mob/observer/spooky = locate() in current_used
if(last_used != current_used)
if(emf >= 100)
emf = 100
if(emf <= 20)
emf = 20
if(spooky)
emf_change = rand(-15,20) //Trend upwards but not by enough to prove ghosts actually exist
else
emf_change = rand(-20,15) //Trend downwards
last_used = get_turf(user)
emf = (emf + emf_change)
update_icon()
to_chat(user, "<span class='notice'>You update the EMF scanner and check the reading. It reads [emf]mG!</span>")
/obj/item/weapon/entrepreneur/emf/update_icon()
switch(emf)
if(-1000 to 20)
icon_state = "emf-0"
if(20 to 40)
icon_state = "emf-20"
if(40 to 60)
icon_state = "emf-40"
if(60 to 80)
icon_state = "emf-60"
if(80 to 1000)
icon_state = "emf-80"
return
/obj/item/weapon/entrepreneur/spirit_board
name = "spirit board"
desc = "A wooden board with an alphabet at numbers on it, used to contact the dead. You need to use a glass to contact the spirit world. (It can be alt-clicked to decide the next letter in the sequence. This item does not canonise ghosts/souls in this setting, it's just a bit of fun!)"
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "spirit_board"
var/list/possible_results = list("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","Yes","No","1","2","3","4","5","6","7","8","9","0","Nothing")
var/next_result = 0
var/ghost_enabled = 1
/obj/item/weapon/entrepreneur/spirit_board/attackby(obj/item/weapon/reagent_containers/food/drinks/W as obj, mob/living/user as mob)
if(!istype(user))
return 0
if(!istype(W))
to_chat(user, "<span class='notice'>You need some sort of glass, bottle or cup to contact the spirit world.</span>")
return 0
var/result = 0
if(!do_after(user, 3 SECONDS, src, exclusive = TASK_USER_EXCLUSIVE))
return 0
if(next_result)
result = next_result
else
result = pick(possible_results)
src.visible_message("<span class='notice'>[user] slides the [W] over to [result]!</span>")
next_result = 0
/obj/item/weapon/entrepreneur/spirit_board/AltClick(mob/living/carbon/user)
if(!istype(user)) //admins can be cheeky
return 0
next_result = tgui_input_list(user, "What should it land on next?", "Next result", possible_results)
/obj/item/weapon/entrepreneur/spirit_board/attack_ghost(var/mob/observer/dead/user)
if(!ghost_enabled)
return
if(jobban_isbanned(user, "GhostRoles"))
to_chat(user, "<span class='warning'>You cannot interact with this board because you are banned from playing ghost roles.</span>")
return
next_result = tgui_input_list(user, "What should it land on next?", "Next result", possible_results)
if(!is_admin(user)) //admins can bypass this for event stuff
if(prob(25))
next_result = 0 //25% chance for the ghost to fail to manipulate the board
// Spirit Healer stuff
/obj/item/weapon/entrepreneur/crystal
name = "healing crystal"
desc = "A crystal with a powerful energy, apparantly, and is capable of healing the soul, apparantly."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "crystal_pink"
w_class = ITEMSIZE_TINY
/obj/item/weapon/entrepreneur/crystal/Initialize()
. = ..()
var/list/colour_choice = list("crystal_pink","crystal_blue","crystal_green","crystal_orange","crystal_dblue","crystal_purple")
icon_state = pick(colour_choice)
update_icon()
/obj/item/weapon/reagent_containers/glass/bottle/essential_oil
name = "essential oils"
desc = "A small bottle of various plant extracts said to improve upon a person's health as an alternative form of medicine."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "oil"
prefill = list("essential_oil" = 60)
// Masseuse
/obj/item/roller/massage
name = "massage bed"
desc = "A collapsed roller massage bed that can be carried around. When deployed, it can be locked in place (with alt-click)."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "folded_rollerbed"
rollertype = /obj/item/roller/massage
bedtype = /obj/structure/bed/roller/massage
/obj/structure/bed/roller/massage
name = "massage bed"
desc = "A portable bed-on-wheels wish extra padding for getting people comfortable for massages. It can be locked in place (with alt-click)."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "rollerbed"
rollertype = /obj/item/roller/massage
bedtype = /obj/structure/bed/roller/massage
/obj/structure/bed/roller/massage/AltClick(mob/living/carbon/user)
if(anchored)
anchored = 0
src.visible_message("<span class='notice'>[user] turns the breaks off on the [src]!</span>")
else if(!anchored)
anchored = 1
src.visible_message("<span class='notice'>[user] turns the breaks on for the [src]!</span>")
/obj/structure/bed/roller/massage/buckle_mob(mob/living/M)
..()
M.set_dir(1)
//Magnifying glass
/obj/item/weapon/entrepreneur/magnifying_glass
name = "magnifying glass"
desc = "A curved lense for looking at things a little closer."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "magnifying_glass"
w_class = ITEMSIZE_SMALL
/obj/item/weapon/entrepreneur/magnifying_glass/afterattack(atom/T, mob/living/user as mob)
if(!T.desc)
return
user.visible_message("<span class='notice'>\The [user] examines the \the [T] with \the [src]!</span>")
to_chat(user, "<FONT size=4>[T.desc]</FONT>")
// Streamer and influencer
/obj/item/device/tvcamera/streamer
name = "streamer camera drone"
channel = "Virgo Live Stream"
/obj/item/device/camera/selfie
name = "selfie stick"
desc = "A long stick with a camera on the end, designed for taking pictures of one's self, but could awkwardly be turned to take pictures of other things too!"
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "selfie"
item_state = "selfie"
icon_on = "selfie"
icon_off = "selfie_off"
// Containers
/obj/item/weapon/storage/box/fortune_teller
name = "fortune teller kit"
desc = "A kit containing everything that a fortune teller needs."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "fortune_teller"
starts_with = list(/obj/item/weapon/entrepreneur/horoscope, /obj/item/weapon/deck/tarot, /obj/item/weapon/entrepreneur/crystal_ball, /obj/item/device/ticket_printer/train)
/obj/item/weapon/storage/box/dentist
name = "dentist kit"
desc = "A kit containing everything that a dentist needs."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "dentist"
starts_with = list(/obj/item/weapon/entrepreneur/dentist_mirror, /obj/item/weapon/entrepreneur/dentist_probe, /obj/item/weapon/entrepreneur/dentist_sickle, /obj/item/weapon/entrepreneur/dentist_scaler, /obj/item/device/flashlight/pen, /obj/item/device/ticket_printer/train)
/obj/item/weapon/storage/box/fitness_trainer
name = "exercise kit"
desc = "A kit containing everything that a fitness trainer needs."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "fitness_trainer"
starts_with = list(/obj/item/weapon/bedsheet/pillow/exercise, /obj/item/weapon/entrepreneur/dumbbell, /obj/item/weapon/entrepreneur/dumbbell, /obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar, /obj/item/device/ticket_printer/train)
/obj/item/weapon/storage/box/yoga_teacher
name = "yoga kit"
desc = "A kit containing everything that a yoga teacher needs."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "yoga_teacher"
starts_with = list(/obj/item/weapon/bedsheet/pillow/exercise, /obj/item/weapon/bedsheet/pillow/exercise, /obj/item/weapon/reagent_containers/food/snacks/fruitbar, /obj/item/device/ticket_printer/train)
/obj/item/weapon/storage/box/paranormal_investigator
name = "ghost hunting kit"
desc = "A kit containing everything that a paranormal investigator needs."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "paranormal_investigator"
starts_with = list(/obj/item/weapon/entrepreneur/emf, /obj/item/weapon/entrepreneur/spirit_board, /obj/item/weapon/reagent_containers/food/drinks/glass2/shot, /obj/item/device/ticket_printer/train)
/obj/item/weapon/storage/box/spirit_healer
name = "exercise kit"
desc = "A kit containing everything that a spirit healer needs."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "spirit_healer"
starts_with = list(/obj/item/weapon/entrepreneur/crystal, /obj/item/weapon/entrepreneur/crystal, /obj/item/weapon/entrepreneur/crystal, /obj/item/weapon/entrepreneur/crystal, /obj/item/weapon/entrepreneur/crystal, /obj/item/weapon/reagent_containers/glass/bottle/essential_oil, /obj/item/device/ticket_printer/train)
/obj/item/weapon/storage/box/private_investigator
name = "investigator kit"
desc = "A kit containing everything that a private eye needs."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "private_investigator"
starts_with = list(/obj/item/device/taperecorder, /obj/item/device/tape, /obj/item/device/tape, /obj/item/device/camera, /obj/item/sticky_pad, /obj/item/weapon/entrepreneur/magnifying_glass, /obj/item/device/ticket_printer/train)
/obj/item/weapon/storage/box/stylist
name = "stylist kit"
desc = "A kit containing everything that a stylist needs."
icon = 'icons/obj/entrepreneur.dmi'
icon_state = "stylist"
starts_with = list(/obj/item/weapon/makeover, /obj/item/weapon/lipstick/random, /obj/item/weapon/nailpolish, /obj/item/weapon/nailpolish_remover, /obj/item/weapon/haircomb, /obj/item/clothing/head/hairnet, /obj/item/device/ticket_printer/train)

View File

@@ -239,3 +239,7 @@
glass_icon_state = "burnout"
glass_center_of_mass = list("x"=16, "y"=8)
glass_icon_file = 'icons/obj/drinks_vr.dmi'
/datum/reagent/ethanol/manager_summoner
glass_icon_state = "manager_summoner"
glass_icon_file = 'icons/obj/drinks_vr.dmi'

View File

@@ -231,4 +231,11 @@
id = "strawberry_protein_shake"
result = "strawberry_protein_shake"
required_reagents = list("water" = 5, "strawberry_protein_powder" = 1)
result_amount = 5
result_amount = 5
/decl/chemical_reaction/instant/drinks/manager_summoner
name = "Manager Summoner"
id = "manager_summoner"
result = "manager_summoner"
required_reagents = list("margarita" = 1, "redwine" = 1, "essential_oil" = 1)
result_amount = 3

View File

@@ -396,6 +396,17 @@
glass_name = "Giant Beer"
glass_desc = "The Neo Detroit beer and ale cocktail, perfect for your average drunk."
/datum/reagent/ethanol/manager_summoner
name = "Manager Summoner"
id = "manager_summoner"
description = "A horrifying cocktail for those who desperately want feel above their peers."
taste_description = "bitter and sweet, with a hint of superiority"
strength = 30
color = "#c9716b"
glass_name = "Manager Summoner"
glass_desc = "The dreaded red juice of those who insist on taking advantage of minor positions of power to make the lives of bar staff unbearable."
/datum/reagent/drink/sweettea
name = "Sweet Tea"
id = "sweettea"

View File

@@ -672,7 +672,7 @@
description = "Liquified carpet fibers, ready for dyeing."
reagent_state = LIQUID
color = "#b51d05"
taste_description = "carpet"
taste_description = "carpet"
/datum/reagent/carpet/black
name = "Liquid Black Carpet"
@@ -680,7 +680,7 @@
description = "Black Carpet Fibers, ready for reinforcement."
reagent_state = LIQUID
color = "#000000"
taste_description = "rare and ashy carpet"
taste_description = "rare and ashy carpet"
/datum/reagent/carpet/blue
name = "Liquid Blue Carpet"
@@ -688,7 +688,7 @@
description = "Blue Carpet Fibers, ready for reinforcement."
reagent_state = LIQUID
color = "#3f4aee"
taste_description = "commanding carpet"
taste_description = "commanding carpet"
/datum/reagent/carpet/turquoise
name = "Liquid Turquoise Carpet"
@@ -696,7 +696,7 @@
description = "Turquoise Carpet Fibers, ready for reinforcement."
reagent_state = LIQUID
color = "#0592b5"
taste_description = "water-logged carpet"
taste_description = "water-logged carpet"
/datum/reagent/carpet/sblue
name = "Liquid Silver Blue Carpet"
@@ -704,7 +704,7 @@
description = "Silver Blue Carpet Fibers, ready for reinforcement."
reagent_state = LIQUID
color = "#0011ff"
taste_description = "sterile and medicinal carpet"
taste_description = "sterile and medicinal carpet"
/datum/reagent/carpet/clown
name = "Liquid Clown Carpet"
@@ -712,7 +712,7 @@
description = "Clown Carpet Fibers.... No clowns were harmed in the making of this."
reagent_state = LIQUID
color = "#e925be"
taste_description = "clown shoes and banana peels"
taste_description = "clown shoes and banana peels"
/datum/reagent/carpet/purple
name = "Liquid Purple Carpet"
@@ -720,7 +720,7 @@
description = "Purple Carpet Fibers, ready for reinforcement."
reagent_state = LIQUID
color = "#a614d3"
taste_description = "bleeding edge carpet research"
taste_description = "bleeding edge carpet research"
/datum/reagent/carpet/orange
name = "Liquid Orange Carpet"
@@ -728,4 +728,12 @@
description = "Orange Carpet Fibers, ready for reinforcement."
reagent_state = LIQUID
color = "#f16e16"
taste_description = "extremely overengineered carpet"
taste_description = "extremely overengineered carpet"
/datum/reagent/essential_oil
name = "Essential Oils"
id = "essential_oil"
description = "A slurry of compounds that contains the basic requirements for life."
taste_description = "a mixture of thick, sweet, salty, salty and spicy flavours that all blend together to not be very nice at all"
reagent_state = LIQUID
color = "#e8e2b0"

View File

@@ -1078,6 +1078,8 @@
I = stack
nom = refined_taste[O.default_type]
M = name_to_material[O.default_type]
else if(istype(I, /obj/item/weapon/entrepreneur/crystal))
nom = list("nutrition" = 100, "remark" = "The crytal was particularly brittle and not difficult to break apart, but the inside was incredibly flavoursome. Though devoid of any actual healing power, it seems to be very nutritious!", "WTF" = FALSE)
if(nom) //Ravenous 1-4, snackage confirmed. Clear for chowdown, over.
playsound(src, 'sound/items/eatfood.ogg', rand(10,50), 1)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

BIN
icons/obj/entrepreneur.dmi Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 137 KiB

View File

@@ -2433,6 +2433,7 @@
#include "code\modules\emotes\definitions\visible_vr.dm"
#include "code\modules\entopics_vr\alternate_appearance.dm"
#include "code\modules\entopics_vr\entopics.dm"
#include "code\modules\entrepreneur\entrepreneur_items.dm"
#include "code\modules\error_handler\_defines.dm"
#include "code\modules\error_handler\error_handler.dm"
#include "code\modules\error_handler\error_viewer.dm"