Merge pull request #4790 from Sebbe9123/upstream-merge-5735

More AI fixes, fixes crates, spawners, adds ION spiders and MORE.
This commit is contained in:
Spades
2019-02-22 20:42:29 -05:00
committed by GitHub
14 changed files with 131 additions and 109 deletions

View File

@@ -5,7 +5,7 @@
containertype = /obj/structure/closet/crate
containername = "Stolen crate"
contraband = 1
/* //VORESTATION AI TEMPORARY REMOVAL
/datum/supply_pack/supply/wolfgirl
name = "Wolfgirl Crate"
cost = 200 //I mean, it's a whole wolfgirl
@@ -19,4 +19,3 @@
containertype = /obj/structure/largecrate/animal/catgirl
containername = "Catgirl crate"
contraband = 1
*/

View File

@@ -1,10 +1,10 @@
/*/datum/supply_pack/hydro/birds //VORESTATION AI TEMPORARY REMOVAL
/datum/supply_pack/hydro/birds
name = "Birds Crate"
cost = 200 //You're getting 22 birds. Of course it's going to be a lot!
containertype = /obj/structure/largecrate/birds
containername = "Bird crate"
access = access_hydroponics
*/
/datum/supply_pack/hydro/sobaka
name = "Sobaka crate"
contains = list (/obj/item/weapon/storage/box/monkeycubes/sobakacubes)
@@ -32,10 +32,9 @@
cost = 20
containertype = /obj/structure/closet/crate/freezer
containername = "Wolpin crate"
/*
/datum/supply_pack/hydro/fennec
name = "Fennec crate"
cost = 60 //considering a corgi crate is 50, and you get two fennecs
containertype = /obj/structure/largecrate/animal/fennec
containername = "Fennec crate"
*/ //VORESTATION AI TEMPORARY REMOVAL

View File

@@ -8,7 +8,7 @@
containertype = /obj/structure/largecrate
containername = "Exploration Dune Buggy Crate"
*/
/datum/supply_pack/sci/pred //VORESTATION AI TEMPORARY REMOVAL. File commented out until vore mobs fixed.
/datum/supply_pack/sci/pred
name = "Dangerous Predator crate"
cost = 40
containertype = /obj/structure/largecrate/animal/pred
@@ -22,7 +22,7 @@
containername = "EXTREMELY Dangerous Predator crate"
access = access_xenobiology
contraband = 1
/*
/datum/supply_pack/sci/otie
name = "VARMAcorp adoptable reject (Dangerous!)"
cost = 100
@@ -35,4 +35,5 @@
cost = 200
containertype = /obj/structure/largecrate/animal/otie/phoron
containername = "VARMAcorp adaptive beta subject (Experimental)"
access = access_xenobiology
access = access_xenobiology
*/ //VORESTATION AI TEMPORARY REMOVAL. Oties commented out cuz broke.

View File

