Merge pull request #2 from CHOMPstation/master

casino up to date test
This commit is contained in:
Shadowfire117
2019-08-09 10:00:11 +02:00
committed by GitHub
40 changed files with 651 additions and 201 deletions
@@ -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."
+32
View File
@@ -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"
+71
View File
@@ -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 wont stop you. Just steer clear of _____.",
"(Pick 2) Having problems with _____? Try _____!",
"(Pick 2) After months of practice with _____, I think Im finally ready for _____.",
"Finally! A service that delivers _____ right to your door."
)
+211
View File
@@ -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 doesnt have a penis",
"A man who surprisingly doesnt 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."
)
@@ -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("<b>[src.name]</b> 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("<b>[src.name]</b> 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)
+7 -5
View File
@@ -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"
@@ -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()
@@ -671,4 +671,12 @@
desc = "A mounted matter decompiling unit with fuel processor."
icon_state = "decompiler"
max_item_count = 10
decompiler = TRUE
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
@@ -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)
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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.
@@ -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)
@@ -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"
@@ -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 << "<span class='warning'>YOU NEED TO HEAR THINGS FIRST, try using Ventcrawl to eevesdrop on nerds</span>"
/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("<span class='notice'>\The [src] fades away!</span>")
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
@@ -20,7 +20,7 @@
response_help = "touches"
response_disarm = "flails at"
response_harm = "punches the"
response_harm = "punches"
harm_intent_damage = 2
@@ -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()
@@ -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"
@@ -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
@@ -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
@@ -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")
@@ -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
@@ -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")
@@ -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("<span class='warning'>\The [src] suddenly evolves!</span>")
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("<span class='notice'>\The [src] begins to lay an egg.</span>")
@@ -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))
@@ -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
@@ -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")
@@ -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
@@ -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.")
+3 -2
View File
@@ -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
+4 -1
View File
@@ -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 ? "<a href='?_src_=holder;adminplayerobservecoodjump=1;X=[user.loc.];Y=[user.loc.y];Z=[user.loc.z]'>JMP</a>" : "null"])")
if(user.client.prefs_vr)
user.client.prefs_vr.digest_leave_remains = user.digest_leave_remains