/datum/achievementReward var/title = "" var/desc = "" var/required_medal = null var/once_per_round = 1 //Can only be claimed once per round. var/mobonly = 1 //If the reward can only be redeemed if the player has a /mob/living. proc/rewardActivate(var/mob/activator) //Called when the reward is claimed from the locker. Spawn item here / give verbs here / do whatever for reward. boutput(activator, "This reward is undefined. Please inform a coder.") return //You could even make one-time reward by stripping their medal here. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Rewards below /datum/achievementReward/satchel title = "(Skin) Satchel" desc = "Converts whatever backpack you're wearing into a satchel. Requires that you're wearing a backpack." required_medal = "Fish" once_per_round = 0 rewardActivate(var/mob/activator) if (!istype(activator)) return if (!activator.back) boutput(activator, "You can't reskin a backpack if you're not wearing one!") return if (istype(activator.back, /obj/item/storage/backpack/medic)) var/obj/item/storage/backpack/medic/M = activator.back var/prev1 = M.name M.icon = 'icons/obj/storage.dmi' M.inhand_image_icon = 'icons/mob/inhand/hand_general.dmi' if (M.inhand_image) M.inhand_image.icon = 'icons/mob/inhand/hand_general.dmi' M.wear_image_icon = 'icons/mob/back.dmi' if (M.wear_image) M.wear_image.icon = 'icons/mob/back.dmi' M.icon_state = "satchel_medic" M.item_state = "backpack" M.name = "medic's satchel" M.real_name = "medic's satchel" M.desc = "A thick, wearable container made of synthetic fibers, able to carry a number of objects comfortably on a crewmember's shoulder. (Base Item: [prev1])" activator.set_clothing_icon_dirty() else if (istype(activator.back, /obj/item/storage/backpack/NT)) var/obj/item/storage/backpack/NT/M = activator.back var/prev2 = M.name M.icon = 'icons/obj/storage.dmi' M.inhand_image_icon = 'icons/mob/inhand/hand_general.dmi' if (M.inhand_image) M.inhand_image.icon = 'icons/mob/inhand/hand_general.dmi' M.wear_image_icon = 'icons/mob/back.dmi' if (M.wear_image) M.wear_image.icon = 'icons/mob/back.dmi' M.icon_state = "NTsatchel" M.item_state = "backpack" M.name = "NT satchel" M.real_name = "NT satchel" M.desc = "A thick, wearable container made of synthetic fibers, able to carry a number of objects comfortably on a crewmember's shoulder. (Base Item: [prev2])" activator.set_clothing_icon_dirty() else if (istype(activator.back, /obj/item/storage/backpack)) var/obj/item/storage/backpack/M = activator.back var/prev3 = M.name M.icon = 'icons/obj/storage.dmi' M.inhand_image_icon = 'icons/mob/inhand/hand_general.dmi' if (M.inhand_image) M.inhand_image.icon = 'icons/mob/inhand/hand_general.dmi' M.wear_image_icon = 'icons/mob/back.dmi' if (M.wear_image) M.wear_image.icon = 'icons/mob/back.dmi' M.icon_state = "satchel" M.item_state = "backpack" M.name = "satchel" M.real_name = "satchel" M.desc = "A thick, wearable container made of synthetic fibers, able to carry a number of objects comfortably on a crewmember's shoulder. (Base Item: [prev3])" activator.set_clothing_icon_dirty() else boutput(activator, "Whatever it is you've got on your back, it can't be reskinned!") return return /datum/achievementReward/hightechpodskin title = "(Skin) HighTech Pod" desc = "Gives you a Kit that allows you to change the appearance of a Pod." required_medal = "Newton's Crew" rewardActivate(var/mob/activator) boutput(usr, "The Kit has been dropped at your current location.") new /obj/item/pod/paintjob/tronthing(get_turf(activator)) return /datum/achievementReward/swatgasmask title = "(Skin) SWAT Gas Mask" desc = "Turns your Gas Mask into a SWAT Gas Mask. If you're wearing one." required_medal = "Leave no man behind!" rewardActivate(var/mob/activator) if (!istype(activator)) return if (activator.wear_mask && istype(activator.wear_mask, /obj/item/clothing/mask/gas)) var/obj/item/clothing/mask/gas/emergency/M = activator.wear_mask M.icon_state = "swat" //M.item_state = "swat" M.name = "SWAT Gas Mask" M.real_name = "SWAT Gas Mask" M.desc = "A snazzy-looking black Gas Mask." activator.set_clothing_icon_dirty() return /datum/achievementReward/colorfulberet title = "(Skin) Colorful Beret" desc = "Turns your hat into a colorful beret. If you're wearing one." required_medal = "Monkey Duty" rewardActivate(var/mob/activator) if (ishuman(activator)) var/mob/living/carbon/human/H = activator if (!istype(H.head, /obj/item/clothing/head/helmet) && istype(H.head, /obj/item/clothing/head)) // ha... var/obj/item/clothing/head/M = H.head M.icon_state = "beret_base" M.wear_image_icon = 'icons/mob/head.dmi' M.color = random_saturated_hex_color(1) M.name = "beret" M.real_name = "beret" M.desc = "A colorful beret." activator.set_clothing_icon_dirty() return /datum/achievementReward/round_flask title = "(Skin) Round-bottom Flask" desc = "Requires you to be holding a large beaker." required_medal = "We didn't start the fire" once_per_round = 0 rewardActivate(var/mob/activator) if (!istype(activator)) return if (istype(activator.l_hand, /obj/item/reagent_containers/glass/beaker/large)) var/obj/item/reagent_containers/glass/beaker/large/M = activator.l_hand var/prev = M.name M.name = "round-bottom flask" M.desc = "A large round-bottom flask, for all your chemistry needs. (Base Item: [prev])" M.icon_style = "flask" M.item_state = "flask" M.fluid_image = image(M.icon, "fluid-flask") M.update_icon() activator.set_clothing_icon_dirty() else if (istype(activator.r_hand, /obj/item/reagent_containers/glass/beaker/large)) var/obj/item/reagent_containers/glass/beaker/large/M = activator.r_hand var/prev = M.name M.name = "round-bottom flask" M.desc = "A large round-bottom flask, for all your chemistry needs. (Base Item: [prev])" M.icon_style = "flask" M.item_state = "flask" M.fluid_image = image(M.icon, "fluid-flask") M.update_icon() activator.set_clothing_icon_dirty() else boutput(activator, "You need to be holding a large beaker in order to claim this reward!") return return /datum/achievementReward/pilotuniform title = "(Skin) Pilot Suit" desc = "Requires that you wear something in your jumpsuit slot." required_medal = "It's not 'Door to Heaven'" rewardActivate(var/mob/activator) if (ishuman(activator)) var/mob/living/carbon/human/H = activator if (H.w_uniform) var/obj/item/clothing/M = H.w_uniform var/prev = M.name M.icon = 'icons/obj/clothing/uniforms/item_js_misc.dmi' M.inhand_image_icon = 'icons/mob/inhand/jumpsuit/hand_js_misc.dmi' if (M.inhand_image) M.inhand_image.icon = 'icons/mob/inhand/jumpsuit/hand_js_misc.dmi' M.wear_image_icon = 'icons/mob/jumpsuits/worn_js_misc.dmi' if (M.wear_image) M.wear_image.icon = 'icons/mob/jumpsuits/worn_js_misc.dmi' M.icon_state = "mechanic" M.item_state = "mechanic" M.name = "pilot suit" M.real_name = "pilot suit" M.desc = "A sleek but comfortable pilot's jumpsuit. (Base Item: [prev])" H.set_clothing_icon_dirty() return /datum/achievementReward/flower_scrubs title = "(Skin) Flower Scrubs" desc = "Requires that you wear medical scrubs in your jumpsuit slot." required_medal = "Primum non nocere" once_per_round = 0 rewardActivate(var/mob/activator) if (ishuman(activator)) var/mob/living/carbon/human/H = activator if (H.w_uniform) var/obj/item/clothing/under/scrub/M = H.w_uniform if (!istype(M)) boutput(activator, "You're not wearing medical scrubs!") return var/prev = M.name M.icon = 'icons/obj/clothing/uniforms/item_js_misc.dmi' M.inhand_image_icon = 'icons/mob/inhand/jumpsuit/hand_js.dmi' if (M.inhand_image) M.inhand_image.icon = 'icons/mob/inhand/jumpsuit/hand_js.dmi' M.wear_image_icon = 'icons/mob/jumpsuits/worn_js_misc.dmi' if (M.wear_image) M.wear_image.icon = 'icons/mob/jumpsuits/worn_js_misc.dmi' M.icon_state = "scrub-f" M.item_state = "lightblue" M.name = "flower scrubs" M.real_name = "flower scrubs" M.desc = "Man, these scrubs look pretty nice. (Base Item: [prev])" H.set_clothing_icon_dirty() return /datum/achievementReward/stylish title = "(Skin) Relic Security Jumpsuit" desc = "Requires that you wear a security officer or Head of Security uniform in your jumpsuit slot." required_medal = "Dead or alive, you're coming with me" rewardActivate(var/mob/activator) if (ishuman(activator)) var/mob/living/carbon/human/H = activator if (H.w_uniform) var/obj/item/clothing/under/rank/M = H.w_uniform if (istype(M, /obj/item/clothing/under/rank/head_of_securityold)) M.icon_state = "hos-old" else if (istype(M, /obj/item/clothing/under/rank/security)) M.icon_state = "security-old" H.set_clothing_icon_dirty() return /datum/achievementReward/med_labcoat title = "(Skin) Medical Labcoat" desc = "Requires that you wear a labcoat in your suit slot." required_medal = "Patchwork" once_per_round = 0 rewardActivate(var/mob/activator) if (ishuman(activator)) var/mob/living/carbon/human/H = activator if (H.wear_suit) var/obj/item/clothing/suit/labcoat/M = H.wear_suit if (!istype(M)) boutput(activator, "You're not wearing a labcoat!") return var/prev = M.name M.icon = 'icons/obj/clothing/overcoats/item_suit.dmi' M.inhand_image_icon = 'icons/mob/inhand/inhand_cl_suit.dmi' if (M.inhand_image) M.inhand_image.icon = 'icons/mob/inhand/inhand_cl_suit.dmi' M.wear_image_icon = 'icons/mob/overcoats/worn_suit.dmi' if (M.wear_image) M.wear_image.icon = 'icons/mob/overcoats/worn_suit.dmi' M.icon_state = findtext(M.icon_state, "_o") ? "MDlabcoat_o" : "MDlabcoat" M.item_state = "MDlabcoat" M.coat_style = "MDlabcoat" M.name = "doctor's labcoat" M.real_name = "doctor's labcoat" M.desc = "A protective laboratory coat with the red markings of a Medical Doctor. (Base Item: [prev])" H.set_clothing_icon_dirty() return /datum/achievementReward/sci_labcoat title = "(Skin) Science Labcoat" desc = "Requires that you wear a labcoat in your suit slot." required_medal = "Meth is a hell of a drug" once_per_round = 0 rewardActivate(var/mob/activator) if (ishuman(activator)) var/mob/living/carbon/human/H = activator if (H.wear_suit) var/obj/item/clothing/suit/labcoat/M = H.wear_suit if (!istype(M)) boutput(activator, "You're not wearing a labcoat!") return var/prev = M.name M.icon = 'icons/obj/clothing/overcoats/item_suit.dmi' M.inhand_image_icon = 'icons/mob/inhand/inhand_cl_suit.dmi' if (M.inhand_image) M.inhand_image.icon = 'icons/mob/inhand/inhand_cl_suit.dmi' M.wear_image_icon = 'icons/mob/overcoats/worn_suit.dmi' if (M.wear_image) M.wear_image.icon = 'icons/mob/overcoats/worn_suit.dmi' M.icon_state = findtext(M.icon_state, "_o") ? "SCIlabcoat_o" : "SCIlabcoat" M.item_state = "SCIlabcoat" M.coat_style = "SCIlabcoat" M.name = "scientist's labcoat" M.real_name = "scientist's labcoat" M.desc = "A protective laboratory coat with the purple markings of a Scientist. (Base Item: [prev])" H.set_clothing_icon_dirty() return /datum/achievementReward/alchemistrobes title = "(Skin) Grand Alchemist's Robes" desc = "Requires that you wear a labcoat in your suit slot." required_medal = "Illuminated" once_per_round = 0 rewardActivate(var/mob/activator) if (ishuman(activator)) var/mob/living/carbon/human/H = activator if (H.wear_suit) var/obj/item/clothing/suit/labcoat/M = H.wear_suit if (!istype(M)) boutput(activator, "You're not wearing a labcoat!") return var/prev = M.name M.icon = 'icons/obj/clothing/overcoats/item_suit.dmi' M.inhand_image_icon = 'icons/mob/inhand/inhand_cl_suit.dmi' if (M.inhand_image) M.inhand_image.icon = 'icons/mob/inhand/inhand_cl_suit.dmi' M.wear_image_icon = 'icons/mob/overcoats/worn_suit.dmi' if (M.wear_image) M.wear_image.icon = 'icons/mob/overcoats/worn_suit.dmi' M.icon_state = findtext(M.icon_state, "_o") ? "alchrobe_o" : "alchrobe" M.item_state = "alchrobe" M.coat_style = "alchrobe" M.name = "grand alchemist's robes" M.real_name = "grand alchemist's robes" M.desc = "Well you sure LOOK the part with these on. (Base Item: [prev])" H.set_clothing_icon_dirty() return /datum/achievementReward/dioclothes title = "(Skin) Strange Vampire Outfit" desc = "Requires that you wear something in your suit slot." required_medal = "Dracula Jr." rewardActivate(var/mob/activator) if (ishuman(activator)) var/mob/living/carbon/human/H = activator if (H.wear_suit) var/obj/item/clothing/M = H.wear_suit if (istype(M, /obj/item/clothing/suit/wizrobe)) boutput(activator, "Your magic-infused robes resist the meta-telelogical energies!") return if (istype(M, /obj/item/clothing/suit/space/industrial/syndicate) || istype(M, /obj/item/clothing/suit/space/syndicate)) boutput(activator, "Nyet, comrade.") return var/prev = M.name M.icon = 'icons/obj/clothing/overcoats/item_suit.dmi' M.inhand_image_icon = 'icons/mob/inhand/inhand_cl_suit.dmi' if (M.inhand_image) M.inhand_image.icon = 'icons/mob/inhand/inhand_cl_suit.dmi' M.wear_image_icon = 'icons/mob/overcoats/worn_suit.dmi' if (M.wear_image) M.wear_image.icon = 'icons/mob/overcoats/worn_suit.dmi' M.icon_state = "vclothes" M.item_state = "vclothes" if (istype(M, /obj/item/clothing/suit/labcoat)) var/obj/item/clothing/suit/labcoat/L = M L.coat_style = null M.name = "strange vampire outfit" M.real_name = "strange vampire outfit" M.desc = "How many breads have you eaten in your life? It's a good question. (Base Item: [prev])" H.set_clothing_icon_dirty() return /datum/achievementReward/inspectorscloths title = "(Skin set) Inspector's Clothes" desc = "Requires that you wear something in your suit and jumpsuit slots." required_medal = "Neither fashionable noir stylish" rewardActivate(var/mob/activator) if (ishuman(activator)) var/mob/living/carbon/human/H = activator if (H.wear_suit) var/obj/item/clothing/M = H.wear_suit if (istype(M, /obj/item/clothing/suit/wizrobe)) boutput(activator, "Your magic-infused robes resist the meta-telelogical energies!") return if (istype(M, /obj/item/clothing/suit/space/industrial/syndicate) || istype(M, /obj/item/clothing/suit/space/syndicate)) boutput(activator, "Nyet, comrade.") return var/prev = M.name M.icon = 'icons/obj/clothing/overcoats/item_suit.dmi' M.inhand_image_icon = 'icons/mob/inhand/inhand_cl_suit.dmi' if (M.inhand_image) M.inhand_image.icon = 'icons/mob/inhand/inhand_cl_suit.dmi' M.wear_image_icon = 'icons/mob/overcoats/worn_suit.dmi' if (M.wear_image) M.wear_image.icon = 'icons/mob/overcoats/worn_suit.dmi' if (istype(M, /obj/item/clothing/suit/labcoat)) var/obj/item/clothing/suit/labcoat/L = M M.icon_state = findtext(M.icon_state, "_o") ? "inspectorc_o" : "inspectorc" L.coat_style = "inspectorc" else M.icon_state = "inspectorc_o" M.item_state = "inspectorc" M.name = "inspector's short coat" M.real_name = "inspector's short coat" M.desc = "A coat for the modern detective. (Base Item: [prev])" H.set_clothing_icon_dirty() if (H.w_uniform) var/obj/item/clothing/M = H.w_uniform var/prev2 = M.name M.icon = 'icons/obj/clothing/uniforms/item_js_misc.dmi' M.inhand_image_icon = 'icons/mob/inhand/jumpsuit/hand_js_misc.dmi' if (M.inhand_image) M.inhand_image.icon = 'icons/mob/inhand/jumpsuit/hand_js_misc.dmi' M.wear_image_icon = 'icons/mob/jumpsuits/worn_js_misc.dmi' if (M.wear_image) M.wear_image.icon = 'icons/mob/jumpsuits/worn_js_misc.dmi' M.icon_state = "inspectorj" M.item_state = "viceG" M.name = "inspector's uniform" M.real_name = "inspector's uniform" M.desc = "A uniform for the modern detective. (Base Item: [prev2])" H.set_clothing_icon_dirty() return /datum/achievementReward/ntso_commander title = "(Skin set) NT-SO Commander Uniform" desc = "Requires that you're wearing a captain's hat and armor." required_medal = "Icarus" once_per_round = 0 rewardActivate(var/mob/activator) if (ishuman(activator)) var/mob/living/carbon/human/H = activator if (H.w_uniform) var/obj/item/clothing/M = H.w_uniform if (istype(M, /obj/item/clothing/under/rank/captain/dress)) var/prev = M.name M.icon_state = "captain-dress-blue" M.item_state = "captain-dress-blue" M.name = "administrator's uniform" M.real_name = "administrator's uniform" M.desc = "A uniform specifically for NanoTrasen commanders. (Base Item: [prev])" H.set_clothing_icon_dirty() else if (istype(M, /obj/item/clothing/under/rank/captain)) var/prev = M.name M.icon_state = "captain-blue" M.item_state = "captain-blue" M.name = "administrator's uniform" M.real_name = "administrator's uniform" M.desc = "A uniform specifically for NanoTrasen commanders. (Base Item: [prev])" H.set_clothing_icon_dirty() if (H.wear_suit) var/obj/item/clothing/M = H.wear_suit if (istype(M, /obj/item/clothing/suit/armor/captain)) var/prev = M.name M.icon_state = "centcom" M.item_state = "centcom" M.name = "administrator's armor" M.real_name = "administrator's armor" M.desc = "A suit of protective formal armor. It is made specifically for NanoTrasen commanders. (Base Item: [prev])" H.set_clothing_icon_dirty() else if (istype(M, /obj/item/clothing/suit/space/captain)) var/prev = M.name M.icon_state = "spacecap-blue" M.item_state = "spacecap-blue" M.name = "administrator's space suit" M.real_name = "administrator's space suit" M.desc = "A suit that protects against low pressure environments. It is made specifically for NanoTrasen commanders. (Base Item: [prev])" H.set_clothing_icon_dirty() if (H.head) var/obj/item/clothing/M = H.head if (istype(M, /obj/item/clothing/head/caphat)) var/prev = M.name M.icon_state = "centcom" M.item_state = "centcom" M.name = "Cent. Comm. hat" M.real_name = "Cent. Comm. hat" M.desc = "A fancy hat specifically for NanoTrasen commanders. (Base Item: [prev])" H.set_clothing_icon_dirty() return /datum/achievementReward/ai_malf title = "(AI Skin) Malfuction" desc = "Turns you into a scary malfunctioning AI! Only in appearance, of course." required_medal = "HUMANOID MUST NOT ESCAPE" rewardActivate(var/mob/activator) if (isAI(activator)) var/mob/living/silicon/ai/A = activator A.custom_emotions = ai_emotions | list("ROGUE(reward)" = "ai-red") A.faceEmotion = "ai-red" A.set_color("#EE0000") //A.icon_state = "ai-malf" else boutput(activator, "You need to be an AI to use this, you goof!") return /datum/achievementReward/borg_automoton title = "(Cyborg Skin) Automaton" desc = "Turns you into the mysterious Automaton! Only in appearance, of course. Keys not included." required_medal = "Icarus" rewardActivate(var/mob/activator) if (isrobot(activator)) var/mob/living/silicon/robot/C = activator C.automaton_skin = 1 C.update_appearance() else boutput(activator, "You need to be a cyborg to use this, you goof!") return /* /datum/achievementReward/secbelt title = "(Skin) Security Toolbelt" desc = "Turns your worn Utility Belt into a Security Toolbelt." required_medal = "Suitable? How about the Oubliette?!" rewardActivate(var/mob/living/carbon/human/activator) rewardActivate(var/mob/activator) if (!ishuman(activator)) return var/mob/living/carbon/human/H = activator if (H.belt && istype(H.belt, /obj/item/storage/belt/utility)) var/obj/item/storage/belt/utility/M = H.belt var/prev = M.name M.icon_state = "secbelt" M.item_state = "secbelt" M.name = "security toolbelt" M.real_name = "security toolbelt" M.desc = "For the trend-setting Security Officer on the go. (Base Item: [prev])" H.set_clothing_icon_dirty() return */ /datum/achievementReward/goldenGun title = "Golden Gun" desc = "Gold plates a shotgun, hunting rifle, detective revolver, or AK-47 you're holding." required_medal = "Helios" rewardActivate(var/mob/activator){ if (ishuman(activator)){ var/mob/living/carbon/human/H = activator var/obj/item/gun/kinetic/gunmod if (H.l_hand && H.l_hand.type in list(/obj/item/gun/kinetic/detectiverevolver, /obj/item/gun/kinetic/riotgun, /obj/item/gun/kinetic/ak47, /obj/item/gun/kinetic/hunting_rifle)) gunmod = H.l_hand else if (H.r_hand && H.r_hand.type in list(/obj/item/gun/kinetic/detectiverevolver, /obj/item/gun/kinetic/riotgun, /obj/item/gun/kinetic/ak47, /obj/item/gun/kinetic/hunting_rifle)) gunmod = H.r_hand if (!gunmod) return gunmod.name = "Golden [gunmod.name]" gunmod.icon_state = "golden_[gunmod.icon_state]" } } /datum/achievementReward/smug title = "(Emote) Smug" desc = "Gives you the ability to be all smug about something. I bet nobody likes you." required_medal = ":10bux:" rewardActivate(var/mob/activator) if (!istype(activator)) return activator.verbs += /proc/smugproc return /datum/achievementReward/shelterbee title = "(Emote) Shelterbee" desc = "Shelterbee expresses what you cannot. And it's also pretty dang cute." required_medal = "Too Cool" rewardActivate(var/mob/activator) if (!istype(activator)) return boutput(usr, ":shelterbee:") animate_emote(usr, /obj/effect/shelterbee) return /obj/effect/shelterbee name = "shelterbee" icon = 'icons/mob/64.dmi' icon_state = "shelterbee" anchored = 1.0 pixel_x = -16 pixel_y = -16 /datum/achievementReward/participantribbon title = "(Transformation) Participation Ribbon" desc = "Turn into a living participation ribbon. No refunds!" required_medal = "Fun Times" mobonly = 0 rewardActivate(var/mob/activator) if (!isobserver(activator)) boutput(activator, "You gotta be dead to use this, you goof!") return var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread() smoke.set_up(5, 0, get_turf(usr)) smoke.attach(usr) smoke.start() var/mob/living/object/O = new /mob/living/object(new /obj/item/sticker/ribbon/participant(get_turf(usr)), usr) O.say_language = "animal" O.literate = 0 return /datum/achievementReward/goldbud title = "(Skin) Golden PR-4 Guardbuddy Frame" desc = "Gold plates a held PR-4 Guardbuddy frame." required_medal = "Ol' buddy ol' pal" once_per_round = 1 rewardActivate(var/mob/activator) if (!istype(activator)) return if (istype(activator.l_hand, /obj/item/guardbot_frame/old)) var/obj/item/guardbot_frame/old/M = activator.l_hand new /obj/item/guardbot_frame/old/golden(get_turf(activator)) qdel(M) else if (istype(activator.r_hand, /obj/item/guardbot_frame/old)) var/obj/item/reagent_containers/glass/beaker/large/M = activator.r_hand new /obj/item/guardbot_frame/old/golden(get_turf(activator)) qdel(M) else boutput(activator, "You need to be holding a PR-4 Guardbuddy frame in order to claim this reward!") return return /proc/smugproc() set name = ":smug:" set desc = "Allows you to show others how great you feel about yourself for having paid 10 bucks." set category = "Commands" animate_emote(usr, /obj/effect/smug) usr.verbs -= /proc/smugproc usr.verbs += /proc/smugprocCD SPAWN_DBG(30 SECONDS) boutput(usr, "You can now be smug again! Go hog wild.") usr.verbs += /proc/smugproc usr.verbs -= /proc/smugprocCD return /proc/smugprocCD() set name = ":smug:" set desc = "Currently on cooldown." set category = "Commands" boutput(usr, "You can't use that again just yet.") return /obj/effect/smug name = "smug" icon = 'icons/mob/64.dmi' icon_state = "smug" anchored = 1.0 pixel_x = -16 pixel_y = -16 /datum/achievementReward/beefriend title = "(Reagent) Bee" desc = "You're gonna burp one up, probably." required_medal = "Bombini is missing!" rewardActivate(var/mob/activator) if (!activator.reagents) return activator.reagents.add_reagent("bee", 5) boutput (activator, "Pleeze hold, bee will bee with thee shortlee!" ) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Management stuff below. /chui/window/contributorrewards name = "Contributor Rewards" New() ..() var/rewardses = list("sillyscream" = "Silly Screams") GetBody() var/ret = "Howdy, contributor! These rewards don't revert until you respawn somehow.
" for(var/choice in rewardses) ret += "[theme.generateButton( choice, rewardses[choice] )]
" return ret OnClick( var/client/who, var/id ) if( rewardses[id] ) if(call( src, id )(who)) Unsubscribe( src ) else boutput( who, "