@@ -1,4 +1,4 @@
/obj/structure/mob_spawner //VORESTATION AI TEMPORARY REMOVAL
/obj/structure/mob_spawner
name = "mob spawner"
desc = "This shouldn't be seen, yell at a dev."
icon = 'icons/effects/effects.dmi'
@@ -9,8 +9,8 @@
var/spawn_delay = 10 MINUTES
var/list/spawn_types = list(
/*/mob/living/simple_mob/corgi = 100,
/mob/living/simple_mob/cat = 25*/ //VORESTATION AI TEMPORARY REMOVAL
/mob/living/simple_mob/animal/passive/dog/corgi = 100,
/mob/living/simple_mob/animal/passive/cat = 25
)
var/total_spawns = -1 //Total mob spawns, over all time, -1 for no limit
@@ -129,15 +129,14 @@ It also makes it so a ghost wont know where all the goodies/mobs are.
//////////////
// Spawners //
/////////////
/* //VORESTATION AI TEMPORARY REMOVAL
/obj/structure/mob_spawner/scanner/corgi
name = "Corgi Lazy Spawner"
desc = "This is a proof of concept, not sure why you would use this one"
spawn_delay = 3 MINUTES
mob_faction = "Corgi"
spawn_types = list(
/mob/living/simple_mob/corgi = 75,
/mob/living/simple_mob/corgi/puppy = 50
/mob/living/simple_mob/animal/passive/dog/corgi = 75,
/mob/living/simple_mob/animal/passive/dog/corgi/puppy = 50
)
simultaneous_spawns = 5
@@ -157,10 +156,10 @@ It also makes it so a ghost wont know where all the goodies/mobs are.
anchored = 1
invisibility = 101
spawn_types = list(
/mob/living/simple_mob/retaliate/gaslamp = 20,
/mob/living/simple_mob/otie/feral = 10,
/mob/living/simple_mob/hostile/dino/virgo3b = 5,
/mob/living/simple_mob/hostile/dragon/virgo3b = 1
/mob/living/simple_mob/animal/space/gaslamp = 20,
// /mob/living/simple_mob/otie/feral = 10,
/mob/living/simple_mob/vore/dino/virgo3b = 5,
/mob/living/simple_mob/vore/dragon/virgo3b = 1
)
/obj/structure/mob_spawner/scanner/xenos
@@ -176,10 +175,10 @@ It also makes it so a ghost wont know where all the goodies/mobs are.
icon = 'icons/mob/actions.dmi'
icon_state = "alien_egg"
spawn_types = list(
/mob/living/simple_mob/hostile/alien/drone = 20,
/mob/living/simple_mob/hostile/alien = 10,
/mob/living/simple_mob/hostile/alien/sentinel = 5,
/mob/living/simple_mob/hostile/alien/queen = 1
/mob/living/simple_mob/animal/space/alien/drone = 20,
/mob/living/simple_mob/animal/space/alien = 10,
/mob/living/simple_mob/animal/space/alien/sentinel = 5,
/mob/living/simple_mob/animal/space/alien/queen = 1
)
/obj/structure/mob_spawner/scanner/xenos/royal
@@ -195,5 +194,5 @@ It also makes it so a ghost wont know where all the goodies/mobs are.
icon = 'icons/mob/actions.dmi'
icon_state = "alien_egg"
spawn_types = list(
/mob/living/simple_mob/hostile/alien/queen = 5,
)*/
/mob/living/simple_mob/animal/space/alien/queen = 5,
)

View File

@@ -178,14 +178,14 @@
icon_state = "x"
spawn_nothing_percentage = 10
var/faction = "wild animal"
/*
/obj/random/outside_mob/item_to_spawn() // Special version for mobs to have the same faction.
return pick(
prob(50);/mob/living/simple_mob/retaliate/gaslamp,
prob(50);/mob/living/simple_mob/animal/space/gaslamp,
// prob(50);/mob/living/simple_mob/otie/feral, // Removed until Otie code is unfucked.
prob(20);/mob/living/simple_mob/hostile/dino/virgo3b,
prob(1);/mob/living/simple_mob/hostile/dragon/virgo3b)
*/ //VORESTATION AI TEMPORARY REMOVAL
prob(20);/mob/living/simple_mob/vore/dino/virgo3b,
prob(1);/mob/living/simple_mob/vore/dragon/virgo3b)
/obj/random/outside_mob/spawn_item()
. = ..()
if(istype(., /mob/living/simple_mob))

View File

