diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index a977a5e317..f8267d3905 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -161,6 +161,7 @@ var/global/list/edible_trash = list(/obj/item/trash, /obj/item/weapon/material/shard, /obj/item/device/paicard, /obj/item/device/mmi/digital/posibrain, + /obj/item/weapon/digestion_remains, /obj/item/device/aicard) var/global/list/cont_flavors = list( diff --git a/code/game/machinery/computer/timeclock_vr.dm b/code/game/machinery/computer/timeclock_vr.dm index c9e8d3ee26..6e10fdd1f2 100644 --- a/code/game/machinery/computer/timeclock_vr.dm +++ b/code/game/machinery/computer/timeclock_vr.dm @@ -170,6 +170,7 @@ foundjob.current_positions++ var/mob/living/carbon/human/H = usr H.mind.assigned_role = foundjob.title + H.mind.role_alt_title = newjob //TFF 26/7/19 - VOREStation fix port of announcement fix for wrong position announce.autosay("[card.registered_name] has moved On-Duty as [card.assignment].", "Employee Oversight") return @@ -200,6 +201,7 @@ callHook("reassign_employee", list(card)) var/mob/living/carbon/human/H = usr H.mind.assigned_role = ptojob.title + H.mind.role_alt_title = ptojob.title //TFF 26/7/19 - VOREStation fix port of announcement fix for wrong position foundjob.current_positions-- announce.autosay("[card.registered_name], [oldtitle], has moved Off-Duty.", "Employee Oversight") return @@ -208,7 +210,7 @@ if(!card) return FALSE if((world.time - card.last_job_switch) < 15 MINUTES) - to_chat(usr, "You need to wait at least 15 minutes after last duty switch. It has only been [world.time - card.last_job_switch] minutes since you have had your job changed.") + to_chat(usr, "You need to wait at least 15 minutes after last duty switch. It has only been [card.last_job_switch] minutes since you have had your job changed.") return FALSE return TRUE diff --git a/code/global_vr.dm b/code/global_vr.dm index 8b4ab024fc..aacabec983 100644 --- a/code/global_vr.dm +++ b/code/global_vr.dm @@ -4,4 +4,5 @@ robot_module_types += "Janihound" robot_module_types += "Sci-borg" robot_module_types += "Pupdozer" + robot_module_types += "Service-borg" return 1 diff --git a/code/modules/client/preference_setup/loadout/loadout_general.dm b/code/modules/client/preference_setup/loadout/loadout_general.dm index 34a806fe32..3d1c7416b9 100644 --- a/code/modules/client/preference_setup/loadout/loadout_general.dm +++ b/code/modules/client/preference_setup/loadout/loadout_general.dm @@ -99,3 +99,13 @@ display_name = "Cards Against The Galaxy (black deck)" path = /obj/item/weapon/deck/cah/black description = "The ever-popular Cards Against The Galaxy word game. Warning: may include traces of broken fourth wall. This is the black deck." + +/datum/gear/cagsewhite + display_name = "Cards Against The Galaxy: Special Edition (white deck)" + path = /obj/item/weapon/deck/cagse + description = "The ever-popular Cards Against The Galaxy: Special Edition word game. Warning: may include traces of broken fourth wall and obscenity. This is the white deck." + +/datum/gear/cagseblack + display_name = "Cards Against The Galaxy: Special Edition (black deck)" + path = /obj/item/weapon/deck/cagse/black + description = "The ever-popular Cards Against The Galaxy: Special Edition word game. Warning: may include traces of broken fourth wall and obscenity. This is the black deck." diff --git a/code/modules/games/cagse.dm b/code/modules/games/cagse.dm new file mode 100644 index 0000000000..645936d773 --- /dev/null +++ b/code/modules/games/cagse.dm @@ -0,0 +1,32 @@ +// This is a parody of Cards Against Humanity (https://en.wikipedia.org/wiki/Cards_Against_Humanity) +// which is licensed under CC BY-NC-SA 2.0, the full text of which can be found at the following URL: +// https://creativecommons.org/licenses/by-nc-sa/2.0/legalcode + +/obj/item/weapon/deck/cagse + name = "\improper CAG:SE deck (white)" + desc = "The ever-popular Cards Against The Galaxy: Special Edition word game. Warning: may include traces of broken fourth wall and obscenity. This is the white deck." + icon_state = "cag_white" + var/blanks = 10 //5 extra blank cards than usual to make up for quantity + +/obj/item/weapon/deck/cagse/black + name = "\improper CAG:SE deck (black)" + desc = "The ever-popular Cards Against The Galaxy: Special Edition word game. Warning: may include traces of broken fourth wall and obscenity. This is the black deck." + icon_state = "cag_black" + blanks = 0 + +/obj/item/weapon/deck/cagse/New() + ..() + var/datum/playingcard/P + for(var/cardtext in card_text_list) + P = new() + P.name = "[cardtext]" + P.card_icon = "[icon_state]_card" + P.back_icon = "[icon_state]_card_back" + cards += P + if(!blanks) + return + for(var/x=1 to blanks) + P = new() + P.name = "Blank Card" + P.card_icon = "[icon_state]_card_back" + P.back_icon = "[icon_state]_card_back" \ No newline at end of file diff --git a/code/modules/games/cagse_black_cards.dm b/code/modules/games/cagse_black_cards.dm new file mode 100644 index 0000000000..ded3730607 --- /dev/null +++ b/code/modules/games/cagse_black_cards.dm @@ -0,0 +1,71 @@ +/obj/item/weapon/deck/cagse/black/card_text_list = list( + "Why am I itchy?", + "Today, Security shot ____.", + "The Chaplain this shift is worshiping _____.", + "Cargo ordered a crate full of _____.", + "An ERT was called due to ______.", + "Alert! The Colony Director has armed themselves with _____.", + "Current Laws: ________ is your master.", + "Current Laws: ________ is the enemy.", + "_____ vented the entirety of Cargo.", + "Today, science found an anomaly that made people ____ and ____.", + "There was a rap battle between ____ and ____.", + "Caution, ______ have been detected in collision course with the station.", + "Today's kitchen menu includes _______.", + "What did the mercenaries want when they attacked the station?", + "I think the Colony Director is insane. He just demanded ______ in his office.", + "Fuckin' scientists, they just turned Misc. Research into _______ .", + "What's my fetish?", + "Hello, _______ here with _______", + "No one else was at _______, they wouldn't understand the ______", + "Why am I shivering?", + "What is this world coming to? First, ________, now _______", + "NanoTrasen's labor union decided to use _____ to raise employee morale.", + "The Chemist's drug of choice is ______", + "It is common practice for _______ to ______ on Moghes.", + "Mercurial Colonies are _____.", + "The Skrell are celebrating _____ today.", + "_____ is/are why I'm afraid of the maintenance tunnels.", + "_____ used ____ to create their newest invention, _____!", + "Scientists are not allowed to make Gatling _____.", + "It's not a party until the ____ arrive.", + "No matter how many Tajaran you have, _____ is never acceptable.", + "No, the AI's first law is NOT to serve _____.", + "The robots are not disposal bins for your _____.", + "You can never have too many _____ on shift.", + + //Above are the custom cards from VOREStation, below are from CHOMPStation + + "I had a confused boner after the Overseer showed me a video of _____.", + "Right after being resleeved by the CMO, I was _____.", + "R&D finally came around and developed _____.", + "After accidentally touching the supermatter crystal, the first thing I saw in the afterlife was _____.", + "In order to appear friendlier towards the crew, security officers started offering complimentary _____.", + "Since nobody ever sets their suit sensors, Medbay has resorted to using _____ as encouragement.", + "New rule at the bar: _____ is now forbidden.", + "The bartender fired two beanbag shells into a patron after they were seen doing _____.", + "After becoming good friends with the Head of Security, they finally let me see their _____ collection.", + "(Pick 2) ATTENTION: The clown is now wanted for possession of _____ and _____.", + "After being caught growing ambrosia, the botanist resorted to recreational _____ to cope.", + "I never expected to find _____ in maintenance.", + "Nobody was heard from again after _____ escaped from xenobiology.", + "_____: Everyone does it.", + "(Pick 2) In exchange for _____, the chef gave me _____.", + "Due to an operating procedure misunderstanding, security officers have been using _____ to process their prisoners.", + "The roboticist keeps building cyborgs to satisfy his _____ fetish, instead of building mechs.", + "Dare dice always ends with _____.", + "The newest rule for dare dice means that the second lowest roller has to wear nothing but _____.", + //Official cards below here + "(Pick 2) Before _____, all we had was_____.", + "(Pick 2) That's right I killed _____. How, you ask? _____.", + "What brought the orgy to a grinding halt?", + "What don't you want to find in your Chinese food?", + "What has been making life difficult at the nudist colony?", + "What's that sound?", + "What's the new fad diet?", + "(Pick 2) Listen, son. If you want to get involved with _____, I won’t stop you. Just steer clear of _____.", + "(Pick 2) Having problems with _____? Try _____!", + "(Pick 2) After months of practice with _____, I think I’m finally ready for _____.", + "Finally! A service that delivers _____ right to your door." + +) \ No newline at end of file diff --git a/code/modules/games/cagse_white_cards.dm b/code/modules/games/cagse_white_cards.dm new file mode 100644 index 0000000000..503af8842a --- /dev/null +++ b/code/modules/games/cagse_white_cards.dm @@ -0,0 +1,211 @@ +/obj/item/weapon/deck/cagse/var/list/card_text_list = list( + "Those motherfucking carp", + "Having sex in the maintenance tunnels", + "Space 'Nam", + "Space lesbians", + "The Gardener getting SUPER high", + "The Colony Director thinking they're a badass", + "Being in a cult", + "Racially biased lawsets", + "An Unathi who WON'T STOP FIGHTING", + "Tajaran fetishists", + "Bald thirty-year-olds", + "A Chief Engineer who can't setup the engine", + "Being sucked out into space", + "Officer Beepsky", + "Engineering", + "The grey tide.", + "The Research Director", + "Fucking synths", + "Man-eating purple pod plants", + "Chemical sprayers filled with lube", + "Librarians", + "Squids", + "Cats", + "Lizards", + "Apes", + "Trees", + "Supermatter undergarments", + "Bluespace", + "Five hundred rabid spiders", + "Five hundred rabid diona nymphs", + "Cable ties", + "Rampant vending machines", + "Positronic drink coasters", + "Kitchen utensil anomalies", + "Locked lockers", + "Energy spatulas", + "Flashbang gauntlets", + "Carp", + "Space whales", + "Blu-sharks", + "Fax machines", + "Exquisite Pens", + "Dr. Maxman's male enhancements", + "Gyrating slimes", + "Forehead-mounted laser weaponry", + "Pelvis-mounted laser weaponry", + "Cardboard cutouts", + "An obscene amount of rubber ducks", + "Brain cakes", + "A drone's game of life.", + "Anomaly suits", + "A gardener smoking reishi", + "Military-grade baseball bats", + "Barricading the bar", + "An irritatingly chipper robot", + "Androids hanging out in the bar drinking beer", + "Gear harnesses", + "A seventeen-year-old Colony Director", + "The throbbing erection that the HoS gets at the thought of shooting something", + "Trying to stab someone and hugging them instead", + "Waking up naked in the maintenance tunnels", + "Horrible cloning accidents", + "Licking the supermatter due to a dare", + "A Quartermaster who WON'T STOP ordering guns", + "Teaching a synthetic the Birds and the Bees", + "Unnecessary surgery", + "My addiction to spiders", + "Wetskrell.nt", + "DOCTOR MAXMAN!", + "A group of Skrell getting their squish on", + "Enough soporific to put the entire station down", + "Delicious Vietnamese cuisine", + //Above are the custom cards from VOREStation, below are from CHOMPStation + "Upside-down bat cock vore", + "Wingjobs", + "The HoP feeding someone to Ian after asking for all access", + "Being used as fuel instead of being healed by a medihound", + "Stealing a set of tools", + "Spying on the dorms with hidden cameras", + "Stealing all access", + "Curling up in a belly for hours", + "Being squeezed down a tight throat", + "Being forced down the bartender's cock", + "zip-tying the captain and dragging them into maintenance", + "Shoving micros down any available orifice", + "Being shoved down a K9 cyborg's gullet without consent", + "Tripping in the halls so a medihound eats you", + "Lying on a table until someone eats you", + "forgetting your backup implant", + "Leaving your suit sensors off", + "Turning your suit sensors to tracking", + "Giving the clown the spare ID", + "Happily letting yourself be digested just because someone was hungry", + "Waking up inside a pair of giant nuts", + "A shock collar that never turns off", + "A size gun without a limiter", + "Cock vore", + "A slimy tongue", + "Being digested into spunk under the bar counter", + "Maintenance trash pile loot", + "voring all your friends", + "Digesting all your friends", + "Getting fucked from behind right in the bar", + "Actually using a dorm room", + "Swallowing enough cum to fill a pool", + "Giving away the frequency for your shock collar", + "Ten foot tall sergals", + "Knotted dog cock", + "Modular, synthetic, prehensile cocks", + "Tail maws", + "Pants pockets", + "Not wearing anything", + "Using a nudity permit just because you want to be naked", + "Nudity", + "Autofellatio", + "Clit dicks", + "Teshari terrorists", + "Being used as a tap at the bar", + "Being suffocated by a tight gut", + "Slurping noises", + "Listening to someone slowly digest", + "Not asking if your prey is backup implanted", + "A person-sized load of cum", + "Horse cocks", + "A digested ID card", + "Canine pussy", + "Horse pussy", + "All of medbay being eaten", + "Getting space aids", + "Being consumed by a deathclaw", + "A traitor consuming every last crew member", + "flooding the hallways with wolf cum", + "The Skrell doing Skrell things", + "Slimy xenomorph ovipositors", + "Lusty xenomorph maids", + "Steamy bareback sex", + "Anal beads", + "Being kidnapped after someone slips neurotoxin into your drink", + "A woman who surprisingly doesn’t have a penis", + "A man who surprisingly doesn’t have a penis", + "Literally xenomorphs", + "A blowjob", + "Actually using a condom", + "Metroids again", + "Driving cargo tugs around like race cars", + "Using your fat friend to try and start the singularity engine", + "A latex maid costume", + "A realistic xenomorph costume", + "A seductive bee costume", + "A cake hat", + "A synthetic strapon with ten thousand different shapes", + "A condom", + "High heels", + "Thigh high socks", + "A swimsuit consisting of just a thong", + "A cone hat", + "Crawling into the mouth of a sleeping crewmember", + "A full toolbelt", + "A dildo", + "fuzzy cuffs", + "BDSM", + "Being constricted by a giant serpent tail", + "Bulges", + "A bartender", + "An EMT", + "A clown", + "A person AI", + "The station AI", + "Anatomically correct", + "Toe beans", + "Paws", + "Slow digestion", + //And everything beyond this are cards from the original CAH that fit well enough with the other cards + "A 55-gallon drum of lube.", + "A cooler full of organs.", + "A gentle caress of the inner thigh.", + "A homoerotic volleyball montage.", + "A hot mess.", + "A mating display.", + "A tiny horse.", + "A zesty breakfast burrito.", + "An erection that lasts more than four hours.", + "Anal beads.", + "Balls.", + "Basic human decency.", + "Beating your wives.", + "Being awesome at sex.", + "Bitches.", + "Centaurs.", + "Civilian casualties.", + "Daddy issues.", + "Date rape.", + "Exactly what you'd expect.", + "Getting so angry that you pop a boner.", + "Gloryholes.", + "Good grammar.", + "Intimacy problems.", + "Just the tip.", + "Lactation.", + "My hot cousin.", + "Natural male enhancement.", + "My vagina.", + "Panda sex.", + "Sexting.", + "Shaft.", + "Tongue.", + "A cop who is also a dog.", + "A vagina that leads to another dimension.", + "Blowing some dudes in an alley." +) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm index c4b2542f22..8c0dff8b3e 100644 --- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm @@ -16,9 +16,9 @@ ai_inactive = TRUE //Always off show_stat_health = FALSE //We will do it ourselves - response_help = "pats the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" + response_help = "pats" + response_disarm = "gently pushes aside" + response_harm = "hits" harm_intent_damage = 2 melee_damage_lower = 10 @@ -241,7 +241,7 @@ //Message blob.visible_message("[src.name] collapses into a gooey blob!") - + //Duration of the to_puddle iconstate that the blob starts with sleep(13) blob.update_icon() //Will remove the collapse anim @@ -268,7 +268,7 @@ if(pulledby) pulledby.stop_pulling() stop_pulling() - + //Stop healing if we are if(blob.healing) blob.healing.expire() @@ -278,7 +278,7 @@ //Message blob.visible_message("[src.name] reshapes into a humanoid appearance!") - + //Duration of above animation sleep(8) @@ -303,7 +303,7 @@ var/obj/belly/B = belly B.forceMove(src) B.owner = src - + //Get rid of friend blob qdel(blob) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 361dd3c5a0..ba8b57705f 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -34,7 +34,8 @@ "Parrot" = "parrot", "Rabbit" = "rabbit", "Bear" = "bear", //VOREStation Edit - "Raccoon" = "raccoon" //Chompstation Edit + "Raccoon" = "raccoon", //Chompstation Edit + "Rat" = "rat"//Chompstation Edit ) var/global/list/possible_say_verbs = list( @@ -43,7 +44,8 @@ "Beep" = list("beeps","beeps loudly","boops"), "Chirp" = list("chirps","chirrups","cheeps"), "Feline" = list("purrs","yowls","meows"), - "Canine" = list("yaps","barks","woofs") + "Canine" = list("yaps","barks","woofs"), + "Rodent" = list("squeaks", "SQUEAKS", "sqiks")//Chompstation Edit ) var/obj/item/weapon/pai_cable/cable // The cable we produce and use when door or camera jacking @@ -316,7 +318,7 @@ return close_up() - +/*CHOMPstation edit | redefined in pai_vr.dm /mob/living/silicon/pai/proc/choose_chassis() set category = "pAI Commands" set name = "Choose Chassis" @@ -329,11 +331,11 @@ if(!choice) return icon_state = possible_chassis[choice] - finalized = alert("Look at your sprite. Is this what you wish to use?",,"No","Yes") + finalized = alert("Look at your sprite. Is this what you wish to use?",,"No","Yes")//CHOMPStation edit chassis = possible_chassis[choice] verbs |= /mob/living/proc/hide - +*/ /mob/living/silicon/pai/proc/choose_verbs() set category = "pAI Commands" set name = "Choose Speech Verbs" diff --git a/code/modules/mob/living/silicon/pai/pai_vr.dm b/code/modules/mob/living/silicon/pai/pai_vr.dm index c5de247595..6ec0d2c219 100644 --- a/code/modules/mob/living/silicon/pai/pai_vr.dm +++ b/code/modules/mob/living/silicon/pai/pai_vr.dm @@ -1,6 +1,9 @@ /mob/living/silicon/pai var/people_eaten = 0 icon = 'icons/mob/pai_vr.dmi' + var/global/list/wide_chassis = list( + "rat" + ) /mob/living/silicon/pai/proc/pai_nom(var/mob/living/T in oview(1)) set name = "pAI Nom" @@ -31,6 +34,13 @@ else if(people_eaten && resting) icon_state = "[chassis]_rest_full" + if(chassis in wide_chassis) + icon = 'icons/mob/pai_vr64x64.dmi' + pixel_x = -16 + else + icon = 'icons/mob/pai_vr.dmi' + pixel_x = 0 + /mob/living/silicon/pai/update_icons() //And other functions cause this to occur, such as digesting someone. ..() update_fullness_pai() @@ -42,3 +52,21 @@ icon_state = "[chassis]_full" else if(people_eaten && resting) icon_state = "[chassis]_rest_full" + + if(chassis in wide_chassis) + icon = 'icons/mob/pai_vr64x64.dmi' + pixel_x = -16 + else + icon = 'icons/mob/pai_vr.dmi' + pixel_x = 0 +//proc override to avoid pAI players being invisible while the chassis selection window is open +/mob/living/silicon/pai/proc/choose_chassis() + set category = "pAI Commands" + set name = "Choose Chassis" + var/choice + + choice = input(usr,"What would you like to use for your mobile chassis icon?") as null|anything in possible_chassis + if(!choice) return + chassis = possible_chassis[choice] + verbs |= /mob/living/proc/hide + update_icon() diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm index 39236a824f..5cfc2f27fb 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm @@ -671,4 +671,12 @@ desc = "A mounted matter decompiling unit with fuel processor." icon_state = "decompiler" max_item_count = 10 - decompiler = TRUE \ No newline at end of file + decompiler = TRUE + +// PLACEHOLDER SERVICE BORG BELLY +/obj/item/device/dogborg/sleeper/servborg + name = "Gourmet Gut" + desc = "An underslung microwave, with optional fuel processor." + icon_state = "decompiler" + max_item_count = 10 + injection_chems = null \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm index 09728c2acd..4fa82cb51b 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm @@ -43,6 +43,7 @@ robot_modules["Janihound"] = /obj/item/weapon/robot_module/robot/scrubpup robot_modules["Sci-borg"] = /obj/item/weapon/robot_module/robot/science robot_modules["Pupdozer"] = /obj/item/weapon/robot_module/robot/engiedog + robot_modules["Service-borg"] = /obj/item/weapon/robot_module/robot/servborg return 1 //Just add a new proc with the robot_module type if you wish to run some other vore code @@ -567,6 +568,83 @@ R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill ..() +// SKYVAAL ADDED SERVICE BORG CODE +/obj/item/weapon/robot_module/robot/servborg + name = "Service Hound Module" + can_buckle = 1 + sprites = list( + "Chef-borg" = "servborg", + "Booze-borg" = "boozeborg" + ) + channels = list("Service" = 1) + can_be_pushed = 0 + +/obj/item/weapon/robot_module/robot/servborg/New(var/mob/living/silicon/robot/R) + + var/datum/matter_synth/water = new /datum/matter_synth() + water.name = "Water reserves" + water.recharge_rate = 0.1 // Recharging water for plants - hehe drooly borg + water.max_energy = 1000 + water.energy = 0 + R.water_res = water + synths += water + + // Dogborg Standard + src.modules += new /obj/item/weapon/dogborg/jaws/small(src) + src.modules += new /obj/item/device/dogborg/boop_module(src) + + var/obj/item/device/dogborg/tongue/T = new /obj/item/device/dogborg/tongue(src) + T.water = water + src.modules += T + + // PLACEHOLDER AS 'BRIGBELLY' UNTIL MICROWAVE BELLY SORTED + var/obj/item/device/dogborg/sleeper/servborg/B = new /obj/item/device/dogborg/sleeper/servborg(src) + B.water = water + src.modules += B + + //Service Module Copy/Paste + src.modules += new /obj/item/weapon/gripper/service(src) + src.modules += new /obj/item/weapon/reagent_containers/glass/bucket(src) + src.modules += new /obj/item/weapon/material/minihoe(src) + src.modules += new /obj/item/weapon/material/knife/machete/hatchet(src) + src.modules += new /obj/item/device/analyzer/plant_analyzer(src) + src.modules += new /obj/item/weapon/storage/bag/plants(src) + src.modules += new /obj/item/weapon/robot_harvester(src) + src.modules += new /obj/item/weapon/material/knife(src) + src.modules += new /obj/item/weapon/material/kitchen/rollingpin(src) + src.modules += new /obj/item/device/multitool(src) //to freeze trays + + var/obj/item/weapon/rsf/M = new /obj/item/weapon/rsf(src) + M.stored_matter = 30 + src.modules += M + + src.modules += new /obj/item/weapon/reagent_containers/dropper/industrial(src) + + var/obj/item/weapon/flame/lighter/zippo/L = new /obj/item/weapon/flame/lighter/zippo(src) + L.lit = 1 + src.modules += L + + src.modules += new /obj/item/weapon/tray/robotray(src) + src.modules += new /obj/item/weapon/reagent_containers/borghypo/service(src) + src.emag = new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer(src) + + var/datum/reagents/F = new/datum/reagents(50) + src.emag.reagents = F + F.my_atom = src.emag + F.add_reagent("beer2", 50) + src.emag.name = "Mickey Finn's Special Brew" + + R.icon = 'icons/mob/widerobot_vr.dmi' + R.hands.icon = 'icons/mob/screen1_robot_vr.dmi' + R.ui_style_vr = TRUE + R.pixel_x = -16 + R.old_x = -16 + R.default_pixel_x = -16 + R.dogborg = TRUE + R.wideborg = TRUE + R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill + ..() + /obj/item/weapon/robot_module/Reset(var/mob/living/silicon/robot/R) R.pixel_x = initial(pixel_x) R.pixel_y = initial(pixel_y) diff --git a/code/modules/mob/living/simple_animal/animals/bat.dm b/code/modules/mob/living/simple_animal/animals/bat.dm index 905853ab25..c91f52bce4 100644 --- a/code/modules/mob/living/simple_animal/animals/bat.dm +++ b/code/modules/mob/living/simple_animal/animals/bat.dm @@ -16,9 +16,9 @@ turns_per_move = 3 speed = 4 - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "hits" harm_intent_damage = 10 diff --git a/code/modules/mob/living/simple_animal/animals/carp.dm b/code/modules/mob/living/simple_animal/animals/carp.dm index 7e7ae92876..261cb521b3 100644 --- a/code/modules/mob/living/simple_animal/animals/carp.dm +++ b/code/modules/mob/living/simple_animal/animals/carp.dm @@ -15,9 +15,9 @@ speed = 4 turns_per_move = 5 - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "hits" harm_intent_damage = 8 melee_damage_lower = 15 diff --git a/code/modules/mob/living/simple_animal/animals/crab.dm b/code/modules/mob/living/simple_animal/animals/crab.dm index ce5230eb75..f32e1e165b 100644 --- a/code/modules/mob/living/simple_animal/animals/crab.dm +++ b/code/modules/mob/living/simple_animal/animals/crab.dm @@ -46,7 +46,7 @@ desc = "It's Coffee, the other pet!" response_help = "pets" response_disarm = "gently pushes aside" - response_harm = "stomps" + response_harm = "stomps on" //Sif Crabs /mob/living/simple_animal/giant_crab @@ -78,18 +78,18 @@ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat response_help = "pets" response_disarm = "gently pushes aside" - response_harm = "stomps" + response_harm = "kicks" friendly = "pinches" speak_chance = 1 speak_emote = list("clicks") emote_hear = list("clicks") emote_see = list("clacks") - - - + + + //Enemy version. -/mob/living/simple_animal/hostile/giant_crab +/mob/living/simple_animal/hostile/giant_crab name = "giant crab" desc = "A giant enemy crab." tt_desc = "S Cancer holligus" @@ -116,7 +116,7 @@ attack_sharp = 1 attack_edge = 1 - armor = list( + armor = list( "melee" = 40, "bullet" = 10, "laser" = 25, @@ -128,7 +128,7 @@ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat response_help = "pets" response_disarm = "gently pushes aside" - response_harm = "stomps" + response_harm = "kicks" friendly = "pinches" speak_chance = 1 diff --git a/code/modules/mob/living/simple_animal/animals/deer.dm b/code/modules/mob/living/simple_animal/animals/deer.dm index 4c4e7dd2d3..979873452c 100644 --- a/code/modules/mob/living/simple_animal/animals/deer.dm +++ b/code/modules/mob/living/simple_animal/animals/deer.dm @@ -1,5 +1,5 @@ /mob/living/simple_animal/deer - name = "Deer" + name = "deer" desc = "An animal with impressive antlers and skittish personality, though this one seems domesticated." tt_desc = "Cervus elaphus" icon_state = "Deer" @@ -50,7 +50,7 @@ response_help = "pets" response_disarm = "barely manage to push aside" - response_harm = "nibbles" + response_harm = "hits" attacktext = list("nibbled") speak_chance = 20 diff --git a/code/modules/mob/living/simple_animal/animals/goose.dm b/code/modules/mob/living/simple_animal/animals/goose.dm index f05baf7acf..bfe2b1eb9b 100644 --- a/code/modules/mob/living/simple_animal/animals/goose.dm +++ b/code/modules/mob/living/simple_animal/animals/goose.dm @@ -15,9 +15,9 @@ turns_per_move = 5 - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "hits" harm_intent_damage = 5 melee_damage_lower = 5 //they're meant to be annoying, not threatening. diff --git a/code/modules/mob/living/simple_animal/animals/lizard.dm b/code/modules/mob/living/simple_animal/animals/lizard.dm index 79b57578fa..5a117b6c88 100644 --- a/code/modules/mob/living/simple_animal/animals/lizard.dm +++ b/code/modules/mob/living/simple_animal/animals/lizard.dm @@ -1,5 +1,5 @@ /mob/living/simple_animal/lizard - name = "Lizard" + name = "lizard" desc = "A cute tiny lizard." faction = "lizard" tt_desc = "E Anolis cuvieri" @@ -25,11 +25,11 @@ speak_emote = list("hisses") var/amount_grown = 0 - - + + /mob/living/simple_animal/lizard/event desc = "This one looks like it is growing huge!" - + /mob/living/simple_animal/lizard/event/Life() . = ..() if(amount_grown >= 0) @@ -43,7 +43,7 @@ if(prob(99.999)) new /mob/living/simple_animal/hostile/lizardman(get_turf(src)) qdel(src) - else + else new /mob/living/simple_animal/hostile/deathclaw(get_turf(src)) qdel(src) - + diff --git a/code/modules/mob/living/simple_animal/animals/sculpture.dm b/code/modules/mob/living/simple_animal/animals/sculpture.dm index be0057f501..716e1a3a68 100644 --- a/code/modules/mob/living/simple_animal/animals/sculpture.dm +++ b/code/modules/mob/living/simple_animal/animals/sculpture.dm @@ -9,9 +9,9 @@ icon_dead = "sculpture" emote_hear = list("makes a faint scraping sound") emote_see = list("twitches slightly", "shivers") - response_help = "touches the" - response_disarm = "pushes the" - response_harm = "hits the" + response_help = "touches" + response_disarm = "pushes" + response_harm = "hits" see_in_dark = 8 //Needs to see in darkness to snap in darkness pass_flags = PASSTABLE var/response_snap = "snapped the neck of" //Past tense because it "happened before you could see it" diff --git a/code/modules/mob/living/simple_animal/animals/synx.dm b/code/modules/mob/living/simple_animal/animals/synx.dm index 2054acb7cf..a57feaf9c0 100644 --- a/code/modules/mob/living/simple_animal/animals/synx.dm +++ b/code/modules/mob/living/simple_animal/animals/synx.dm @@ -40,8 +40,8 @@ "rad" = 100) has_hands = 1 - response_help = "pets" - response_disarm = "gently pushes aside" + response_help = "pets the" + response_disarm = "gently pushes aside the" pass_flags = PASSTABLE @@ -182,7 +182,7 @@ mob/living/simple_animal/synx/PunchTarget() metabolism = REM * 1 //ten times faster for convenience of testers. color = "#00FFFF" overdose = REAGENTS_OVERDOSE * 20 //it's all fake. But having nanomachines move through you is not good at a certain amount. - + /datum/reagent/inaprovaline/synxchem/holo/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) if(alien != IS_DIONA) if(prob(5)) @@ -230,8 +230,8 @@ mob/living/simple_animal/synx/PunchTarget() M.adjustHalLoss(1) //dealing 5 times the amount of brute healed as halo, but we cant feel pain yet // ^ I have no idea what this might cause, my ideal plan is that once the pain killer wears off you suddenly collapse; //Since Halloss is not "real" damage this should not cause death - - + + /datum/reagent/inaprovaline/synxchem/overdose(var/mob/living/carbon/M, var/alien, var/removed) ..() if(alien != IS_DIONA) @@ -242,7 +242,7 @@ mob/living/simple_animal/synx/PunchTarget() M.AdjustStunned(1) if(prob(2)) M.AdjustParalysis(1) - + /datum/reagent/inaprovaline/synxchem/holo/overdose(var/mob/living/carbon/M, var/alien, var/removed) return @@ -298,7 +298,7 @@ mob/living/simple_animal/synx/PunchTarget() /mob/living/simple_animal/retaliate/synx/handle_idle_speaking() if(voices && prob(speak_chance/2)) randomspeech() - + ////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////// POWERS!!!! ///////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////// @@ -349,7 +349,7 @@ mob/living/simple_animal/synx/PunchTarget() set category = "Abilities" if(speak && voices) handle_mimic() - else + else usr << "YOU NEED TO HEAR THINGS FIRST, try using Ventcrawl to eevesdrop on nerds" /mob/living/simple_animal/retaliate/synx/proc/handle_mimic() @@ -370,14 +370,14 @@ mob/living/simple_animal/synx/PunchTarget() glow_range = 4 glow_toggle = 1 player_msg = "You aren't supposed to be in this. Wrong mob." - + /mob/living/simple_animal/retaliate/synx/pet/init_vore() ..() var/obj/belly/B = vore_selected B.vore_verb = "swallow" B.digest_burn = 1 B.digest_brute = 0 - + /mob/living/simple_animal/retaliate/synx/pet/holo/init_vore() ..() var/obj/belly/B = vore_selected @@ -408,7 +408,7 @@ mob/living/simple_animal/synx/PunchTarget() var/location = get_turf(src) new /obj/item/seeds/hardlightseed/typesx(location) qdel(src) - + /mob/living/simple_animal/retaliate/synx/pet/holo/gib() visible_message("\The [src] fades away!") var/location = get_turf(src) @@ -469,7 +469,7 @@ mob/living/simple_animal/synx/PunchTarget() icon_state = "synx_diablo_living" icon_living = "synx_diablo_living" icon_dead = "synx_diablo_dead" - speak = list( ) + speak = list( ) //Vore Section vore_capacity = 2 @@ -479,7 +479,7 @@ mob/living/simple_animal/synx/PunchTarget() icon_state = "synx_diablo_living" icon_living = "synx_diablo_living" icon_dead = "synx_diablo_dead" - speak = list( ) + speak = list( ) //Vore Section vore_capacity = 2 @@ -502,7 +502,7 @@ mob/living/simple_animal/synx/PunchTarget() //Vore Section vore_default_mode = DM_HEAL vore_capacity = 10 - vore_digest_chance = 0 + vore_digest_chance = 0 vore_pounce_chance = 1 //MAKE THEM HONK vore_bump_chance = 0 //lowered bump chance vore_escape_chance = 100 diff --git a/code/modules/mob/living/simple_animal/animals/worm.dm b/code/modules/mob/living/simple_animal/animals/worm.dm index da30dbf8fd..c7f32acbe7 100644 --- a/code/modules/mob/living/simple_animal/animals/worm.dm +++ b/code/modules/mob/living/simple_animal/animals/worm.dm @@ -20,7 +20,7 @@ response_help = "touches" response_disarm = "flails at" - response_harm = "punches the" + response_harm = "punches" harm_intent_damage = 2 diff --git a/code/modules/mob/living/simple_animal/humanoids/clown.dm b/code/modules/mob/living/simple_animal/humanoids/clown.dm index adc9527e19..a95294da8f 100644 --- a/code/modules/mob/living/simple_animal/humanoids/clown.dm +++ b/code/modules/mob/living/simple_animal/humanoids/clown.dm @@ -19,7 +19,7 @@ firing_lines = TRUE investigates = TRUE assist_distance = 100 - + turns_per_move = 5 stop_when_pulled = 0 @@ -85,9 +85,9 @@ icon_gib = "clown_gib" speak_chance = 50 turns_per_move = 5 - response_help = "pokes the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" speak = list("HONK", "Honk!") speak_emote = list("squeals", "cries","sobs") emote_hear = list("honks sadly") @@ -127,15 +127,15 @@ icon_state = "ClownGoblin" icon_living = "ClownGoblin" icon_dead = null - response_help = "honks the" + response_help = "honks" speak = list("Honk!") speak_emote = list("sqeaks") emote_hear = list("honks") maxHealth = 100 health = 100 - + view_range = 30//owo - + speed = 1 turns_per_move = 1 @@ -165,7 +165,7 @@ /mob/living/simple_animal/clowngang name = "Pandoras box" desc = "A honkmotherload of fun" - + /mob/living/simple_animal/clowngang/Life() death() /mob/living/simple_animal/clowngang/death() diff --git a/code/modules/mob/living/simple_animal/humanoids/pirate.dm b/code/modules/mob/living/simple_animal/humanoids/pirate.dm index a02e4382bb..15eee5e18e 100644 --- a/code/modules/mob/living/simple_animal/humanoids/pirate.dm +++ b/code/modules/mob/living/simple_animal/humanoids/pirate.dm @@ -1,5 +1,5 @@ /mob/living/simple_animal/hostile/pirate - name = "Pirate" + name = "pirate" desc = "Does what he wants cause a pirate is free." tt_desc = "E Homo sapiens" icon_state = "piratemelee" diff --git a/code/modules/mob/living/simple_animal/vore/awoo.dm b/code/modules/mob/living/simple_animal/vore/awoo.dm index d71d9ba97b..d984c0d807 100644 --- a/code/modules/mob/living/simple_animal/vore/awoo.dm +++ b/code/modules/mob/living/simple_animal/vore/awoo.dm @@ -18,9 +18,9 @@ returns_home = 1 reacts = 1 - response_help = "pats the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" + response_help = "pats" + response_disarm = "gently pushes aside" + response_harm = "hits" harm_intent_damage = 8 melee_damage_lower = 15 diff --git a/code/modules/mob/living/simple_animal/vore/bee.dm b/code/modules/mob/living/simple_animal/vore/bee.dm index 7026b00ee7..87a0d164cb 100644 --- a/code/modules/mob/living/simple_animal/vore/bee.dm +++ b/code/modules/mob/living/simple_animal/vore/bee.dm @@ -9,9 +9,9 @@ speak = list("Buzzzz") speak_chance = 1 - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "hits" turns_per_move = 5 speed = 5 diff --git a/code/modules/mob/living/simple_animal/vore/corrupt_hounds.dm b/code/modules/mob/living/simple_animal/vore/corrupt_hounds.dm index 46f360c571..537ed08101 100644 --- a/code/modules/mob/living/simple_animal/vore/corrupt_hounds.dm +++ b/code/modules/mob/living/simple_animal/vore/corrupt_hounds.dm @@ -25,9 +25,9 @@ say_maybe_target = list("MEAT?", "N0w YOU DNE FcukED UP b0YO!", "WHAT!", "Not again. NOT AGAIN!") say_got_target = list("D##FIN1Tly DNE FcukED UP nOW b0YO!", "YOU G1T D#V0VRED nOW!", "FUEL ME bOYO!", "I*M SO SORRY?!", "D1E Meat. DIG#ST!", "G1T DVNKED DWN The HaaTCH!", "Not again. NOT AGAIN!") - response_help = "pets the" - response_disarm = "bops the" - response_harm = "hits the" + response_help = "pets" + response_disarm = "bops" + response_harm = "hits" attacktext = list("ravaged") friendly = list("nuzzles", "slobberlicks", "noses softly at", "noseboops", "headbumps against", "leans on", "nibbles affectionately on") diff --git a/code/modules/mob/living/simple_animal/vore/fennec.dm b/code/modules/mob/living/simple_animal/vore/fennec.dm index 49a3e3161b..0445d4dfef 100644 --- a/code/modules/mob/living/simple_animal/vore/fennec.dm +++ b/code/modules/mob/living/simple_animal/vore/fennec.dm @@ -12,9 +12,9 @@ maxHealth = 30 health = 30 - response_help = "pats the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" + response_help = "pats" + response_disarm = "gently pushes aside" + response_harm = "hits" harm_intent_damage = 5 melee_damage_lower = 5 diff --git a/code/modules/mob/living/simple_animal/vore/lizardman.dm b/code/modules/mob/living/simple_animal/vore/lizardman.dm index 26261fcbce..ed8baa7994 100644 --- a/code/modules/mob/living/simple_animal/vore/lizardman.dm +++ b/code/modules/mob/living/simple_animal/vore/lizardman.dm @@ -24,9 +24,9 @@ speak_emote = list("growls","hisses") say_maybe_target = list("Rawr?") say_got_target = list("GWAR!!") - response_help = "pets the" - response_disarm = "bops the" - response_harm = "hits the" + response_help = "pets" + response_disarm = "bops" + response_harm = "hits" attacktext = list("bit") friendly = list("nuzzles", "licks", "noses softly at", "noseboops", "headbumps against", "leans on", "nibbles affectionately on") diff --git a/code/modules/mob/living/simple_animal/vore/metroidsSimple.dm b/code/modules/mob/living/simple_animal/vore/metroidsSimple.dm index 31723d9974..e42aa0828e 100644 --- a/code/modules/mob/living/simple_animal/vore/metroidsSimple.dm +++ b/code/modules/mob/living/simple_animal/vore/metroidsSimple.dm @@ -19,9 +19,9 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. maxHealth = 25 health = 25 speed = 4 - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "hits" harm_intent_damage = 5 isEdible = 0 //They cannot be eaten while alive. var/canEvolve = 1 //A variable for admins to turn off and on for when they like assign a player as a mob. I want to add a verb so that they can do it on command when the conditions are right in the future. @@ -49,14 +49,14 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. emote_see = list("SKREE's") meat_type = /obj/item/toy/figure/samus - + var/mob/living/victim = null // the person the metroid is currently feeding on var/optimal_combat = FALSE // Used to dumb down the combat AI somewhat. If true, the metroid tends to be really dangerous to fight alone due to stunlocking. var/power_charge = 0 var/evo_point = 0 var/evo_limit = 0 var/next = null - + //Stuff for if a person is playing as a metroid. show_stat_health = 1 // Does the percentage health show in the stat panel for the mob ai_inactive = 0 // Set to 1 to turn off most AI actions @@ -68,10 +68,10 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. //r_hand_sprite = "piranha_r" // If they have hands, //TODO make a leaf sprite for this //l_hand_sprite = "piranha_l" // they could use some icons. player_msg = "SUCC." // Message to print to players about 'how' to play this mob on login. - - - - + + + + /mob/living/simple_animal/hostile/metroid //activate noms vore_active = 1 vore_pounce_chance = 25 @@ -81,8 +81,8 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. /mob/living/simple_animal/hostile/metroid/death() playsound(src, 'sound/effects/metroiddeath.ogg', 50, 1) ..() - - + + /mob/living/simple_animal/hostile/metroid/mine name = "Mochtroid" @@ -125,7 +125,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. melee_damage_lower = 1 melee_damage_upper = 5 melee_miss_chance = 0 - armor = list( + armor = list( "melee" = 50, "bullet" = 30, "laser" = 80, @@ -164,20 +164,20 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. cooperative = 1 evo_point = 800 evo_limit = 1000 - next = "/mob/living/simple_animal/hostile/metroid/evolution/super" + next = "/mob/living/simple_animal/hostile/metroid/evolution/super" vore_active = 0 - + /mob/living/simple_animal/hostile/metroid/evolution/baby/New() playsound(src, 'sound/metroid/metroidsee.ogg', 100, 1) ..() - - - -//------------------------------------------------------------------------------------------------------------ - +//------------------------------------------------------------------------------------------------------------ + + + + /mob/living/simple_animal/hostile/metroid/evolution/super name = "super metroid" desc = "Some kind of head sucky thing!" @@ -193,7 +193,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. melee_damage_lower = 2 melee_damage_upper = 5 melee_miss_chance = 0 - armor = list( + armor = list( "melee" = 50, "bullet" = 30, "laser" = 90, @@ -232,7 +232,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. evo_point = 1200 evo_limit = 1400 next = "/mob/living/simple_animal/hostile/metroid/combat/alpha" - + vore_active = 1 vore_bump_chance = 0 vore_capacity = 1 @@ -240,20 +240,20 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. vore_pounce_chance = 25 //Metroids only eat incapacitated targets vore_default_mode = DM_DIGEST swallowTime = 1 SECONDS //Hungry little bastards. - vore_escape_chance = 25 + vore_escape_chance = 25 /mob/living/simple_animal/hostile/metroid/evolution/super/New() playsound(src, 'sound/metroid/metroidsee.ogg', 100, 1) ..() - + /mob/living/simple_animal/hostile/metroid/evolution/super/death() playsound(src, 'sound/metroid/metroiddeath.ogg', 100, 1) ..() - - - -//------------------------------------------------------------------------------------------------------------ + + + +//------------------------------------------------------------------------------------------------------------ @@ -272,7 +272,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. melee_damage_upper = 15 melee_miss_chance = 5 attacktext = list("rammed") - armor = list( + armor = list( "melee" = 60, "bullet" = 45, "laser" = 50, @@ -283,7 +283,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. gender = NEUTER faction = "metroids" move_to_delay = 3 - + //Alphas lose their vulnerability to cold. minbodytemp = 0 min_oxy = 0 @@ -327,14 +327,14 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. vore_icons = SA_ICON_LIVING vore_pounce_chance = 15 //Alphas will try knocking targets over since they lost their stun ability from the initial phases. vore_default_mode = DM_DIGEST - swallowTime = 3 SECONDS + swallowTime = 3 SECONDS vore_escape_chance = 25 - - - - - + + + + + //------------------------------------------------------------------------------------------------------------ @@ -354,7 +354,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. melee_damage_upper = 20 melee_miss_chance = 5 attacktext = list("rammed") - armor = list( + armor = list( "melee" = 60, "bullet" = 50, "laser" = 50, @@ -365,7 +365,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. gender = NEUTER faction = "metroids" move_to_delay = 4 - + move_shoot = 1 //Move and shoot at the same time. ranged_cooldown = 0 //What the starting cooldown is on ranged attacks ranged_cooldown_time = 150 //How long, in deciseconds, the cooldown of ranged attacks is @@ -407,7 +407,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. /mob/living/simple_animal/hostile/metroid/combat/gamma/New() playsound(src, 'sound/metroid/metroidgamma.ogg', 100, 1) ..() - + /mob/living/simple_animal/hostile/metroid/combat/gamma/death() playsound(src, 'sound/metroid/metroiddeath.ogg', 100, 1) ..() @@ -417,14 +417,14 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. vore_bump_chance = 0 vore_capacity = 1 vore_icons = SA_ICON_LIVING - vore_pounce_chance = 15 + vore_pounce_chance = 15 vore_default_mode = DM_DIGEST - swallowTime = 3 SECONDS + swallowTime = 3 SECONDS vore_escape_chance = 20 - - - -//------------------------------------------------------------------------------------------------------------ + + + +//------------------------------------------------------------------------------------------------------------ @@ -444,7 +444,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. melee_miss_chance = 5 attack_armor_pen = 10 attacktext = list("slashed") - armor = list( + armor = list( "melee" = 70, "bullet" = 60, "laser" = 50, @@ -455,7 +455,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. gender = NEUTER faction = "metroids" move_to_delay = 4 - + move_shoot = 1 //Move and shoot at the same time. ranged_cooldown = 0 //What the starting cooldown is on ranged attacks ranged_cooldown_time = 60 //How long, in deciseconds, the cooldown of ranged attacks is @@ -474,7 +474,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. min_n2 = 0 max_n2 = 0 unsuitable_atoms_damage = 0 - + pixel_x = -16 pixel_y = -16 old_x = -16 @@ -499,7 +499,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. /mob/living/simple_animal/hostile/metroid/combat/zeta/New() playsound(src, 'sound/metroid/metroidzeta.ogg', 100, 1) ..() - + /mob/living/simple_animal/hostile/metroid/combat/zeta/death() playsound(src, 'sound/metroid/metroiddeath.ogg', 100, 1) ..() @@ -509,15 +509,15 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. vore_bump_chance = 0 vore_capacity = 1 vore_icons = SA_ICON_LIVING - vore_pounce_chance = 20 + vore_pounce_chance = 20 vore_default_mode = DM_DIGEST - swallowTime = 3 SECONDS + swallowTime = 3 SECONDS vore_escape_chance = 15 - - - - -//------------------------------------------------------------------------------------------------------------ + + + + +//------------------------------------------------------------------------------------------------------------ @@ -537,7 +537,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. melee_miss_chance = 5 attack_armor_pen = 20 attacktext = list("slashed") - armor = list( + armor = list( "melee" = 75, "bullet" = 60, "laser" = 55, @@ -549,7 +549,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. faction = "metroids" speed = 4 move_to_delay = 5 - + move_shoot = 1 //Move and shoot at the same time. ranged_cooldown = 0 //What the starting cooldown is on ranged attacks ranged_cooldown_time = 150 //How long, in deciseconds, the cooldown of ranged attacks is @@ -568,7 +568,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. min_n2 = 0 max_n2 = 0 unsuitable_atoms_damage = 0 - + old_x = -16 old_y = 0 default_pixel_x = -16 @@ -593,7 +593,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. /mob/living/simple_animal/hostile/metroid/combat/omega/New() playsound(src, 'sound/metroid/metroidomega.ogg', 100, 1) ..() - + /mob/living/simple_animal/hostile/metroid/combat/omega/death() playsound(src, 'sound/metroid/metroidomegadeath.ogg', 100, 1) ..() @@ -603,15 +603,15 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. vore_bump_chance = 0 vore_capacity = 2 vore_icons = SA_ICON_LIVING - vore_pounce_chance = 40 + vore_pounce_chance = 40 vore_default_mode = DM_DIGEST swallowTime = 3 SECONDS vore_escape_chance = 5 - - - - -//------------------------------------------------------------------------------------------------------------ + + + + +//------------------------------------------------------------------------------------------------------------ @@ -631,7 +631,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. melee_miss_chance = 5 attack_armor_pen = 20 attacktext = list("gnashed") - armor = list( + armor = list( "melee" = 75, "bullet" = 60, "laser" = 60, @@ -661,7 +661,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. min_n2 = 0 max_n2 = 0 unsuitable_atoms_damage = 0 - + pixel_x = -16 pixel_y = -16 old_x = -16 @@ -678,18 +678,18 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. evo_point = 1100 evo_limit = INFINITY next = null - + /mob/living/simple_animal/hostile/metroid/combat/queen/New() playsound(src, 'sound/metroid/metroidqueen.ogg', 100, 1) queen_amount++ ..() - + /mob/living/simple_animal/hostile/metroid/combat/queen/death() playsound(src, 'sound/metroid/metroidqueendeath.ogg', 100, 1) queen_amount-- ..() - + /mob/living/simple_animal/hostile/metroid/combat/queen //active noms vore_active = 1 vore_bump_chance = 0 @@ -706,13 +706,13 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. /* -//Objects related to the Metroids. +//Objects related to the Metroids. //Projectile for the Metroids. */ /obj/item/projectile/energy/metroidacid - + name = "metroid acid" icon_state = "neurotoxin" damage = 10 @@ -720,7 +720,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. agony = 10 check_armour = "bio" armor_penetration = 50 - + //EGG! Metroid egg and its mechanics. Ripped from spiders. /obj/effect/metroid/egg name = "egg cluster" @@ -758,9 +758,9 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. //------------------------------------------------------------------------------------------------------------ - - + + /* //LIFE STUFF, AND MECHANICS! @@ -776,7 +776,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. release_vore_contents() prey_excludes.Cut() stop_consumption() - + if(canEvolve == 1 && nutrition >= evo_point && !buckled && vore_fullness == 0 && !victim) playsound(src, 'sound/metroid/metroidgrow.ogg', 50, 1) paralysis = 7998 @@ -794,8 +794,8 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. new next(get_turf(src)) visible_message("\The [src] suddenly evolves!") qdel(src) - - + + /mob/living/simple_animal/hostile/metroid/evolution/handle_regular_status_updates() if(stat != DEAD) @@ -849,7 +849,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. if(prob(input * 2)) // Gain around one level per 50 nutrition power_charge = min(power_charge++, 10) - + /mob/living/simple_animal/hostile/metroid/evolution/PunchTarget() //this segment determines what the mob does depending on its intent. if(victim) return // Already eatting someone. @@ -954,7 +954,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. /mob/living/simple_animal/hostile/metroid/evolution/DoPunch(var/mob/living/L) //Metroid melee. var/damage_to_do = rand(melee_damage_lower, melee_damage_upper) var/armor_modifier = abs((L.getarmor(null, "bio") / 100) - 1) - + if(!Adjacent(L)) // Might've moved away in the meantime. return @@ -1062,8 +1062,8 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. paralysis = 7998 sleep(50) paralysis = 0 - - + + /mob/living/simple_animal/hostile/metroid/evolution/FindTarget() //This makes it so it doesn't go after another target while succing. if(victim) // Don't worry about finding another target if we're sucking on someone's head. return @@ -1081,9 +1081,9 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. return else ..() - - - + + + /mob/living/simple_animal/hostile/metroid/evolution/baby/Found(mob/living/L) if(isliving(L)) if(SA_attackable(L)) @@ -1094,21 +1094,21 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. return H // Monkeys are always food. else return - + if(ishuman(L)) var/mob/living/carbon/human/H = L if(istype(H.species, /datum/species/monkey)) // istype() is so they'll eat the alien monkeys too. return H // Monkeys are always food. return - + /* -//LIFE PROCS! -//FOR THE COMBAT FORMS +//LIFE PROCS! +//FOR THE COMBAT FORMS */ @@ -1119,7 +1119,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. if(canEvolve == 1 && nutrition >= evo_limit && vore_fullness == TRUE) //spit dat crap out if nutrition gets too high! release_vore_contents() prey_excludes.Cut() - + if(canEvolve == 1 && nutrition >= evo_point && vore_fullness == 0 && next != "/mob/living/simple_animal/hostile/metroid/combat/queen") playsound(src, 'sound/metroid/metroidgrow.ogg', 50, 1) paralysis = 7998 @@ -1127,14 +1127,14 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. paralysis = 0 expand_troid() return - + else if(queen_amount == 0 && prob(5) && canEvolve == 1 && nutrition >= evo_point && vore_fullness == 0 && next == "/mob/living/simple_animal/hostile/metroid/combat/queen") playsound(src, 'sound/metroid/metroidgrow.ogg', 50, 1) paralysis = 7998 sleep(50) paralysis = 0 expand_troid() - + else if(next == null && canEvolve == 1 && nutrition >= evo_point) playsound(src, 'sound/metroid/metroidgrow.ogg', 50, 1) src.visible_message("\The [src] begins to lay an egg.") @@ -1144,12 +1144,12 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. stop_automated_movement = 0 nutrition = 400 return - + if(stance == 7) //Necessary to fix a bug where if their prey or latching victim is laying down when they evolve, they get stuck in stance 7 and do nothing. stance = 4 return - + /mob/living/simple_animal/hostile/metroid/combat/proc/adjust_nutrition(input) @@ -1168,7 +1168,7 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. /mob/living/simple_animal/hostile/metroid/combat/DoPunch(var/mob/living/L) //Metroid actions vs the player. var/damage_to_do = rand(melee_damage_lower, melee_damage_upper) var/armor_modifier = abs((L.getarmor(null, "bio") / 100) - 1) - + if(!Adjacent(L)) // Might've moved away in the meantime. return @@ -1184,12 +1184,12 @@ var/global/list/queen_amount = 0 //We only gonna want 1 queen in the world. if(I_HURT) //The metroid does this if it can't latch onto the target or it decides not to try knocking them down. ai_log("DoPunch() against [L], hurting.",2) - - + + L.attack_generic(src, damage_to_do, pick(attacktext)) playsound(src, 'sound/weapons/bite.ogg', 75, 1) - + // Give the Metroid some nutrition, if applicable, even if not attached. if(!L.isSynthetic()) if(ishuman(L)) diff --git a/code/modules/mob/living/simple_animal/vore/otie.dm b/code/modules/mob/living/simple_animal/vore/otie.dm index 649e064e85..960a9c70e7 100644 --- a/code/modules/mob/living/simple_animal/vore/otie.dm +++ b/code/modules/mob/living/simple_animal/vore/otie.dm @@ -34,9 +34,9 @@ say_got_target = list("Rurrr!", "ROAR!", "MARR!", "RERR!", "RAHH!", "RAH!", "WARF!") melee_damage_lower = 5 melee_damage_upper = 15 //Don't break my bones bro - response_help = "pets the" - response_disarm = "bops the" - response_harm = "hits the" + response_help = "pets" + response_disarm = "bops" + response_harm = "hits" attacktext = list("mauled") friendly = list("nuzzles", "slobberlicks", "noses softly at", "noseboops", "headbumps against", "leans on", "nibbles affectionately on") meat_amount = 6 diff --git a/code/modules/mob/living/simple_animal/vore/rat.dm b/code/modules/mob/living/simple_animal/vore/rat.dm index 53b2e73c12..dd18a80ff1 100644 --- a/code/modules/mob/living/simple_animal/vore/rat.dm +++ b/code/modules/mob/living/simple_animal/vore/rat.dm @@ -25,9 +25,9 @@ emote_see = list("runs in a circle", "shakes", "scritches at something") say_maybe_target = list("Squeek?") say_got_target = list("SQUEEK!") - response_help = "pets the" - response_disarm = "bops the" - response_harm = "hits the" + response_help = "pets" + response_disarm = "bops" + response_harm = "hits" attacktext = list("ravaged") friendly = list("nuzzles", "licks", "noses softly at", "noseboops", "headbumps against", "leans on", "nibbles affectionately on") diff --git a/code/modules/mob/living/simple_animal/vore/redpanda.dm b/code/modules/mob/living/simple_animal/vore/redpanda.dm index 1fb6c9d20c..1a585bda99 100644 --- a/code/modules/mob/living/simple_animal/vore/redpanda.dm +++ b/code/modules/mob/living/simple_animal/vore/redpanda.dm @@ -12,9 +12,9 @@ maxHealth = 30 health = 30 - response_help = "pats the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" + response_help = "pats" + response_disarm = "gently pushes aside" + response_harm = "hits" harm_intent_damage = 5 melee_damage_lower = 5 @@ -76,9 +76,9 @@ maxHealth = 150 health = 150 - response_help = "pats the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" + response_help = "pats" + response_disarm = "gently pushes aside" + response_harm = "hits" harm_intent_damage = 5 melee_damage_lower = 5 diff --git a/code/modules/mob/living/simple_animal/vore/shadekin/shadekin.dm b/code/modules/mob/living/simple_animal/vore/shadekin/shadekin.dm index b91937f38c..6c878d2748 100644 --- a/code/modules/mob/living/simple_animal/vore/shadekin/shadekin.dm +++ b/code/modules/mob/living/simple_animal/vore/shadekin/shadekin.dm @@ -43,9 +43,9 @@ emote_see = list("tailtwitches", "earflicks") say_maybe_target = list("...mar?") say_got_target = list("MAR!!!") - response_help = "pets the" - response_disarm = "bops the" - response_harm = "hits the" + response_help = "pets" + response_disarm = "bops" + response_harm = "hits" attacktext = list("mauled","slashed","clawed") friendly = list("boops", "pawbs", "mars softly at", "sniffs on") reactions = list("Mar?" = "Marrr!", "Mar!" = "Marrr???", "Mar." = "Marrr.") diff --git a/code/modules/vore/eating/contaminate_vr.dm b/code/modules/vore/eating/contaminate_vr.dm index dac679b0a2..1f21eff605 100644 --- a/code/modules/vore/eating/contaminate_vr.dm +++ b/code/modules/vore/eating/contaminate_vr.dm @@ -25,8 +25,9 @@ var/image/gurgled_overlay = image('icons/effects/sludgeoverlay_vr.dmi') /obj/item/proc/can_gurgle() if(flags & PHORONGUARD) return FALSE - else if(phoronproof == TRUE) - return FALSE +//TFF 2/8/19 - removed to prevent contamination damage. +// else if(phoronproof == TRUE) +// return FALSE else if(unacidable) return FALSE else diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index 5b7be77ea5..c2d66dc0ce 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -812,8 +812,9 @@ user.client.prefs_vr.digestable = user.digestable //TFF 30/4/19: Ports VoreStation Remains Option - add option that goes paw in paw with belly setting; allow yourself to leave bones behind after you're digested + //TFF 2/8/19 - Add admin message notification for setting this ON. if(href_list["toggledlm"]) - var/choice = alert(user, "This button allows preds to have your remains be left in their belly after you are digested. This will only happen if pred sets their belly to do so. Remains consist of skeletal parts. Currently you are [user.digest_leave_remains? "" : "not"] leaving remains.", "", "Allow Post-digestion Remains", "Cancel", "Disallow Post-digestion Remains") + var/choice = alert(user, "This button allows preds to have your remains be left in their belly after you are digested. This will only happen if pred sets their belly to do so. Remains consist of skeletal parts. Setting this will notify admins. Currently you are [user.digest_leave_remains? "" : "not"] leaving remains.", "", "Allow Post-digestion Remains", "Cancel", "Disallow Post-digestion Remains") switch(choice) if("Cancel") return 0 @@ -822,6 +823,8 @@ if("Disallow Post-digestion Remains") user.digest_leave_remains = FALSE + message_admins("[key_name(user)] toggled their ability to leave remains to [user.digest_leave_remains] ([user ? "JMP" : "null"])") + if(user.client.prefs_vr) user.client.prefs_vr.digest_leave_remains = user.digest_leave_remains diff --git a/icons/mob/pai_vr64x64.dmi b/icons/mob/pai_vr64x64.dmi new file mode 100644 index 0000000000..3a1b29a80f Binary files /dev/null and b/icons/mob/pai_vr64x64.dmi differ diff --git a/icons/mob/vore/taurs_vr.dmi b/icons/mob/vore/taurs_vr.dmi index d7e916489f..c523fc38d7 100644 Binary files a/icons/mob/vore/taurs_vr.dmi and b/icons/mob/vore/taurs_vr.dmi differ diff --git a/icons/mob/widerobot_vr.dmi b/icons/mob/widerobot_vr.dmi index f96999f321..883f8a4b2f 100644 Binary files a/icons/mob/widerobot_vr.dmi and b/icons/mob/widerobot_vr.dmi differ diff --git a/maps/northern_star/polaris-1.dmm b/maps/northern_star/polaris-1.dmm index 8b6a7728a8..7820f4eecb 100644 --- a/maps/northern_star/polaris-1.dmm +++ b/maps/northern_star/polaris-1.dmm @@ -1049,7 +1049,7 @@ "aui" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/secondary/chapel_hallway) "auj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/chapel_hallway) "auk" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/cigbutt/cigarbutt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/vacant/vacant_site) -"aul" = (/obj/structure/table/gamblingtable,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood,/area/vacant/vacant_site) +"aul" = (/obj/structure/table/gamblingtable,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/item/weapon/deck/cagse,/turf/simulated/floor/wood,/area/vacant/vacant_site) "aum" = (/obj/structure/table/gamblingtable,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/random/toy,/turf/simulated/floor/wood,/area/vacant/vacant_site) "aun" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/vacant/vacant_site) "auo" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/vacant/vacant_site) @@ -1119,7 +1119,7 @@ "avA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/barricade,/turf/simulated/floor/plating,/area/vacant/vacant_site) "avB" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/wood,/area/vacant/vacant_site) "avC" = (/obj/structure/table/gamblingtable,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/turf/simulated/floor/wood,/area/vacant/vacant_site) -"avD" = (/obj/structure/table/gamblingtable,/turf/simulated/floor/wood,/area/vacant/vacant_site) +"avD" = (/obj/structure/table/gamblingtable,/obj/item/weapon/deck/cagse/black,/turf/simulated/floor/wood,/area/vacant/vacant_site) "avE" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table/gamblingtable,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/deck/cards,/turf/simulated/floor,/area/vacant/vacant_site) "avF" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/maintenance/chapel) "avG" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/gun/energy/gun{pixel_x = 3; pixel_y = 3},/obj/item/weapon/gun/energy/gun,/obj/effect/floor_decal/corner/blue/full{dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 8},/obj/machinery/door/window/brigdoor/eastleft{name = "Energy"},/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/turf/simulated/floor/tiled/dark,/area/security/armoury) @@ -9731,7 +9731,6 @@ "dFg" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "trade_shuttle_dock_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "trade_shuttle_dock_sensor"; pixel_x = 30; pixel_y = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1) "dFh" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "admin_shuttle_dock_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "admin_shuttle_dock_sensor"; pixel_x = -30; pixel_y = 8},/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) "dFi" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "admin_shuttle_dock_pump"},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/camera/network/northern_star{c_tag = "DOCK - Dock 2 End"; dir = 9},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dFj" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "dock_three_aft_inner"; locked = 1; name = "Docking Port Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3) "dFk" = (/obj/machinery/door/airlock{name = "Bathroom Stall"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/locker/locker_toilet) "dFl" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "nuke_shuttle_dock_outer"; locked = 1; name = "Docking Port Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "nuke_shuttle_dock_airlock"; name = "exterior access button"; pixel_x = -5; pixel_y = -26; req_one_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D4) "dFm" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4) @@ -10442,7 +10441,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadySdySdy aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadySdySdySdySdySdySdySdySdySaaaaaaaaaaaaaaaaaaaaaaaaaazaaadrodBndrqaaadrodBndrqaaadrodBndrqaaadrodBndrqaaadrodBndrqaaaaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGdBodBpdBqdlTdBodBsdBtdBudBvdwSdBwdBxdxMdBydBzdBAdBBdBCdxMdBDdBEdBFdAidBGdBHdASdLmaaeaaeaaeaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnzdlVdnAdqgdBJdBKdmSdBLdiYaaaaaadkedkedkedkedkedkedkedkedkedkedkedkedkeaaaaaadjedBMdmTdBNdkjdpndjeaaaaaaaaaaaadoAdoAdoAdoAdoAaaaaaaaaaaaaaaaaaaaaaaaadjldpodkndBOdnLdBPdjlaaaaaaaaaaaaaaaaaadwCdwCdwCdwCdwCdwCdwCaaaaaaaaaaaaaaadjqdBQdBRdBSddOaafaafdwGdBTdBUdBTdwGdBVdBWdBVdwGaafaafaafaafaafaafdBldBXdLedBZdBlaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduJduJduJduJduJduJduJduJduJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadySdySdySdySdySdySdySdySdySaaaaaaaaaaaaaaaaaaaaaaaaaclaaaaaeaaaaaaaaaaaeaaeaaeaaaaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGdACdCbdBqdBrdACdwQdCddCedwQdwSdwSdCfdAidCgdChdCidChdCjdAidwYdCkdwYdAidAidAidAidCldCmdCndCndCmdCoaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadladlbdlcdCpdmSdledjYaaaaaadkedkedkedkedkedkedkedkedkedkedkedkedkeaaaaaadkfdlhdmTdCqdljdlkdkfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkldlmdlndCrdnLdlpdklaaaaaaaaaaaaaaaaaadwCdwCdwCdwCdwCdwCdwCaaaaaaaaaaaaaaadkrdCsdCtdCuddOaafaafdwGdCvdCcdCvdwGdCxdCwdCxdwGaafaafaafaafaafaafdBldMhdLKdCBdBlaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduJduJduJduJduJduJduJduJduJduJduJduJduJduJduJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadySdySdySdySdySdCCdySdySdySaaaaaaaaaaaaaaaaaaaaaaaaaclaclaclaclacwaazaayaaeaaeaaeaayaaeaaeaaeaaeaazaazaayaaeaaeaaeaazaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGdBodCDdBqdCydBodAidCFdCGdCHdMBdCJdCKdCLdCMdCNdCOdCPdCQdCRdCSdCTdCUdCVdCWdCWdAidCXdCndCYdCZdCndDadDbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlfdDcdDddDedDfdDgdlfaaaaaadkedkedkedkedkedkedkedkedkedkedkedkedkeaaaaaadlgdDhdDidDjdDkdDldlgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlldDmdDndDRdDpdDqdllaaaaaaaaaaaaaaadwCdwCdwCdwCdwCdwCdwCdwCdwCaaaaaaaaaaaadlqdDrdDsdDtddOaafaaidwGdCvdCEdCvdwGdCxdDudCxdwGaafaafaafaafaafaafdBldDwdLSdMpdBlaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduJduJduJduJduJduJduJduJduJduJduJduJduJduJduJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadySdySdySdySdySdySdySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGdACdDzdDzdDzdACdAidDAdDBdDCdDDdDEdDFdDGdDHdDIdDJdDIdDIdDIdDIdDIdDKdDLdOldCWdAidCldCmdDadCXdCmdCoaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpcdiYdpddpedpfdiZdiZdiZdiZdiZdiYdiYdDMdDNdDNdiYdiYaaaaaaaaaaaaaaaaaadkedkedkedkedkeaaaaaaaaaaaaaaaaaadjedjedDOdDOdDPdjedjeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjldjldDQdFjdFRdjldjlaaaaaadwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdjqdjqdDSdDTdDUdjqaafaaidAudCvdDvdCvdAudCxdDVdCxdAuaaiaaiaafaafaafaafdDXdDYdDZdEadEbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduJduJduJduJduJduJduJduJduJduJduJduJduJduJduJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadySdySdySdySdySdySdySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGdACdDzdDzdDzdACdAidDAdDBdDCdDDdDEdDFdDGdDHdDIdDJdDIdDIdDIdDIdDIdDKdDLdOldCWdAidCldCmdDadCXdCmdCoaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpcdiYdpddpedpfdiZdiZdiZdiZdiZdiYdiYdDMdDNdDNdiYdiYaaaaaaaaaaaaaaaaaadkedkedkedkedkeaaaaaaaaaaaaaaaaaadjedjedDOdDOdDPdjedjeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjldjldDQdFRdFRdjldjlaaaaaadwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdjqdjqdDSdDTdDUdjqaafaaidAudCvdDvdCvdAudCxdDVdCxdAuaaiaaiaafaafaafaafdDXdDYdDZdEadEbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduJduJduJduJduJduJduJduJduJduJduJduJduJduJduJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadySdySdySdySdySdySdySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaidEcdBodEddEddEedBodAidDAdDBdEfdEgdEhdEidEjdEjdEkdEldEmdEndEodEpdEqdErdEsdEtdEudAidEvdCmdCYdCZdCmdEwaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaadjYdExdEydEzdjYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkfdEAdEBdECdkfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkldEDdEEdFSdklaaaaaaaaadwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdEGdEHdEIdEJdEKdkraaiaaiaaidCvdELdCvaaadCxdEMdCxaaiaaiaaiaaiaaiaaiabGabGdENdEOdENaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduJduJduJduJduJduJduJduJduJduJduJduJduJduJduJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadySdySdySdySdySdySdySdySdySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEPaaaaaadEPaaaaaaaaadEPaaaaaaaaaaaaaaadEPaaaaaaaaadEPaaaaaadEPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaidtSdABdACdBodACdABdAidDAdDBdEQdERdESdDAdDAdDAdETdEUdEVdEWdEWdEXdEYdEZdFadFbdFcdFddFedCndDadCXdCndCYaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadladFfdDfdFgdlaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnEdFhdDidFidnEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnJdLZdDpdMMdnJaaaaaaaaadwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdFldFmdFndFodFpdnNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaaaaaaaaaaeaaeaaadENdFqdENaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduJduJduJduJduJduJduJduJduJduJduJduJduJduJduJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadySdySdySdySdySdySdySdySdySdySdySdySdySdySdySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEPdEPdEPdEPaaaaaaaaadEPdEPdEPdEPdEPdEPdEPaaaaaaaaadEPdEPdEPdEPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadFrdtSdEcabGdEcdtSdAidFsdDBdFtdFudFvdDAdFwdFxdFydFzdFAdFBdFCdFDdFEdFFdFGdFHdFIdFJdFedCmdCYdCZdCmdEwaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadFKdlXdFLdFMdlfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlgdFNdFOdqYdFPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadFQdrddNadOodllaaaaaaaaadwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdwCdridNedFTdrjdrjdFUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaaadFVdFWdFVaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduJduJduJduJduJduJduJduJduJduJduJduJduJduJduJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/vorestation.dme b/vorestation.dme index e43b285fc6..d260e2140a 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1762,6 +1762,9 @@ #include "code\modules\gamemaster\actions\surprise_carp_attack.dm" #include "code\modules\gamemaster\actions\surprise_meteor.dm" #include "code\modules\gamemaster\actions\waste_disposal.dm" +#include "code\modules\games\cagse.dm" +#include "code\modules\games\cagse_black_cards.dm" +#include "code\modules\games\cagse_white_cards.dm" #include "code\modules\games\cah.dm" #include "code\modules\games\cah_black_cards.dm" #include "code\modules\games\cah_white_cards.dm"