mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-29 15:08:34 +01:00
disables pc grab growl while travis sucks legs over unrelated map bugs
some minor sprite tweaks environmental disaster time more things bumps front and back rest sprites one p down Some otie tweaks plus another new variant. -Stops idle actions on player-controlled oties. -Disables feeding autobarf (secdonut and rng) on player-controlled oties. -Disables friending and auto standup on petting when player-controlled. -Adds a tamed phoron otie with collar. (no ingame access yet so beg for mins) -Tweaks the bare standing sprites a little. (one pixel shorter with even back stripes)
This commit is contained in:
@@ -66,3 +66,10 @@
|
||||
containertype = /obj/structure/largecrate/animal/otie
|
||||
containername = "VARMAcorp adoptable reject (Dangerous!)"
|
||||
access = access_xenobiology
|
||||
|
||||
/datum/supply_packs/sci/phoronotie
|
||||
name = "VARMAcorp adaptive beta subject (Experimental)"
|
||||
cost = 200
|
||||
containertype = /obj/structure/largecrate/animal/otie/phoron
|
||||
containername = "VARMAcorp adaptive beta subject (Experimental)"
|
||||
access = access_xenobiology
|
||||
@@ -7,6 +7,15 @@
|
||||
access_security,
|
||||
access_xenobiology)
|
||||
|
||||
/datum/supply_packs/security/guardmutant
|
||||
name = "VARMAcorp autoNOMous security solution for hostile environments"
|
||||
cost = 250
|
||||
containertype = /obj/structure/largecrate/animal/guardmutant
|
||||
containername = "VARMAcorp autoNOMous security phoron-proof solution crate"
|
||||
access = list(
|
||||
access_security,
|
||||
access_xenobiology)
|
||||
|
||||
/datum/supply_packs/security/biosuit
|
||||
contains = list(
|
||||
/obj/item/clothing/head/bio_hood/security = 3,
|
||||
|
||||
@@ -53,7 +53,8 @@
|
||||
/mob/living/simple_animal/hostile/bear;0.5,
|
||||
/mob/living/simple_animal/hostile/bear/brown;0.5,
|
||||
/mob/living/simple_animal/hostile/carp,
|
||||
/mob/living/simple_animal/hostile/mimic)
|
||||
/mob/living/simple_animal/hostile/mimic,
|
||||
/mob/living/simple_animal/otie;0.5)
|
||||
..()
|
||||
|
||||
|
||||
@@ -78,16 +79,28 @@
|
||||
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
|
||||
held_type = /mob/living/simple_animal/otie/security
|
||||
|
||||
/obj/structure/largecrate/animal/guardmutant
|
||||
name = "VARMAcorp autoNOMous security solution for hostile environments."
|
||||
desc = "The VARMAcorp bioengineering division flagship product on trained optimal snowflake guard dogs. This one can survive hostile atmosphere."
|
||||
icon = 'icons/obj/storage_vr.dmi'
|
||||
icon_state = "sotiecrate"
|
||||
held_type = /mob/living/simple_animal/otie/security/phoron
|
||||
|
||||
/obj/structure/largecrate/animal/otie
|
||||
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"
|
||||
held_type = /mob/living/simple_animal/otie/friendly/cotie
|
||||
held_type = /mob/living/simple_animal/otie/cotie
|
||||
var/taped = 1
|
||||
|
||||
/obj/structure/largecrate/animal/otie/phoron
|
||||
name = "VARMAcorp adaptive beta subject (Experimental)"
|
||||
desc = "VARMAcorp experimental hostile environment adaptive breeding development kit. WARNING, DO NOT RELEASE IN WILD!"
|
||||
held_type = /mob/living/simple_animal/otie/cotie/phoron
|
||||
|
||||
/obj/structure/largecrate/animal/otie/attack_hand(mob/living/carbon/human/M as mob)//I just couldn't decide between the icons lmao
|
||||
if(taped == 1)
|
||||
playsound(src, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
|
||||
@@ -83,15 +83,32 @@
|
||||
faction = "neutral"
|
||||
tamed = 1
|
||||
|
||||
/mob/living/simple_animal/otie/friendly/cotie //same as above but has a little collar :v
|
||||
/mob/living/simple_animal/otie/cotie //same as above but has a little collar :v
|
||||
name = "tamed otie"
|
||||
desc = "The classic bioengineered longdog. This one has a nice little collar on its neck. However a proper domesticated otie is an oxymoron and the collar is likely just a decoration."
|
||||
icon_state = "cotie"
|
||||
icon_living = "cotie"
|
||||
icon_rest = "cotie_rest"
|
||||
faction = "neutral"
|
||||
tamed = 1
|
||||
|
||||
/mob/living/simple_animal/otie/friendly/security //tame by default unless you're a marked crimester. can be befriended to follow with pets tho.
|
||||
/mob/living/simple_animal/otie/cotie/phoron //friendly phoron pup with collar
|
||||
name = "mutated otie"
|
||||
desc = "Looks like someone did manage to domesticate one of those wild phoron mutants. What a badass."
|
||||
icon_state = "pcotie"
|
||||
icon_living = "pcotie"
|
||||
icon_rest = "pcotie_rest"
|
||||
icon_dead = "siftusian-dead"
|
||||
min_oxy = 0
|
||||
max_oxy = 0
|
||||
min_tox = 0
|
||||
max_tox = 0
|
||||
min_co2 = 0
|
||||
max_co2 = 0
|
||||
min_n2 = 0
|
||||
max_n2 = 0
|
||||
|
||||
/mob/living/simple_animal/otie/security //tame by default unless you're a marked crimester. can be befriended to follow with pets tho.
|
||||
name = "guard otie"
|
||||
desc = "The VARMAcorp bioengineering division flagship product on trained optimal snowflake guard dogs."
|
||||
icon_state = "sotie"
|
||||
@@ -101,23 +118,22 @@
|
||||
faction = "neutral"
|
||||
maxHealth = 200 //armored or something
|
||||
health = 200
|
||||
tamed = 1
|
||||
loot_list = list(/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/clothing/suit/armor/vest/alt)
|
||||
vore_pounce_chance = 60 // Good boys don't do too much police brutality.
|
||||
|
||||
var/check_records = 0 // If true, arrests people without a record.
|
||||
var/check_arrest = 1 // If true, arrests people who are set to arrest.
|
||||
|
||||
/mob/living/simple_animal/otie/friendly/security/phoron
|
||||
/mob/living/simple_animal/otie/security/phoron
|
||||
name = "mutated guard otie"
|
||||
desc = "An extra rare phoron resistant version of the VARMAcorp trained snowflake guard dogs."
|
||||
icon_state = "sifguard"
|
||||
icon_living = "sifguard"
|
||||
icon_rest = "sifguard_rest"
|
||||
icon_dead = "sifguard-dead"
|
||||
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 25
|
||||
// Lazy way of making sure this otie survives outside.
|
||||
min_oxy = 0
|
||||
max_oxy = 0
|
||||
min_tox = 0
|
||||
@@ -154,7 +170,7 @@
|
||||
else
|
||||
return null
|
||||
|
||||
/mob/living/simple_animal/otie/friendly/security/Found(var/atom/found_atom)
|
||||
/mob/living/simple_animal/otie/security/Found(var/atom/found_atom)
|
||||
if(check_threat(found_atom) >= 4)
|
||||
if(resting)
|
||||
lay_down()
|
||||
@@ -165,7 +181,9 @@
|
||||
if(istype(O, /obj/item/weapon/reagent_containers/food))
|
||||
qdel(O)
|
||||
playsound(src.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
|
||||
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/donut) && istype(src, /mob/living/simple_animal/otie/friendly/security))
|
||||
if(ai_inactive)//No autobarf on player control.
|
||||
return
|
||||
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/donut) && istype(src, /mob/living/simple_animal/otie/security))
|
||||
user << "<span class='notice'>The guard pup accepts your offer for their catch.</span>"
|
||||
for(var/I in vore_organs)
|
||||
var/datum/belly/B = vore_organs[I]
|
||||
@@ -179,7 +197,7 @@
|
||||
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.
|
||||
/mob/living/simple_animal/otie/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(ishuman(target_mob))
|
||||
@@ -188,12 +206,12 @@
|
||||
belly_target.digest_mode = DM_DIGEST
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/otie/friendly/security/proc/check_threat(var/mob/living/M)
|
||||
/mob/living/simple_animal/otie/security/proc/check_threat(var/mob/living/M)
|
||||
if(!M || !ishuman(M) || M.stat == DEAD || src == M)
|
||||
return 0
|
||||
return M.assess_perp(0, 0, 0, check_records, check_arrest)
|
||||
|
||||
/mob/living/simple_animal/otie/friendly/security/set_target(var/mob/M)
|
||||
/mob/living/simple_animal/otie/security/set_target(var/mob/M)
|
||||
ai_log("SetTarget([M])",2)
|
||||
if(!M || (world.time - last_target_time < 5 SECONDS) && target_mob)
|
||||
ai_log("SetTarget() can't set it again so soon",3)
|
||||
@@ -221,7 +239,7 @@
|
||||
return 0
|
||||
|
||||
|
||||
/mob/living/simple_animal/otie/friendly/security/proc/target_name(mob/living/T)
|
||||
/mob/living/simple_animal/otie/security/proc/target_name(mob/living/T)
|
||||
if(ishuman(T))
|
||||
var/mob/living/carbon/human/H = T
|
||||
return H.get_id_name("unidentified person")
|
||||
@@ -229,8 +247,13 @@
|
||||
|
||||
//Basic friend AI
|
||||
|
||||
/mob/living/simple_animal/otie/friendly/Life()
|
||||
..()
|
||||
/mob/living/simple_animal/otie/Life()
|
||||
. = ..()
|
||||
if(!. || ai_inactive) return
|
||||
|
||||
if(prob(5) && (stance == STANCE_IDLE))
|
||||
lay_down()
|
||||
|
||||
if(!friend) return
|
||||
|
||||
var/friend_dist = get_dist(src,friend)
|
||||
@@ -262,13 +285,6 @@
|
||||
var/verb = pick("whines", "yelps", "whimpers")
|
||||
audible_emote("[verb] anxiously.")
|
||||
|
||||
/mob/living/simple_animal/otie/Life()
|
||||
. = ..()
|
||||
if(!. || ai_inactive) return
|
||||
|
||||
if(prob(5) && (stance == STANCE_IDLE))
|
||||
lay_down()
|
||||
|
||||
//Pet 4 friendly
|
||||
|
||||
/mob/living/simple_animal/otie/attack_hand(mob/living/carbon/human/M as mob)
|
||||
@@ -277,6 +293,8 @@
|
||||
if(I_HELP)
|
||||
if(health > 0)
|
||||
M.visible_message("<span class='notice'>[M] [response_help] \the [src].</span>")
|
||||
if(ai_inactive)
|
||||
return
|
||||
LoseTarget()
|
||||
handle_stance(STANCE_IDLE)
|
||||
if(prob(tame_chance))
|
||||
@@ -288,6 +306,8 @@
|
||||
|
||||
if(I_GRAB)
|
||||
if(health > 0)
|
||||
if(ai_inactive)
|
||||
return
|
||||
audible_emote("growls disapprovingly at [M].")
|
||||
if(M == friend)
|
||||
friend = null
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 169 KiB |
Reference in New Issue
Block a user