@@ -1,4 +1,3 @@
//VORESTATION AI TEMPORARY REMOVAL. Commented out until vore mobs are fixed.
/obj/structure/largecrate/birds //This is an awful hack, but it's the only way to get multiple mobs spawned in one crate.
name = "Bird crate"
desc = "You hear chirping and cawing inside the crate. It sounds like there are a lot of birds in there..."
@@ -6,28 +5,27 @@
/obj/structure/largecrate/birds/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(W.is_crowbar())
new /obj/item/stack/material/wood(src)
new /mob/living/simple_mob/bird(src)
new /mob/living/simple_mob/bird/kea(src)
new /mob/living/simple_mob/bird/eclectus(src)
new /mob/living/simple_mob/bird/greybird(src)
new /mob/living/simple_mob/bird/eclectusf(src)
new /mob/living/simple_mob/bird/blue_caique(src)
new /mob/living/simple_mob/bird/white_caique(src)
new /mob/living/simple_mob/bird/green_budgerigar(src)
new /mob/living/simple_mob/bird/blue_Budgerigar(src)
new /mob/living/simple_mob/bird/bluegreen_Budgerigar(src)
new /mob/living/simple_mob/bird/commonblackbird(src)
new /mob/living/simple_mob/bird/azuretit(src)
new /mob/living/simple_mob/bird/europeanrobin(src)
new /mob/living/simple_mob/bird/goldcrest(src)
new /mob/living/simple_mob/bird/ringneckdove(src)
new /mob/living/simple_mob/bird/cockatiel(src)
new /mob/living/simple_mob/bird/white_cockatiel(src)
new /mob/living/simple_mob/bird/yellowish_cockatiel(src)
new /mob/living/simple_mob/bird/grey_cockatiel(src)
new /mob/living/simple_mob/bird/too(src)
new /mob/living/simple_mob/bird/hooded_too(src)
new /mob/living/simple_mob/bird/pink_too(src)
new /mob/living/simple_mob/animal/passive/bird(src)
new /mob/living/simple_mob/animal/passive/bird/parrot/kea(src)
new /mob/living/simple_mob/animal/passive/bird/parrot/eclectus(src)
new /mob/living/simple_mob/animal/passive/bird/parrot/grey_parrot(src)
new /mob/living/simple_mob/animal/passive/bird/parrot/black_headed_caique(src)
new /mob/living/simple_mob/animal/passive/bird/parrot/white_caique(src)
new /mob/living/simple_mob/animal/passive/bird/parrot/budgerigar(src)
new /mob/living/simple_mob/animal/passive/bird/parrot/budgerigar/blue(src)
new /mob/living/simple_mob/animal/passive/bird/parrot/budgerigar/bluegreen(src)
new /mob/living/simple_mob/animal/passive/bird/black_bird(src)
new /mob/living/simple_mob/animal/passive/bird/azure_tit(src)
new /mob/living/simple_mob/animal/passive/bird/european_robin(src)
new /mob/living/simple_mob/animal/passive/bird/goldcrest(src)
new /mob/living/simple_mob/animal/passive/bird/ringneck_dove(src)
new /mob/living/simple_mob/animal/passive/bird/parrot/cockatiel(src)
new /mob/living/simple_mob/animal/passive/bird/parrot/cockatiel/white(src)
new /mob/living/simple_mob/animal/passive/bird/parrot/cockatiel/yellowish(src)
new /mob/living/simple_mob/animal/passive/bird/parrot/cockatiel/grey(src)
new /mob/living/simple_mob/animal/passive/bird/parrot/sulphur_cockatoo(src)
new /mob/living/simple_mob/animal/passive/bird/parrot/white_cockatoo(src)
new /mob/living/simple_mob/animal/passive/bird/parrot/pink_cockatoo(src)
var/turf/T = get_turf(src)
for(var/atom/movable/AM in contents)
if(AM.simulated) AM.forceMove(T)
@@ -40,42 +38,42 @@
/obj/structure/largecrate/animal/pred
name = "Predator carrier"
starts_with = list(/mob/living/simple_mob/catgirl)
starts_with = list(/mob/living/simple_mob/vore/catgirl)
/obj/structure/largecrate/animal/pred/initialize() //This is nessesary to get a random one each time.
starts_with = list(pick(/mob/living/simple_mob/retaliate/bee,
/mob/living/simple_mob/catgirl;3,
/mob/living/simple_mob/hostile/frog,
starts_with = list(pick(/mob/living/simple_mob/vore/bee,
/mob/living/simple_mob/vore/catgirl;3,
/mob/living/simple_mob/vore/frog,
/mob/living/simple_mob/horse,
/mob/living/simple_mob/hostile/panther,
/mob/living/simple_mob/hostile/giant_snake,
/mob/living/simple_mob/hostile/wolf,
/mob/living/simple_mob/hostile/bear;0.5,
/mob/living/simple_mob/hostile/bear/brown;0.5,
/mob/living/simple_mob/hostile/carp,
/mob/living/simple_mob/hostile/mimic,
/mob/living/simple_mob/hostile/rat,
/mob/living/simple_mob/hostile/rat/passive,
/mob/living/simple_mob/otie;0.5))
/mob/living/simple_mob/vore/panther,
/mob/living/simple_mob/vore/giant_snake,
/mob/living/simple_mob/vore/wolf,
/mob/living/simple_mob/animal/space/bear;0.5,
/mob/living/simple_mob/animal/space/carp,
/mob/living/simple_mob/animal/space/mimic,
/mob/living/simple_mob/vore/rat,
/mob/living/simple_mob/vore/rat/passive,
// /mob/living/simple_mob/otie;0.5
))
return ..()
/obj/structure/largecrate/animal/dangerous
name = "Dangerous Predator carrier"
starts_with = list(/mob/living/simple_mob/hostile/alien)
starts_with = list(/mob/living/simple_mob/animal/space/alien)
/obj/structure/largecrate/animal/dangerous/initialize()
starts_with = list(pick(/mob/living/simple_mob/hostile/carp/pike,
starts_with = list(pick(/mob/living/simple_mob/animal/space/carp/large,
/mob/living/simple_mob/hostile/deathclaw,
/mob/living/simple_mob/hostile/dino,
/mob/living/simple_mob/hostile/alien,
/mob/living/simple_mob/hostile/alien/drone,
/mob/living/simple_mob/hostile/alien/sentinel,
/mob/living/simple_mob/hostile/alien/queen,
/mob/living/simple_mob/otie/feral,
/mob/living/simple_mob/otie/red,
/mob/living/simple_mob/hostile/corrupthound))
/mob/living/simple_mob/vore/dino,
/mob/living/simple_mob/animal/space/alien,
/mob/living/simple_mob/animal/space/alien/drone,
/mob/living/simple_mob/animal/space/alien/sentinel,
/mob/living/simple_mob/animal/space/alien/queen,
// /mob/living/simple_mob/otie/feral,
// /mob/living/simple_mob/otie/red,
/mob/living/simple_mob/vore/corrupthound))
return ..()
/*
/obj/structure/largecrate/animal/guardbeast
name = "VARMAcorp autoNOMous security solution"
desc = "The VARMAcorp bioengineering division flagship product on trained optimal snowflake guard dogs."
@@ -114,16 +112,17 @@
icon_state = "otiecrate"
taped = 0
..()
*/ //VORESTATION AI REMOVAL, Oties are still fucking broken.
/obj/structure/largecrate/animal/catgirl
name = "Catgirl Crate"
desc = "A sketchy looking crate with airholes that seems to have had most marks and stickers removed. You can almost make out 'genetically-engineered subject' written on it."
starts_with = list(/mob/living/simple_mob/catgirl)
starts_with = list(/mob/living/simple_mob/vore/catgirl)
/obj/structure/largecrate/animal/wolfgirl
name = "Wolfgirl Crate"
desc = "A sketchy looking crate with airholes that shakes and thuds every now and then. Someone seems to be demanding they be let out."
starts_with = list(/mob/living/simple_mob/retaliate/wolfgirl)
starts_with = list(/mob/living/simple_mob/vore/wolfgirl)
/obj/structure/largecrate/animal/fennec
name = "Fennec Crate"
@@ -132,5 +131,5 @@
/obj/structure/largecrate/animal/fennec/initialize()
starts_with = list(pick(/mob/living/simple_mob/fennec,
/mob/living/simple_mob/retaliate/fennix;0.5))
/mob/living/simple_mob/vore/fennix;0.5))
return ..()

