From bc5b5e7b447cb74b659eea8efe0accae09da461a Mon Sep 17 00:00:00 2001 From: Verkister Date: Sat, 23 Sep 2017 14:24:40 +0300 Subject: [PATCH 01/11] Brings back some slightly tweaked individual oties. -With the lack of any in-depth borkage documentation, I felt like staying with my earlier point of the big issues being likely caused by vast numbers of these feature heavy snowflake mobs being spawned for wilderness cannonfodder en masse, which the current wildernessless build would rule out for better troubleshooting. -People had been missing these in IC near my chars in multiple occasions recently and I didn't have the heart to tell em they were gone lmao. -Only available via cargo orders now. --- code/datums/supplypacks/science_vr.dm | 6 ++---- code/datums/supplypacks/security_vr.dm | 6 ++---- .../structures/crates_lockers/largecrate_vr.dm | 13 ++++++------- code/modules/mob/living/simple_animal/vore/otie.dm | 11 ++++++----- vorestation.dme | 1 + 5 files changed, 17 insertions(+), 20 deletions(-) diff --git a/code/datums/supplypacks/science_vr.dm b/code/datums/supplypacks/science_vr.dm index ee73bf1089d..c3ec8334380 100644 --- a/code/datums/supplypacks/science_vr.dm +++ b/code/datums/supplypacks/science_vr.dm @@ -60,11 +60,9 @@ access = access_xenobiology contraband = 1 -/* Removed until Otie code is unfucked. /datum/supply_packs/sci/otie - name = "V.A.R.M.A.corp adoptable reject (Dangerous!)" + name = "VARMAcorp adoptable reject (Dangerous!)" cost = 100 containertype = /obj/structure/largecrate/animal/otie - containername = "V.A.R.M.A.corp adoptable reject (Dangerous!)" + containername = "VARMAcorp adoptable reject (Dangerous!)" access = access_xenobiology -*/ diff --git a/code/datums/supplypacks/security_vr.dm b/code/datums/supplypacks/security_vr.dm index a432b112fa7..3c656741eec 100644 --- a/code/datums/supplypacks/security_vr.dm +++ b/code/datums/supplypacks/security_vr.dm @@ -1,13 +1,11 @@ -/* Removed until Otie code is unfucked. /datum/supply_packs/security/guardbeast - name = "V.A.R.M.A.corp autoNOMous security solution" + name = "VARMAcorp autoNOMous security solution" cost = 150 containertype = /obj/structure/largecrate/animal/guardbeast - containername = "V.A.R.M.A.corp autoNOMous security solution crate" + containername = "VARMAcorp autoNOMous security solution crate" access = list( access_security, access_xenobiology) -*/ /datum/supply_packs/security/biosuit contains = list( diff --git a/code/game/objects/structures/crates_lockers/largecrate_vr.dm b/code/game/objects/structures/crates_lockers/largecrate_vr.dm index 964022061ab..b64fdab3373 100644 --- a/code/game/objects/structures/crates_lockers/largecrate_vr.dm +++ b/code/game/objects/structures/crates_lockers/largecrate_vr.dm @@ -69,19 +69,19 @@ /mob/living/simple_animal/hostile/alien, /mob/living/simple_animal/hostile/alien/drone, /mob/living/simple_animal/hostile/alien/sentinel, - /mob/living/simple_animal/hostile/alien/queen) + /mob/living/simple_animal/hostile/alien/queen, + /mob/living/simple_animal/otie/feral) ..() -/* // Removed until Otie code is unfucked. /obj/structure/largecrate/animal/guardbeast - name = "V.A.R.M.A.corp autoNOMous security solution" - desc = "The V.A.R.M.A.corp bioengineering division flagship product on trained optimal snowflake guard dogs." + name = "VARMAcorp autoNOMous security solution" + desc = "The VARMAcorp bioengineering division flagship product on trained optimal snowflake guard dogs." icon = 'icons/obj/storage_vr.dmi' icon_state = "sotiecrate" held_type = /mob/living/simple_animal/otie/friendly/security /obj/structure/largecrate/animal/otie - name = "V.A.R.M.A.corp adoptable reject (Dangerous!)" + name = "VARMAcorp adoptable reject (Dangerous!)" desc = "A warning on the side says the creature inside was returned to the supplier after injuring or devouring several unlucky members of the previous adoption family. It was given a second chance with the next customer. Godspeed and good luck with your new pet!" icon = 'icons/obj/storage_vr.dmi' icon_state = "otiecrate2" @@ -93,5 +93,4 @@ playsound(src, 'sound/items/poster_ripped.ogg', 50, 1) icon_state = "otiecrate" taped = 0 - ..() -*/ \ No newline at end of file + ..() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/vore/otie.dm b/code/modules/mob/living/simple_animal/vore/otie.dm index d9083acd57e..959b7bc1ca1 100644 --- a/code/modules/mob/living/simple_animal/vore/otie.dm +++ b/code/modules/mob/living/simple_animal/vore/otie.dm @@ -1,4 +1,7 @@ // ToDo: Make this code not a fucking snowflaky horrible broken mess. Do not use until it's actually fixed. It's miserably bad right now. +// Also ToDo: Dev-to-dev communication to ensure responsible parties (if available. In this case, yes.) are aware of what's going on and what's broken. +// Probably easier to troubleshoot when we ain't breaking the server by spawning a buttload of heavily extra feature coded snowflake mobs to the wilderness as mass cannonfodder. +// Also ToDo: An actual "simple" mob for that purpose if necessary :v /mob/living/simple_animal/otie //Spawn this one only if you're looking for a bad time. Not friendly. name = "otie" @@ -15,7 +18,6 @@ minbodytemp = 200 move_to_delay = 4 hostile = 1 - //cooperative = 1 // Neutral mobs should not be set like this. investigates = 1 reacts = 1 retaliate = 1 @@ -28,8 +30,7 @@ emote_hear = list("rurrs", "rumbles", "rowls", "groans softly", "murrs", "sounds hungry", "yawns") emote_see = list("stares ferociously", "snarls", "licks their chops", "stretches", "yawns") say_maybe_target = list("Ruh?", "Waf?") - say_got_target = list("Rurrr!", "ROAR!", "MARR!", "RAHH!", "Slurp.. RAH!") - say_got_target = list("Rurrr!", "ROAR!", "RERR!", "NOM!", "MINE!", "RAHH!", "RAH!", "WARF!") + say_got_target = list("Rurrr!", "ROAR!", "MARR!", "RERR!", "NOM!", "RAHH!", "RAH!", "WARF!") melee_damage_lower = 5 melee_damage_upper = 15 //Don't break my bones bro response_help = "pets the" @@ -56,7 +57,7 @@ vore_icons = SA_ICON_LIVING /mob/living/simple_animal/otie/feral //gets the pet2tame feature. starts out hostile tho so get gamblin' - name = "feral otie" + name = "mutated feral otie" desc = "The classic bioengineered longdog. No pets. Only bite. This one has mutated from too much time out on the surface of Virgo-3B." icon_state = "siftusian" icon_living = "siftusian" @@ -91,7 +92,7 @@ /mob/living/simple_animal/otie/friendly/security //tame by default unless you're a marked crimester. can be befriended to follow with pets tho. name = "guard otie" - desc = "The V.A.R.M.A.corp bioengineering division flagship product on trained optimal snowflake guard dogs." + desc = "The VARMAcorp bioengineering division flagship product on trained optimal snowflake guard dogs." icon_state = "sotie" icon_living = "sotie" icon_rest = "sotie_rest" diff --git a/vorestation.dme b/vorestation.dme index 486d0aa7261..b7d7274f326 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2001,6 +2001,7 @@ #include "code\modules\mob\living\simple_animal\vore\frog.dm" #include "code\modules\mob\living\simple_animal\vore\gaslamp.dm" #include "code\modules\mob\living\simple_animal\vore\horse.dm" +#include "code\modules\mob\living\simple_animal\vore\otie.dm" #include "code\modules\mob\living\simple_animal\vore\panther.dm" #include "code\modules\mob\living\simple_animal\vore\snake.dm" #include "code\modules\mob\living\simple_animal\vore\solargrub.dm" From 948f7881570b747f4ea57650075584bb02c084ef Mon Sep 17 00:00:00 2001 From: Verkister Date: Sat, 23 Sep 2017 18:42:33 +0300 Subject: [PATCH 02/11] Figured out why the shit fluff gogs weren't showing up on the alt slot -This deserves a separate PR even less than the last fix attempt lmao so i slap it here. --- icons/vore/custom_clothes_vr.dmi | Bin 176784 -> 177321 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/vore/custom_clothes_vr.dmi b/icons/vore/custom_clothes_vr.dmi index e7afc65c96e295dc31fd5ece92daa4e5edcb4d6a..ceef45cddb391accf7b291daf43eb5309e6b79bd 100644 GIT binary patch delta 14742 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 BZ}k8G delta 14201 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 ALjV8( From 00aba68816205c94984bcaa3f6930bf3f7cd017a Mon Sep 17 00:00:00 2001 From: Verkister Date: Sat, 23 Sep 2017 22:23:01 +0300 Subject: [PATCH 03/11] Fixes the resting issues and pre-tames the mail order pups -Yeah now the resting action should only happen in idle stance to begin with. -Also now enemy detection contains a call to get up if resting. -"Friendly" mail order oties now come pre-tamed kinda like the guard version. -They still don't like actions that trigger mob retaliation in general so only pet with a friendly hand lmao --- code/modules/mob/living/simple_animal/vore/otie.dm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/vore/otie.dm b/code/modules/mob/living/simple_animal/vore/otie.dm index 959b7bc1ca1..9b139b8aec2 100644 --- a/code/modules/mob/living/simple_animal/vore/otie.dm +++ b/code/modules/mob/living/simple_animal/vore/otie.dm @@ -81,6 +81,7 @@ name = "otie" desc = "The classic bioengineered longdog. This one might even tolerate you!" faction = "neutral" + tamed = 1 /mob/living/simple_animal/otie/friendly/cotie //same as above but has a little collar :v name = "tamed otie" @@ -98,7 +99,6 @@ icon_rest = "sotie_rest" icon_dead = "sotie-dead" faction = "neutral" - tamed = 1 maxHealth = 200 //armored or something health = 200 loot_list = list(/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/clothing/suit/armor/vest/alt) @@ -115,6 +115,8 @@ if(!SA_attackable(found_atom)) return null if(istype(found_atom,/mob/living/simple_animal/mouse)) + if(resting) + lay_down() return found_atom if(found_atom in friends) return null @@ -129,6 +131,8 @@ else if(tamed == 1 && isrobot(found_atom)) return null else + if(resting) + lay_down() return found_atom else return null @@ -137,8 +141,12 @@ if(!SA_attackable(found_atom)) return null if(istype(found_atom,/mob/living/simple_animal/mouse)) + if(resting) + lay_down() return found_atom if(check_threat(found_atom) >= 4) + if(resting) + lay_down() return found_atom if(found_atom in friends) return null @@ -153,6 +161,8 @@ else if(tamed == 1 && isrobot(found_atom)) return null else + if(resting) + lay_down() return found_atom else return null @@ -235,7 +245,7 @@ . = ..() if(!. || ai_inactive) return - if(prob(5)) + if(prob(5) && (stance == STANCE_IDLE)) lay_down() //Pet 4 friendly From 944812de297a1edb65edd0bd2b338b222f7a6491 Mon Sep 17 00:00:00 2001 From: Verkister Date: Sun, 24 Sep 2017 00:43:40 +0300 Subject: [PATCH 04/11] Fixes the grab shite. -I expected it to be much harder lmao. -Still a bad idea if the mob's alive because grabbing pisses em off lmao --- .../mob/living/simple_animal/vore/otie.dm | 82 ++++++++++++------- 1 file changed, 51 insertions(+), 31 deletions(-) diff --git a/code/modules/mob/living/simple_animal/vore/otie.dm b/code/modules/mob/living/simple_animal/vore/otie.dm index 9b139b8aec2..d7f9907e984 100644 --- a/code/modules/mob/living/simple_animal/vore/otie.dm +++ b/code/modules/mob/living/simple_animal/vore/otie.dm @@ -251,37 +251,57 @@ //Pet 4 friendly /mob/living/simple_animal/otie/attack_hand(mob/living/carbon/human/M as mob) - ..() - if(M.a_intent == I_GRAB) - if (M == src) - return - if (!(status_flags & CANPUSH)) - return - if(!incapacitated(INCAPACITATION_ALL) && (stance != STANCE_IDLE) && prob(grab_resist)) - M.visible_message("[M] tries to grab [src] but fails!") - return - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src) - M.put_in_active_hand(G) - G.synch() - G.affecting = src - LAssailant = M - M.visible_message("[M] has grabbed [src] passively!") - M.do_attack_animation(src) - ai_log("attack_hand() I was grabbed by: [M]",2) - pixel_x = old_x - react_to_attack(M) - if(M.a_intent == I_HELP) - if (health > 0) - LoseTarget() - handle_stance(STANCE_IDLE) - if(prob(tame_chance)) - friend = M - if(tamed != 1) - tamed = 1 - faction = M.faction - sleep(1 SECOND) - return - ..() + + switch(M.a_intent) + + if(I_HELP) + if (health > 0) + M.visible_message("[M] [response_help] \the [src].") + LoseTarget() + handle_stance(STANCE_IDLE) + if(prob(tame_chance)) + friend = M + if(tamed != 1) + tamed = 1 + faction = M.faction + sleep(1 SECOND) + + if(I_DISARM) + M.visible_message("[M] [response_disarm] \the [src].") + M.do_attack_animation(src) + //TODO: Push the mob away or something + + if(I_GRAB) + if (M == src) + return + if (!(status_flags & CANPUSH)) + return + if(!incapacitated(INCAPACITATION_ALL) && (stance != STANCE_IDLE) && prob(grab_resist)) + M.visible_message("[M] tries to grab [src] but fails!") + return + + var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src) + + M.put_in_active_hand(G) + + G.synch() + G.affecting = src + LAssailant = M + + M.visible_message("[M] has grabbed [src] passively!") + M.do_attack_animation(src) + ai_log("attack_hand() I was grabbed by: [M]",2) + pixel_x = old_x + react_to_attack(M) + + if(I_HURT) + adjustBruteLoss(harm_intent_damage) + M.visible_message("[M] [response_harm] \the [src]!") + M.do_attack_animation(src) + ai_log("attack_hand() I was hit by: [M]",2) + react_to_attack(M) + + return /mob/living/simple_animal/otie/death() resting = 0 From 5570540463c774fd691b8b82e9cac21e93a66d63 Mon Sep 17 00:00:00 2001 From: Verkister Date: Tue, 26 Sep 2017 18:15:07 +0300 Subject: [PATCH 05/11] Oh hey actual code changes -Some general spaghetti merging, fixing, and trimming. -Guard otie's gut now starts out safe upon bellybrigging. -Toned down some shitty meme speak. -You can now trade in donuts in order to retrieve the bellybrigged harmlessly. -Remember to set them off arrest first tho or you'll be needing some backup donuts :v --- .../mob/living/simple_animal/vore/otie.dm | 62 +++++++------------ 1 file changed, 24 insertions(+), 38 deletions(-) diff --git a/code/modules/mob/living/simple_animal/vore/otie.dm b/code/modules/mob/living/simple_animal/vore/otie.dm index d7f9907e984..c1550245b04 100644 --- a/code/modules/mob/living/simple_animal/vore/otie.dm +++ b/code/modules/mob/living/simple_animal/vore/otie.dm @@ -25,12 +25,12 @@ run_at_them = 0 attack_same = 0 speak_chance = 4 - speak = list("Boof.","Waaf!","Prurrrr.","Growl!","Bork!","Rurrr..","Aruur!","Awoo!") + speak = list("Boof.","Waaf!","Prurr.","Bork!","Rurrr..","Arf.") speak_emote = list("growls", "roars", "yaps", "Awoos") emote_hear = list("rurrs", "rumbles", "rowls", "groans softly", "murrs", "sounds hungry", "yawns") emote_see = list("stares ferociously", "snarls", "licks their chops", "stretches", "yawns") say_maybe_target = list("Ruh?", "Waf?") - say_got_target = list("Rurrr!", "ROAR!", "MARR!", "RERR!", "NOM!", "RAHH!", "RAH!", "WARF!") + 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" @@ -114,12 +114,6 @@ /mob/living/simple_animal/otie/Found(var/atom/found_atom) if(!SA_attackable(found_atom)) return null - if(istype(found_atom,/mob/living/simple_animal/mouse)) - if(resting) - lay_down() - return found_atom - if(found_atom in friends) - return null else if(ismob(found_atom)) var/mob/found_mob = found_atom if(found_mob.faction == faction) @@ -138,34 +132,28 @@ return null /mob/living/simple_animal/otie/friendly/security/Found(var/atom/found_atom) - if(!SA_attackable(found_atom)) - return null - if(istype(found_atom,/mob/living/simple_animal/mouse)) - if(resting) - lay_down() - return found_atom if(check_threat(found_atom) >= 4) if(resting) lay_down() return found_atom - if(found_atom in friends) - return null - else if(ismob(found_atom)) - var/mob/found_mob = found_atom - if(found_mob.faction == faction) - return null - else if(friend == found_atom) - return null - else if(tamed == 1 && ishuman(found_atom)) - return null - else if(tamed == 1 && isrobot(found_atom)) - return null - else - if(resting) - lay_down() - return found_atom - else - return null + ..() + +/mob/living/simple_animal/otie/friendly/security/attackby(var/obj/item/O, var/mob/user) // Trade donuts for bellybrig victims. + if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/donut)) + qdel(O) + user << "The guard pup accepts your offer for their catch." + for(var/I in vore_organs) + var/datum/belly/B = vore_organs[I] + B.release_all_contents() + return + ..() + +/mob/living/simple_animal/otie/friendly/security/feed_grabbed_to_self(var/mob/living/user, var/mob/living/prey) // Make the gut start out safe for bellybrigging. + if(check_threat(target_mob) >= 4) + var/datum/belly/B = user.vore_selected + var/datum/belly/belly_target = user.vore_organs[B] + belly_target.digest_mode = DM_HOLD + ..() /mob/living/simple_animal/otie/friendly/security/proc/check_threat(var/mob/living/M) if(!M || !ishuman(M) || M.stat == DEAD || src == M) @@ -209,8 +197,8 @@ //Basic friend AI /mob/living/simple_animal/otie/friendly/Life() - . = ..() - if(!. || ai_inactive || !friend) return + ..() + if(!friend) return var/friend_dist = get_dist(src,friend) @@ -231,9 +219,9 @@ visible_emote(pick("nuzzles [friend].", "brushes against [friend].", "rubs against [friend].", - "noses softly at [friend].", + "noses at [friend].", "slobberlicks [friend].", - "murrs.", + "murrs contently.", "leans on [friend].", "nibbles affectionately on [friend].")) else if (friend.health <= 50) @@ -253,7 +241,6 @@ /mob/living/simple_animal/otie/attack_hand(mob/living/carbon/human/M as mob) switch(M.a_intent) - if(I_HELP) if (health > 0) M.visible_message("[M] [response_help] \the [src].") @@ -269,7 +256,6 @@ if(I_DISARM) M.visible_message("[M] [response_disarm] \the [src].") M.do_attack_animation(src) - //TODO: Push the mob away or something if(I_GRAB) if (M == src) From 54f0a4dc88ea4d452e126755d097f339657b2b9f Mon Sep 17 00:00:00 2001 From: Verkister Date: Thu, 28 Sep 2017 08:51:58 +0300 Subject: [PATCH 06/11] conflict fix --- icons/vore/custom_clothes_vr.dmi | Bin 179576 -> 179996 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/vore/custom_clothes_vr.dmi b/icons/vore/custom_clothes_vr.dmi index 1a41cf5a44f4f77c60993aa227598fc2f484afc2..c965415f235424cfb6f8a5d5bf738fd0e6b0373a 100644 GIT binary patch delta 17367 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 MtMa_~smaIx2bVX+x&QzG From 6d814dd632a148fbff24822b85c36737aa8e4224 Mon Sep 17 00:00:00 2001 From: Verkister Date: Sat, 30 Sep 2017 02:16:32 +0300 Subject: [PATCH 07/11] Mice are the anti-donut now. -A guardpup belly mode safetied by a successful crime catch now turns back to unsafe upon eating a mouse. -Not hacky or anything haha. Just intentional scatterbrain shit of a yummier prey making the klutzpups forget about their prisoner transportation duty :v --- code/modules/mob/living/simple_animal/vore/otie.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/vore/otie.dm b/code/modules/mob/living/simple_animal/vore/otie.dm index c1550245b04..6c00d908bbc 100644 --- a/code/modules/mob/living/simple_animal/vore/otie.dm +++ b/code/modules/mob/living/simple_animal/vore/otie.dm @@ -149,10 +149,12 @@ ..() /mob/living/simple_animal/otie/friendly/security/feed_grabbed_to_self(var/mob/living/user, var/mob/living/prey) // Make the gut start out safe for bellybrigging. + var/datum/belly/B = user.vore_selected + var/datum/belly/belly_target = user.vore_organs[B] if(check_threat(target_mob) >= 4) - var/datum/belly/B = user.vore_selected - var/datum/belly/belly_target = user.vore_organs[B] belly_target.digest_mode = DM_HOLD + if(istype(prey,/mob/living/simple_animal/mouse)) + belly_target.digest_mode = DM_DIGEST ..() /mob/living/simple_animal/otie/friendly/security/proc/check_threat(var/mob/living/M) From 02c5c25d8cf8db3b4f0c63b3a732ddad9a18e612 Mon Sep 17 00:00:00 2001 From: Verkister Date: Sat, 30 Sep 2017 02:22:36 +0300 Subject: [PATCH 08/11] Mice. -Brings back the cat mouse targeting. The earlier removal had made the pups a bit too passive around them. --- code/modules/mob/living/simple_animal/vore/otie.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/living/simple_animal/vore/otie.dm b/code/modules/mob/living/simple_animal/vore/otie.dm index 6c00d908bbc..7bb10c35e4c 100644 --- a/code/modules/mob/living/simple_animal/vore/otie.dm +++ b/code/modules/mob/living/simple_animal/vore/otie.dm @@ -114,6 +114,8 @@ /mob/living/simple_animal/otie/Found(var/atom/found_atom) if(!SA_attackable(found_atom)) return null + if(istype(found_atom,/mob/living/simple_animal/mouse)) + return found_atom else if(ismob(found_atom)) var/mob/found_mob = found_atom if(found_mob.faction == faction) From e97a0394a77d4fe56a65b7e3acd72477754a958e Mon Sep 17 00:00:00 2001 From: Verkister Date: Sat, 30 Sep 2017 13:12:44 +0300 Subject: [PATCH 09/11] Buffs guardpup pounce chance. -Because we probably don't want the criminal too mauled before the catch. -Good boys don't do excessive police brutality. --- code/modules/mob/living/simple_animal/vore/otie.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/simple_animal/vore/otie.dm b/code/modules/mob/living/simple_animal/vore/otie.dm index 7bb10c35e4c..73a355400c3 100644 --- a/code/modules/mob/living/simple_animal/vore/otie.dm +++ b/code/modules/mob/living/simple_animal/vore/otie.dm @@ -102,6 +102,7 @@ maxHealth = 200 //armored or something health = 200 loot_list = list(/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/clothing/suit/armor/vest/alt) + vore_pounce_chance = 50 // Good boys don't do too much police brutality. var/check_records = 1 // If true, arrests people without a record. var/check_arrest = 1 // If true, arrests people who are set to arrest. From e9ed36d6e1ad1cfb196ed11b3e9bd59f8232aac3 Mon Sep 17 00:00:00 2001 From: Verkister Date: Sat, 30 Sep 2017 13:35:56 +0300 Subject: [PATCH 10/11] Travis croaked. --- code/modules/mob/living/simple_animal/vore/otie.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/vore/otie.dm b/code/modules/mob/living/simple_animal/vore/otie.dm index 73a355400c3..51e550542dd 100644 --- a/code/modules/mob/living/simple_animal/vore/otie.dm +++ b/code/modules/mob/living/simple_animal/vore/otie.dm @@ -102,7 +102,7 @@ maxHealth = 200 //armored or something health = 200 loot_list = list(/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/clothing/suit/armor/vest/alt) - vore_pounce_chance = 50 // Good boys don't do too much police brutality. + vore_pounce_chance = 60 // Good boys don't do too much police brutality. var/check_records = 1 // If true, arrests people without a record. var/check_arrest = 1 // If true, arrests people who are set to arrest. From 3ef9e21923b7e607fa298d6cd9777605bb52c93c Mon Sep 17 00:00:00 2001 From: Verkister Date: Tue, 3 Oct 2017 20:04:37 +0300 Subject: [PATCH 11/11] Tested working yay. --- .../mob/living/simple_animal/vore/otie.dm | 62 ++----------------- 1 file changed, 5 insertions(+), 57 deletions(-) diff --git a/code/modules/mob/living/simple_animal/vore/otie.dm b/code/modules/mob/living/simple_animal/vore/otie.dm index 51e550542dd..3186901128a 100644 --- a/code/modules/mob/living/simple_animal/vore/otie.dm +++ b/code/modules/mob/living/simple_animal/vore/otie.dm @@ -148,7 +148,7 @@ for(var/I in vore_organs) var/datum/belly/B = vore_organs[I] B.release_all_contents() - return + return ..() /mob/living/simple_animal/otie/friendly/security/feed_grabbed_to_self(var/mob/living/user, var/mob/living/prey) // Make the gut start out safe for bellybrigging. @@ -258,63 +258,11 @@ faction = M.faction sleep(1 SECOND) - if(I_DISARM) - M.visible_message("[M] [response_disarm] \the [src].") - M.do_attack_animation(src) - - if(I_GRAB) - if (M == src) - return - if (!(status_flags & CANPUSH)) - return - if(!incapacitated(INCAPACITATION_ALL) && (stance != STANCE_IDLE) && prob(grab_resist)) - M.visible_message("[M] tries to grab [src] but fails!") - return - - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src) - - M.put_in_active_hand(G) - - G.synch() - G.affecting = src - LAssailant = M - - M.visible_message("[M] has grabbed [src] passively!") - M.do_attack_animation(src) - ai_log("attack_hand() I was grabbed by: [M]",2) - pixel_x = old_x - react_to_attack(M) - - if(I_HURT) - adjustBruteLoss(harm_intent_damage) - M.visible_message("[M] [response_harm] \the [src]!") - M.do_attack_animation(src) - ai_log("attack_hand() I was hit by: [M]",2) - react_to_attack(M) - - return - -/mob/living/simple_animal/otie/death() - resting = 0 - icon_state = icon_dead - ..() + else + ..() /mob/living/simple_animal/otie/death(gibbed, deathmessage = "dies!") - density = 0 //We don't block even if we did before - walk(src, 0) //We stop any background-processing walks resting = 0 icon_state = icon_dead - - if(faction_friends.len) - faction_friends -= src - - if(loot_list.len) //Drop any loot - for(var/path in loot_list) - if(prob(loot_list[path])) - new path(get_turf(src)) - - spawn(3) //We'll update our icon in a sec - icon_state = icon_dead //Goddamn triple check. If this ain't working Imma be PISSED! - update_icon() - - return ..(gibbed,deathmessage) \ No newline at end of file + update_icon() + ..()