Don't get ahead of yourself, [who.key]

" )//I almost want to log who does this because I know Erik will be one of them proc/sillyscream(var/client/c) var/mob/living/living = c.mob if(istype( living )) living.sound_scream = pick('sound/voice/screams/sillyscream1.ogg','sound/voice/screams/sillyscream2.ogg') c << sound( living.sound_scream ) return 1 else boutput( usr, "Hmm.. I can't set the scream sound of that!" ) return 0 /datum/achievementReward/contributor title = "Contributor Rewards" desc = "A whole host of things and buttons to reward you for contributing!" required_medal = "Contributor" once_per_round = 0 mobonly = 0 var/chui/window/contributorrewards/contributorRewardMenu New() ..() rewardActivate(var/mob/activator) if( !contributorRewardMenu ) contributorRewardMenu = new contributorRewardMenu.Subscribe( activator.client ) //You could even make one-time reward by stripping their medal here. /client/var/list/claimed_rewards = list() //Keeps track of once-per-round rewards /client/verb/claimreward() set background = 1 set name = "Claim Reward" set desc = "Allows you to claim a Reward you might have earned." set category = "Commands" set popup_menu = 0 SPAWN_DBG(0) src.verbs -= /client/verb/claimreward boutput(usr, "Checking your eligibility. There might be a short delay, please wait.") var/list/eligible = list() for(var/A in rewardDB) var/datum/achievementReward/D = rewardDB[A] var/result = usr.has_medal(D.required_medal) if(result == 1) if((D.once_per_round && !src.claimed_rewards.Find(D.type)) || !D.once_per_round) if( D.mobonly && !istype( src.mob, /mob/living ) ) continue eligible.Add(D.title) eligible[D.title] = D if(!length(eligible)) boutput(usr, "Sorry, you don't have any rewards available.") src.verbs += /client/verb/claimreward return var/selection = input(usr,"Please select your reward", "VIP Rewards","CANCEL") in (eligible + "CANCEL") if(selection == "CANCEL") src.verbs += /client/verb/claimreward return var/datum/achievementReward/S = null for(var/X in rewardDB) var/datum/achievementReward/C = rewardDB[X] if(C.title == selection) S = C break if(S == null) boutput(usr, "Invalid Rewardtype after selection. Please inform a coder.") var/M = alert(usr,S.desc + "\n(Earned through the \"[S.required_medal]\" Medal)","Claim this Reward?","Yes","No") if(M == "Yes") S.rewardActivate(usr) if(S.once_per_round) usr.client.claimed_rewards.Add(S.type) src.verbs += /client/verb/claimreward else src.verbs += /client/verb/claimreward