View File

@@ -266,7 +266,7 @@
desc = "A small heap of trash, perfect for mice to nest in."
icon = 'icons/obj/trash_piles.dmi'
icon_state = "randompile"
spawn_types = list( /*/mob/living/simple_mob/mouse*/) //VORESTATION AI TEMPORARY REMOVAL
spawn_types = list(/mob/living/simple_mob/animal/passive/mouse)
simultaneous_spawns = 1
destructible = 1
spawn_delay = 1 HOUR
@@ -294,4 +294,4 @@
/obj/structure/mob_spawner/mouse_nest/get_death_report(var/mob/living/L)
..()
last_spawn = rand(world.time - spawn_delay, world.time)
last_spawn = rand(world.time - spawn_delay, world.time)

View File

@@ -0,0 +1,23 @@
// Slightly placeholder, mostly to replace ion hivebots on V4
/mob/living/simple_mob/animal/giant_spider/ion
desc = "Furry and green, it makes you shudder to look at it. This one has brilliant green eyes and a hint of static discharge."
tt_desc = "X Brachypelma phorus ionus"
icon_state = "webslinger"
icon_living = "webslinger"
icon_dead = "webslinger_dead"
maxHealth = 90
health = 90
base_attack_cooldown = 10
projectilesound = 'sound/weapons/taser2.ogg'
projectiletype = /obj/item/projectile/ion/small
melee_damage_lower = 8
melee_damage_upper = 15
poison_chance = 15
poison_per_bite = 2
poison_type = "psilocybin"
ai_holder_type = /datum/ai_holder/simple_mob/ranged/electric_spider

