Merge pull request #14294 from Heroman3003/roaming-wildlife

Replaces RP's carp, drone and jellyfish events with new Roaming Wildlife event
This commit is contained in:
Casey
2023-01-03 16:55:29 -05:00
committed by GitHub
19 changed files with 547 additions and 314 deletions
+68
View File
@@ -0,0 +1,68 @@
/datum/event/roaming_wildlife
announceWhen = 10
/datum/event/roaming_wildlife/start()
var/list/possible_spawns = list()
for(var/obj/effect/landmark/C in landmarks_list)
if(istype(C, /obj/effect/landmark/wildlife))
possible_spawns.Add(C)
if(!(possible_spawns.len))
return
var/threat_level
var/spawn_count
var/location_amount
var/points_to_spend
switch(severity)
if(EVENT_LEVEL_MUNDANE)
points_to_spend = 6
if(EVENT_LEVEL_MODERATE)
points_to_spend = 10
if(EVENT_LEVEL_MAJOR)
points_to_spend = 14
if(!points_to_spend)
return
threat_level = rand(1,4)
points_to_spend -= threat_level
spawn_count = rand(1, min(points_to_spend-1, 9))
points_to_spend -= spawn_count
location_amount = points_to_spend
for(var/i = 1, i <= location_amount, i++)
if(!(possible_spawns.len))
break
var/obj/effect/landmark/wildlife/WL = pick(possible_spawns)
possible_spawns -= WL
var/list/spawn_list
switch(WL.wildlife_type)
if(1)
spawn_list = event_wildlife_aquatic
if(2)
spawn_list = event_wildlife_roaming
if(!spawn_list)
continue
spawn_list = pick(spawn_list[threat_level])
var/spawn_type
var/spawn_pos = get_turf(WL)
for(var/j = 1, j <= spawn_count, j++)
spawn_type = pickweight(spawn_list)
var/mob/living/L = new spawn_type(spawn_pos)
step_away(L, WL)
/datum/event/roaming_wildlife/announce()
var/message
switch(severity)
if(EVENT_LEVEL_MUNDANE)
message = "Minor movements of local wildlife have been detected within proximity of the facility."
if(EVENT_LEVEL_MODERATE)
message = "Notable amount of local wildlife has been detected entering area surrounding the facility. Take caution."
if(EVENT_LEVEL_MAJOR)
message = "A particularly large shift within wildlife movement has been detected. Take caution."
command_announcement.Announce(message, "Wildlife Monitoring")
@@ -11,7 +11,7 @@
icon = 'icons/mob/fish.dmi'
item_state = "fish"
catalogue_data = list(/datum/category_item/catalogue/fauna/invasive_fish)
//catalogue_data = list(/datum/category_item/catalogue/fauna/invasive_fish) //TODO: write non-sif lore
mob_size = MOB_SMALL
// So fish are actually underwater.
@@ -17,7 +17,7 @@
name = "crystal-feather duck"
desc = "A glittering flightless bird."
tt_desc = "S Anatidae vitriae"
catalogue_data = list(/datum/category_item/catalogue/fauna/crystalduck)
//catalogue_data = list(/datum/category_item/catalogue/fauna/crystalduck) TODO: Write non-sif lore
faction = "duck"
@@ -27,7 +27,7 @@
name = "hooligan crab"
desc = "A large, hard-shelled crustacean. This one is mostly grey. \
You probably shouldn't mess with it."
catalogue_data = list(/datum/category_item/catalogue/fauna/hooligan_crab)
//catalogue_data = list(/datum/category_item/catalogue/fauna/hooligan_crab) //TODO: write non-sif lore
icon_state = "sif_crab"
icon_living = "sif_crab"
@@ -47,6 +47,15 @@
icon_dead = "wah_fae_dead"
icon_rest = "wah_fae_rest"
vore_ignores_undigestable = 0 // wah don't care you're edible or not, you still go in
vore_digest_chance = 0 // instead of digesting if you struggle...
vore_absorb_chance = 20 // you get to become adorable purple wahpudge.
vore_bump_chance = 75
maxHealth = 100
health = 100
melee_damage_lower = 10
melee_damage_upper = 20
/mob/living/simple_mob/vore/redpanda/blue
name = "blue wah"
desc = "Blue, but still cute!"