View File

@@ -113,7 +113,7 @@
New()
..()
spot_add(2,2,/obj/random/cargopod) //EXTRA loot!
//spot_add(2,2,/mob/living/simple_mob/hostile/alien) //GRRR //VORESTATION AI TEMPORARY REMOVAL
spot_add(2,2,/mob/living/simple_mob/animal/space/alien) //GRRR
//Longer cargo container for higher difficulties
/datum/rogue/asteroid/predef/cargo_large
@@ -146,5 +146,5 @@
spot_add(3,3,/obj/random/cargopod) //Mid loot
spot_add(4,3,/obj/random/cargopod) //Right loot
//if(prob(30))
//spot_add(3,3,/mob/living/simple_mob/hostile/alien) //And maybe a friend. //VORESTATION AI TEMPORARY REMOVAL
if(prob(30))
spot_add(3,3,/mob/living/simple_mob/animal/space/alien) //And maybe a friend.

View File

@@ -26,8 +26,8 @@
/mob/living/simple_mob/animal/space/alien,
/mob/living/simple_mob/animal/space/bear,
/mob/living/simple_mob/creature,
/mob/living/simple_mob/slime/xenobio)
// /mob/living/simple_mob/carp, // Vorestation edit //VORESTATION AI TEMPORARY REMOVAL, REPLACE BACK IN LIST WHEN FIXED
/mob/living/simple_mob/slime/xenobio,
/mob/living/simple_mob/animal/space/carp)// Vorestation edit
else
spawn_type = pick(\
/mob/living/simple_mob/animal/passive/cat,

View File

@@ -64,10 +64,10 @@
prob_fall = 50
guard = 20
mobs_to_pick_from = list(
/*/mob/living/simple_mob/hostile/hivebot/range = 3,
/mob/living/simple_mob/hostile/hivebot/range/ion = 3,
/mob/living/simple_mob/hostile/hivebot/range/laser = 3,
/mob/living/simple_mob/hostile/corrupthound = 1*/ //VORESTATION AI TEMPORARY REMOVAL
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/basic = 3,
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/ion = 3,
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/laser = 3,
/mob/living/simple_mob/vore/corrupthound = 1
)
/obj/tether_away_spawner/aerostat_surface
@@ -78,9 +78,9 @@
prob_fall = 50
guard = 20
mobs_to_pick_from = list(
/* /mob/living/simple_mob/hostile/jelly = 3,
/mob/living/simple_mob/hostile/viscerator = 2,
/mob/living/simple_mob/hostile/corrupthound = 1*/ //VORESTATION AI TEMPORARY REMOVAL
/mob/living/simple_mob/vore/corrupthound = 3,
/mob/living/simple_mob/mechanical/viscerator = 2,
/mob/living/simple_mob/vore/corrupthound = 1
)
/obj/structure/old_roboprinter

View File

@@ -95,7 +95,7 @@
prob_fall = 25 //Chance goes down by this much each time it spawns one (not defining and prob_spawn 100 means they spawn as soon as one dies)
guard = 40 //They'll stay within this range (not defining this disables them staying nearby and they will wander the map (and through step teleports))
mobs_to_pick_from = list(
///mob/living/simple_mob/snake //VORESTATION AI TEMPORARY REMOVAL
/mob/living/simple_mob/vore/giant_snake
)
/obj/tether_away_spawner/beach_outside_friendly
@@ -106,7 +106,7 @@
prob_fall = 25
guard = 40
mobs_to_pick_from = list(
// /mob/living/simple_mob/fennec //VORESTATION AI TEMPORARY REMOVAL
/mob/living/simple_mob/fennec
)
/obj/tether_away_spawner/beach_cave
@@ -117,11 +117,11 @@
prob_fall = 40
guard = 20
mobs_to_pick_from = list(
/*/mob/living/simple_mob/hostile/frog = 3, //Frogs are 3x more likely to spawn than,
/mob/living/simple_mob/vore/frog = 3, //Frogs are 3x more likely to spawn than,
/mob/living/simple_mob/hostile/deathclaw = 1, //these deathclaws are, with these values,
/mob/living/simple_mob/hostile/giant_spider = 3,
/mob/living/simple_mob/hostile/giant_snake = 1,
/mob/living/simple_mob/hostile/giant_spider/ion = 2*/ //VORESTATION AI TEMPORARY REMOVAL
/mob/living/simple_mob/animal/giant_spider = 3,
/mob/living/simple_mob/vore/giant_snake = 1,
/mob/living/simple_mob/animal/giant_spider/ion = 2
)
// These are step-teleporters, for map edge transitions

View File

@@ -406,10 +406,10 @@ var/global/list/latejoin_tram = list()
prob_fall = 50
guard = 20
mobs_to_pick_from = list(
/*/mob/living/simple_mob/hostile/jelly = 3,
/mob/living/simple_mob/hostile/giant_spider/hunter = 1,
/mob/living/simple_mob/hostile/giant_spider/phorogenic = 1,
/mob/living/simple_mob/hostile/giant_spider/lurker = 1,*/ //VORESTATION AI TEMPORARY REMOVAL
/mob/living/simple_mob/hostile/jelly = 3,
/mob/living/simple_mob/animal/giant_spider/hunter = 1,
/mob/living/simple_mob/animal/giant_spider/phorogenic = 1,
/mob/living/simple_mob/animal/giant_spider/lurker = 1,
)
/obj/tether_away_spawner/underdark_hard
@@ -420,9 +420,9 @@ var/global/list/latejoin_tram = list()
prob_fall = 50
guard = 20
mobs_to_pick_from = list(
/*/mob/living/simple_mob/hostile/corrupthound = 1,
/mob/living/simple_mob/hostile/rat = 1,
/mob/living/simple_mob/hostile/mimic = 1*/ //VORESTATION AI TEMPORARY REMOVAL
/mob/living/simple_mob/vore/corrupthound = 1,
/mob/living/simple_mob/vore/rat = 1,
/mob/living/simple_mob/animal/space/mimic = 1
)
/obj/tether_away_spawner/underdark_boss
@@ -433,7 +433,7 @@ var/global/list/latejoin_tram = list()
prob_fall = 100
guard = 70
mobs_to_pick_from = list(
// /mob/living/simple_mob/hostile/dragon = 1 //VORESTATION AI TEMPORARY REMOVAL
/mob/living/simple_mob/vore/dragon = 1
)
// Used at centcomm for the elevator

View File

@@ -1220,6 +1220,7 @@
#include "code\game\objects\structures\crates_lockers\crates.dm"
#include "code\game\objects\structures\crates_lockers\crates_vr.dm"
#include "code\game\objects\structures\crates_lockers\largecrate.dm"
#include "code\game\objects\structures\crates_lockers\largecrate_vr.dm"
#include "code\game\objects\structures\crates_lockers\vehiclecage.dm"
#include "code\game\objects\structures\crates_lockers\closets\coffin.dm"
#include "code\game\objects\structures\crates_lockers\closets\crittercrate.dm"
@@ -2262,6 +2263,7 @@
#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\carrier.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\electric.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\frost.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\giant_spider_vr.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\hunter.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\lurker.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\nurse.dm"